commit ce5ed190502f8954eedcf408e5c40e9b36f3d76a Author: kongbq Date: Wed Nov 8 16:05:54 2023 +0800 第一次提交 diff --git a/采集器3.0框架封装包2023-11-01/终端/BouncyCastle.Crypto.dll b/采集器3.0框架封装包2023-11-01/终端/BouncyCastle.Crypto.dll new file mode 100644 index 0000000..9059e64 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/BouncyCastle.Crypto.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/CommonUtils.dll b/采集器3.0框架封装包2023-11-01/终端/CommonUtils.dll new file mode 100644 index 0000000..05fbf2e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/CommonUtils.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/CommonUtils.dll.config b/采集器3.0框架封装包2023-11-01/终端/CommonUtils.dll.config new file mode 100644 index 0000000..497a120 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/CommonUtils.dll.config @@ -0,0 +1,19 @@ + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/终端/CommonUtils.pdb b/采集器3.0框架封装包2023-11-01/终端/CommonUtils.pdb new file mode 100644 index 0000000..9d2ca5e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/CommonUtils.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/终端/IPCBridge.dll b/采集器3.0框架封装包2023-11-01/终端/IPCBridge.dll new file mode 100644 index 0000000..b63870d Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/IPCBridge.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/IPCBridge.pdb b/采集器3.0框架封装包2023-11-01/终端/IPCBridge.pdb new file mode 100644 index 0000000..5d86290 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/IPCBridge.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/终端/Newtonsoft.Json.dll b/采集器3.0框架封装包2023-11-01/终端/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/Newtonsoft.Json.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/Newtonsoft.Json.xml b/采集器3.0框架封装包2023-11-01/终端/Newtonsoft.Json.xml new file mode 100644 index 0000000..008e0ca --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.dll b/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.dll new file mode 100644 index 0000000..4a86d24 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.pdb b/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.pdb new file mode 100644 index 0000000..29e07f2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.xml b/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.xml new file mode 100644 index 0000000..2b2e18f --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/RabbitMQ.Client.xml @@ -0,0 +1,6929 @@ + + + + RabbitMQ.Client + + + + + Represents a TCP-addressable AMQP peer: a host name and port number. + + + Some of the constructors take, as a convenience, a System.Uri + instance representing an AMQP server address. The use of Uri + here is not standardised - Uri is simply a convenient + container for internet-address-like components. In particular, + the Uri "Scheme" property is ignored: only the "Host" and + "Port" properties are extracted. + + + + + Default Amqp ssl port. + + + + + Indicates that the default port for the protocol should be used. + + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + Ssl option. + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + + + + Construct an AmqpTcpEndpoint with "localhost" as the hostname, and using the default port. + + + + + Creates a new instance of the with the given Uri and ssl options. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Creates a new instance of the with the given Uri. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Clones the endpoint. + + A copy with the same hostname, port, and TLS settings + + + + Clones the endpoint using the provided hostname. + + Hostname to use + A copy with the provided hostname and port/TLS settings of this endpoint + + + + Retrieve or set the hostname of this . + + + + Retrieve or set the port number of this + AmqpTcpEndpoint. A port number of -1 causes the default + port number. + + + + Retrieve IProtocol of this . + + + + + Used to force the address family of the endpoint + + + + + Retrieve the SSL options for this AmqpTcpEndpoint. If not set, null is returned. + + + + + Construct an instance from a protocol and an address in "hostname:port" format. + + + If the address string passed in contains ":", it is split + into a hostname and a port-number part. Otherwise, the + entire string is used as the hostname, and the port-number + is set to -1 (meaning the default number for the protocol + variant specified). + Hostnames provided as IPv6 must appear in square brackets ([]). + + + + + Splits the passed-in string on ",", and passes the substrings to . + + + Accepts a string of the form "hostname:port, + hostname:port, ...", where the ":port" pieces are + optional, and returns a corresponding array of s. + + + + + Compares this instance by value (protocol, hostname, port) against another instance. + + + + + Implementation of hash code depending on protocol, hostname and port, + to line up with the implementation of . + + + + + Returns a URI-like string of the form amqp-PROTOCOL://HOSTNAME:PORTNUMBER. + + + This method is intended mainly for debugging and logging use. + + + + + Structure holding an AMQP timestamp, a posix 64-bit time_t. + + + When converting between an AmqpTimestamp and a System.DateTime, + be aware of the effect of your local timezone. In particular, + different versions of the .NET framework assume different + defaults. + + + We have chosen a signed 64-bit time_t here, since the AMQP + specification through versions 0-9 is silent on whether + timestamps are signed or unsigned. + + + + + + Construct an . + + Unix time. + + + + Unix time. + + + + + Provides a debugger-friendly display. + + + + Represents a version of the AMQP specification. + + + Vendor-specific variants of particular official specification + versions exist: this class simply represents the AMQP + specification version, and does not try to represent + information about any custom variations involved. + + + AMQP version 0-8 peers sometimes advertise themselves as + version 8-0: for this reason, this class's constructor + special-cases 8-0, rewriting it at construction time to be 0-8 instead. + + + + + + Construct an from major and minor version numbers. + + + Converts major=8 and minor=0 into major=0 and minor=8. Please see the class comment. + + + + + The AMQP specification major version number. + + + + + The AMQP specification minor version number. + + + + + Implement value-equality comparison. + + + + + Implement hashing as for value-equality. + + + + + Format appropriately for display. + + + The specification currently uses "MAJOR-MINOR" as a display format. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + A pluggable authentication mechanism. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + Represents Basic.GetOk responses from the server. + + Basic.Get either returns an instance of this class, or null if a Basic.GetEmpty was received. + + + + + Sets the new instance's properties from the arguments passed in. + + Delivery tag for the message. + Redelivered flag for the message + The exchange this message was published to. + Routing key with which the message was published. + The number of messages pending on the queue, excluding the message being delivered. + The Basic-class content header properties for the message. + + + + + Retrieves the Basic-class content header properties for this message. + + + + + Retrieves the body of this message. + + + + + Retrieve the delivery tag for this message. See also . + + + + + Retrieve the exchange this message was published to. + + + + + Retrieve the number of messages pending on the queue, excluding the message being delivered. + + + Note that this figure is indicative, not reliable, and can + change arbitrarily as messages are added to the queue and removed by other clients. + + + + + Retrieve the redelivered flag for this message. + + + + + Retrieve the routing key with which this message was published. + + + + Wrapper for a byte[]. May appear as values read from + and written to AMQP field tables. + + + The sole reason for the existence of this class is to permit + encoding of byte[] as 'x' in AMQP field tables, an extension + to the specification that is part of the tentative JMS mapping + implemented by QPid. + + + Instances of this object may be found as values held in + IDictionary instances returned from + RabbitMQ.Client.Impl.WireFormatting.ReadTable, e.g. as part of + IBasicProperties.Headers tables. Likewise, instances may be + set as values in an IDictionary table to be encoded by + RabbitMQ.Client.Impl.WireFormatting.WriteTable. + + + When an instance of this class is encoded/decoded, the type + tag 'x' is used in the on-the-wire representation. The AMQP + standard type tag 'S' is decoded to a raw byte[], and a raw + byte[] is encoded as 'S'. Instances of System.String are + converted to a UTF-8 binary representation, and then encoded + using tag 'S'. In order to force the use of tag 'x', instances + of this class must be used. + + + + + + Creates a new instance of the with null for its Bytes property. + + + + + Creates a new instance of the . + + The wrapped byte array, as decoded or as to be encoded. + + + + The wrapped byte array, as decoded or as to be encoded. + + + + Main entry point to the RabbitMQ .NET AMQP client + API. Constructs instances. + + + A simple example of connecting to a broker: + + + ConnectionFactory factory = new ConnectionFactory(); + // + // The next six lines are optional: + factory.UserName = ConnectionFactory.DefaultUser; + factory.Password = ConnectionFactory.DefaultPass; + factory.VirtualHost = ConnectionFactory.DefaultVHost; + factory.HostName = hostName; + factory.Port = AmqpTcpEndpoint.UseDefaultPort; + // + IConnection conn = factory.CreateConnection(); + // + IModel ch = conn.CreateModel(); + // + // ... use ch's IModel methods ... + // + ch.Close(Constants.ReplySuccess, "Closing the channel"); + conn.Close(Constants.ReplySuccess, "Closing the connection"); + + + The same example, written more compactly with AMQP URIs: + + + ConnectionFactory factory = new ConnectionFactory(); + factory.SetUri("amqp://localhost"); + IConnection conn = factory.CreateConnection(); + ... + + + Please see also the API overview and tutorial in the User Guide. + + + Note that the Uri property takes a string representation of an + AMQP URI. Omitted URI parts will take default values. The + host part of the URI cannot be omitted and URIs of the form + "amqp://foo/" (note the trailling slash) also represent the + default virtual host. The latter issue means that virtual + hosts with an empty name are not addressable. + + + + Default value for the desired maximum channel number, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for connection attempt timeout, in milliseconds. + + + + + Default value for the desired maximum frame size, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for desired heartbeat interval, in seconds, with zero meaning none (value: 60). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default password (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default user name (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default virtual host (value: "/"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + The default AMQP URI SSL protocols. + + + + + The AMQP URI SSL protocols. + + + + + Default SASL auth mechanisms to use. + + + + + SASL auth mechanisms to use. + + + + + Set to false to disable automatic connection recovery. + Defaults to true. + + + + + Set to true will enable a asynchronous consumer dispatcher which is compatible with . + Defaults to false. + + + + The host to connect to. + + + + Amount of time client will wait for before re-trying to recover connection. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + Factory function for creating the + used to generate a list of endpoints for the ConnectionFactory + to try in order. + The default value creates an instance of the + using the list of endpoints passed in. The DefaultEndpointResolver shuffles the + provided list each time it is requested. + + + + + The port to connect on. + indicates the default for the protocol should be used. + + + + + Protocol used, only AMQP 0-9-1 is supported in modern versions. + + + + + Timeout setting for connection attempts (in milliseconds). + + + + + Timeout setting for socket read operations (in milliseconds). + + + + + Timeout setting for socket write operations (in milliseconds). + + + + + Ssl options setting. + + + + + Set to false to make automatic connection recovery not recover topology (exchanges, queues, bindings, etc). + Defaults to true. + + + + + Task scheduler connections created by this factory will use when + dispatching consumer operations, such as message deliveries. + + + + + Construct a fresh instance, with all fields set to their respective defaults. + + + + + Connection endpoint. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat timeout to use when negotiating with the server (in seconds). + + + + + When set to true, background thread will be used for the I/O loop. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + The uri to use for the connection. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + When the configured hostname was not reachable. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + When the configured hostname was not reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each hostname is tried in a random order until a successful connection is + found or the list is exhausted using the DefaultEndpointResolver. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each endpoint is tried in a random order until a successful connection is + found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of endpoints. By default each endpoint will be tried + in a random order until a successful connection is found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using an IEndpointResolver. + + + The endpointResolver that returns the endpoints to use for the connection attempt. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Unescape a string, protecting '+'. + + + + + Set custom socket options by providing a SocketFactory. + + + + + Creates a new instance of the . + + Specifies the addressing scheme. + New instance of a . + + + + Useful default/base implementation of . + Subclass and override in application code. + + + Note that the "Handle*" methods run in the connection's thread! + Consider using , which exposes + events that can be subscribed to consumer messages. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + Convenience class providing compile-time names for standard exchange types. + + + Use the static members of this class as values for the + "exchangeType" arguments for IModel methods such as + ExchangeDeclare. The broker may be extended with additional + exchange types that do not appear in this class. + + + + + Exchange type used for AMQP direct exchanges. + + + + + Exchange type used for AMQP fanout exchanges. + + + + + Exchange type used for AMQP headers exchanges. + + + + + Exchange type used for AMQP topic exchanges. + + + + + Retrieve a collection containing all standard exchange types. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Convenience class providing compile-time names for standard headers. + + + Use the static members of this class as headers for the + arguments for Queue and Exchange declaration or Consumer creation. + The broker may be extended with additional + headers that do not appear in this class. + + + + + x-max-priority header + + + + + x-max-length header + + + + + x-max-length-bytes header + + + + + x-dead-letter-exchange header + + + + + x-dead-letter-routing-key header + + + + + x-message-ttl header + + + + + x-expires header + + + + + alternate-exchange header + + + + + x-priority header + + + + + x-queue-mode header. + Available modes: "default" and "lazy" + + + + + x-queue-type header. + Available types: "quorum" and "classic"(default) + + + + + x-quorum-initial-group-size header. + Use to control the number of quorum queue members + + + + + x-single-active-consumer header. + Available modes: true and false(default). + Allows to have only one consumer at a time consuming from a queue + and to fail over to another registered consumer in case the active one is cancelled or dies + + + + + x-overflow header. + Available strategies: "reject-publish" and "drop-head"(default). + Allows to configure strategy when or hits limits + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Consumer interface. Used to + receive messages from a queue by subscription. + + + See IModel.BasicConsume, IModel.BasicCancel. + + + Note that the "Handle*" methods run in the connection's + thread! Consider using QueueingBasicConsumer, which uses a + SharedQueue instance to safely pass received messages across + to user threads. + + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Common AMQP Basic content-class headers interface, + spanning the union of the functionality offered by versions + 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use . + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a + fresh instance are clear by default. + + + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + + Main interface to an AMQP connection. + + + + Instances of are used to create fresh + sessions/channels. The class is used to + construct instances. + Please see the documentation for ConnectionFactory for an example of usage. + Alternatively, an API tutorial can be found in the User Guide. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when + appropriate. + + + + + + If true, will close the whole connection as soon as there are no channels open on it; + if false, manual connection closure will be required. + + + DON'T set AutoClose to true before opening the first + channel, because the connection will be immediately closed if you do! + + + + + The maximum channel number this connection supports (0 if unlimited). + Usable channel numbers range from 1 to this number, inclusive. + + + + + A copy of the client properties that has been sent to the server. + + + + + Returns null if the connection is still in a state + where it can be used, or the cause of its closure otherwise. + + + + Applications should use the ConnectionShutdown event to + avoid race conditions. The scenario to avoid is checking + , seeing it is null (meaning the + was available for use at the time of the check), and + interpreting this mistakenly as a guarantee that the + will remain usable for a time. Instead, the + operation of interest should simply be attempted: if the + is not in a usable state, an exception will be + thrown (most likely , but may + vary depending on the particular operation being attempted). + + + + + + Retrieve the endpoint this connection is connected to. + + + + + The maximum frame size this connection supports (0 if unlimited). + + + + + The current heartbeat setting for this connection (0 for disabled), in seconds. + + + + + Returns true if the connection is still in a state where it can be used. + Identical to checking if equal null. + + + + + Returns the known hosts that came back from the + broker in the connection.open-ok method at connection + startup time. Null until the connection is completely open and ready for use. + + + + + The this connection is using to communicate with its peer. + + + + + A dictionary of the server properties sent by the server while establishing the connection. + This typically includes the product name and version of the server. + + + + + Returns the list of objects that contain information + about any errors reported while closing the connection in the order they appeared + + + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + Signalled when an exception occurs in a callback invoked by the connection. + + + This event is signalled when a ConnectionShutdown handler + throws an exception. If, in future, more events appear on + , then this event will be signalled whenever one + of those event handlers throws an exception, as well. + + + + + Raised when the connection is destroyed. + + + If the connection is already destroyed at the time an + event handler is added to this event, the event handler + will be fired immediately. + + + + + Abort this connection and all its channels. + + + Note that all active channels, sessions, and models will be closed if this method is called. + In comparison to normal method, will not throw + during closing connection. + This method waits infinitely for the in-progress close operation to complete. + + + + + Abort this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification) + + + A message indicating the reason for closing the connection + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + This method, behaves in a similar way as method with the + only difference that it explictly specifies a timeout given + for all the in-progress close operations to complete. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Close this connection and all its channels. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete. This method will not return to the caller + until the shutdown is complete. If the connection is already closed + (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + + + + + Close this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP specification). + + + A message indicating the reason for closing the connection. + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete with a timeout. If the connection is + already closed (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Create and return a fresh channel, session, and model. + + + + + Handle incoming Connection.Blocked methods. + + + + + Handle incoming Connection.Unblocked methods. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat setting to request (in seconds). + + + + + When set to true, background threads will be used for I/O and heartbeats. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + Sets or gets the AMQP Uri to be used for connections. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to the specified endpoint. + + + + + Create a connection to the specified endpoint. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Create a connection using a list of endpoints. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Advanced option. + + What task scheduler should consumer dispatcher use. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + A decoded AMQP content header frame. + + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Return all AmqpTcpEndpoints in the order they should be tried. + + + + + A decoded AMQP method frame. + + + + AMQP methods can be RPC requests, RPC responses, exceptions + (ChannelClose, ConnectionClose), or one-way asynchronous + messages. Currently this information is not recorded in their + type or interface: it is implicit in the way the method is + used, and the way it is defined in the AMQP specification. A + future revision of the RabbitMQ .NET client library may extend + the IMethod interface to represent this information + explicitly. + + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + + Common AMQP model, spanning the union of the + functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when appropriate. + + + + + Channel number, unique per connections. + + + + + Returns null if the session is still in a state where it can be used, + or the cause of its closure otherwise. + + + + Signalled when an unexpected message is delivered + + Under certain circumstances it is possible for a channel to receive a + message delivery which does not match any consumer which is currently + set up via basicConsume(). This will occur after the following sequence + of events: + + ctag = basicConsume(queue, consumer); // i.e. with explicit acks + // some deliveries take place but are not acked + basicCancel(ctag); + basicRecover(false); + + Since requeue is specified to be false in the basicRecover, the spec + states that the message must be redelivered to "the original recipient" + - i.e. the same channel / consumer-tag. But the consumer is no longer + active. + + In these circumstances, you can register a default consumer to handle + such deliveries. If no default consumer is registered an + InvalidOperationException will be thrown when such a delivery arrives. + + Most people will not need to use this. + + + + Returns true if the model is no longer in a state where it can be used. + + + + + Returns true if the model is still in a state where it can be used. + Identical to checking if equals null. + + + + When in confirm mode, return the sequence number of the next message to be published. + + + + + Signalled when a Basic.Ack command arrives from the broker. + + + + + Signalled when a Basic.Nack command arrives from the broker. + + + + + All messages received before this fires that haven't been ack'ed will be redelivered. + All messages received afterwards won't be. + + + Handlers for this event are invoked by the connection thread. + It is sometimes useful to allow that thread to know that a recover-ok + has been received, rather than the thread that invoked . + + + + + Signalled when a Basic.Return command arrives from the broker. + + + + + Signalled when an exception occurs in a callback invoked by the model. + + Examples of cases where this event will be signalled + include exceptions thrown in methods, or + exceptions thrown in delegates etc. + + + + + Notifies the destruction of the model. + + + If the model is already destroyed at the time an event + handler is added to this event, the event handler will be fired immediately. + + + + + Abort this session. + + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + In comparison to normal method, will not throw + or or any other during closing model. + + + + + Abort this session. + + + The method behaves in the same way as , with the only + difference that the model is closed with the given model close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Acknowledge one or more delivered message(s). + + + + + Delete a Basic content-class consumer. + + + + Start a Basic content-class consumer. + + + + Retrieve an individual message, if + one is available; returns null if the server answers that + no messages are currently available. See also . + + + + Reject one or more delivered message(s). + + + + Publishes a message. + + + + Routing key must be shorter than 255 bytes. + + + + + + Configures QoS parameters of the Basic content-class. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + Reject a delivered message. + + + Close this session. + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + + + + Close this session. + + The method behaves in the same way as Close(), with the only + difference that the model is closed with the given model + close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Enable publisher acknowledgements. + + + + + Creates a BasicPublishBatch instance + + + + + Construct a completely empty content header for use with the Basic content class. + + + + + Bind an exchange to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Like ExchangeBind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + Declare an exchange. + + The exchange is declared non-passive and non-internal. + The "nowait" option is not exercised. + + + + + Same as ExchangeDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + + Do a passive exchange declaration. + + + This method performs a "passive declare" on an exchange, + which verifies whether . + It will do nothing if the exchange already exists and result + in a channel-level protocol exception (channel closure) if not. + + + + + Delete an exchange. + + + + + Like ExchangeDelete but sets nowait to true. + + + + + Unbind an exchange from an exchange. + + + Routing key must be shorter than 255 bytes. + + + + + Like ExchangeUnbind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + + Bind a queue to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + Same as QueueBind but sets nowait parameter to true. + + + Routing key must be shorter than 255 bytes. + + + + + Declare a queue. + + + + Same as QueueDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + Declare a queue passively. + + The queue is declared passive, non-durable, + non-exclusive, and non-autodelete, with no arguments. + The queue is declared passively; i.e. only check if it exists. + + + + + Returns the number of messages in a queue ready to be delivered + to consumers. This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Returns the number of consumers on a queue. + This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Delete a queue. + + + Returns the number of messages purged during queue deletion. + uint.MaxValue. + + + + + Same as QueueDelete but sets nowait parameter to true + and returns void (as there will be no response from the server) + + + + + Purge a queue of messages. + + + Returns the number of messages purged. + + + + + Unbind a queue from an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Commit this session's active TX transaction. + + + + + Roll back this session's active TX transaction. + + + + + Enable TX mode for this session. + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + True if the method returned because + the timeout elapsed, not because all messages were ack'd or at least one nack'd. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received, throws an + OperationInterrupedException exception immediately. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received or the timeout + elapses, throws an OperationInterrupedException exception immediately. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false and immediate=false. + + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false + + + + + (Spec method) Convenience overload of BasicPublish. + + + + + (Spec method) Declare a queue. + + + + + (Extension method) Bind an exchange to an exchange. + + + + + (Extension method) Like exchange bind but sets nowait to true. + + + + + (Spec method) Declare an exchange. + + + + + (Extension method) Like ExchangeDeclare but sets nowait to true. + + + + + (Spec method) Unbinds an exchange. + + + + + (Spec method) Deletes an exchange. + + + + + (Extension method) Like ExchangeDelete but sets nowait to true. + + + + + (Spec method) Binds a queue. + + + + + (Spec method) Deletes a queue. + + + + + (Extension method) Like QueueDelete but sets nowait to true. + + + + + (Spec method) Unbinds a queue. + + + + + Object describing various overarching parameters + associated with a particular AMQP protocol variant. + + + + + Retrieve the protocol's API name, used for printing, + configuration properties, IDE integration, Protocols.cs etc. + + + + + Retrieve the protocol's default TCP port. + + + + + Retrieve the protocol's major version number. + + + + + Retrieve the protocol's minor version number. + + + + + Retrieve the protocol's revision (if specified). + + + + + Construct a connection from a given set of parameters, + a frame handler, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, and automatic recovery settings. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and automatic recovery settings. + + + + + Construct a protocol model atop a given session. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + This interface is provided to make creation of test doubles + for easier. + + + + + + A marker interface for entities that are recoverable (currently connection or channel). + + + + + Common AMQP Stream content-class headers interface, + spanning the union of the functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use IModel.CreateStreamProperties(). + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a fresh instance are clear by default. + + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Message header field table. + + + + + Message priority, 0 to 9. + + + + + Message timestamp. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Wrapper interface for standard TCP-client. Provides socket for socket frame handler class. + + Contains all methods that are currenty in use in rabbitmq client. + + + + Common interface for network (TCP/IP) connection classes. + + + + + Local port. + + + + + Remote port. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Provides access to the supported implementations. + + + + + Protocol version 0-9-1 as modified by Pivotal. + + + + + Retrieve the current default protocol variant (currently AMQP_0_9_1). + + + + + Container for an exchange name, exchange type and + routing key, usable as the target address of a message to be published. + + + + The syntax used for the external representation of instances + of this class is compatible with QPid's "Reply-To" field + pseudo-URI format. The pseudo-URI format is + (exchange-type)://(exchange-name)/(routing-key), where + exchange-type is one of the permitted exchange type names (see + class ExchangeType), exchange-name must be present but may be + empty, and routing-key must be present but may be empty. + + + The syntax is as it is solely for compatibility with QPid's + existing usage of the ReplyTo field; the AMQP specifications + 0-8 and 0-9 do not define the format of the field, and do not + define any format for the triple (exchange name, exchange + type, routing key) that could be used instead. + + + + + + Regular expression used to extract the exchange-type, + exchange-name and routing-key from a string. + + + + + Creates a new instance of the . + + Exchange type. + Exchange name. + Routing key. + + + + Retrieve the exchange name. + + + + + Retrieve the exchange type string. + + + + + Retrieve the routing key. + + + + + Parse a out of the given string, + using the regex. + + + + + Reconstruct the "uri" from its constituents. + + + + + Represents Queue info. + + + + + Creates a new instance of the . + + Queue name. + Message count. + Consumer count. + + + + Consumer count. + + + + + Message count. + + + + + Queue name. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + Received messages are placed in the SharedQueue as instances + of . + + + Note that messages taken from the SharedQueue may need + acknowledging with . + + + When the consumer is closed, through BasicCancel or through + the shutdown of the underlying or , + the method is called, which causes any + Enqueue() operations, and Dequeue() operations when the queue + is empty, to throw EndOfStreamException (see the comment for ). + + + The following is a simple example of the usage of this class: + + + IModel channel = ...; + QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel); + channel.BasicConsume(queueName, null, consumer); + + // At this point, messages will be being asynchronously delivered, + // and will be queueing up in consumer.Queue. + + while (true) { + try { + BasicDeliverEventArgs e = (BasicDeliverEventArgs) consumer.Queue.Dequeue(); + // ... handle the delivery ... + channel.BasicAck(e.DeliveryTag, false); + } catch (EndOfStreamException ex) { + // The consumer was cancelled, the model closed, or the + // connection went away. + break; + } + } + + + + + + Creates a fresh , + initialising the property to null + and the property to a fresh . + + + + + Creates a fresh , with + set to the argument, and set to a fresh . + + + + + Creates a fresh , + initialising the + and properties to the given values. + + + + + Retrieves the that messages arrive on. + + + + + Overrides 's implementation, + building a instance and placing it in the Queue. + + + + + Overrides 's OnCancel implementation, + extending it to call the Close() method of the . + + + + + Information about the reason why a particular model, session, or connection was destroyed. + + + The and properties should be used to determine the originator of the shutdown event. + + + + + Construct a with the given parameters and + 0 for and . + + + + + Construct a with the given parameters. + + + + + Object causing the shutdown, or null if none. + + + + + AMQP content-class ID, or 0 if none. + + + + + Returns the source of the shutdown event: either the application, the library, or the remote peer. + + + + + AMQP method ID within a content-class, or 0 if none. + + + + + One of the standardised AMQP reason codes. See RabbitMQ.Client.Framing.*.Constants. + + + + + Informative human-readable reason text. + + + + + Override ToString to be useful for debugging. + + + + + Describes the source of a shutdown event. + + + + + The shutdown event originated from the application using the RabbitMQ .NET client library. + + + + + The shutdown event originated from the RabbitMQ .NET client library itself. + + + Shutdowns with this ShutdownInitiator code may appear if, + for example, an internal error is detected by the client, + or if the server sends a syntactically invalid + frame. Another potential use is on IConnection AutoClose. + + + + + The shutdown event originated from the remote AMQP peer. + + + A valid received connection.close or channel.close event + will manifest as a shutdown with this ShutdownInitiator. + + + + + Single entry object in the shutdown report that encapsulates description + of the error which occured during shutdown. + + + + + Description provided in the error. + + + + + object that occured during shutdown, or null if unspecified. + + + + + Represents an which does the actual heavy lifting to set up an SSL connection, + using the config options in an to make things cleaner. + + + + + Upgrade a Tcp stream to an Ssl stream using the SSL options provided. + + + + + Represents a configurable SSL option, used in setting up an SSL connection. + + + + + Constructs an SslOption specifying both the server cannonical name and the client's certificate path. + + + + + Constructs an with no parameters set. + + + + + Retrieve or set the set of ssl policy errors that are deemed acceptable. + + + + + Retrieve or set the path to client certificate. + + + + + Retrieve or set the path to client certificate. + + + + + An optional client specified SSL certificate selection callback. If this is not specified, + the first valid certificate found will be used. + + + + + An optional client specified SSL certificate validation callback. If this is not specified, + the default callback will be used in conjunction with the property to + determine if the remote server certificate is valid. + + + + + Retrieve or set the X509CertificateCollection containing the client certificate. + If no collection is set, the client will attempt to load one from the specified . + + + + + Flag specifying if Ssl should indeed be used. + + + + + Retrieve or set server's Canonical Name. + This MUST match the CN on the Certificate else the SSL connection will fail. + + + + + Retrieve or set the Ssl protocol version. + + + + + Framework for constructing various types of AMQP. Basic-class application messages. + + + + + By default, new instances of BasicMessageBuilder and its subclasses will have this much initial buffer space. + + + + + Construct an instance ready for writing. + + + The is used for the initial accumulator buffer size. + + + + + Construct an instance ready for writing. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's writing to BodyStream. + + + If no instance exists, one is created, + pointing at the beginning of the accumulator. If one + already exists, the existing instance is returned. The + instance is not reset. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Framework for analyzing various types of AMQP Basic-class application messages. + + + + + Construct an instance ready for reading. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's NetworkBinaryReader reading from . + + + If no NetworkBinaryReader instance exists, one is created, + pointing at the beginning of the body. If one already + exists, the existing instance is returned. The instance is + not reset. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Interface for constructing messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Interface for constructing messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Analyzes messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Parses the message body into an instance. + + + + + Interface for constructing application messages. + + + Subinterfaces provide specialized data-writing methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Finish and retrieve the content header for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Interface for analyzing application messages. + + + Subinterfaces provide specialized data-reading methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Interface for constructing messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Finish and retrieve the content body for transmission. + + + Calling this message clears Body to null. Subsequent calls will fault. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for reading. See . + + + + + Parses the message body into an instance. + + . + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "MapMessage" wire encoding. + + + + + + Utility class for extracting typed values from strings. + + + + + Creates the protocol violation exception. + + Type of the target. + The source. + Instance of the . + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of an . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Tags used in parsing and generating StreamWireFormatting message bodies. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + + + + + + + + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + Contains all the information about a message acknowledged + from an AMQP broker within the Basic content-class. + + + The sequence number of the acknowledged message, or + the closed upper bound of acknowledged messages if multiple + is true. + + + Whether this acknoledgement applies to one message + or multiple messages. + + + Contains all the information about a message delivered + from an AMQP broker within the Basic content-class. + + + Default constructor. + + + Constructor that fills the event's properties from + its arguments. + + + The content header of the message. + + + The message body. + + + The consumer tag of the consumer that the message + was delivered to. + + + The delivery tag for this delivery. See + IModel.BasicAck. + + + The exchange the message was originally published + to. + + + The AMQP "redelivered" flag. + + + The routing key used when the message was + originally published. + + + Contains all the information about a message nack'd + from an AMQP broker within the Basic content-class. + + + The sequence number of the nack'd message, or the + closed upper bound of nack'd messages if multiple is + true. + + + Whether this nack applies to one message or + multiple messages. + + + Ignore + Clients should ignore this field. + + + Contains all the information about a message returned + from an AMQP broker within the Basic content-class. + + + The content header of the message. + + + The message body. + + + The exchange the returned message was originally + published to. + + + The AMQP reason code for the return. See + RabbitMQ.Client.Framing.*.Constants. + + + Human-readable text from the broker describing the + reason for the return. + + + The routing key used when the message was + originally published. + + + Wrap an exception thrown by a callback. + + + Access helpful information about the context in + which the wrapped exception was thrown. + + + Access the wrapped exception. + + + Describes an exception that was thrown during the + library's invocation of an application-supplied callback + handler. + + + When an exception is thrown from a callback registered with + part of the RabbitMQ .NET client library, it is caught, + packaged into a CallbackExceptionEventArgs, and passed through + the appropriate IModel's or IConnection's CallbackException + event handlers. If an exception is thrown in a + CallbackException handler, it is silently swallowed, as + CallbackException is the last chance to handle these kinds of + exception. + + + Code constructing CallbackExceptionEventArgs instances will + usually place helpful information about the context of the + call in the IDictionary available through the Detail property. + + + + + + Event relating to connection being blocked. + + + + + Access the reason why connection is blocked. + + + + Event relating to a successful consumer registration + or cancellation. + + + Construct an event containing the consumer-tag of + the consumer the event relates to. + + + Access the consumer-tag of the consumer the event + relates to. + + + + Initializes a new instance of the class. + + The tag before. + The tag after. + + + + Gets the tag before. + + + + + Gets the tag after. + + + + Experimental class exposing an IBasicConsumer's + methods as separate events. + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + + Event relating to flow control. + + + + + Access the flow control setting. + + + + + Initializes a new instance of the class. + + The name before. + The name after. + + + + Gets the name before. + + + + + Gets the name after. + + + + + Describes an exception that was thrown during + automatic connection recovery performed by the library. + + + + Thrown when the application tries to make use of a + session or connection that has already been shut + down. + + + Construct an instance containing the given + shutdown reason. + + + Thrown when the cause is an + authentication failure. + + + Thrown when no connection could be opened during a + ConnectionFactory.CreateConnection attempt. + + + Construct a BrokerUnreachableException. The inner exception is + an AggregateException holding the errors from multiple connection attempts. + + + Thrown when a SessionManager cannot allocate a new + channel number, or the requested channel number is already in + use. + + + + Indicates that there are no more free channels. + + + + + Indicates that the specified channel is in use + + The requested channel number + + + Retrieves the channel number concerned; will + return -1 in the case where "no more free channels" is + being signaled, or a non-negative integer when "channel is + in use" is being signaled. + + + Thrown when a connection to the broker fails + + + + Thrown when a session is destroyed during an RPC call to a + broker. For example, if a TCP connection dropping causes the + destruction of a session in the middle of a QueueDeclare + operation, an OperationInterruptedException will be thrown to + the caller of IModel.QueueDeclare. + + + + Construct an OperationInterruptedException with + the passed-in explanation, if any. + + + Construct an OperationInterruptedException with + the passed-in explanation and prefix, if any. + + + Retrieves the explanation for the shutdown. May + return null if no explanation is available. + + + Thrown to indicate that the peer didn't understand + the packet received from the client. Peer sent default message + describing protocol version it is using and transport parameters. + + + The peer's {'A','M','Q','P',txHi,txLo,major,minor} packet is + decoded into instances of this class. + + + + Fills the new instance's properties with the values passed in. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + The peer's high transport byte. + + + The peer's low transport byte. + + + Thrown when the likely cause is an + authentication failure. + + + Thrown to indicate that the peer does not support the + wire protocol version we requested immediately after opening + the TCP socket. + + + Fills the new instance's properties with the values passed in. + + + The client's AMQP specification major version. + + + The client's AMQP specification minor version. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Thrown when the model receives an RPC reply that it wasn't expecting. + + + + The unexpected reply method. + + + + Thrown when the model receives an RPC request it cannot satisfy. + + + + The name of the RPC request that could not be sent. + + + Thrown when the model cannot transmit a method field + because the version of the protocol the model is implementing + does not contain a definition for the field in + question. + + + The name of the unsupported field. + + + The name of the method involved. + + + Thrown when the wire-formatting code cannot encode a + particular .NET value to AMQP protocol format. + + + Construct a WireFormattingException with no + particular offender (i.e. null) + + + Construct a WireFormattingException with the given + offender + + + Object which this exception is complaining about; + may be null if no particular offender exists + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + Thrown when the server sends a frame along a channel + that we do not currently have a Session entry in our + SessionManager for. + + + The channel number concerned. + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Fill this instance from the given byte buffer stream. + + + + A type of . + + + + Returns a random item from the list. + + Element item type + Input list + + + + Subclass of ProtocolException representing problems + requiring a connection.close. + + + Socket read timeout, in milliseconds. Zero signals "infinity". + + + Socket write timeout, in milliseconds. Zero signals "infinity". + + + Read a frame from the underlying + transport. Returns null if the read operation timed out + (see Timeout property). + + + Not part of the public API. Extension of IModel to + include utilities and connection-setup routines needed by the + implementation side. + + This interface is used by the API autogeneration + process. The AMQP XML specifications are read by the spec + compilation tool, and after the basic method interface and + implementation classes are generated, this interface is + scanned, and a spec-version-specific implementation is + autogenerated. Annotations are used on certain methods, return + types, and parameters, to customise the details of the + autogeneration process. + + + + + + Sends a Connection.TuneOk. Used during connection + initialisation. + + + Handle incoming Basic.Ack methods. Signals a + BasicAckEvent. + + + Handle incoming Basic.CancelOk methods. + + + Handle incoming Basic.ConsumeOk methods. + + + Handle incoming Basic.Deliver methods. Dispatches + to waiting consumers. + + + Handle incoming Basic.GetEmpty methods. Routes the + information to a waiting Basic.Get continuation. + + Note that the clusterId field is ignored, as in the + specification it notes that it is "deprecated pending + review". + + + + Handle incoming Basic.GetOk methods. Routes the + information to a waiting Basic.Get continuation. + + + Handle incoming Basic.Nack methods. Signals a + BasicNackEvent. + + + Handle incoming Basic.RecoverOk methods + received in reply to Basic.Recover. + + + + Handle incoming Basic.Return methods. Signals a + BasicReturnEvent. + + + Handle an incoming Channel.Close. Shuts down the + session and model. + + + Handle an incoming Channel.CloseOk. + + + Handle incoming Channel.Flow methods. Either + stops or resumes sending the methods that have content. + + + Handle an incoming Connection.Blocked. + + + Handle an incoming Connection.Close. Shuts down the + connection and all sessions and models. + + + Handle an incoming Connection.OpenOk. + + + Handle incoming Connection.Secure + methods. + + + Handle an incoming Connection.Start. Used during + connection initialisation. + + + Handle incoming Connection.Tune + methods. + + + Handle an incominga Connection.Unblocked. + + + Handle incoming Queue.DeclareOk methods. Routes the + information to a waiting Queue.DeclareOk continuation. + + + Used to send a Basic.Cancel method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Consume method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Get. Basic.Get is a special + case, since it can result in a Basic.GetOk or a + Basic.GetEmpty, so this level of manual control is + required. + + + Used to send a Basic.Publish method. Called by the + public publish method after potential null-reference issues + have been rectified. + + + Used to send a Channel.Close. Called during + session shutdown. + + + Used to send a Channel.CloseOk. Called during + session shutdown. + + + Used to send a Channel.FlowOk. Confirms that + Channel.Flow from the broker was processed. + + + Used to send a Channel.Open. Called during session + initialisation. + + + Used to send a Confirm.Select method. The public + confirm API calls this while also managing internal + datastructures. + + + Used to send a Connection.Close. Called during + connection shutdown. + + + Used to send a Connection.CloseOk. Called during + connection shutdown. + + + Used to send a Connection.Open. Called during + connection startup. + + + Used to send a Connection.SecureOk. Again, this is + special, like Basic.Get. + + + Used to send a Connection.StartOk. This is + special, like Basic.Get. + + + Used to send a Exchange.Bind method. Called by the + public bind method. + + + + Used to send a Exchange.Declare method. Called by the + public declare method. + + + + Used to send a Exchange.Delete method. Called by the + public delete method. + + + + Used to send a Exchange.Unbind method. Called by the + public unbind method. + + + + Used to send a Queue.Bind method. Called by the + public bind method. + + + Used to send a Queue.Declare method. Called by the + public declare method. + + + Used to send a Queue.Delete method. Called by the + public delete method. + + + Used to send a Queue.Purge method. Called by the + public purge method. + + + Essential information from an incoming Connection.Tune + method. + + + The peer's suggested channel-max parameter. + + + The peer's suggested frame-max parameter. + + + The peer's suggested heartbeat parameter. + + + + Gets the channel number. + + + + + Gets the close reason. + + + + + Single recipient - no need for multiple handlers to be informed of arriving commands. + + + + + Gets the connection. + + + + + Gets a value indicating whether this session is open. + + + + + Multicast session shutdown event. + + + + Small ISession implementation used only for channel 0. + + + Set channel 0 as quiescing + + Method should be idempotent. Cannot use base.Close + method call because that would prevent us from + sending/receiving Close/CloseOk commands + + + + Thrown when frame parsing code detects an error in the + wire-protocol encoding of a frame. + + For example, potential MalformedFrameException conditions + include frames too short, frames missing their end marker, and + invalid protocol negotiation headers. + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + Only used to kick-start a connection open + sequence. See + + + Broadcasts notification of the final shutdown of the model. + + + Do not call anywhere other than at the end of OnSessionShutdown. + + + Must not be called when m_closeReason == null, because + otherwise there's a window when a new continuation could be + being enqueued at the same time as we're broadcasting the + shutdown event. See the definition of Enqueue() above. + + + + + Handle incoming Connection.Tune + methods. + + + Instances of subclasses of subclasses + HardProtocolException and SoftProtocolException are thrown in + situations when we detect a problem with the connection-, + channel- or wire-level parts of the AMQP protocol. + + + Retrieve the reply code to use in a + connection/channel close method. + + + Retrieve the shutdown details to use in a + connection/channel close method. Defaults to using + ShutdownInitiator.Library, and this.ReplyCode and + this.Message as the reply code and text, + respectively. + + + Small ISession implementation used during channel quiescing. + + + Manages a queue of waiting AMQP RPC requests. + + + Currently, pipelining of requests is forbidden by this + implementation. The AMQP 0-8 and 0-9 specifications themselves + forbid pipelining, but only by the skin of their teeth and + under a somewhat generous reading. + + + + + Enqueue a continuation, marking a pending RPC. + + + Continuations are retrieved in FIFO order by calling Next(). + + + In the current implementation, only one continuation can + be queued up at once. Calls to Enqueue() when a + continuation is already enqueued will result in + NotSupportedException being thrown. + + + + + Interrupt all waiting continuations. + + + There's just the one potential waiter in the current + implementation. + + + + + Retrieve the next waiting continuation. + + + It is an error to call this method when there are no + waiting continuations. In the current implementation, if + this happens, null will be returned (which will usually + result in an immediate NullPointerException in the + caller). Correct code will always arrange for a + continuation to have been Enqueue()d before calling this + method. + + + + + Normal ISession implementation used during normal channel operation. + + + Called from CheckAutoClose, in a separate thread, + when we decide to close the connection. + + + If m_autoClose and there are no active sessions + remaining, Close()s the connection with reason code + 200. + + + Replace an active session slot with a new ISession + implementation. Used during channel quiescing. + + Make sure you pass in a channelNumber that's currently in + use, as if the slot is unused, you'll get a null pointer + exception. + + + + Subclass of ProtocolException representing problems + requiring a channel.close. + + + Thrown when our peer sends a frame that contains + illegal values for one or more fields. + + + + Thrown when the connection receives a frame that it wasn't expecting. + + + + + Thrown when the protocol handlers detect an unknown class + number or method number. + + + + The AMQP content-class ID. + + + The AMQP method ID within the content-class, or 0 if none. + + + Reads an AMQP "table" definition from the reader. + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t, + x and V types and the AMQP 0-9-1 A type. + + A . + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Heartbeat frame for transmission. Reusable across connections. + + + Another overload of a Protocol property, useful + for exposing a tighter type. + + + Explicit implementation of IConnection.Protocol. + + + Try to close connection in a graceful way + + + Shutdown reason contains code and text assigned when closing the connection, + as well as the information about what initiated the close + + + Abort flag, if true, signals to close the ongoing connection immediately + and do not report any errors if it was already closed. + + + Timeout determines how much time internal close operations should be given + to complete. Negative or Timeout.Infinite value mean infinity. + + + + + + Loop only used while quiescing. Use only to cleanly close connection + + + + + We need to close the socket, otherwise attempting to unload the domain + could cause a CannotUnloadAppDomainException + + + + Broadcasts notification of the final shutdown of the connection. + + + + Sets the channel named in the SoftProtocolException into + "quiescing mode", where we issue a channel.close and + ignore everything except for subsequent channel.close + messages and the channel.close-ok reply that should + eventually arrive. + + + + Since a well-behaved peer will not wait indefinitely before + issuing the close-ok, we don't bother with a timeout here; + compare this to the case of a connection.close-ok, where a + timeout is necessary. + + + We need to send the close method and politely wait for a + reply before marking the channel as available for reuse. + + + As soon as SoftProtocolException is detected, we should stop + servicing ordinary application work, and should concentrate + on bringing down the channel as quickly and gracefully as + possible. The way this is done, as per the close-protocol, + is to signal closure up the stack *before* sending the + channel.close, by invoking ISession.Close. Once the upper + layers have been signalled, we are free to do what we need + to do to clean up and shut down the channel. + + + + + + May be called more than once. Should therefore be idempotent. + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Protocol major version (= 0) + + + Protocol minor version (= 9) + + + Protocol revision (= 1) + + + Protocol API name (= :AMQP_0_9_1) + + + Default TCP port (= 5672) + + + (= 1) + + + (= 2) + + + (= 3) + + + (= 8) + + + (= 4096) + + + (= 206) + + + (= 200) + + + (= 311) + + + (= 313) + + + (= 320) + + + (= 402) + + + (= 403) + + + (= 404) + + + (= 405) + + + (= 406) + + + (= 501) + + + (= 502) + + + (= 503) + + + (= 504) + + + (= 505) + + + (= 506) + + + (= 530) + + + (= 540) + + + (= 541) + + + Autogenerated type. AMQP specification method "connection.start". + + + Autogenerated type. AMQP specification method "connection.start-ok". + + + Autogenerated type. AMQP specification method "connection.secure". + + + Autogenerated type. AMQP specification method "connection.secure-ok". + + + Autogenerated type. AMQP specification method "connection.tune". + + + Autogenerated type. AMQP specification method "connection.tune-ok". + + + Autogenerated type. AMQP specification method "connection.open". + + + Autogenerated type. AMQP specification method "connection.open-ok". + + + Autogenerated type. AMQP specification method "connection.close". + + + Autogenerated type. AMQP specification method "connection.close-ok". + + + Autogenerated type. AMQP specification method "connection.blocked". + + + Autogenerated type. AMQP specification method "connection.unblocked". + + + Autogenerated type. AMQP specification method "channel.open". + + + Autogenerated type. AMQP specification method "channel.open-ok". + + + Autogenerated type. AMQP specification method "channel.flow". + + + Autogenerated type. AMQP specification method "channel.flow-ok". + + + Autogenerated type. AMQP specification method "channel.close". + + + Autogenerated type. AMQP specification method "channel.close-ok". + + + Autogenerated type. AMQP specification method "exchange.declare". + + + Autogenerated type. AMQP specification method "exchange.declare-ok". + + + Autogenerated type. AMQP specification method "exchange.delete". + + + Autogenerated type. AMQP specification method "exchange.delete-ok". + + + Autogenerated type. AMQP specification method "exchange.bind". + + + Autogenerated type. AMQP specification method "exchange.bind-ok". + + + Autogenerated type. AMQP specification method "exchange.unbind". + + + Autogenerated type. AMQP specification method "exchange.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.declare". + + + Autogenerated type. AMQP specification method "queue.declare-ok". + + + Autogenerated type. AMQP specification method "queue.bind". + + + Autogenerated type. AMQP specification method "queue.bind-ok". + + + Autogenerated type. AMQP specification method "queue.unbind". + + + Autogenerated type. AMQP specification method "queue.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.purge". + + + Autogenerated type. AMQP specification method "queue.purge-ok". + + + Autogenerated type. AMQP specification method "queue.delete". + + + Autogenerated type. AMQP specification method "queue.delete-ok". + + + Autogenerated type. AMQP specification method "basic.qos". + + + Autogenerated type. AMQP specification method "basic.qos-ok". + + + Autogenerated type. AMQP specification method "basic.consume". + + + Autogenerated type. AMQP specification method "basic.consume-ok". + + + Autogenerated type. AMQP specification method "basic.cancel". + + + Autogenerated type. AMQP specification method "basic.cancel-ok". + + + Autogenerated type. AMQP specification method "basic.publish". + + + Autogenerated type. AMQP specification method "basic.return". + + + Autogenerated type. AMQP specification method "basic.deliver". + + + Autogenerated type. AMQP specification method "basic.get". + + + Autogenerated type. AMQP specification method "basic.get-ok". + + + Autogenerated type. AMQP specification method "basic.get-empty". + + + Autogenerated type. AMQP specification method "basic.ack". + + + Autogenerated type. AMQP specification method "basic.reject". + + + Autogenerated type. AMQP specification method "basic.recover-async". + + + Autogenerated type. AMQP specification method "basic.recover". + + + Autogenerated type. AMQP specification method "basic.recover-ok". + + + Autogenerated type. AMQP specification method "basic.nack". + + + Autogenerated type. AMQP specification method "tx.select". + + + Autogenerated type. AMQP specification method "tx.select-ok". + + + Autogenerated type. AMQP specification method "tx.commit". + + + Autogenerated type. AMQP specification method "tx.commit-ok". + + + Autogenerated type. AMQP specification method "tx.rollback". + + + Autogenerated type. AMQP specification method "tx.rollback-ok". + + + Autogenerated type. AMQP specification method "confirm.select". + + + Autogenerated type. AMQP specification method "confirm.select-ok". + + + Autogenerated type. AMQP specification content header properties for content class "basic" + + + Base class for attributes for controlling the API + autogeneration process. + + + The specification namespace (i.e. version) that + this attribute applies to, or null for all specification + versions. + + + Causes the API generator to ignore the attributed method. + + Mostly used to declare convenience overloads of + various AMQP methods in the IModel interface. Also used + to omit an autogenerated implementation of a method which + is not required for one protocol version. The API + autogeneration process should of course not attempt to produce + an implementation of the convenience methods, as they will be + implemented by hand with sensible defaults, delegating to the + autogenerated variant of the method concerned. + + + Causes the API generator to generate asynchronous + receive code for the attributed method. + + + Causes the API generator to generate + exception-throwing code for, instead of simply ignoring, the + attributed method. + + + + + Informs the API generator which AMQP method field to + use for either a parameter in a request, or for a simple result + in a reply. + + + Informs the API generator which AMQP method to use for + either a request (if applied to an IModel method) or a reply + (if applied to an IModel method result). + + + This attribute, if placed on a parameter in an IModel + method, causes it to be interpreted as a "nowait" parameter for + the purposes of autogenerated RPC reply continuation management + and control. + + + This attribute, if placed on a method in IModel, + causes the method to be interpreted as a factory method + producing a protocol-specific implementation of a common + content header interface. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content header frame. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content body frame. + + + This attribute, placed on an IModel method, causes + what would normally be an RPC, sent with ModelRpc, to be sent + as if it were oneway, with ModelSend. The assumption that this + is for a custom continuation (e.g. for BasicConsume/BasicCancel + etc.) + + + + Simple wrapper around TcpClient. + + + + Manages a subscription to a queue. + + + This interface is provided to make creation of test doubles + for easier. + + + + + Implements a simple RPC client. + + + This class sends requests that can be processed by remote + SimpleRpcServer instances. + + + The basic pattern for accessing a remote service is to + determine the exchange name and routing key needed for + submissions of service requests, and to construct a + SimpleRpcClient instance using that address. Once constructed, + the various Call() and Cast() overloads can be used to send + requests and receive the corresponding replies. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + SimpleRpcClient client = + new SimpleRpcClient(ch, queueName); + client.TimeoutMilliseconds = 5000; // optional + + /// ... make use of the various Call() overloads + } + } + + + Instances of this class declare a queue, so it is the user's + responsibility to ensure that the exchange concerned exists + (using IModel.ExchangeDeclare) before invoking Call() or + Cast(). + + + This class implements only a few basic RPC message formats - + to extend it with support for more formats, either subclass, + or transcode the messages before transmission using the + built-in byte[] format. + + + + + + Construct an instance with no configured + Address. The Address property must be set before Call() or + Cast() are called. + + + Construct an instance that will deliver to the + default exchange (""), with routing key equal to the passed + in queueName, thereby delivering directly to a named queue + on the AMQP server. + + + Construct an instance that will deliver to the + named and typed exchange, with the given routing + key. + + + Construct an instance that will deliver to the + given address. + + + This event is fired whenever Call() detects the + disconnection of the underlying Subscription while waiting + for a reply from the service. + + See also OnDisconnected(). Note that the sending of a + request may result in OperationInterruptedException before + the request is even sent. + + + + This event is fired whenever Call() decides that a + timeout has occurred while waiting for a reply from the + service. + + See also OnTimedOut(). + + + + Retrieve or modify the address that will be used + for the next Call() or Cast(). + + This address represents the service, i.e. the destination + service requests should be published to. It can be changed + at any time before a Call() or Cast() request is sent - + the value at the time of the call is used by Call() and + Cast(). + + + + Retrieve the IModel this instance uses to communicate. + + + Retrieve the Subscription that is used to receive + RPC replies corresponding to Call() RPC requests. May be + null. + + + Upon construction, this property will be null. It is + initialised by the protected virtual method + EnsureSubscription upon the first call to Call(). Calls to + Cast() do not initialise the subscription, since no + replies are expected or possible when using Cast(). + + + + + Retrieve or modify the timeout (in milliseconds) + that will be used for the next Call(). + + + This property defaults to + System.Threading.Timeout.Infinite (i.e. -1). If it is set + to any other value, Call() will only wait for the + specified amount of time before returning indicating a + timeout. + + + See also TimedOut event and OnTimedOut(). + + + + + Sends a "jms/stream-message"-encoded RPC request, + and expects an RPC reply in the same format. + + + The arguments passed in must be of types that are + representable as JMS StreamMessage values, and so must the + results returned from the service in its reply message. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + + Sends a simple byte[] message, without any custom + headers or properties. + + + Delegates directly to Call(IBasicProperties, byte[]), and + discards the properties of the received reply, returning + only the body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[] message and IBasicProperties + header, returning both the body and headers of the received + reply. + + + Sets the "replyProperties" outbound parameter to the + properties of the received reply, and returns the byte[] + body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Both sets "replyProperties" to null and returns null when + either the request timed out or we were disconnected + before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[]/IBasicProperties RPC request, + returning full information about the delivered reply as a + BasicDeliverEventArgs. + + + This is the most general/lowest-level Call()-style method + on SimpleRpcClient. It sets CorrelationId and ReplyTo on + the request message's headers before transmitting the + request to the service via the AMQP server. If the reply's + CorrelationId does not match the request's CorrelationId, + ProtocolViolationException will be thrown. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + Sends an asynchronous/one-way message to the + service. + + + Close the reply subscription associated with this instance, if any. + + Simply delegates to calling Subscription.Close(). Clears + the Subscription property, so that subsequent Call()s, if + any, will re-initialize it to a fresh Subscription + instance. + + + + Signals that the Subscription we use for receiving + our RPC replies was disconnected while we were + waiting. + + Fires the Disconnected event. + + + + Signals that the configured timeout fired while + waiting for an RPC reply. + + Fires the TimedOut event. + + + + Implement the IDisposable interface, permitting + SimpleRpcClient instances to be used in using + statements. + + + Should initialise m_subscription to be non-null + and usable for fetching RPC replies from the service + through the AMQP server. + + + Retrieves the reply for the request with the given + correlation ID from our internal Subscription. + + Currently requires replies to arrive in the same order as + the requests were sent out. Subclasses may override this + to provide more sophisticated behaviour. + + + + Implements a simple RPC service, responding to + requests received via a Subscription. + + + This class interprets requests such as those sent by instances + of SimpleRpcClient. + + + The basic pattern for implementing a service is to subclass + SimpleRpcServer, overriding HandleCall and HandleCast as + appropriate, and then to create a Subscription object for + receiving requests from clients, and start an instance of the + SimpleRpcServer subclass with the Subscription. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + Subscription sub = new Subscription(ch, queueName); + new MySimpleRpcServerSubclass(sub).MainLoop(); + } + } + + + Note that this class itself does not declare any resources + (exchanges, queues or bindings). The Subscription we use for + receiving RPC requests should have already declared all the + resources we need. See the Subscription constructors and the + Subscription.Bind method. + + + If you are implementing a service that responds to + "jms/stream-message"-formatted requests (as implemented by + RabbitMQ.Client.Content.IStreamMessageReader), override + HandleStreamMessageCall. Otherwise, override HandleSimpleCall + or HandleCall as appropriate. Asynchronous, one-way requests + are dealt with by HandleCast etc. + + + Every time a request is successfully received and processed + within the server's MainLoop, the request message is Ack()ed + using Subscription.Ack before the next request is + retrieved. This causes the Subscription object to take care of + acknowledging receipt and processing of the request message. + + + If transactional service is enabled, via SetTransactional(), + then after every successful ProcessRequest, IModel.TxCommit is + called. Making use of transactional service has effects on all + parts of the application that share an IModel instance, + completely changing the style of interaction with the AMQP + server. For this reason, it is initially disabled, and must be + explicitly enabled with a call to SetTransactional(). Please + see the documentation for SetTransactional() for details. + + + To stop a running RPC server, call Close(). This will in turn + Close() the Subscription, which will cause MainLoop() to + return to its caller. + + + Unless overridden, ProcessRequest examines properties in the + request content header, and uses them to dispatch to one of + the Handle[...]() methods. See the documentation for + ProcessRequest and each Handle[...] method for details. + + + + + + Create, but do not start, an instance that will + receive requests via the given Subscription. + + + The instance is initially in non-transactional mode. See + SetTransactional(). + + + Call MainLoop() to start the request-processing loop. + + + + + Returns true if we are in "transactional" mode, or + false if we are not. + + + Shut down the server, causing MainLoop() to return + to its caller. + + Acts by calling Close() on the server's Subscription object. + + + + Called by ProcessRequest(), this is the most + general method that handles RPC-style requests. + + + This method should map requestProperties and body to + replyProperties and the returned byte array. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall before encoding and returning the + reply. If the ContentType is any other value, the request + is passed to HandleSimpleCall instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by ProcessRequest(), this is the most + general method that handles asynchronous, one-way + requests. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall, passing in null as the + replyWriter parameter to indicate that no reply is desired + or possible. If the ContentType is any other value, the + request is passed to HandleSimpleCast instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by the default HandleCall() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. It should fill in + replyProperties (or set it to null) and return a byte + array to send back to the remote caller as a reply + message. + + + + Called by the default HandleCast() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. + + + + Called by HandleCall and HandleCast when a + "jms/stream-message" request is received. + + + The args array contains the values decoded by HandleCall + or HandleCast. + + + The replyWriter parameter will be null if we were called + from HandleCast, in which case a reply is not expected or + possible, or non-null if we were called from + HandleCall. Use the methods of replyWriter in this case to + assemble your reply, which will be sent back to the remote + caller. + + + This default implementation does nothing, which + effectively sends back an empty reply to any and all + remote callers. + + + + + Enters the main loop of the RPC service. + + + Retrieves requests repeatedly from the service's + subscription. Each request is passed to + ProcessRequest. Once ProcessRequest returns, the request + is acknowledged via Subscription.Ack(). If transactional + mode is enabled, TxCommit is then called. Finally, the + loop begins again. + + + Runs until the subscription ends, which happens either as + a result of disconnection, or of a call to Close(). + + + + + Process a single request received from our + subscription. + + + If the request's properties contain a non-null, non-empty + CorrelationId string (see IBasicProperties), it is assumed + to be a two-way call, requiring a response. The ReplyTo + header property is used as the reply address (via + PublicationAddress.Parse, unless that fails, in which case it + is treated as a simple queue name), and the request is + passed to HandleCall(). + + + If the CorrelationId is absent or empty, the request is + treated as one-way asynchronous event, and is passed to + HandleCast(). + + + Usually, overriding HandleCall(), HandleCast(), or one of + their delegates is sufficient to implement a service, but + in some cases overriding ProcessRequest() is + required. Overriding ProcessRequest() gives the + opportunity to implement schemes for detecting interaction + patterns other than simple request/response or one-way + communication. + + + + + Enables transactional mode. + + + Once enabled, transactional mode is not only enabled for + all users of the underlying IModel instance, but cannot be + disabled without shutting down the entire IModel (which + involves shutting down all the services depending on it, + and should not be undertaken lightly). + + + This method calls IModel.TxSelect, every time it is + called. (TxSelect is idempotent, so this is harmless.) + + + + + Implement the IDisposable interface, permitting + SimpleRpcServer instances to be used in using + statements. + + + Manages a subscription to a queue. + + + This convenience class abstracts away from much of the detail + involved in receiving messages from a queue. + + + Once created, the Subscription consumes from a queue (using a + EventingBasicConsumer). Received deliveries can be retrieved + by calling Next(), or by using the Subscription as an + IEnumerator in, for example, a foreach loop. + + + Note that if the "autoAck" option is enabled (which it is by + default), then received deliveries are automatically acked + within the server before they are even transmitted across the + network to us. Calling Ack() on received events will always do + the right thing: if "autoAck" is enabled, nothing is done on an + Ack() call, and if "autoAck" is disabled, IModel.BasicAck() is + called with the correct parameters. + + + + + Creates a new Subscription in "autoAck" mode, + consuming from a named queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode and the name of the queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode, the name of the queue, and the consumer tag. + + + Retrieve the IBasicConsumer that is receiving the + messages from the server for us. Normally, you will not + need to access this property - use Next() and friends + instead. + + + Retrieve the consumer-tag that this subscription + is using. Will usually be a server-generated + name. + + + Returns the most recent value returned by Next(), + or null when either no values have been retrieved yet, the + end of the subscription has been reached, or the most + recent value has already been Ack()ed. See also the + documentation for Ack(). + + + Retrieve the IModel our subscription is carried by. + + + Returns true if we are in "autoAck" mode, where + calls to Ack() will be no-ops, and where the server acks + messages before they are delivered to us. Returns false if + we are in a mode where calls to Ack() are required, and + where such calls will actually send an acknowledgement + message across the network to the server. + + + Retrieve the queue name we have subscribed to. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + As per the IEnumerator interface definition, throws + InvalidOperationException if LatestEvent is null. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + If LatestEvent is non-null, passes it to + Ack(BasicDeliverEventArgs). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicAck with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Closes this Subscription, cancelling the consumer + record in the server. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, false, requeue). Causes LatestEvent to become + null. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, multiple, requeue). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicNack with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Retrieves the next incoming delivery in our + subscription queue. + + + Returns null when the end of the stream is reached and on + every subsequent call. End-of-stream can arise through the + action of the Subscription.Close() method, or through the + closure of the IModel or its underlying IConnection. + + + Updates LatestEvent to the value returned. + + + Does not acknowledge any deliveries at all (but in "autoAck" + mode, the server will have auto-acknowledged each event + before it is even sent across the wire to us). + + + + + Retrieves the next incoming delivery in our + subscription queue, or times out after a specified number + of milliseconds. + + + Returns false only if the timeout expires before either a + delivery appears or the end-of-stream is reached. If false + is returned, the out parameter "result" is set to null, + but LatestEvent is not updated. + + + Returns true to indicate a delivery or the end-of-stream. + + + If a delivery is already waiting in the queue, or one + arrives before the timeout expires, it is removed from the + queue and placed in the "result" out parameter. If the + end-of-stream is detected before the timeout expires, + "result" is set to null. + + + Whenever this method returns true, it updates LatestEvent + to the value placed in "result" before returning. + + + End-of-stream can arise through the action of the + Subscription.Close() method, or through the closure of the + IModel or its underlying IConnection. + + + This method does not acknowledge any deliveries at all + (but in "autoAck" mode, the server will have + auto-acknowledged each event before it is even sent across + the wire to us). + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item or the end of + the stream to become available. Usage of such a timeout is + equivalent to calling Next() with no arguments (modulo + predictable method signature differences). + + + + + Implementation of the IDisposable interface, + permitting Subscription to be used in using + statements. Simply calls Close(). + + + Implementation of the IEnumerable interface, for + permitting Subscription to be used in foreach + loops. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + Dummy implementation of the IEnumerator interface, + for permitting Subscription to be used in foreach loops; + Reset()ting a Subscription doesn't make sense, so this + method always throws InvalidOperationException. + + + A thread-safe single-assignment reference cell. + + A fresh BlockingCell holds no value (is empty). Any thread + reading the Value property when the cell is empty will block + until a value is made available by some other thread. The Value + property can only be set once - on the first call, the + BlockingCell is considered full, and made immutable. Further + attempts to set Value result in a thrown + InvalidOperationException. + + + + Retrieve the cell's value, blocking if none exists + at present, or supply a value to an empty cell, thereby + filling it. + + + + Return valid timeout value + If value of the parameter is less then zero, return 0 + to mean infinity + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Miscellaneous debugging and development utilities. + + Not part of the public API. + + + + Print a hex dump of the supplied bytes to stdout. + + + Print a hex dump of the supplied bytes to the supplied TextWriter. + + + Prints an indented key/value pair; used by DumpProperties() + Recurses into the value using DumpProperties(). + + + Dump properties of objects to the supplied writer. + + + Used internally by class Either. + + + Models the disjoint union of two alternatives, a + "left" alternative and a "right" alternative. + Borrowed from ML, Haskell etc. + + + Private constructor. Use the static methods Left, Right instead. + + + Retrieve the alternative represented by this instance. + + + Retrieve the value carried by this instance. + + + Constructs an Either instance representing a Left alternative. + + + Constructs an Either instance representing a Right alternative. + + + A class for allocating integer IDs in a given range. + + + A class representing a list of inclusive intervals + Creates an IntAllocator allocating integer IDs within the inclusive range [start, end] + + + Allocate a fresh integer from the range, or return -1 if no more integers + are available. This operation is guaranteed to run in O(1) + + + Make the provided integer available for allocation again. This operation + runs in amortized O(sqrt(range size)) time: About every sqrt(range size) + operations will take O(range_size + number of intervals) to complete and + the rest run in constant time. + + No error checking is performed, so if you double Free or Free an integer + that was not originally Allocated the results are undefined. Sorry. + + + + Subclass of BinaryReader that reads integers etc in correct network order. + + + + Kludge to compensate for .NET's broken little-endian-only BinaryReader. + Relies on BinaryReader always being little-endian. + + + + + + Construct a NetworkBinaryReader over the given input stream. + + + + + Construct a NetworkBinaryReader over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryReader over a byte[]. + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Subclass of BinaryWriter that writes integers etc in correct network order. + + + +

+ Kludge to compensate for .NET's broken little-endian-only BinaryWriter. +

+ See also NetworkBinaryReader. +

+
+
+ + + Construct a NetworkBinaryWriter over the given input stream. + + + + + Construct a NetworkBinaryWriter over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryWriter streaming into a fresh MemoryStream + provisioned with the given initialSize. + + + Helper method for extracting the byte[] contents + of a BinaryWriter over a MemoryStream, such as constructed + by TemporaryBinaryWriter. + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + A thread-safe shared queue implementation. + + + A thread-safe shared queue implementation. + + + Flag holding our current status. + + + The shared queue. + + Subclasses must ensure appropriate locking discipline when + accessing this field. See the implementation of Enqueue, + Dequeue. + + + + Close the queue. Causes all further Enqueue() + operations to throw EndOfStreamException, and all pending + or subsequent Dequeue() operations to throw an + EndOfStreamException once the queue is empty. + + + Retrieve the first item from the queue, or block if none available + + Callers of Dequeue() will block if no items are available + until some other thread calls Enqueue() or the queue is + closed. In the latter case this method will throw + EndOfStreamException. + + + + Retrieve the first item from the queue, or return + nothing if no items are available after the given + timeout + + + If one or more items are present on the queue at the time + the call is made, the call will return + immediately. Otherwise, the calling thread blocks until + either an item appears on the queue, or + millisecondsTimeout milliseconds have elapsed. + + + Returns true in the case that an item was available before + the timeout, in which case the out parameter "result" is + set to the item itself. + + + If no items were available before the timeout, returns + false, and sets "result" to null. + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item to become + available. Usage of such a timeout is equivalent to + calling Dequeue() with no arguments. See also the MSDN + documentation for + System.Threading.Monitor.Wait(object,int). + + + If no items are present and the queue is in a closed + state, or if at any time while waiting the queue + transitions to a closed state (by a call to Close()), this + method will throw EndOfStreamException. + + + + + Retrieve the first item from the queue, or return + defaultValue immediately if no items are + available + + + If one or more objects are present in the queue at the + time of the call, the first item is removed from the queue + and returned. Otherwise, the defaultValue that was passed + in is returned immediately. This defaultValue may be null, + or in cases where null is part of the range of the queue, + may be some other sentinel object. The difference between + DequeueNoWait() and Dequeue() is that DequeueNoWait() will + not block when no items are available in the queue, + whereas Dequeue() will. + + + If at the time of call the queue is empty and in a + closed state (following a call to Close()), then this + method will throw EndOfStreamException. + + + + + Place an item at the end of the queue. + + If there is a thread waiting for an item to arrive, the + waiting thread will be woken, and the newly Enqueued item + will be passed to it. If the queue is closed on entry to + this method, EndOfStreamException will be thrown. + + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Call only when the lock on m_queue is held. + + + + Implementation of the IEnumerator interface, for + permitting SharedQueue to be used in foreach loops. + + + Construct an enumerator for the given + SharedQueue. + + + Reset()ting a SharedQueue doesn't make sense, so + this method always throws + InvalidOperationException. + +
+
diff --git a/采集器3.0框架封装包2023-11-01/终端/SQLite.Interop.dll b/采集器3.0框架封装包2023-11-01/终端/SQLite.Interop.dll new file mode 100644 index 0000000..1395272 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/SQLite.Interop.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/SpyManager.exe b/采集器3.0框架封装包2023-11-01/终端/SpyManager.exe new file mode 100644 index 0000000..29cacad Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/SpyManager.exe differ diff --git a/采集器3.0框架封装包2023-11-01/终端/SpyManager.exe.config b/采集器3.0框架封装包2023-11-01/终端/SpyManager.exe.config new file mode 100644 index 0000000..bb630f1 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/SpyManager.exe.config @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/终端/SpyManager.pdb b/采集器3.0框架封装包2023-11-01/终端/SpyManager.pdb new file mode 100644 index 0000000..e35b843 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/SpyManager.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/终端/System.Data.SQLite.dll b/采集器3.0框架封装包2023-11-01/终端/System.Data.SQLite.dll new file mode 100644 index 0000000..6a9fdec Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/System.Data.SQLite.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/System.Data.SQLite.xml b/采集器3.0框架封装包2023-11-01/终端/System.Data.SQLite.xml new file mode 100644 index 0000000..9b2e7b6 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/System.Data.SQLite.xml @@ -0,0 +1,22383 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + For a given intrinsic type, return a DbType + + The native type to convert + The corresponding (closest match) DbType + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + This method attempts to query the flags associated with the database + connection in use. If the database connection is disposed, the default + flags will be returned. + + + The command containing the databse connection to query the flags from. + + + The connection flags value. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + NoDefaultFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" connection string property + was used. When this value is non-zero, + will retain treatment of the password as a NUL-terminated text string. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default databse type for this connection. This value will only + be used if the + flag is set. + + + + + The default databse type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Attempts to decrypt a database file that was encrypted using the legacy CryptoAPI-based + RC4 codec that was previously included with System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + SQL statement text as the statement first begins executing + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Reads the next row from the resultset + + True if a new row was successfully loaded and is ready for processing + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callbakc function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for collating sequences + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being resitered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The flags associated with the parent connection object. + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it is + set by the method on its first call. Later, it + is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + method. + On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Call calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/采集器3.0框架封装包2023-11-01/终端/System.Runtime.CompilerServices.Unsafe.dll b/采集器3.0框架封装包2023-11-01/终端/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..1908d92 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/System.Runtime.CompilerServices.Unsafe.xml b/采集器3.0框架封装包2023-11-01/终端/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..b5dd21b --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,258 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + + + + + + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Bypasses definite assignment rules for a given value. + The uninitialized object. + The type of the uninitialized object. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + + is , and is a non-nullable value type. + + is not a boxed value type. + +-or- + + is not a boxed . + + cannot be found. + A to the boxed value . + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.dll b/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.dll new file mode 100644 index 0000000..8193f5e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.pdb b/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.pdb new file mode 100644 index 0000000..64ba05f Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.xml b/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.xml new file mode 100644 index 0000000..7566efe --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/Win32ApiUtils.xml @@ -0,0 +1,1103 @@ + + + + Win32ApiUtils + + + + + PrintWindow的绘图选项 + + + + + 只有窗口的客户端区域被复制到hdc Blt中。默认情况下,复制整个窗口 + + + + + GetDeviceCap指定返回项 + + + + + 屏幕的高度(光栅线) + + + + + 设备单位的物理页面宽度 + + + + + 设备x轴的比例系数 + + + + + 设备y轴的比例系数 + + + + + TernaryRasterOperations + 位图与目标位图以及图案刷的颜色值进行布尔运算的方式 + + + + + 原图 + + + + + 获取指定设备的性能参数 + + 设备上下文环境的句柄 + 指定返回项 + + + + 为一个设备创建设备上下文环境 + + 1.DISPLAY:屏幕设备 2.WINSPOOL:打印驱动 Or.Null + 所用专门设备的名称。该名由打印管理器分配显示 + Null + 这个结构保存初始值。传递0值则适用默认设置 + + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + _lopen的标志集 + + + + + 以可读、可写的方式打开文件 + + + + + 可打开文件,以便由其他程序读写 + + + + + OpenProcess访问标志 + + + + + 启用VirtualProtectEx和WriteProcessMemory功能中的进程句柄来修改进程的虚拟内存。 + + + + + 启用ReadProcessMemory功能中的进程句柄从进程的虚拟内存读取。 + + + + + 启用WriteProcessMemory功能中的进程句柄来写入进程的虚拟内存。 + + + + + VirtualAllocEx中flAllocationType的标志 + + + + + 该函数在内存页面的指定区域的内存或磁盘上的分页文件中分配实际物理存储。该函数将内存初始化为零。 + + + + + 该函数保留一系列的进程的虚拟地址空间,而不会在内存或磁盘上的页面文件中分配任何实际物理存储。 + + + + + VirtualAllocEx中的保护标志 + + + + + 启用对提交的页面区域的读取和写入权限。 + + + + + VirtualFreeEx的释放标志 + + + + + 该函数释放指定的页面区域。页面进入空闲状态。 + + + + + 打开二进制文件 + + 欲打开文件的名字 + 访问模式和共享模式常数的一个组合 + 如果函数成功,返回值是一个文件句柄。 + + + + 关闭文件句柄 + + + + + 返回现有进程对象的句柄。 + + 想得到的访问权限 + 指定返回的句柄是否可以被继承 + 指定要打开的进程的ID + 进程对象 + + + + 在目标进程地址空间分配内存. + + 在其中分配内存的进程句柄 + 所需的分配起始地址 + 要分配的区域的大小(以字节为单位) + 分配类型 + 访问类型保护 + + + + + 在指定的进程中写入内存。要写入的整个区域必须可访问,否则操作失败。 + + 要写入的进程句柄 + 开始写入地址 + 指向缓冲区的指针写入数据 + 要写入的字节数 + 实际写入的字节数 + + + + 在指定的进程中读取内存。要读取的整个区域必须可访问,否则操作失败。 + + 要读取的进程句柄 + 起始读取地址 + 缓冲区地址放置读取数据 + 要读取的字节数 + 读取到的字节数的地址 + + + + 在指定进程的虚拟地址空间内释放,分解或同时释放内存区域。 + + 要释放内存的进程句柄 + 释放的起始地址 + 大小,以字节为单位的内存区域释放 + 释放类型 + + + + + 函数用来获得当前可用的物理和虚拟内存信息,是GlobalMemoryStatus的64位版本。 + + 用来接收信息的结构 + + + + 强制终结进程 + + 线程句柄 + 结束代码 + 是否成功 + + + + 用于获得系统信息 + + + + + 结构的长度,在使用函数前必须初始化此值 + + + + + 物理内存的使用率(0~100的整数) + + + + + 物理内存的总量,以字节为单位(以下均相同) + + + + + 物理内存的剩余量 + + + + + 系统页面文件大小 + + + + + 系统可用页面文件大小 + + + + + 虚拟内存的总量 + + + + + 虚拟内存的剩余量 + + + + + 保留,值为0 + + + + + 隐藏窗体,并激活另一个窗体 + + + + + 与SW_RESTORE相同 + + + + + 激活并以最小化的形式显示窗体 + + + + + 激活并以最大化的形式显示窗体 + + + + + 最大化指定的窗体 + + + + + 以上次的状态显示指定的窗体,但不激活它 + + + + + 激活窗体,并将其显示在当前的大小和位置上 + + + + + 最小化指定的窗体,并激活另一个窗体 + + + + + 以最小化形式显示指定的窗体,但不激活它 + + + + + 以当前的状态显示指定的窗体,但不激活它 + + + + + 以原本的大小和位置,激活并显示指定的窗体 + + + + + 设置显示的状态由STARTUPINFO结构体指定 + + + + + 运行文件 + + 父窗口句柄,可为0 + 操作类型:"Open" 打开文件,"Print" 打印文件, "explore" 浏览文件夹 + 文件名 + 文件的命令行参数 + 文件所在目录 + 展示方式 + + + + + 获取ComboBox下拉框的所有选项的值 + + ComboBox下拉框的句柄 + ComboBox下拉框的的值列表 + + + + 改变ComboBox下拉框的选择项 + + ComboBox下拉框的句柄 + ComboBox下拉框的序号(从0开始) + + + + 读取ListView任一格子的文本 + + ListView的句柄 + 行,0开始 + 列,0开始 + 文本的编码 + 文本 + + + + 读取TreeView数据 + + TreeView的句柄 + 读取到的数据 + + + + 获取DateTimePicker的显示日期 + + 句柄 + DateTimePicker的显示日期 + + + + 设置DateTimePicker的日期 + + 句柄 + 要设置的日期 + 是否需要点击右方向键 + 输入后的等待,默认为1秒 + + + + 与文件相关的工具类 + + + + + 错误标志 + + + + + 查看文件是否被占用 + + + + + 与键盘相关的工具类 + + + + + 向句柄指向的窗口或控件输入字符串 + + 窗口或控件的句柄 + 要输入的字符串 + + + + 按下指定键 + + 要按下的键 + 等待时间 + + + + 按下指定组合键 + + 长按键 + 短按键 + 等待时间 + + + + 输入字符串, + 以SendInput的键盘事件串形式发送. + + + + + 与鼠标相关的工具类 + + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 鼠标按坐标点击 + + + + + 鼠标按坐标双击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 鼠标按坐标右击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 与显示器有关的工具类 + + + + + 判断是否存在遮挡指定窗口的窗口. + + 指定窗口 + 遮挡住指定窗口的窗口句柄 + + + + 判断是否存在遮挡指定区域的窗口. + + 指定窗口 + 指定区域 + 遮挡住指定区域的窗口句柄 + + + + 获取屏幕缩放系数 + + + + + 提取屏幕截图,根据窗口句柄 + + 句柄 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 提取屏幕截图,根据坐标和大小 + 需要手动将缩放系数适配 + + + + + + + + + + 获取屏幕上指定位置像素点 + + + + + 获取窗口中所有与指定颜色相同的像素点信息 + + 窗口句柄 + 指定颜色 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 获取指定位置中所有与指定颜色相同的像素点信息 + + 左上x轴坐标 + 左上y轴坐标 + 宽度 + 高度 + 指定颜色 + + + + 获取指定图片中所有与指定颜色相同的像素点信息 + + 图片 + 颜色 + 像素点集 + + + + 窗口基本信息 + + + + + 标题 + + + + + 类名 + + + + + 句柄 + + + + + 父窗口句柄 + + + + + 父窗口基本信息 + + + + + 子级 + + + + + 与窗口有关的工具类 + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 向窗口发送关闭信息 + + + + + 获取窗口的矩形信息 + 左上角坐标以及宽高 + + + + + 复制窗口文本到调用者提供的缓冲区. + + 句柄 + 窗口文本 + + + + 以List的形式列出父窗口下所有子窗口的基本信息.(全递归) + + 父窗口句柄 + 递归子窗口基本信息 + + + + 查找符合key条件并返回第一个集合内的窗口信息. + --模糊查询 + 对比Hadnle,ParentHandle,Caption,ClassName + + 遍历的窗口信息集合 + 要找的数据 + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName.精确查询 + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回所有符合条件的集合内的窗口信息 + + 集合 + 所有符合条件的选项 + + + + 坐标结构体 + + + + + 鼠标事件标志 + + + + + 移动鼠标 + + + + + 模拟鼠标左键按下 + + + + + 模拟鼠标左键抬起 + + + + + 鼠标右键按下 + + + + + 鼠标右键抬起 + + + + + 鼠标中键按下 + + + + + 中键抬起 + + + + + 标示是否采用绝对坐标 + + + + + 键盘事件标志 + + + + + 按下 + + + + + 弹起 + + + + + 设置指定窗口的显示状态的标志集 + + + + + 隐藏窗口并激活其他窗口 + + + + + 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志 + + + + + 激活窗口并将其最小化 + + + + + 激活窗口并将其最大化 + + + + + 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态 + + + + + 在窗口原来的位置以原来的尺寸激活和显示窗口 + + + + + 最小化指定的窗口并且激活在Z序中的下一个顶层窗口 + + + + + 窗口最小化,激活窗口仍然维持激活状态 + + + + + 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态 + + + + + 激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志 + + + + + 最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志 + + + + + 发送输入 (SendInput)方法的标志集 + + + + + 鼠标 + + + + + 键盘 + + + + + 硬件 + + + + + 检索到的句柄标识 Z 顺序中最高级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中最低级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口下方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口上方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识指定窗口的所有者窗口(如果有)。 + + + + + 如果指定的窗口是父窗口,则检索到的句柄标识 Z 顺序顶部的子窗口; + 否则,检索到的句柄为 NULL。该函数仅检查指定窗口的子窗口。它不检查后代窗口。 + + + + + 检索到的句柄标识指定窗口拥有的已启用弹出窗口(搜索使用GW_HWNDNEXT找到的第一个此类窗口); + 否则,如果没有启用的弹出窗口,则检索到的句柄是指定窗口的句柄。 + + + + + 操作鼠标 + + 标志集 + x坐标位置 + y坐标位置 + 标志为Wheel值时,设置为滚轮滚动量 + 与鼠标事件相关的附加32位值 + + + + + 移动鼠标到指定位置 + + + + + 操作键盘 + + 键值 + 该键的硬件扫描码 + 标志位集 + 与击键相关的附加的32位值 + + + + 操作键盘或者鼠标, + 将指定事件串插入键盘或鼠标输入流. + + pInputs的数量 + 事件串 + SendInputParm结构的字节大小 + + + + 将一个字符翻译成相应的虚拟键码和对于当前键盘的转换状态 + + + + + 检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换) + + 定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9), + nVirtKey必须被置为相应字符的ASCII码值,对于其他的键,nVirtKey必须是一虚拟键码。 + 若使用非英语键盘布局,则取值在ASCIIa~z和0~9的虚拟键被用于定义绝大多数的字符键。 + 例如,对于德语键盘格式,值为ASCII0(OX4F)的虚拟键指的是”0″键,而VK_OEM_1指”带变音的0键” + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 获取桌面句柄 + + + + + + 寻找顶级窗口 + + 窗口的类名 + 窗口的标题 + + + + + 寻找与指定条件相符的第一个子窗口 + + 父窗口句柄.若为0则以桌面窗口为父窗口并查找所有的子窗口 + 子窗口句柄,指示查找从此子窗口句柄的下一个开始 + 类名 + 标题 + + + + + 枚举子窗口 + + 父窗口句柄 + 回调.true为继续遍历,false为停止遍历 + 附加值 + + + + + 获取父窗口句柄 + + + + + 获取窗口标题的长度 + + + + + 获取窗口标题 + + 句柄 + 用来返回的字符串 + 最大长度 + + + + 获取窗口类名 + + 窗口句柄 + 用来返回的字符串 + 最大长度 + + + + + 返回指定窗口的边框矩形的大小. + 为四个角的坐标. + + 窗口句柄 + 传回的窗口矩形信息 + + + + 获取窗口所在的进程ID + + 窗口句柄 + 进程ID返回值 + + + + 获得指定窗口的可视状态 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + 根据坐标获取窗口句柄 + + 坐标信息 + 窗口句柄 + + + + 检索与指定窗口具有指定关系(Z 顺序或所有者)的窗口的句柄。 + + 窗口的手柄。检索到的窗口句柄基于 uCmd 参数的值相对于此窗口。 + 指定窗口与要检索其句柄的窗口之间的关系。 + + + + + 该函数对指定的窗口设置键盘焦点。该窗口必须与调用线程的消息队列相关。 + + + + + + + 将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号 + + + + + + 取前台窗口的句柄(用户当前工作的窗口) + 在某些情况下,如一个窗口失去激活时,前台窗口可以是NULL。 + + + + + 激活一个窗口,该窗口必须与调用线程的消息队列相关联 + + + + + 设置窗口的显示状态 + + 窗口句柄 + 标志集 + + + + + 获取指定窗口的设备上下文句柄 + 用于在窗口的非客户端区域内进行特殊的绘制效果 + + + + + 将一个可视窗口复制到指定的设备上下文(DC)中 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + PostMessage和PostMessage所使用的标志位集合, + 未来使用时若枚举内不存再则添加上去. + + + + + 修改下拉框 默认选中那一项 相当于MFC中的SetCurlSel + + + + diff --git a/采集器3.0框架封装包2023-11-01/终端/itextsharp.dll b/采集器3.0框架封装包2023-11-01/终端/itextsharp.dll new file mode 100644 index 0000000..d9f1d58 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/itextsharp.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/itextsharp.xml b/采集器3.0框架封装包2023-11-01/终端/itextsharp.xml new file mode 100644 index 0000000..823198f --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/终端/itextsharp.xml @@ -0,0 +1,38512 @@ + + + + itextsharp + + + + Gets the name of the resultant PDF file. + This name will be passed to makePdf, assertPdf and comparePdf methods. + @return + + + Gets the name of the compare PDF file. + This name will be passed to comparePdf method. + @return + + + Sets the maximum errors count which will be returned as the result of the comparison. + @param compareByContentMaxErrorCount the errors count. + @return Returns this. + + + Sets the absolute error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Sets the relative error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Creates a new instance of MemoryLimitsAwareException. + + @param message the detail message. + + + + A + + handles memory allocation and prevents decompressed pdf streams from occupation of more space than allowed. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream with two or more filters of identical type + occupies more memory than allowed. + + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + this + + instance. + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams with two or more filters of identical type + occupy more memory than allowed. + + he maximum allowed size which can be occupied by all decompressed pdf streams. + + + this + + instance. + + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + @param size the initial size. + @throws IllegalArgumentException if size is negative. + + + Gets the maximum size which can be occupied by this output stream. + + @return the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + + @param maxStreamSize the maximum size which can be occupied by this output stream. + @return this {@link MemoryLimitsAwareOutputStream} + + + {@inheritDoc} + + + Query and change fields in existing documents either by method + calls or by FDF merging. + @author Paulo Soares + + + A field type invalid or not found. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + Holds value of property generateAppearances. + + + Holds value of property fieldCache. + + + Gets the list of appearance names. Use it to get the names allowed + with radio and checkbox fields. If the /Opt key exists the values will + also be included. The name 'Off' may also be valid + even if not returned in the list. + + For Comboboxes it will return an array of display values. To extract the + export values of a Combobox, please refer to {@link AcroFields#getListOptionExport(String)} + + @param fieldName the fully qualified field name + @return the list of names or null if the field does not exist + + + Gets the list of export option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + Gets the list of display option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + + + Export the fields as a FDF. + @param writer the FDF writer + + + Renames a field. Only the last part of the name can be renamed. For example, + if the original field is "ab.cd.ef" only the "ef" part can be renamed. + @param oldName the old field name + @param newName the new field name + @return true if the renaming was successful, false + otherwise + + + Retrieve the rich value for the given field + @param name + @return The rich value if present, or null. + @since 5.0.6 + + + Gets the field value. + @param name the fully qualified field name + @return the field value + + + Gets the field values of a Choice field. + @param name the fully qualified field name + @return the field value + @since 2.1.3 + + + + + Merges an XML data structure into this form. + @param n the top node of the data structure + @throws java.io.IOException on error + @throws com.lowagie.text.DocumentException o error + + + Sets the fields by FDF merging. + @param fdf the FDF form + @throws IOException on error + @throws DocumentException on error + + + Sets the fields by XFDF merging. + @param xfdf the XFDF form + @throws IOException on error + @throws DocumentException on error + + + Regenerates the field appearance. + This is usefull when you change a field property, but not its value, + for instance form.SetFieldProperty("f", "bgcolor", BaseColor.BLUE, null); + This won't have any effect, unless you use RegenerateField("f") after changing + the property. + + @param name the fully qualified field name or the partial name in the case of XFA forms + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param saveAppearance save the current appearance of the field or not + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the rich value for the given field. See PDF Reference chapter + 12.7.3.4 (Rich Text) and 12.7.4.3 (Text Fields) for further details. Note that iText doesn't create an appearance for Rich Text fields. + So you either need to use XML Worker to create an appearance (/N entry in the /AP dictionary), or you need to use setGenerateAppearances(false) to tell the viewer + that iText didn't create any appearances. + @param name Field name + @param richValue html markup + @return success/failure (will fail if the field isn't found, isn't a text field, or doesn't support rich text) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @param saveAppearance save the current appearance of the field or not + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets different values in a list selection. + No appearance is generated yet; nor does the code check if multiple select is allowed. + + @param name the name of the field + @param value an array with values that need to be selected + @return true only if the field value was changed + @since 2.1.4 + + + Gets all the fields. The fields are keyed by the fully qualified field name and + the value is an instance of AcroFields.Item. + @return all the fields + + + Gets the field structure. + @param name the name of the field + @return the field structure or null if the field + does not exist + + + Gets the long XFA translated name. + @param name the name of the field + @return the long field name + + + Gets the field box positions in the document. The return is an array of float + multiple of 5. For each of this groups the values are: [page, llx, lly, urx, + ury]. The coordinates have the page rotation in consideration. + @param name the field name + @return the positions or null if field does not exist + + + Removes all the fields from page. + @param page the page to remove the fields from + @return true if any field was removed, false otherwise + + + Removes a field from the document. If page equals -1 all the fields with this + name are removed from the document otherwise only the fields in + that particular page are removed. + @param name the field name + @param page the page to remove the field from or -1 to remove it from all the pages + @return true if the field exists, false otherwise + + + Removes a field from the document. + @param name the field name + @return true if the field exists, false otherwise + + + Sets the option to generate appearances. Not generating apperances + will speed-up form filling but the results can be + unexpected in Acrobat. Don't use it unless your environment is well + controlled. The default is true. + @param generateAppearances the option to generate appearances + + + The field representations for retrieval and modification. + + + writeToAll constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + This function writes the given key/value pair to all the instances + of merged, widget, and/or value, depending on the writeFlags setting + + @since 2.1.5 + + @param key you'll never guess what this is for. + @param value if value is null, the key will be removed + @param writeFlags ORed together WRITE_* flags + + + Mark all the item dictionaries used matching the given flags + + @since 2.1.5 + @param writeFlags WRITE_MERGED is ignored + + + An array of PdfDictionary where the value tag /V + is present. + + + + An array of PdfDictionary with the widgets. + + + + An array of PdfDictionary with the widget references. + + + + An array of PdfDictionary with all the field + and widget tags merged. + + + + An array of Integer with the page numbers where + the widgets are displayed. + + + + An array of Integer with the tab order of the field in the page. + + + + Preferred method of determining the number of instances + of a given field. + + @since 2.1.5 + @return number of instances + + + Remove the given instance from this item. It is possible to + remove all instances using this function. + + @since 2.1.5 + @param killIdx + + + Retrieve the value dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return dictionary storing this instance's value. It may be shared across instances. + + + Add a value dict to this Item + + @since 2.1.5 + @param value new value dictionary + + + Retrieve the widget dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return The dictionary found in the appropriate page's Annot array. + + + Add a widget dict to this Item + + @since 2.1.5 + @param widget + + + Retrieve the reference to the given instance + + @since 2.1.5 + @param idx instance index + @return reference to the given field instance + + + Add a widget ref to this Item + + @since 2.1.5 + @param widgRef + + + Retrieve the merged dictionary for the given instance. The merged + dictionary contains all the keys present in parent fields, though they + may have been overwritten (or modified?) by children. + Example: a merged radio field dict will contain /V + + @since 2.1.5 + @param idx instance index + @return the merged dictionary for the given instance + + + Adds a merged dictionary to this Item. + + @since 2.1.5 + @param mergeDict + + + Retrieve the page number of the given instance + + @since 2.1.5 + @param idx + @return remember, pages are "1-indexed", not "0-indexed" like field instances. + + + Adds a page to the current Item. + + @since 2.1.5 + @param pg + + + forces a page value into the Item. + + @since 2.1.5 + @param idx + + + Gets the tabOrder. + + @since 2.1.5 + @param idx + @return tab index of the given field instance + + + Adds a tab order value to this Item. + + @since 2.1.5 + @param order + + + Clears a signed field. + @param name the field name + @return true if the field was signed, false if the field was not signed or not found + @since 5.0.5 + + + Gets the field names that have signatures and are signed. + @return the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + @return the field names that have blank signatures + + + Gets the signature dictionary, the one keyed by /V. + @param name the field name + @return the signature dictionary keyed by /V or null if the field is not + a signature + + + Gets a reference to the normal appearance of a field. + + @param name the field name + @return a reference to the /N entry of the /AP dictionary or null if the field is not found + + + Checks is the signature covers the entire document or just part of it. + @param name the signature field name + @return true if the signature covers the entire document, + false otherwise + + + + Gets the total number of revisions this document has. + @return the total number of revisions + + + Gets this field revision. + @param field the signature field name + @return the revision or zero if it's not a signature field + + + Extracts a revision from the document. + @param field the signature field name + @return an Stream covering the revision. Returns null if + it's not a signature field + @throws IOException on error + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Adds a substitution font to the list. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param font the font + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Gets the XFA form processor. + @return the XFA form processor + + + Removes the XFA stream from the document. + + + Creates a new pushbutton from an existing field. If there are several pushbuttons with the same name + only the first one is used. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField)}. + @param field the field name that should be a pushbutton + @return a new pushbutton or null if the field is not a pushbutton + + + Creates a new pushbutton from an existing field. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField,int)}. + @param field the field name that should be a pushbutton + @param order the field order in fields with same name + @return a new pushbutton or null if the field is not a pushbutton + + + Replaces the first field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @return true if the field was replaced, false if the field + was not a pushbutton + + + Replaces the designated field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @param order the field order in fields with same name + @return true if the field was replaced, false if the field + was not a pushbutton + + + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + @param name String + @return boolean does the signature field exist + @since 5.5.1 + + + A class representing a field position + @since 5.0.2 + + + + Summary description for InputMeta. + + + + + Summary description for MetaDo. + + + + Creates new MetaState + + + Getter for property currentBackgroundColor. + @return Value of property currentBackgroundColor. + + + Getter for property currentTextColor. + @return Value of property currentTextColor. + + + Getter for property backgroundMode. + @return Value of property backgroundMode. + + + Getter for property textAlign. + @return Value of property textAlign. + + + Getter for property polyFillMode. + @return Value of property polyFillMode. + + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + + Reads a BMP from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + @param is the stream + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + The BMP may not have a header and be considered as a plain DIB. + @param is the stream + @param noHeader true to process a plain DIB + @param size the size of the DIB. Not used for a BMP + @throws IOException on error + @return the image + + + Reads a BMP from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a BMP from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + @param width the line width + + + Encodes a number of lines. + @param data the data to be encoded + @param offset the offset into the data + @param size the size of the data to be encoded + + + Encodes a full image. + @param data the data to encode + @param width the image width + @param height the image height + @return the encoded image + + + Encodes a number of lines. + @param data the data to be encoded + @param height the number of lines to encode + + + Closes the encoder and returns the encoded data. + @return the encoded data + + + Reads gif images of all types. All the images in a gif are read in the constructors + and can be retrieved with other methods. + @author Paulo Soares + + + Reads gif images from an URL. + @param url the URL + @throws IOException on error + + + Reads gif images from a file. + @param file the file + @throws IOException on error + + + Reads gif images from a byte array. + @param data the byte array + @throws IOException on error + + + Reads gif images from a stream. The stream isp not closed. + @param isp the stream + @throws IOException on error + + + Gets the number of frames the gif has. + @return the number of frames the gif has + + + Gets the image from a frame. The first frame isp 1. + @param frame the frame to get the image from + @return the image + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Gets the logical screen. The images may be smaller and placed + in some position in this screen to playback some animation. + No image will be be bigger that this. + @return the logical screen dimensions as [x,y] + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + Support for JBIG2 Images. + This class assumes that we are always embedding into a pdf. + + @since 2.1.5 + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + @param ra an random access file or array + @return a byte array + + + returns an Image representing the given page. + @param ra the file or array containing the image + @param page the page number of the image + @return an Image object + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + TODO: the indeterminate-segment-size value of dataLength, else? + + @since 2.1.5 + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Creates a new instance of PngImage + + + Reads a PNG from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a PNG from a stream. + @param is the stream + @throws IOException on error + @return the image + + + Reads a PNG from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a PNG from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + A list of constants used in class TIFFImage. + + + + A bool storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaing multiple directories. + + @param stream a SeekableStream to read from. + @param directory the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + @param stream a SeekableStream to read from. + @param ifd_offset the long byte offset of the directory. + @param directory the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + Returns the number of directory entries. + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + + Returns true if a tag appears in the directory. + + + Returns an ordered array of ints indicating the tag + values. + + + Returns an array of TIFFFields containing all the fields + in this directory. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + + Returns a bool indicating whether the byte order used in the + the TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + Returns the offset of the IFD corresponding to this + TIFFDirectory. + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + The logical order of bits within a byte. +
+            1 = MSB-to-LSB
+            2 = LSB-to-MSB (flipped)
+            
+
+ + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + + Returns the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + + + Returns the number of elements in the IFD. + + + + + + + + + + + + + + + + + + + + Reads TIFF images + @author Paulo Soares + + + Gets the number of pages the TIFF document has. + @param s the file source + @return the number of pages + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + Reads a page from a TIFF image. Direct mode is not used. + @param s the file source + @param page the page to get. The first page is 1 + @return the Image + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + @param h The number of rows the compressed data contains. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newString to the end of oldString. + + + + @author psoares + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + + @param seq + @return the cid code or -1 for end + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + This class represents a CMap file. + + @author Ben Litchfield (ben@benlitchfield.com) + @since 2.1.4 + + + Creates a new instance of CMap. + + + This will tell if this cmap has any one byte mappings. + + @return true If there are any one byte mappings, false otherwise. + + + This will tell if this cmap has any two byte mappings. + + @return true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + + @param code The code used to lookup. + @param offset The offset into the byte array. + @param length The length of the data we are getting. + + @return The string that matches the lookup. + + + + @author psoares + + + + @author psoares + + + Interface providing alternate description for accessible elements. + + + Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @return + + + Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @param value + + + Gets all the properties of accessible element. + @return + + + Role propherty of the accessible element. + Note that all child elements won't also be tagged. + @return + + + Use this methods to get the AcroForm object. + Use this method only if you know what you're doing + @return the PdfAcroform object of the PdfDocument + + + Use this methods to add a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Use this method to adds the PdfAnnotation + to the calculation order array. + @param annot the PdfAnnotation to be added + + + Use this method to set the signature flags. + @param f the flags. This flags are ORed with current ones + + + A PDF document can have an open action and other additional actions. + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws DocumentException on invalid action type + + + Encryption settings are described in section 3.5 (more specifically + section 3.5.2) of the PDF Reference 1.7. + They are explained in section 3.3.3 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + A PDF page can have an open and/or close action. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws DocumentException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + The PDF version is described in the PDF Reference 1.7 p92 + (about the PDF Header) and page 139 (the version entry in + the Catalog). You'll also find info about setting the version + in the book 'iText in Action' sections 2.1.3 (PDF Header) + and 3.3 (Version history). + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header, + but only if param refers to a higher version. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + Sets the PDF version as it will appear in the Catalog. + Note that this only has effect if you use a later version + than the one that appears in the header. This method + ignores the parameter if you try to set a lower version + than the one currently set in the Catalog. + @param version the PDF name that will be used for the Version key in the catalog + + + Adds a developer extension to the Extensions dictionary + in the Catalog. + @param de an object that contains the extensions prefix and dictionary + @since 2.1.6 + + + Viewer preferences are described in section 3.6.1 and 8.1 of the + PDF Reference 1.7 (Table 3.25 on p139-142 and Table 8.1 on p579-581). + They are explained in section 13.1 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + + + Sets the PDF/X conformance level. + Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. + It must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + Shape arabic characters. This code was inspired by an LGPL'ed C library: + Pango ( see http://www.pango.com/ ). Note that the code of this is the + original work of Paulo Soares. Hence it is perfectly justifiable to distribute + it under the MPL. + + @author Paulo Soares + + + Some fonts do not implement ligaturized variations on Arabic characters + e.g. Simplified Arabic has got code point 0xFEED but not 0xFEEE + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Not a valid option value. + + + Bit mask for digit shaping options. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Bit mask for digit type options. + + + Arabic is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Signals that a bad PDF format has been used to construct a PdfObject. + + @see PdfException + @see PdfBoolean + @see PdfNumber + @see PdfString + @see PdfName + @see PdfDictionary + @see PdfFont + + + Base class containing properties and methods commom to all + barcode types. + + @author Paulo Soares + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The minimum bar width. + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + The text font. null if no text. + + + The size of the text or the height of the shorter bar + in Postnet. + + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + The height of the bars. + + + The text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + Gets the minimum bar width. + @return the minimum bar width + + + Gets the bar multiplier for wide bars. + @return the bar multiplier for wide bars + + + Gets the text font. null if no text. + @return the text font. null if no text + + + Gets the size of the text. + @return the size of the text + + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + @return the baseline. + + + Gets the height of the bars. + @return the height of the bars + + + Gets the text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + @return the text alignment + + + The property for the optional checksum generation. + + + Sets the property to show the generated checksum in the the text. + @param checksumText new value of property checksumText + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + @param startStopText new value of property startStopText + + + Sets the property to generate extended barcode 39. + @param extended new value of property extended + + + Gets the code to generate. + @return the code to generate + + + Sets the property to show the guard bars for barcode EAN. + @param guardBars new value of property guardBars + + + Gets the code type. + @return the code type + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Creates a template with the barcode. + @param cb the PdfContentByte to create the template. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the template + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + Creates an Image with the barcode. + @param cb the PdfContentByte to create the Image. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the Image + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + The alternate text to be used, if present. + + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + @param altText the alternate text + + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128 + + + Removes the FNC1 codes in the text. + @param code the text to clean + @return the cleaned text + + + Gets the human readable text of a sequence of AI. + @param code the text + @return the human readable text + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + @param text the text to check + @param textIndex where to check from + @param numDigits the number of digits to check + @return the check result + + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + @param text the text to pack + @param textIndex where to pack from + @param numDigits the number of digits to pack. It is always an even number + @return the packed digits, two digits per character + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @param codeSet forced code set, or AUTO for optimized barcode. + @return the code ready to be fed to getBarsCode128Raw() + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @return the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. The input has the actual barcodes, not + the human readable text. + @param text the barcode + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + Implements the code 39 and code 39 extended. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = true;
+            extended = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + + Creates the bars. + @param text the text to create the bars. This text does not include the start and + stop characters + @return the bars + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + @param text the extended text + @return the escaped text + + + Calculates the checksum. + @param text the text + @return the checksum + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code codabar. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textAlignment = Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + Creates a new BarcodeCodabar. + + + Creates the bars. + @param text the text to create the bars + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X21 encodation. + + + X12 encodation. + + @deprecated Use {@link BarcodeDataMatrix#DM_X12} instead. + + + EDIFACT encodation. + + + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + + + + Gets an Image with the barcode. A successful call to the method generate() + before calling this method is required. + @return the barcode Image + @throws BadElementException on error + + + Creates a java.awt.Image. A successful call to the method generate() + before calling this method is required. + @param foreground the color of the bars + @param background the color of the background + @return the image + + + Gets the generated image. The image is represented as a stream of bytes, each byte representing + 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row + is aligned at byte boundaries. The dimensions of the image are defined by height and width + plus 2 * ws. + @return the generated image + + + + + Gets/sets the whitespace border around the barcode. + @param ws the whitespace border around the barcode + + + + Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, + supplemental 2 and 5. The default parameters are: +
+            x = 0.8f;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            guardBars = true;
+            codeType = EAN13;
+            code = "";
+             
+ + @author Paulo Soares +
+ + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN + + + Calculates the EAN parity character. + @param code the code + @return the parity character + + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + @param text the code to convert. It must have 12 numeric characters + @return the 8 converted digits or null if the + code could not be converted + + + Creates the bars for the barcode EAN13 and UPCA. + @param _code the text with 13 digits + @return the barcode + + + Creates the bars for the barcode EAN8. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode UPCE. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode supplemental 2. + @param _code the text with 2 digits + @return the barcode + + + Creates the bars for the barcode supplemental 5. + @param _code the text with 5 digits + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + @param ean the EAN/UPC barcode + @param supp the supplemental barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + Creates new BarcodeInter25 + + + Deletes all the non numeric characters from text. + @param text the text + @return a string with only numeric characters + + + Calculates the checksum. + @param text the numeric text + @return the checksum + + + Creates the bars for the barcode. + @param text the text. It can contain non numeric characters + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed + and variable sizes, automatic and manual error levels, raw codeword input, + codeword size optimization and bitmap inversion. The output can + be a CCITT G4 Image or a raw bitmap. + @author Paulo Soares + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + The size will be at least codeColumns + with a variable number of codeRows. + + + The size will be at least codeRows + with a variable number of codeColumns. + + + The error level correction is set automatically according + to ISO 15438 recomendations. + + + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + No text interpretation is done and the content of codewords + is used directly. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + Use Macro PDF417 Encoding + @see #setMacroFileId(String) + @see #setMacroSegmentId(int) + @see #setMacroSegmentCount(int) + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + @param id the id (starting at 0) + @see #setMacroSegmentCount(int) + + + Sets the segment count for macro PDF417 encoding + @param cnt the number of macro segments + @see #setMacroSegmentId(int) + + + Sets the File ID for macro PDF417 encoding + @param id the file id + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Gets an Image with the barcode. The image will have to be + scaled in the Y direction by yHeightfor the barcode + to have the right printing aspect. + @return the barcode Image + @throws BadElementException on error + + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + @return The raw barcode image + + + Gets the number of X pixels of outBits. + @return the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + @return the number of Y pixels of outBits + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + @param codeRows the number of barcode rows + + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + @param codeColumns the number of barcode data columns + + + Gets the codeword array. This array is always 928 elements long. + It can be writen to if the option PDF417_USE_RAW_CODEWORDS + is set. + @return the codeword array + + + Sets the length of the codewords. + @param lenCodewords the length of the codewords + + + Gets the error level correction used for the barcode. It may different + from the previously set value. + @return the error level correction used for the barcode + Sets the error level correction for the barcode. + @param errorLevel the error level correction for the barcode + + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + @param text the bytes that form the barcode + + + Sets the text that will form the barcode. This text is converted + to bytes using the encoding Cp437. + @param s the text that will form the barcode + @throws UnsupportedEncodingException if the encoding Cp437 is not supported + + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + @param options the options to generate the barcode + + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + @param aspectRatio the barcode aspect ratio + + + Sets the Y pixel height relative to X. It is usually 3. + @param yHeight the Y pixel height relative to X + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property text. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Gets the size of the barcode grid. + + + Implements the Postnet and Planet barcodes. The default parameters are: +
+            n = 72f / 22f; // distance between bars
+            x = 0.02f * 72f; // bar width
+            barHeight = 0.125f * 72f; // height of the tall bars
+            size = 0.05f * 72f; // height of the short bars
+            codeType = POSTNET; // type of code
+             
+ + @author Paulo Soares +
+ + The bars for each character. + + + Creates new BarcodePostnet + + + Creates the bars for Postnet. + @param text the code to be created without checksum + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + A QRCode implementation based on the zxing code. + @author Paulo Soares + @since 5.0.2 + + + Creates the QR barcode. The barcode is always created with the smallest possible size and is then stretched + to the width and height given. Set the width and height to 1 to get an unscaled barcode. + @param content the text to be encoded + @param width the barcode width + @param height the barcode height + @param hints modifiers to change the way the barcode is create. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + @throws WriterException + + + Gets an Image with the barcode. + @return the barcode Image + @throws BadElementException on error + + + Gets the size of the barcode grid. + + + A thin border with 1 point width. + + + A medium border with 2 point width. + + + A thick border with 3 point width. + + + The field is visible. + + + The field is hidden. + + + The field is visible but does not print. + + + The field is hidden but is printable. + + + The user may not change the value of the field. + + + The field must have a value at the time it is exported by a submit-form + action. + + + The field may contain multiple lines of text. + This flag is only meaningful with text fields. + + + The field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + The field is intended for entering a secure password that should + not be echoed visibly to the screen. + + + The text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + The text entered in the field will not be spell-checked. + This flag is meaningful only in text fields and in combo + fields with the EDIT flag set. + + + If set the combo box includes an editable text box as well as a drop list; if + clear, it includes only a drop list. + This flag is only meaningful with combo fields. + + + whether or not a list may have multiple selections. Only applies to /CH LIST + fields, not combo boxes. + + + combo box flag. + + + Holds value of property rotation. + + + Holds value of property visibility. + + + Holds value of property fieldName. + + + Holds value of property options. + + + Holds value of property maxCharacterLength. + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the border width in points. To eliminate the border + set the border color to null. + @param borderWidth the border width in points + + + Sets the border style. The styles are found in PdfBorderDictionary + and can be STYLE_SOLID, STYLE_DASHED, + STYLE_BEVELED, STYLE_INSET and + STYLE_UNDERLINE. + @param borderStyle the border style + + + Sets the border color. Set to null to remove + the border. + @param borderColor the border color + + + Sets the background color. Set to null for + transparent background. + @param backgroundColor the background color + + + Sets the text color. If null the color used + will be black. + @param textColor the text color + + + Sets the text font. If null then Helvetica + will be used. + @param font the text font + + + Sets the font size. If 0 then auto-sizing will be used but + only for text fields. + @param fontSize the font size + + + Sets the text horizontal alignment. It can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER and Element.ALIGN_RIGHT. + @param alignment the text horizontal alignment + + + Sets the text for text fields. + @param text the text + + + Sets the field dimension and position. + @param box the field dimension and position + + + Sets the field rotation. This value should be the same as + the page rotation where the field will be shown. + @param rotation the field rotation + + + Convenience method to set the field rotation the same as the + page rotation. + @param page the page + + + Sets the field visibility flag. This flags can be one of + VISIBLE, HIDDEN, VISIBLE_BUT_DOES_NOT_PRINT + and HIDDEN_BUT_PRINTABLE. + @param visibility field visibility flag + + + Sets the field name. + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the option flags. The option flags can be a combination by oring of + READ_ONLY, REQUIRED, + MULTILINE, DO_NOT_SCROLL, + PASSWORD, FILE_SELECTION, + DO_NOT_SPELL_CHECK and EDIT. + @param options the option flags + + + Sets the maximum length of the field�s text, in characters. + It is only meaningful for text fields. + @param maxCharacterLength the maximum length of the field�s text, in characters + + + Moves the field keys from from to to. The moved keys + are removed from from. + @param from the source + @param to the destination. It may be null + + + + Summary description for BaseFont. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The maximum height above the baseline reached by glyphs in this + font, excluding the height of glyphs for accented characters. + + + The y coordinate of the top of flat capital letters, measured from + the baseline. + + + The maximum depth below the baseline reached by glyphs in this + font. The value is a negative number. + + + The angle, expressed in degrees counterclockwise from the vertical, + of the dominant vertical strokes of the font. The value is + negative for fonts that slope to the right, as almost all italic fonts do. + + + The lower left x glyph coordinate. + + + The lower left y glyph coordinate. + + + The upper right x glyph coordinate. + + + The upper right y glyph coordinate. + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + The underline position. Usually a negative value. + + + The underline thickness. + + + The strikethrough position. + + + The strikethrough thickness. + + + The recommended vertical size for subscripts for this font. + + + The recommended vertical offset from the baseline for subscripts for this font. Usually a negative value. + + + The recommended vertical size for superscripts for this font. + + + The recommended vertical offset from the baseline for superscripts for this font. + + + The weight class of the font, as defined by the font author + @since 5.0.2 + + + The width class of the font, as defined by the font author + @since 5.0.2 + + + The entry of PDF FontDescriptor dictionary. + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + A value larger than 500 indicates bold font-weight. + + + The font is Type 1. + + + The font is True Type with a standard encoding. + + + The font is CJK. + + + The font is True Type with a Unicode encoding. + + + A font already inside the document. + + + A Type3 font. + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + default array of six numbers specifying the font matrix, mapping glyph space to text space + + + if the font has to be embedded + + + if the font doesn't have to be embedded + + + if the font has to be cached + + + if the font doesn't have to be cached + + + The path to the font resources. + + + The fake CID code that represents a newline. + + + * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029) + * Treated as a line feed character in XFA rich and plain text. + * @since 5.4.3 + + + The font type. + + + a not defined character in a custom PDF encoding + + + table of characters widths for this encoding + + + encoding names + + + same as differences but with the unicode codes + + + encoding used with this font + + + true if the font is to be embedded in the PDF + + + The compression level for the font stream. + @since 2.1.3 + + + true if the font must use its built in encoding. In that case the + encoding is only used to map a char to the position inside + the font, not to the expected char name. + + + cache for the fonts already used. + + + list of the 14 built in fonts. + + + Forces the output of the width array. Only matters for the 14 + built-in fonts. + + + Converts char directly to byte + by casting. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Custom encodings use this map to key the Unicode character + to the single byte code. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + @param contents the content of the stream + @param lengths an array of int that describes the several lengths of each part of the font + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Generates the PDF stream for a font. + @param contents the content of a stream + @param subType the subtype of the font. + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Creates new BaseFont + + + Creates a new font. This will always be the default Helvetica font (not embedded). + This method is introduced because Helvetica is used in many examples. + @return a BaseFont object (Helvetica, Winansi, not embedded) + @throws IOException This shouldn't occur ever + @throws DocumentException This shouldn't occur ever + @since 2.1.1 + + + + + + + + Creates a font based on an existing document font. The created font font may not + behave as expected, depending on the encoding or subset. + @param fontRef the reference to the document font + @return the font + + + Indicates whether the font is used for verticl writing or not. + @return true if the writing mode is vertical for the given font, false otherwise. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + @param name the full name of the font + @return the name without the modifiers Bold, Italic or BoldItalic + + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + @param enc the encoding to be normalized + @return the normalized encoding + + + Creates the widths and the differences arrays + @throws UnsupportedEncodingException the encoding is not supported + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Gets the descent of a String in normalized 1000 units. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @return the dexcent in normalized 1000 units + + + Gets the ascent of a String in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @return the ascent in normalized 1000 units + + + Gets the descent of a String in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @param fontSize the size of the font + @return the dexcent in points + + + Gets the ascent of a String in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @param fontSize the size of the font + @return the ascent in points + + + Gets the width of a String in points taking kerning + into account. + @param text the String to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a string in points. + @param text the string to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a char in points. + @param char1 the char to get the witdth of + @param fontSize the font size + @return the width in points + + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program (if possible). + This method will return null for some types of fonts (CJKFont, Type3Font) + or if there is no font program available (standard Type 1 fonts). + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the encoding used to convert string into byte[]. + @return the encoding name + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the font type. The font types can be: FONT_TYPE_T1, + FONT_TYPE_TT, FONT_TYPE_CJK and FONT_TYPE_TTUNI. + @return the font type + + + Gets the embedded flag. + @return true if the font is embedded. + + + Gets the symbolic flag of the font. + @return true if the font is symbolic + + + Creates a unique subset prefix to be added to the font name when the font is embedded and subset. + @return the subset prefix + + + Gets the Unicode character corresponding to the byte output to the pdf stream. + @param index the byte index + @return the Unicode character + + + Gets the postscript font name. + @return the postscript font name + + + + + + Gets all the names from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), GetFamilyFontName(), GetFullFontName()} + + + Gets all the entries of the namestable from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), getFamilyFontName(), getFullFontName()} + + + + Gets the code pages supported by the font. This has only meaning + with True Type fonts. + @return the code pages supported by the font + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcFile the file name of the font + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcArray the font as a byte array + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Gets the font width array. + @return the font width array + + + Gets the array with the names of the characters. + @return the array with the names of the characters + + + Gets the array with the unicode characters. + @return the array with the unicode characters + + + Set to true to force the generation of the + widths array. + @param forceWidthsOutput true to force the generation of the + widths array + + + Sets the conversion of char directly to byte + by casting. This is a low level feature to put the bytes directly in + the content stream without passing through string.GetBytes(). + @param directTextToByte New value of property directTextToByte. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to true + only the glyphs used will be included in the font. When set to false + and {@link #addSubsetRange(int[])} was not called the full font will be included + otherwise just the characters ranges will be included. + @param subset new value of property subset + + + + Gets the CID code given an Unicode. + It has only meaning with CJK fonts. + @param c the Unicode + @return the CID equivalent + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Gets a list of all document fonts. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @return the list of fonts and references + + + Gets a list of the document fonts in a particular page. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @param page the page to list the fonts from + @return the list of fonts and references + + + Gets the smallest box enclosing the character contours. It will return + null if the font has not the information or the character has no + contours, as in the case of the space, for example. Characters with no contours may + also return [0,0,0,0]. + @param c the character to get the contour bounding box from + @return an array of four floats with the bounding box in the format [llx,lly,urx,ury] or + null + + + Gets default array of six numbers specifying the font matrix, mapping glyph space to text space + @return an array of six values + null + + + iText expects Arabic Diactrics (tashkeel) to have zero advance but some fonts, + most notably those that come with Windows, like times.ttf, have non-zero + advance for those characters. This method makes those character to have zero + width advance and work correctly in the iText Arabic shaping and reordering + context. + + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + @param range the character range + + + Sets the compression level to be used for the font streams. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + Does all the line bidirectional processing with PdfChunk assembly. + + @author Paulo Soares + + + Creates new BidiLine + + + Call this after processLine() to know if any word was split into several lines. + @return + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @return the sum of all widths + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @param originalWidth the full width of the line. It is used in case of RTL and tab stops + @return the sum of all widths + + + Method that changes a String with Arabic characters into a String in which the ligatures are made. + @param s the original String + @param runDirection + @param arabicOptions + @return the String with the ligaturesc + + + Left-to-right + + + Left-to-Right Embedding + + + Left-to-Right Override + + + Right-to-Left + + + Right-to-Left Arabic + + + Right-to-Left Embedding + + + Right-to-Left Override + + + Pop Directional Format + + + European Number + + + European Number Separator + + + European Number Terminator + + + Arabic Number + + + Common Number Separator + + + Non-Spacing Mark + + + Boundary Neutral + + + Paragraph Separator + + + Segment Separator + + + Whitespace + + + Other Neutrals + + + Minimum bidi type value. + + + Maximum bidi type value. + + + Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive + and represent the direction codes of the characters in the text. + + @param types the types array + + + Initialize using an array of direction types and an externally supplied paragraph embedding level. + The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), + 0 is for LTR paragraphs, and 1 is for RTL paragraphs. + + @param types the types array + @param paragraphEmbeddingLevel the externally supplied paragraph embedding level. + + + The algorithm. + Does not include line-based processing (Rules L1, L2). + These are applied later in the line-based phase of the algorithm. + + + + + Rules X9. + Remove explicit codes so that they may be ignored during the remainder + of the main portion of the algorithm. The length of the resulting text + is returned. + @return the length of the data excluding explicit codes and BN. + + + Reinsert levels information for explicit codes. + This is for ease of relating the level information + to the original input data. Note that the levels + assigned to these codes are arbitrary, they're + chosen so as to avoid breaking level runs. + @param textLength the length of the data after compression + @return the length of the data (original length of + types array supplied to constructor) + + + 2) determining explicit levels + Rules X1 - X8 + + The interaction of these rules makes handling them a bit complex. + This examines resultTypes but does not modify it. It returns embedding and + override information in the result array. The low 7 bits are the level, the high + bit is set if the level is an override, and clear if it is an embedding. + + + 3) resolving weak types + Rules W1-W7. + + Note that some weak types (EN, AN) remain after this processing is complete. + + + 6) resolving neutral types + Rules N1-N2. + + + 7) resolving implicit embedding levels + Rules I1, I2. + + + + Return multiline reordering array for a given level array. + Reordering does not occur across a line break. + + + Return reordering array for a given level array. This reorders a single line. + The reordering is a visual to logical map. For example, + the leftmost char is string.CharAt(order[0]). + Rule L2. + + + Return the base level of the paragraph. + + + Return true if the type is considered a whitespace type for the line break rules. + + + Return the strong type (L or R) corresponding to the level. + + + Return the limit of the run starting at index that includes only resultTypes in validSet. + This checks the value at index, and will return index if that value is not in validSet. + + + Return the start of the run including index that includes only resultTypes in validSet. + This assumes the value at index is valid, and does not check it. + + + Set resultTypes from start up to (but not including) limit to newType. + + + Set resultLevels from start up to (but not including) limit to newLevel. + + + Throw exception if type array is invalid. + + + Throw exception if paragraph embedding level is invalid. Special allowance for -1 so that + default processing can still be performed when using this API. + + + Throw exception if line breaks array is invalid. + + + Acts like a StringBuilder but works with byte arrays. + floating point is converted to a format suitable to the PDF. + @author Paulo Soares + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + List items for the linked list that builds the new CID font. + + + remember the current offset and increment by item's size in bytes. + + + Emit the byte stream for this item. + + + Fix up cross references to this item (applies only to markers). + + + set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + + A range item. + + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + @author orly manor + + TODO To change the template for this generated type comment go to + Window - Preferences - Java - Code Generation - Code and Comments + + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + a utility that creates a range item for an entire index + + @param indexOffset where the index is + @return a range item representing the entire index + + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + + A random Access File or an array + (contributed by orly manor) + + + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + A HashMap containing the glyphs used in the text after being converted + to glyph number by the CMap + + + The GlyphsUsed keys as an ArrayList + + + A HashMap for keeping the FDArrays being used by the font + + + A HashMaps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed HashMap as ArrayList + + + An array of the new Indexs for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursivly + + + C'tor for CFFFontSubset + @param rf - The font file + @param GlyphsUsed - a HashMap that contains the glyph used in the subset + + + Calculates the length of the charset according to its format + @param Offset The Charset Offset + @param NumofGlyphs Number of glyphs in the font + @return the length of the Charset + + + Function calculates the number of ranges in the Charset + @param NumofGlyphs The number of glyphs in the font + @param Type The format of the Charset + @return The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + @param Font The index of the font being processed + @return The Processed FDSelect of the font + + + Function reads the FDSelect and builds the FDArrayUsed HashMap According to the glyphs used + @param Font the Number of font being processed + + + Read the FDArray count, offsize and Offset array + @param Font + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + @param fontName - The name of the font to be taken out of the CFF + @return The new font stream + @throws IOException + + + Function calcs bias according to the CharString type and the count + of the subrs + @param Offset The offset to the relevent subrs index + @param Font the font + @return The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings + @param FontIndex the font + @throws IOException + + + + The function finds for the FD array processed the local subr offset and its + offset array. + @param Font the font + @param FD The FDARRAY processed + + + + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + @param begin the start point of the subr + @param end the end point of the subr + @param GBias the bias of the Global Subrs + @param LBias the bias of the Local Subrs + @param hSubr the HashMap for the lSubrs + @param lSubr the ArrayList for the lSubrs + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + Function checks the key and return the change to the stack after the operator + @return The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + + Pop one element from the stack + + + + Add an item to the stack + + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + @param begin the start point of the subr + @param end the end point of the subr + @param LBias the bias of the Local Subrs + @param GBias the bias of the Global Subrs + @param LSubrsOffsets The Offsets array of the subroutines + @return The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param Used the hashmap of the used objects + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + @param NewOffsets the subsetted offset array + @param NewObjects the subsetted object array + @return the new index created + + + The function builds the new output stream according to the subset process + @param Font the font + @return the subseted font stream + @throws IOException + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + @param Count the count field of the index + @param Offsize the offsize field of the index + @param First the first offset of the index + + + Function adds the keys into the TopDict + @param fdarrayRef OffsetItem for the FDArray + @param fdselectRef OffsetItem for the FDSelect + @param charsetRef OffsetItem for the CharSet + @param charstringsRef OffsetItem for the CharString + + + Function takes the original string item and adds the new strings + to accomodate the CID rules + @param Font the font + + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + @param fdselectRef OffsetItem for the FDSelect + @param nglyphs the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + @param charsetRef OffsetItem for the CharSet + @param nglyphs the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + @param fdarrayRef OffsetItem for the FDArray + @param privateRef OffsetItem for the Private Dict + @param Font the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + @param Font the font + @throws IOException + + + Function subsets the FDArray and builds the new one with new offsets + @param Font The font + @param fdPrivate OffsetItem Array (one for each FDArray) + @throws IOException + + + Function Adds the new private dicts (only for the FDs used) to the list + @param Font the font + @param fdPrivate OffsetItem array one element for each private + @param fdPrivateBase IndexBaseItem array one element for each private + @param fdSubrs OffsetItem array one element for each private + @throws IOException + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + @param Font The index of the font + @param fdPrivateBase The IndexBaseItem array for the linked list + @param fdSubrs OffsetItem array for the linked list + @throws IOException + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + @param Offset The Offset for the private dict + @param Size The size of the private dict + @return The size of the offset of the subrs in the private dict + + + Function computes the size of an index + @param indexOffset The offset for the computed index + @return The size of the index + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + @param Font the font + @param Subr The OffsetItem for the subrs of the private + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + @param Font the font + @param PrivateBase IndexBaseItem for the private that's referencing to the subrs + @param Subrs OffsetItem for the subrs + @throws IOException + + + Creates a CJK font compatible with the fonts in the Adobe Asian font Pack. + + @author Paulo Soares + + + The encoding used in the PDF document for CJK fonts + + + The path to the font resources. + + + The font name + + + The style modifier + + + The CMap name associated with this font + + + Creates a CJK font. + @param fontName the name of the font + @param enc the encoding of the font + @param emb always false. CJK font and not embedded + @throws DocumentException on error + @throws IOException on error + + + Returns a font compatible with a CJK encoding or null if not found. + @param enc + @return + + + Checks if its a valid CJK font. + @param fontName the font name + @param enc the encoding + @return true if it is CJK font + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + You can't get the FontStream of a CJK font (CJK fonts are never embedded), + so this method always returns null. + @return null + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + + + Implementation of DocumentFont used while parsing PDF streams. + @since 2.1.4 + + + The font dictionary. + + + the width of a space for this font, in normalized 1000 point units + + + The CMap constructed from the ToUnicode map from the font's dictionary, if present. + This CMap transforms CID values into unicode equivalent + + + Mapping between CID code (single byte only for now) and unicode equivalent + as derived by the font's encoding. Only needed if the ToUnicode CMap is not provided. + + + Creates an instance of a CMapAwareFont based on an indirect reference to a font. + @param refFont the indirect reference to a font + + + Parses the ToUnicode entry, if present, and constructs a CMap for it + @since 2.1.7 + + + Inverts DocumentFont's uni2byte mapping to obtain a cid-to-unicode mapping based + on the font's encoding + @since 2.1.7 + + + For all widths of all glyphs, compute the average width in normalized 1000 point units. + This is used to give some meaningful width in cases where we need an average font width + (such as if the width of a space isn't specified by a given font) + @return the average width of all non-zero width glyphs in the font + + + @since 2.1.5 + Override to allow special handling for fonts that don't specify width of space character + @see com.itextpdf.text.pdf.DocumentFont#getWidth(int) + + + Decodes a single CID (represented by one or two bytes) to a unicode String. + @param bytes the bytes making up the character code to convert + @param offset an offset + @param len a length + @return a String containing the encoded form of the input bytes using the font's encoding. + + + Decodes a string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + @since 2.1.7 + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + + + Encodes bytes to a String. + @param bytes the bytes from a stream + @param offset an offset + @param len a length + @return a String encoded taking into account if the bytes are in unicode or not. + @deprecated method name is not indicative of what it does. Use decode instead. + + + + @author Paulo Soares + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + Constructs a PDF Collection. + @param type the type of PDF collection. + + + Identifies the document that will be initially presented + in the user interface. + @param description the description that was used when attaching the file to the document + + + Sets the Collection schema dictionary. + @param schema an overview of the collection fields + + + Sets the Collection sort dictionary. + @param sort a collection sort dictionary + + + @author blowagie + + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + The type of the PDF collection field. + + + Creates a PdfCollectionField. + @param name the field name + @param type the field type + + + The relative order of the field name. Fields are sorted in ascending order. + @param i a number indicating the order of the field + + + Sets the initial visibility of the field. + @param visible the default is true (visible) + + + Indication if the field value should be editable in the viewer. + @param editable the default is false (not editable) + + + Checks if the type of the field is suitable for a Collection Item. + + + Returns a PdfObject that can be used as the value of a Collection Item. + @param String value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) + + + The PdfCollectionSchema with the names and types of the items. + + + Constructs a Collection Item that can be added to a PdfFileSpecification. + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + @param prefix a prefix + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + @param name the name of the collection field + @param field a Collection Field + + + Constructs a PDF Collection Sort Dictionary. + @param key the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + @param keys the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + @param ascending true is the default, use false for descending order + + + Defines the sort order of the field (ascending or descending). + @param ascending an array with every element corresponding with a name of a field. + + + Creates dictionary referring to a target document that is the parent of the current document. + @param nested null if this is the actual target, another target if this is only an intermediate target. + + + Creates a dictionary referring to a target document. + @param child if false, this refers to the parent document; if true, this refers to a child document, and you'll have to specify where to find the child using the other methods of this class + + + If this dictionary refers to a child that is a document level attachment, + you need to specify the name that was used to attach the document. + @param name the name in the EmbeddedFiles name tree + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the name of the page (or use setFileAttachmentPage to specify the page number). + Once you have specified the page, you still need to specify the attachment using another method. + @param name the named destination referring to the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page number (or use setFileAttachmentPagename to specify a named destination). + Once you have specified the page, you still need to specify the attachment using another method. + @param page the page number of the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the name of the attachment added to this page (or use setFileAttachmentIndex). + @param name the name of the attachment + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the index of the attachment added to this page (or use setFileAttachmentName). + @param name the name of the attachment + + + If this dictionary refers to an intermediate target, you can + add the next target in the sequence. + @param nested the next target in the sequence + + + Each colorSpace in the document will have an instance of this class + + @author Phillip Pan (phillip@formstar.com) + + + The indirect reference to this color + + + The color name that appears in the document body stream + + + The color + + + Each spot color used in a document has an instance of this class. + @param colorName the color name + @param indirectReference the indirect reference to the font + @param scolor the PDfSpotColor + + + Gets the indirect reference to this color. + @return the indirect reference to this color + + + Gets the color name as it appears in the document body. + @return the color name + + + Gets the SpotColor object. + @return the PdfSpotColor + + + + Eliminate the arabic vowels + + + Compose the tashkeel in the ligatures. + + + Do some extra double ligatures. + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Signals that there is no more text available. + + + Signals that there is no more column. + + + The column is valid. + + + The line is out the column limits. + + + The line cannot fit this column position. + + + Upper bound of the column. + + + Lower bound of the column. + + + The column Element. Default is left Element. + + + The left column bound. + + + The right column bound. + + + The chunks that form the text. + + + The current y line location. Text will be written at this line minus the leading. + + + The X position after the last line that has been written. + @since 5.0.3 + + + The leading for the current line. + + + The fixed text leading. + + + The text leading that is multiplied by the biggest font size in the line. + + + The PdfContent where the text will be written to. + + + The line status when trying to fit a line to a column. + + + The first paragraph line indent. + + + The following paragraph lines indent. + + + The right paragraph lines indent. + + + The extra space between paragraphs. + + + The width of the line when the column is defined as a simple rectangle. + + + Holds value of property spaceCharRatio. + + + Holds value of property linesWritten. + + + Holds value of property arabicOptions. + + + Pointer for the row in a table that is being dealt with + @since 5.1.0 + + + The index of the last row that needed to be splitted. + @since 5.0.1 changed a boolean into an int + -2 value mean it is the first attempt to split the first row. + -1 means that we try to avoid splitting current row. + + + if true, first line height is adjusted so that the max ascender touches the top + + + @since 5.4.2 + + + Creates a ColumnText. + @param text the place where the text will be written to. Can + be a template. + + + Creates an independent duplicated of the instance org. + @param org the original ColumnText + @return the duplicated + + + Makes this instance an independent copy of org. + @param org the original ColumnText + @return itself + + + Adds a Phrase to the current text array. + @param phrase the text + + + Replaces the current text array with this Phrase. + Anything added previously with AddElement() is lost. + @param phrase the text + + + Adds a Chunk to the current text array. + Will not have any effect if AddElement() was called before. + @param chunk the text + + + + + Finds the intersection between the yLine and the column. It will + set the lineStatus apropriatly. + @param wall the column to intersect + @return the x coordinate of the intersection + + + Finds the intersection between the yLine and the two + column bounds. It will set the lineStatus apropriatly. + @return a float[2]with the x coordinates of the intersection + + + Finds the intersection between the yLine, + the yLine-leadingand the two + column bounds. It will set the lineStatus apropriatly. + @return a float[4]with the x coordinates of the intersection + + + Sets the columns bounds. Each column bound is described by a + float[] with the line points [x1,y1,x2,y2,...]. + The array must have at least 4 elements. + @param leftLine the left column bound + @param rightLine the right column bound + + + Simplified method for rectangular columns. + @param phrase a Phrase + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx + @param lly + @param urx + @param ury + + + Simplified method for rectangular columns. + @param rect the rectangle for the column + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the yLine. + @return the yLine + + + Gets the number of rows that were drawn when a table is involved. + + + Gets the Element. + @return the alignment + + + Gets the first paragraph line indent. + @return the indent + + + Sets the first paragraph line indent. + + @param indent the indent + @param repeatFirstLineIndent do we need to repeat the indentation of the first line after a newline? + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the currentLeading. + + @return the currentLeading + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Call this after go() to know if any word was split into several lines. + @return + + + Sets the extra space between paragraphs. + @return the extra space between paragraphs + + + Clears the chunk array. A call to go() will always return + NO_MORE_TEXT. + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction. + @return the run direction + + + Gets the number of lines written. + @return the number of lines written + + + Gets the X position of the end of the last line that has been written + (will not work in simulation mode!). + @since 5.0.3 + + + Sets the arabic shaping options. The option can be AR_NOVOWEL, + AR_COMPOSEDTASHKEEL and AR_LIG. + @param arabicOptions the arabic shaping options + + + Gets the biggest descender value of the last line written. + @return the biggest descender value of the last line written + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + @return the width of the line + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @return the width of the line + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment. It is not influenced by the run direction + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + + + Fits the text to some rectangle adjusting the font size as needed. + @param font the font to use + @param text the text + @param rect the rectangle where the text must fit + @param maxFontSize the maximum font size + @param runDirection the run direction + @return the calculated font size that makes the text fit + + + Sets the canvas. + @param canvas + + + Sets the canvases. + @param canvas + + + Checks if the element has a height of 0. + @return true or false + @since 2.1.2 + + + Enables/Disables adjustment of first line height based on max ascender. + @param use enable adjustment if true + + + Checks the status variable and looks if there's still some text. + + + Holds value of property filledWidth. + + + Sets the real width used by the largest line. Only used to set it + to zero to start another measurement. + @param filledWidth the real width used by the largest line + + + Replaces the filledWidth if greater than the existing one. + @param w the new filledWidth if greater than the existing one + + + Sets the first line adjustment. Some objects have properties, like spacing before, that + behave differently if the object is the first to be written after go() or not. The first line adjustment is + true by default but can be changed if several objects are to be placed one + after the other in the same column calling go() several times. + @param adjustFirstLine true to adjust the first line, false otherwise + + + Creates an AES Cipher with CBC and no padding. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + Creates a new instance of ARCFOUREncryption + + + An initialization vector generator for a CBC block encryption. It's a random generator based on RC4. + @author Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + @return a 16 byte random initialization vector + + + Gets a random initialization vector. + @param len the length of the initialization vector + @return a random initialization vector + + + Creates a new instance of StandardDecryption + + + Creates an AES Cipher with CBC and padding PKCS5/7. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + + An instance of the default SplitCharacter. + + + Default constructor, has no custom characters to check. + + + Constructor with one splittable character. + + @param character char + + + Constructor with an array of splittable characters + + @param characters char[] + + + + Returns the current character + + @param current current position in the array + @param ck chunk array + @param cc the character array that has to be checked + @return the current character + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + + Gets the postscript font name. + @return the postscript font name + + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + + Always returns null. + @return null + @since 2.1.3 + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Exposes the unicode - > CID map that is constructed from the font's encoding + @return the unicode to CID map + @since 2.1.7 + + + Exposes the CID - > unicode map that is constructed from the font's encoding + @return the CID to unicode map + @since 5.4.0 + + + Gets the difference map + @return the difference map + @since 5.0.5 + + + Element that draws a dotted line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @since 2.1.2 + + + the gap between the dots. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Setter for the gap between the center of the dots of the dotted line. + @param gap the gap between the center of the dots + + + Interface for an Element that allows you to draw something at the current + vertical position. Trivial implementations are LineSeparator and VerticalPositionMark. + It is also used to define what has to be drawn by a separator chunk. + @since 2.1.2 + + + Implement this method if you want to draw something at the current Y position + (for instance a line). + @param canvas the canvas on which you can draw + @param llx the x coordinate of the left page margin + @param lly the y coordinate of the bottom page margin + @param urx the x coordinate of the right page margin + @param ury the y coordinate of the top page margin + @param y the current y position on the page + + + Element that draws a solid line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @author Paulo Soares + @since 2.1.2 + + + The thickness of the line. + + + The width of the line as a percentage of the available page width. + + + The color of the line. + + + The alignment of the line. + + + Creates a new instance of the LineSeparator class. + @param lineWidth the thickness of the line + @param percentage the width of the line as a percentage of the available page width + @param color the color of the line + @param align the alignment + @param offset the offset of the line relative to the current baseline (negative = under the baseline) + + + Creates a new instance of the LineSeparator class. + @param font the font + + + Creates a new instance of the LineSeparator class with + default values: lineWidth 1 user unit, width 100%, centered with offset 0. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Draws a horizontal line. + @param canvas the canvas to draw on + @param leftX the left x coordinate + @param rightX the right x coordindate + @param y the y coordinate + + + Setter for the line width. + @param lineWidth the thickness of the line that will be drawn. + + + Setter for the width as a percentage of the available width. + @return a width percentage + + + Setter for the color of the line that will be drawn. + @param color a color + + + Setter for the alignment of the line. + @param align an alignment value + + + Helper class implementing the DrawInterface. Can be used to add + horizontal or vertical separators. Won't draw anything unless + you implement the draw method. + @since 2.1.2 + + + Another implementation of the DrawInterface; its draw method will overrule LineSeparator.Draw(). + + + The offset for the line. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + @param drawInterface the drawInterface for this vertical position mark. + @param offset the offset for this vertical position mark. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + @see com.lowagie.text.Element#process(com.lowagie.text.ElementListener) + + + @see com.lowagie.text.Element#type() + + + @see com.lowagie.text.Element#isContent() + + + @see com.lowagie.text.Element#isNestable() + + + @see com.lowagie.text.Element#getChunks() + + + Setter for the interface with the overruling Draw() method. + @param drawInterface a DrawInterface implementation + + + Setter for the offset. The offset is relative to the current + Y position. If you want to underline something, you have to + choose a negative offset. + @param offset an offset + + + Enumerates all the fonts inside a True Type Collection. + + @author Paulo Soares + + + Class for an index. + + @author Michael Niedermair + + + Keeps a map with fields that are to be positioned in inGenericTag. + + + Keeps the form field that is to be positioned in a cellLayout event. + + + The PdfWriter to use when a field has to added in a cell event. + + + The PdfFormField that is the parent of the field added in a cell event. + + + Creates a new event. This constructor will be used if you need to position fields with Chunk objects. + + + Some extra padding that will be taken into account when defining the widget. + + + Add a PdfFormField that has to be tied to a generic Chunk. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + @param padding The padding to set. + + + @param parent The parent to set. + + + @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String) + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + Class for an index. + + @author Michael Niedermair + + + keeps the indextag with the pagenumber + + + All the text that is passed to this event, gets registered in the indexentry. + + @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag( + com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, + com.lowagie.text.Rectangle, java.lang.String) + + + indexcounter + + + the list for the index entry + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + + + Comparator for sorting the index + + + Set the comparator. + @param aComparator The comparator to set. + + + Returns the sorted list with the entries and the collected page numbers. + @return Returns the sorted list with the entries and teh collected page numbers. + + + Class for an index entry. +

+ In the first step, only in1, in2,in3 and tag are used. + After the collections of the index entries, pagenumbers are used. +

+
+ + first level + + + second level + + + third level + + + the tag + + + the lsit of all page numbers. + + + the lsit of all tags. + + + Create a new object. + @param aIn1 The first level. + @param aIn2 The second level. + @param aIn3 The third level. + @param aTag The tag. + + + Returns the in1. + @return Returns the in1. + + + Returns the in2. + @return Returns the in2. + + + Returns the in3. + @return Returns the in3. + + + Returns the tag. + @return Returns the tag. + + + Returns the pagenumer for this entry. + @return Returns the pagenumer for this entry. + + + Add a pagenumber. + @param number The page number. + @param tag + + + Returns the key for the map-entry. + @return Returns the key for the map-entry. + + + Returns the pagenumbers. + @return Returns the pagenumbers. + + + Returns the tags. + @return Returns the tags. + + + print the entry (only for test) + @return the toString implementation of the entry + + + If you want to add more than one page eventa to a PdfWriter, + you have to construct a PdfPageEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page eventa to the forwarder. + @param eventa an eventa that has to be added to the forwarder. + + + Called when the document is opened. + + @param writer + the PdfWriter for this document + @param document + the document + + + + Called when a page is finished, just before being written to the + document. + + @param writer + the PdfWriter for this document + @param document + the document + + + + + + + + + + + If you want to add more than one event to a cell, + you have to construct a PdfPCellEventForwarder, add the + different events to this object and add the forwarder to + the PdfPCell. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + If you want to add more than one page event to a PdfPTable, + you have to construct a PdfPTableEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[]) + + + @see com.itextpdf.text.pdf.PdfPTableEventAfterSplit#afterSplitTable(com.itextpdf.text.pdf.PdfPTable, com.itextpdf.text.pdf.PdfPRow, int) + @since iText 5.4.3 + + + + @author Paulo Soares + + + Constructs an extended color of a certain type and a certain color. + @param type + @param red + @param green + @param blue + @param alpha + + + Reads an FDF form and makes the fields available + @author Paulo Soares + + + Reads an FDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an FDF form. + @param pdfIn the byte array with the form + @throws IOException on error + + + Reads an FDF form. + @param url the URL of the document + @throws IOException on error + + + Reads an FDF form. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field dictionary. + @param name the fully qualified field name + @return the field dictionary + + + Gets a byte[] containing a file that is embedded in the FDF. + @param name the fully qualified field name + @return the bytes of the file + @throws IOException + @since 5.0.1 + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Writes an FDF form. + @author Paulo Soares + + + The PDF file associated with the FDF. + + + Creates a new FdfWriter. + + + Writes the content to a stream. + @param os the stream + @throws DocumentException on error + @throws IOException on error + + + Removes the field value. + @param field the field name + @return true if the field was found and removed, + false otherwise + + + Gets all the fields. The map is keyed by the fully qualified + field name and the values are PdfObject. + @return a map with all the fields + + + Gets the field value. + @param field the field name + @return the field value or null if not found + + + Sets the field value as a name. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a string. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a PDFAction. + For example, this method allows setting a form submit button action using {@link PdfAction#createSubmitForm(String, Object[], int)}. + This method creates an A entry for the specified field in the underlying FDF file. + Method contributed by Philippe Laflamme (plaflamme) + @param field the fully qualified field name + @param action the field's action + @return true if the value was inserted, + false if the name is incompatible with + an existing field + @since 2.1.5 + + + Sets all the fields from this FdfReader + @param fdf the FdfReader + + + Sets all the fields from this PdfReader + @param pdf the PdfReader + + + Sets all the fields from this AcroFields + @param acro the AcroFields + + + Gets the PDF file name associated with the FDF. + @return the PDF file name associated with the FDF + + + Each font in the document will have an instance of this class + where the characters used will be represented. + + @author Paulo Soares + + + The indirect reference to this font + + + The font name that appears in the document body stream + + + The font + + + The font if its an instance of TrueTypeFontUnicode + + + The array used with single byte encodings + + + The map used with double byte encodings. The key is Int(glyph) and the + value is int[]{glyph, width, Unicode code} + + + The font type + + + true if the font is symbolic + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Each font used in a document has an instance of this class. + This class stores the characters used in the document and other + specifics unique to the current working document. + @param fontName the font name + @param indirectReference the indirect reference to the font + @param baseFont the BaseFont + + + Gets the indirect reference to this font. + @return the indirect reference to this font + + + Gets the font name as it appears in the document body. + @return the font name + + + Gets the BaseFont of this font. + @return the BaseFont of this font + + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + @param text the text to convert + @return the conversion + + + Writes the font definition to the document. + @param writer the PdfWriter of this document + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. Set to false + to include all. + @param subset new value of property subset + + + + Adds a Font to be searched for valid characters. + @param font the Font + + + Process the text so that it will render with a combination of fonts + if needed. + @param text the text + @return a Phrase with one or more chunks + + + + @author Paulo Soares + + + Hyphenates words automatically accordingly to the language and country. + The hyphenator engine was taken from FOP and uses the TEX patterns. If a language + is not provided and a TEX pattern for it exists, it can be easily adapted. + + @author Paulo Soares + + + The hyphenator engine. + + + The second part of the hyphenated word. + + + Creates a new hyphenation instance usable in Chunk. + @param lang the language ("en" for english, for example) + @param country the country ("GB" for Great-Britain or "none" for no country, for example) + @param leftMin the minimun number of letters before the hyphen + @param rightMin the minimun number of letters after the hyphen + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + return number of items in array + + + returns current capacity of array + + + This is to implement memory allocation in the array. Like Malloc(). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Reset Vector but don't resize or clear elements + + + return number of items in array + + + returns current capacity of array + + + + + number of hyphenation points in word + + + rawWord as made of alternating strings and {@link Hyphen Hyphen} + instances + + + @return the number of hyphenation points in the word + + + @return the pre-break text, not including the hyphen character + + + @return the post-break text + + + @return the hyphenation points + + + + + value space: stores the inteletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + @param values a string of digits from '0' to '9' representing the + interletter values. + @return the index into the vspace array where the packed values + are stored. + + + String compare, returns 0 if equal or + t is a substring of s + + + + Hyphenate word and return a Hyphenation object. + @param word the word to be hyphenated + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + w = "****nnllllllnnn*****", + where n is a non-letter, l is a letter, + all n may be absent, the first n is at offset, + the first l is at offset + iIgnoreAtBeginning; + word = ".llllll.'\0'***", + where all l in w are copied into word. + In the first part of the routine len = w.length, + in the second part of the routine len = word.length. + Three indices are used: + Index(w), the index in w, + Index(word), the index in word, + Letterindex(word), the index in the letter part of word. + The following relations exist: + Index(w) = offset + i - 1 + Index(word) = i - iIgnoreAtBeginning + Letterindex(word) = Index(word) - 1 + (see first loop). + It follows that: + Index(w) - Index(word) = offset - 1 + iIgnoreAtBeginning + Index(w) = Letterindex(word) + offset + iIgnoreAtBeginning + Hyphenate word and return an array of hyphenation points. + @param w char array that contains the word + @param offset Offset to first character in word + @param len Length of word + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + Add a character class to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + + Add an exception to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} class as callback to + store the hyphenation exceptions. + @param word normalized word + @param hyphenatedword a vector of alternating strings and + {@link Hyphen hyphen} objects. + + + Add a pattern to the tree. Mainly, to be used by + {@link SimplePatternParser SimplePatternParser} class as callback to + add a pattern to the tree. + @param pattern the hyphenation pattern + @param ivalue interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + TODO: Don't use statics + + + @param lang + @param country + @param leftMin + @param rightMin + + + @param lang + @param country + @return the hyphenation tree + + + @param key + @return a hyphenation tree + + + @param lang + @param country + @param word + @param leftMin + @param rightMin + @return a hyphenation object + + + @param lang + @param country + @param word + @param offset + @param len + @param leftMin + @param rightMin + @return a hyphenation object + + + @param min + + + @param min + + + @param lang + @param country + + + @param word + @param offset + @param len + @return a hyphenation object + + + @param word + @return a hyphenation object + + + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + @param chargroup character group + + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + {@link Hyphen Hyphen} instances + + + Add hyphenation patterns. + @param pattern the pattern + @param values interletter values expressed as a string of + digit characters. + + + Parses the xml hyphenation pattern. + + @author Paulo Soares + + + Creates a new instance of PatternParser2 + + +

Ternary Search Tree

+ +

A ternary search tree is a hibrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash).

+ +

The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirenments to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe.

+ +

All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values.

+ + @author cav@uniscope.co.jp +
+ + We use 4 arrays to represent a node. I guess I should have created + a proper node class, but somehow Knuth's pascal code made me forget + we now have a portable language with memory management and + automatic garbage collection! And now is kind of late, furthermore, + if it ain't broken, don't fix it. + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + +

The character stored in this node: splitchar + Two special values are reserved:

+
  • 0x0000 as string terminator
  • +
  • 0xFFFF to indicate that the branch starting at + this node is compressed
+

This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character.

+
+ + This vector holds the trailing of the keys when the branch is compressed. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + + The actual insertion function, recursive version. + + + Compares 2 null terminated char arrays + + + Compares a string with null terminated char array + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + + Balance the tree for best search performance + + + Each node stores a character (splitchar) which is part of + some Key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + current node index + + + current key + + + TernaryTree parent + + + Node stack + + + key stack implemented with a StringBuilder + + + traverse upwards + + + traverse the tree to find next key + + + + Summary description for ICC_Profile. + + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + @author Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + @param text the Unicode string + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + @param char1 the Unicode char + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + @param b the input byte array + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Called by Chunk to hyphenate a word. + + @author Paulo Soares + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + This is the AcroForm object for the complete document. + + + This is the array containing the references to annotations + that were added to the document. + + + This is an array containg references to some delayed annotations + (that were added for a page that doesn't exist yet). + + + Checks if the AcroForm is valid. + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + Stores the PDF version information, + knows how to write a PDF Header, + and how to add the version to the catalog (if necessary). + + + Contains different strings that are part of the header. + + + Indicates if the header was already written. + + + Indicates if we are working in append mode. + + + The version that was or will be written to the header. + + + The version that will be written to the catalog. + + + The version that user can use to get the actual version of PDF document * + + + The extensions dictionary. + @since 2.1.6 + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + Sets the append mode. + + + Writes the header to the OutputStreamCounter. + @throws IOException + + + Returns the PDF version as a name. + @param version the version character. + + + Returns the version as a byte[]. + @param version the version character + + + Adds the version to the Catalog dictionary. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Stores the information concerning viewer preferences, + and contains the business logic that allows you to set viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences + + + A series of viewer preferences. + + + This value will hold the viewer preferences for the page layout and page mode. + + + This dictionary holds the viewer preferences (other than page layout and page mode). + + + The mask to decide if a ViewerPreferences dictionary is needed + + + Returns the page layout and page mode value. + + + Returns the viewer preferences. + + + Sets the viewer preferences as the sum of several constants. + + @param preferences + the viewer preferences + @see PdfWriter#setViewerPreferences + + + Given a key for a viewer preference (a PdfName object), + this method returns the index in the VIEWER_PREFERENCES array. + @param key a PdfName referring to a viewer preference + @return an index in the VIEWER_PREFERENCES array + + + Checks if some value is valid for a certain key. + + + Sets the viewer preferences for printing. + + + Adds the viewer preferences defined in the preferences parameter to a + PdfDictionary (more specifically the root or catalog of a PDF file). + + @param catalog + + + The value indicating if the PDF has to be in conformance with PDF/X. + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#setPDFXConformance(int) + + + @see com.itextpdf.text.pdf.interfaces.PdfIsoConformance#isPdfIso() + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if the PDF has to be in conformance with PDF/X-1a:2001 + @return true of the PDF has to be in conformance with PDF/X-1a:2001 + + + Checks if the PDF has to be in conformance with PDF/X-3:2002 + @return true of the PDF has to be in conformance with PDF/X-3:2002 + + + Business logic that checks if a certain object is in conformance with PDF/X. + @param writer the writer that is supposed to write the PDF/X file + @param key the type of PDF ISO conformance that has to be checked + @param obj1 the object that is checked for conformance + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + The interface common to all layer types. + + @author Paulo Soares + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Gets the object representing the layer. + @return the object representing the layer + + + Allows a class to catch several document events. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + Called when a page is initialized. +

+ Note that if even if a page is not written this method is still + called. It is preferable to use onEndPage to avoid + infinite loops. +

+

+ Note that this method isn't called for the first page. You should apply modifications for the first + page either before opening the document or by using the onOpenDocument() method. +

+ + @param writer the PdfWriter for this document + @param document the document +
+ + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + + Summary description for IPdfPCellEvent. + + + + + An interface that can be used to retrieve the position of cells in PdfPTable. + + @author Paulo Soares + + + + Implementation of the IndicLigaturizer for Gujarati. + + + Constructor for the IndicLigaturizer for Gujarati. + + + Hebrew is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Interface that needs to be implemented by classes that process bytes + representing text in specific languages. Processing involves changing + order to Right to Left and/or applying ligatures. + + + Processes a String + @param s the original String + @return the processed String + + + Indicates if the rundirection is right-to-left. + @return true if text needs to be rendered from right to left. + + + Superclass for processors that can convert a String of bytes in an Indic + language to a String in the same language of which the bytes are reordered + for rendering using a font that contains the necessary glyphs. + + + The table mapping specific character indexes to the characters in a + specific language. + + + Reorders the bytes in a String making Indic ligatures + + @param s + the original String + @return the ligaturized String + + + Indic languages are written from right to left. + + @return false + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Checks if a character is vowel letter. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel letter + + + Checks if a character is vowel sign. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel sign + + + Checks if a character is consonant letter. + + @param ch + the character that needs to be checked + @return true if the chracter is a consonant letter + + + Swaps two characters in a StringBuilder object + + @param s + the StringBuilder + @param i + the index of one character + @param j + the index of the other character + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newstring to the end of oldstring. + + + Represents a Bezier curve. + + @since 5.5.6 + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + Constructs new bezier curve. + @param controlPoints Curve's control points. + + + {@inheritDoc} + + + You can adjust precision of the approximation by varying the following + parameters: {@link #curveCollinearityEpsilon}, {@link #distanceToleranceSquare}, + {@link #distanceToleranceManhattan} + + @return {@link java.util.List} containing points of piecewise linear approximation + for this bezier curve. + @since 5.5.6 + + + @author kevin + @since 5.0.1 + + + Gets the content bytes from a content object, which may be a reference + a stream or an array. + @param contentObject the object to read bytes from + @return the content bytes + @throws IOException + + + Gets the content bytes of a page from a reader + @param reader the reader to get content bytes from + @param pageNum the page number of page you want get the content stream from + @return a byte array with the effective content stream of a page + @throws IOException + @since 5.0.1 + + + Simply extends the {@link com.itextpdf.text.pdf.parser.RenderListener} interface to provide + additional methods. + + {@inheritDoc} + + @since 5.5.6 + + + Called when the current path is being modified. E.g. new segment is being added, + new subpath is being started etc. + + @param renderInfo Contains information about the path segment being added to the current path. + + + Called when the current path should be rendered. + + @param renderInfo Contains information about the current path which should be rendered. + @return The path which can be used as a new clipping path. + + + Called when the current path should be set as a new clipping path. + + @param rule Either {@link PathPaintingRenderInfo#EVEN_ODD_RULE} or {@link PathPaintingRenderInfo#NONZERO_WINDING_RULE} + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + The filters to be applied + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + Applies filters, then delegates to the deleg if all filters pass + @param renderInfo contains info to render text + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + Applies filters, then delegates to the deleg if all filters pass + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.TextExtractionStrategy#getResultantText() + + + Keeps all the parameters of the graphics state. + @since 2.1.4 + + + The current transformation matrix. + + + The current character spacing. + + + The current word spacing. + + + The current horizontal scaling + + + The current leading. + + + The active font. + + + The current font size. + + + The current render mode. + + + The current text rise + + + The current knockout value. + + + The current color space for stroke. + + + The current color space for stroke. + + + The current fill color. + + + The current stroke color. + + + The line width for stroking operations + + + The line cap style. For possible values + see {@link PdfContentByte} + + + The line join style. For possible values + see {@link PdfContentByte} + + + The mitir limit value + + + The line dash pattern + + + Constructs a new Graphics State object with the default values. + + + Copy constructor. + @param source another GraphicsState object + + + Getter for the current transformation matrix + @return the ctm + @since iText 5.0.1 + + + Getter for the character spacing. + @return the character spacing + @since iText 5.0.1 + + + Getter for the word spacing + @return the word spacing + @since iText 5.0.1 + + + Getter for the horizontal scaling + @return the horizontal scaling + @since iText 5.0.1 + + + Getter for the leading + @return the leading + @since iText 5.0.1 + + + Getter for the font + @return the font + @since iText 5.0.1 + + + Getter for the font size + @return the font size + @since iText 5.0.1 + + + Getter for the render mode + @return the renderMode + @since iText 5.0.1 + + + Getter for text rise + @return the text rise + @since iText 5.0.1 + + + Getter for knockout + @return the knockout + @since iText 5.0.1 + + + Gets the current color space for fill operations + + + Gets the current color space for stroke operations + + + Gets the current fill color + @return a BaseColor + + + Gets the current stroke color + @return a BaseColor + + + Getter and setter for the line width. + @return The line width + @since 5.5.6 + + + Getter and setter for the line cap style. + For possible values see {@link PdfContentByte} + @return The line cap style. + @since 5.5.6 + + + Getter and setter for the line join style. + For possible values see {@link PdfContentByte} + @return The line join style. + @since 5.5.6 + + + Getter and setter for the miter limit value. + @return The miter limit. + @since 5.5.6 + + + Getter for the line dash pattern. + @return The line dash pattern. + @since 5.5.6 + + + Setter for the line dash pattern. + @param lineDashPattern New line dash pattern. + @since 5.5.6 + + + Interface implemented by a series of content operators + @since 2.1.4 + + + Invokes a content operator. + @param processor the processor that is dealing with the PDF content + @param operator the literal PDF syntax of the operator + @param operands the operands that come with the operator + @throws Exception any exception can be thrown - it will be re-packaged into a runtime exception and re-thrown by the {@link PdfContentStreamProcessor} + + + Represents image data from a PDF + @since 5.0.1 + + + The graphics state that was in effect when the image was rendered + + + A reference to the image XObject + + + A reference to an inline image + + + the color space associated with the image + + + the image object to be rendered, if it has been parsed already. Null otherwise. + + + Array containing marked content info for the text. + @since 5.5.11 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on inline image data. This is nowhere near completely thought through + and really just acts as a placeholder. + @param ctm the coordinate transformation matrix at the time the image is rendered + @param imageObject the image object representing the inline image + @return the ImageRenderInfo representing the rendered embedded image + @since 5.0.1 + + + Gets an object containing the image dictionary and bytes. + @return an object containing the image dictionary and byte[] + @since 5.0.2 + + + @return a vector in User space representing the start point of the xobject + + + @return The coordinate transformation matrix active when this image was rendered. Coordinates are in User space. + @since 5.0.3 + + + @return the size of the image, in User space units + + + @return an indirect reference to the image + @since 5.0.2 + + + @return the current fill color from the graphics state at the time this render operation occured + @since 5.5.7 + + + Checks if the image belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.5.11 + + + * Checks if the image belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.5.11 + + + @return the marked content associated with the ImageRenderInfo instance. + + + + Called when a new text block is beginning (i.e. BT) + @since iText 5.0.1 + + + Called when text should be rendered + @param renderInfo information specifying what to render + + + Called when a text block has ended (i.e. ET) + @since iText 5.0.1 + + + Called when image should be rendered + @param renderInfo information specifying what to render + @since iText 5.0.1 + + + Defines an interface for {@link RenderListener}s that can return text + @since 5.0.2 + + + Returns the result so far. + @return a String with the resulting text. + + + Represents a line. + + @since 5.5.6 + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + + + Constructs a new line based on the given coordinates. + + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash array and + a dash phase. + + @since 5.5.6 + + + Creates new {@link LineDashPattern} object. + @param dashArray The dash array. See {@link #getDashArray()} + @param dashPhase The dash phase. See {@link #getDashPhase()} + + + Getter and setter for the dash array. + + The dash array’s elements is number that specify the lengths of + alternating dashes and gaps; the numbers are nonnegative. The + elements are expressed in user space units. + + @return The dash array. + + + Getter and setter for the dash phase. + + The dash phase shall specify the distance into the dash pattern at which + to start the dash. The elements are expressed in user space units. + + @return The dash phase. + + + Calculates and returns the next element which is either gap or dash. + @return The next dash array's element. + + + Checks whether the dashed pattern is solid or not. It's solid when the + size of a dash array is even and sum of all the units off in the array + is 0.
+ For example: [3 0 4 0 5 0 6 0] (sum is 0), [3 0 4 0 5 1] (sum is 1). +
+ + Resets the dash array so that the {@link #next()} method will start + from the beginning of the dash array. + + + Represents a line segment in a particular coordinate system. This class is immutable. + @since 5.0.2 + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + @param startPoint the start point of a line segment. + @param endPoint the end point of a line segment. + + + @return the start point + + + @return the end point + + + @return the length of this line segment + @since 5.0.2 + + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + @return the bounding rectangle + @since 5.0.2 + + + Transforms the segment by the specified matrix + @param m the matrix for the transformation + @return the transformed segment + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + @param strat the custom strategy + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @param str + @return true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + @param str + @return true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + Filters the provided list with the provided filter + @param textChunks a list of all TextChunks that this strategy found during processing + @param filter the filter to apply. If null, filtering will be skipped. + @return the filtered list + @since 5.3.3 + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + @param chunk the new chunk being evaluated + @param previousChunk the chunk that appeared immediately before the current chunk + @return true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + Gets text that meets the specified filter + If multiple text extractions will be performed for the same page (i.e. for different physical regions of the page), + filtering at this level is more efficient than filtering using {@link FilteredRenderListener} - but not nearly as powerful + because most of the RenderInfo state is not captured in {@link TextChunk} + @param chunkFilter the filter to to apply + @return the text results so far, filtered using the specified filter + + + Returns the result so far. + @return a String with the resulting text. + + + Used for debugging only + + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + the starting location of the chunk + + + the ending location of the chunk + + + the orientation as a scalar for quick sorting + + + perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system) + we round to the nearest integer to handle the fuzziness of comparing floats + + + distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + the width of a single space character in the font of the chunk + + + @param comparedLine the location to compare to + @return true is this location is on the the same line as the other + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + unit vector in the orientation of the chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + @return the start location of the text + + + @return the end location of the text + + + @return the width of a single space character as rendered by this chunk + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @param as the location to compare to + @return true is this location is on the the same line as the other + + + + @param int1 + @param int2 + @return comparison of the two integers + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + Specifies a filter for filtering {@link TextChunk} objects during text extraction + @see LocationTextExtractionStrategy#getResultantText(TextChunkFilter) + @since 5.3.3 + + + @param textChunk the chunk to check + @return true if the chunk should be allowed + + + Represents a Marked Content block in a PDF + @since 5.0.2 + + + Get the tag of this marked content + @return the tag of this marked content + + + Determine if an MCID is available + @return true if the MCID is available, false otherwise + + + Gets the MCID value If the Marked Content contains + an MCID entry, returns that value. Otherwise, a {@link NullPointerException} is thrown. + @return the MCID value + @throws NullPointerException if there is no MCID (see {@link MarkedContentInfo#hasMcid()}) + + + A {@link RenderFilter} that only allows text within a specified marked content sequence. + @since 5.0.2 + + + The MCID to match. + + + Constructs a filter + @param mcid the MCID to match + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Keeps all the values of a 3 by 3 matrix + and allows you to do some math with matrices. + @since 2.1.4 + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + the values inside the matrix (the identity matrix by default). + default initialization is performed in the default constructor. + + + constructs a new Matrix with identity. + !shall be called from any other constructor! + + + Constructs a matrix that represents translation + @param tx + @param ty + + + Creates a Matrix with 6 specified entries + @param a + @param b + @param c + @param d + @param e + @param f + + + Gets a specific value inside the matrix. + @param index an array index corresponding with a value inside the matrix + @return the value at that specific position. + + + multiplies this matrix by 'b' and returns the result + See http://en.wikipedia.org/wiki/Matrix_multiplication + @param by The matrix to multiply by + @return the resulting matrix + + + Subtracts a matrix from this matrix and returns the results + @param arg the matrix to subtract from this matrix + @return a Matrix object + + + Computes the determinant of the matrix. + @return the determinant of the matrix + + + Checks equality of matrices. + @param obj the other Matrix that needs to be compared with this matrix. + @return true if both matrices are equal + @see java.lang.Object#equals(java.lang.Object) + + + Generates a hash code for this object. + @return the hash code of this object + @see java.lang.Object#hashCode() + + + Generates a String representation of the matrix. + @return the values, delimited with tabs and newlines. + @see java.lang.Object#toString() + + + Attaches a {@link RenderListener} for the corresponding filter set. + @param delegate RenderListener instance to be attached. + @param filterSet filter set to be attached. The delegate will be invoked if all the filters pass. + + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + @since 5.5.6 + + + @return A {@link java.util.List} of subpaths forming this path. + + + Adds the subpath to this path. + + @param subpath The subpath to be added to this path. + + + Adds the subpaths to this path. + + @param subpaths {@link java.util.List} of subpaths to be added to this path. + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + @return The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + + + Appends a straight line segment from the current point to the point (x, y). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the current + point represents two control points. + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the (x3, y3) + point represents two control points. + + + Appends a rectangle to the current path as a complete subpath. + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + @returns Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + + + Contains information relating to construction the current path. + + @since 5.5.6 + + + See {@link com.itextpdf.text.pdf.parser.Path#moveTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#lineTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveFromTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#closeSubpath()} + + + See {@link com.itextpdf.text.pdf.parser.Path#rectangle(float, float, float, float)} + + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains data of a new segment being added to the current path. + E.g. x, y, w, h for rectangle; x, y for line etc. + @param ctm Current transformation matrix. + + + See {@link #PathConstructionRenderInfo(int, java.util.List, Matrix)} + + + @return construction operation should be performed on the current path. + + + @return {@link java.util.List} containing data of a new segment (E.g. x, y, w, h for rectangle; + x, y for line etc.) if the specified operation relates to adding the segment to the + current path, null otherwise. + + + @return Current transformation matrix. + + + Contains information relating to painting current path. + + @since 5.5.6 + + + The nonzero winding number rule determines whether a given point is inside a path by + conceptually drawing a ray from that point to infinity in any direction and then examining + the places where a segment of the path crosses the ray. Starting with a count of 0, the rule + adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a + segment crosses from right to left. After counting all the crossings, if the result is 0, the + point is outside the path; otherwise, it is inside. + + For more details see PDF spec. + + + The even-odd rule determines whether a point is inside a path by drawing a ray from that point in + any direction and simply counting the number of path segments that cross the ray, regardless of + direction. If this number is odd, the point is inside; if even, the point is outside. + + For more details see PDF spec. + + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + @param operation One of the possible combinations of {@link #STROKE} and {@link #FILL} values or {@link #NO_OP} + @param rule Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + @param gs The graphics state. + + + If the operation is {@link #NO_OP} then the rule is ignored, + otherwise {@link #NONZERO_WINDING_RULE} is used by default. + + See {@link #PathPaintingRenderInfo(int, int, GraphicsState)} + + + @return int value which is either {@link #NO_OP} or one of possible + combinations of {@link #STROKE} and {@link #FILL} + + + @return Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + + + @return Current transformation matrix. + + + Tool that parses the content of a PDF document. + @since 2.1.4 + + + Shows the detail of a dictionary. + This is similar to the PdfLister functionality. + @param dic the dictionary of which you want the detail + @return a String representation of the dictionary + + + Shows the detail of a dictionary. + @param dic the dictionary of which you want the detail + @param depth the depth of the current dictionary (for nested dictionaries) + @return a String representation of the dictionary + + + Displays a summary of the entries in the XObject dictionary for the stream + @param resourceDic the resource dictionary for the stream + @return a string with the summary of the entries + @throws IOException + @since 5.0.2 + + + Writes information about a specific page from PdfReader to the specified output stream. + @since 2.1.5 + @param reader the PdfReader to read the page content from + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param out the output stream to send the content to + @throws IOException + + + Writes information about the specified page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified file, or System.out. + @param args + + + Processor for a PDF content Stream. + @since 2.1.4 + + + Default oper + @since 5.0.1 + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + + Stack keeping track of the graphics state. + + + Text matrix. + + + Text line matrix. + + + Listener that will be notified of render events + + + A map with all supported XObject handlers + + + The font cache. + @since 5.0.6 + + + + A stack containing marked content info. + @since 5.0.2 + + + Creates a new PDF Content Stream Processor that will send it's output to the + designated render listener. + + @param renderListener the {@link RenderListener} that will receive rendering notifications + + + + Gets the font pointed to by the indirect reference. The font may have been cached. + @param ind the indirect reference ponting to the font + @return the font + @since 5.0.6 + + + Loads all the supported graphics and text state operators in a map. + + + + @return {@link java.util.Collection} containing all the registered operators strings + @since 5.5.6 + + + Resets the graphics state stack, matrices and resources. + + + Returns the current graphics state. + @return the graphics state + + + Invokes an oper. + @param oper the PDF Syntax of the oper + @param operands a list with operands + + + Add to the marked content stack + @param tag the tag of the marked content + @param dict the PdfDictionary associated with the marked content + @since 5.0.2 + + + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + @since 5.0.2 + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + Displays text. + @param string the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + @param xobjectName the name of the XObject to retrieve from the resource dictionary + + + Displays the current path. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any int value. + @param close Indicates whether the path should be closed or not. + @since 5.5.6 + + + Modifies the current path. + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains x, y components of points of a new segment being added to the current path. + E.g. x1 y1 x2 y2 x3 y3 etc. It's ignored for "close subpath" operarion (h). + + + Adjusts the text matrix for the specified adjustment value (see TJ oper in the PDF spec for information) + @param tj the text adjustment + + + Processes PDF syntax. + Note: If you re-use a given {@link PdfContentStreamProcessor}, you must call {@link PdfContentStreamProcessor#reset()} + @param contentBytes the bytes of a content stream + @param resources the resources that come with the content stream + + + Callback when an inline image is found. This requires special handling because inline images don't follow the standard operator syntax + @param info the inline image + @param colorSpaceDic the color space for the inline immage + + + Property for the RenderListener object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + @return the renderListener + + + A resource dictionary that allows stack-like behavior to support resource dictionary inheritance + + + A content oper implementation (unregistered). + + + A content oper implementation (TJ). + + + A content oper implementation ("). + + + A content oper implementation ('). + + + A content oper implementation (Tj). + + + A content oper implementation (T*). + + + A content oper implementation (Tm). + + + A content oper implementation (TD). + + + A content oper implementation (Td). + + + A content oper implementation (Tf). + + + A content oper implementation (Tr). + + + A content oper implementation (Ts). + + + A content oper implementation (TL). + + + A content oper implementation (Tz). + + + A content oper implementation (Tc). + + + A content oper implementation (Tw). + + + A content oper implementation (gs). + + + A content oper implementation (q). + + + A content oper implementation (cm). + + + Gets a color based on a list of operands. + + + Gets a color based on a list of operands. + + + A content operator implementation (g). + + + A content operator implementation (G). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (cs). + + + A content operator implementation (CS). + + + A content operator implementation (sc / scn). + + + A content operator implementation (SC / SCN). + + + A content oper implementation (Q). + + + A content oper implementation (BT). + + + A content oper implementation (ET). + + + A content oper implementation (BMC). + @since 5.0.2 + + + A content oper implementation (BDC). + @since 5.0.2 + + + A content oper implementation (EMC). + @since 5.0.2 + + + A content oper implementation (Do). + + + A content operator implementation (w). + + + A content operator implementation (J). + + + A content operator implementation (j). + + + A content operator implementation (M). + + + A content operator implementation (d). + + + A content operator implementation (m). + + @since 5.5.6 + + + A content operator implementation (l). + + @since 5.5.6 + + + A content operator implementation (c). + + @since 5.5.6 + + + A content operator implementation (v). + + @since 5.5.6 + + + A content operator implementation (y). + + @since 5.5.6 + + + A content operator implementation (h). + + @since 5.5.6 + + + A content operator implementation (re). + + @since 5.5.6 + + + A content operator implementation (S, s, f, F, f*, B, B*, b, b*). + + @since 5.5.6 + + + Constructs PainPath object. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any value. + @param close Indicates whether the path should be closed or not. + + + A content operator implementation (n). + + @since 5.5.6 + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + An object that contains an image dictionary and image bytes. + @since 5.0.2 + + + Different types of data that can be stored in the bytes of a {@link PdfImageObject} + @since 5.0.4 + + + the recommended file extension for streams of this type + + + @param fileExtension the recommended file extension for use with data of this type (for example, if the bytes were just saved to a file, what extension should the file have) + + + @return the file extension registered when this type was created + + + A filter that does nothing, but keeps track of the filter type that was used + @since 5.0.4 + + + The image dictionary. + + + The decoded image bytes (after applying filters), or the raw image bytes if unable to decode + + + Tracks the type of data that is actually stored in the streamBytes member + + + @return the type of image data that is returned by getImageBytes() + + + Creates a PdfImage object. + @param stream a PRStream + @throws IOException + + + Creates a PdfImage object. + @param stream a PRStream + @param colorSpaceDic a color space dictionary + @throws IOException + + + Creats a PdfImage object using an explicitly provided dictionary and image bytes + @param dictionary the dictionary for the image + @param samples the samples + @since 5.0.3 + + + Returns an entry from the image dictionary. + @param key a key + @return the value + + + Returns the image dictionary. + @return the dictionary + + + Sets state of this object according to the color space + @param colorspace the colorspace to use + @param allowIndexed whether indexed color spaces will be resolved (used for recursive call) + @throws IOException if there is a problem with reading from the underlying stream + + + decodes the bytes currently captured in the streamBytes and replaces it with an image representation of the bytes + (this will either be a png or a tiff, depending on the color depth of the image) + @throws IOException + + + @return the bytes of the image (the format will be as specified in {@link PdfImageObject#getImageBytesType()} + @throws IOException + @since 5.0.4 + + + A utility class that makes it cleaner to process content from pages of a PdfReader + through a specified RenderListener. + @since 5.0.2 + + + the reader this parser will process + + + + + Extracts text from a PDF file. + @since 2.1.4 + + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom ContentOperators + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @param additionalContentOperators an optional dictionary of custom IContentOperators for rendering instructions + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + + + Extract text from a specified page using an extraction strategy. + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + @since 5.0.2 + + + + A {@link RenderFilter} that only allows text within a specified rectangular region + @since 5.0.1 + + + the region to allow text from + + + Constructs a filter + @param filterRect the rectangle to filter text against. Note that this is a java.awt.Rectangle ! + + + Constructs a filter + @param filterRect the rectangle to filter text against. + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Interface for defining filters for use with {@link FilteredRenderListener} + @since 5.0.1 + + + @param renderInfo + @return true if the text render operation should be performed + + + + @param renderInfo + @return true if the image render operation should be performed + + + Represents segment from a PDF path. + + @since 5.5.6 + + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + @return Ordered list consisting of shape's base points. + + + A simple text extraction renderer. + + This renderer keeps track of the current Y position of each string. If it detects + that the y position has changed, it inserts a line break into the output. If the + PDF renders text in a non-top-to-bottom fashion, this will result in the text not + being a true representation of how it appears in the PDF. + + This renderer also uses a simple strategy based on the font metrics to determine if + a blank space should be inserted into the output. + + @since 2.1.5 + + + used to store the resulting String. + + + Creates a new text extraction renderer. + + + @since 5.0.1 + + + @since 5.0.1 + + + Returns the result so far. + @return a String with the resulting text. + + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + @param text the text to append to the text results accumulated so far + + + Captures text using a simplified algorithm for inserting hard returns and spaces + @param renderInfo render info + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + As subpath is a part of a path comprising a sequence of connected segments. + + @since 5.5.6 + + + Copy constuctor. + @param subpath + + + Constructs a new subpath starting at the given point. + + + Constructs a new subpath starting at the given point. + + + Sets the start point of the subpath. + @param startPoint + + + Sets the start point of the subpath. + @param x + @param y + + + @return The point this subpath starts at. + + + @return The last point of the subpath. + + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + @param segment new segment. + + + @return {@link java.util.List} comprising all the segments + the subpath made on. + + + Checks whether subpath is empty or not. + @return true if the subpath is empty, false otherwise. + + + @return true if this subpath contains only one point and it is not closed, + false otherwise + + + Returns or sets a bool value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + @return bool value indicating whether the path must be closed or not. + @since 5.5.6 + + + Returns a bool indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + @return bool value indicating whether the path is degenerate or not. + @since 5.5.6 + + + @return {@link java.util.List} containing points of piecewise linear approximation + for this subpath. + @since 5.5.6 + + + Converts a tagged PDF document into an XML file. + + @since 5.0.2 + + + The reader obj from which the content streams are read. + + + The writer obj to which the XML will be written + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + @param charset + the charset to encode the data + @since 5.0.5 + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + + + Inspects a child of a structured element. This can be an array or a + dictionary. + + @param k + the child to inspect + @throws IOException + + + If the child of a structured element is an array, we need to loop over + the elements. + + @param k + the child array to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + Searches for a tag in a page. + + @param tag + the name of the tag + @param obj + an identifier to find the marked content + @param page + a page dictionary + @throws IOException + + + Allows you to find the rectangle that contains all the text in a page. + @since 5.0.2 + + + Method invokes by the PdfContentStreamProcessor. + Passes a TextRenderInfo for every text chunk that is encountered. + We'll use this object to obtain coordinates. + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Getter for the left margin. + @return the X position of the left margin + + + Getter for the bottom margin. + @return the Y position of the bottom margin + + + Getter for the right margin. + @return the X position of the right margin + + + Getter for the top margin. + @return the Y position of the top margin + + + Gets the width of the text block. + @return a width + + + Gets the height of the text block. + @return a height + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + + + + ! .NET SPECIFIC ! + is used for caching "UTF-16BE" encoding to improve performance + + + Array containing marked content info for the text. + @since 5.0.2 + + + Creates a new TextRenderInfo object + @param string the PDF string that should be displayed + @param gs the graphics state (note: at this time, this is not immutable, so don't cache it) + @param textMatrix the text matrix at the time of the render operation + @param markedContentInfo the marked content sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character + @param parent the parent TextRenderInfo + @param string the content of a TextRenderInfo + @param horizontalOffset the unscaled horizontal offset of the character that this TextRenderInfo represents + @since 5.3.3 + + + @return the text to render + + + @return original PDF string + + + Checks if the text belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.0.2 + + + * Checks if the text belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.3.5 + + + @return the marked content associated with the TextRenderInfo instance. + + + @return the unscaled (i.e. in Text space) width of the text + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the baseline line segment + @since 5.0.2 + + + Gets the ascentline for the text (i.e. the line that represents the topmost extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the ascentline line segment + @since 5.0.2 + + + Gets the descentline for the text (i.e. the line that represents the bottom most extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the descentline line segment + @since 5.0.2 + + + Getter for the font + @return the font + @since iText 5.0.2 + + + The rise represents how far above the nominal baseline the text should be rendered. The {@link #getBaseline()}, {@link #getAscentLine()} and {@link #getDescentLine()} methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + @return The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + @since 5.3.3 + + + + @param width the width, in text space + @return the width in user space + @since 5.3.3 + + + + @param height the height, in text space + @return the height in user space + @since 5.3.3 + + + @return The width, in user space units, of a single space character in the current font + + + @return the text render mode that should be used for the text. From the + PDF specification, this means: +
    +
  • 0 = Fill text
  • +
  • 1 = Stroke text
  • +
  • 2 = Fill, then stroke text
  • +
  • 3 = Invisible
  • +
  • 4 = Fill text and add to path for clipping
  • +
  • 5 = Stroke text and add to path for clipping
  • +
  • 6 = Fill, then stroke text and add to path for clipping
  • +
  • 7 = Add text to padd for clipping
  • +
+ @since iText 5.0.1 +
+ + @return the current fill color. + + + @return the current stroke color. + + + Calculates the width of a space character. If the font does not define + a width for a standard space character \u0020, we also attempt to use + the width of \u00A0 (a non-breaking space in many fonts) + @return the width of a single space character in text space units + + + Gets the width of a String in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Gets the width of a PDF string in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + @return A list of {@link TextRenderInfo} objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + @since 5.3.3 + + + Calculates width and word spacing of a single character PDF string. + @param string a character to calculate width. + @param singleCharString true if PDF string represents single character, false otherwise. + @return array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + Converts a single character string to char code. + + @param string single character string to convert to. + @return char code. + + + Split PDF string into array of single character PDF strings. + @param string PDF string to be splitted. + @return splitted PDF string. + + + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + @param x the X coordinate + @param y the Y coordinate + @param z the Z coordinate + + + Gets the value from a coordinate of the vector + @param index the index of the value to get (I1, I2 or I3) + @return a coordinate value + + + Computes the cross product of this vector and the specified matrix + @param by the matrix to cross this vector with + @return the result of the cross product + + + Computes the difference between this vector and the specified vector + @param v the vector to subtract from this one + @return the results of the subtraction + + + Computes the cross product of this vector and the specified vector + @param with the vector to cross this vector with + @return the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + @return the unit vector + @since 5.0.1 + + + Multiplies the vector by a scalar + @param by the scalar to multiply by + @return the result of the scalar multiplication + @since 5.0.1 + + + Computes the dot product of this vector with the specified vector + @param with the vector to dot product this vector with + @return the dot product + + + + + @see java.lang.Object#toString() + + + @since 5.0.1 + @see java.lang.Object#equals(java.lang.Object) + + + @author Kevin Day + @since iText 5.0.1 + + + Represents an inline image from a PDF + @since 5.1.4 + + + @return the image dictionary associated with this inline image + + + @return the raw samples associated with this inline image + + + Utility methods to help with processing of inline images + @since 5.0.4 + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + @since 5.0.4 + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + @param ps the content parser to use for reading the image. + @return the parsed image + @throws IOException if anything goes wring with the parsing + @throws InlineImageParseException if parsing of the inline image failed due to issues specific to inline image processing + + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the EI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + @param ps the parser to extract the embedded image information from + @return the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + @throws IOException if the parse fails + + + Transforms value abbreviations into their corresponding real value + @param key the key that the value is for + @param value the value that might be an abbreviation + @return if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + @param colorSpaceName the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + @return the components per pixel for the specified color space + + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + @param imageDictionary the dictionary of the inline image + @return the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Represents a pattern. Can be used in high-level constructs (Paragraph, Cell, etc.). + + + The actual pattern. + + + Creates a color representing a pattern. + @param painter the actual pattern + + + Gets the pattern. + @return the pattern + + + Each PDF document can contain maximum 1 AcroForm. + + + This is a map containing FieldTemplates. + + + This is an array containing DocumentFields. + + + This is an array containing the calculationorder of the fields. + + + Contains the signature flags. + + + Creates new PdfAcroForm + + + Adds fieldTemplates. + + + Adds documentFields. + + + Closes the AcroForm. + + + Adds an object to the calculationOrder. + + + Sets the signature flags. + + + Adds a formfield to the AcroForm. + + + @param field + @param name + @param llx + @param lly + @param urx + @param ury + + + @param field + @param llx + @param lly + @param urx + @param ury + + + A PdfAction defines an action that can be triggered from a PDF file. + + @see PdfDictionary + + + A named action to go to the first page. + + + A named action to go to the previous page. + + + A named action to go to the next page. + + + A named action to go to the last page. + + + A named action to open a print dialog. + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + Create an empty action. + + + Constructs a new PdfAction of Subtype URI. + + @param url the Url to go to + + + Constructs a new PdfAction of Subtype URI. + + @param url the url to go to + + + Constructs a new PdfAction of Subtype GoTo. + @param destination the destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param name the named destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param page the page destination to go to + + + Implements name actions. The action can be FIRSTPAGE, LASTPAGE, + NEXTPAGE and PREVPAGE. + @param named the named action + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + @return a Launch action + + + Creates a Rendition action + @param file + @param fs + @param mimeType + @param ref + @return a Media Clip action + @throws IOException + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be placed as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + @return the JavaScript action + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be place as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @return the JavaScript action + + + Add a chained action. + @param na the next action + + + Creates a GoTo action to an internal page. + @param page the page to go. First page is 1 + @param dest the destination for the page + @param writer the writer for this action + @return a GoTo action + + + Creates a GoTo action to a named destination. + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToR action + + + Creates a GoToR action to a named destination. + @param filename the file name to go to + @param dest the destination name + @param isName if true sets the destination as a name, if false sets it as a String + @param newWindow open the document in a new window if true, if false the current document is replaced by the new document. + @return a GoToR action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToE action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param target a path to the target document of this action + @param dest the destination inside the target document, can be of type PdfDestination, PdfName, or PdfString + @param newWindow if true, the destination document should be opened in a new window + @return a GoToE action + + + + A PdfAnnotation is a note that is associated with a page. + + @see PdfDictionary + + + flagvalue PDF 1.7 + + + attributevalue + + + Holds value of property used. + + + Holds value of property placeInPage. + + + Constructs a new PdfAnnotation of subtype text. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates a screen PdfAnnotation + @param writer + @param rect + @param clipTitle + @param fs + @param mimeType + @param playOnDisplay + @return a screen PdfAnnotation + @throws IOException + + + Creates a file attachment annotation. + @param writer the PdfWriter + @param rect the dimensions in the page of the annotation + @param contents the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + @return the annotation + + + Creates a file attachment annotation + @param writer + @param rect + @param contents + @param fs + @return the annotation + @throws IOException + + + Creates a polygon or -line annotation + @param writer the PdfWriter + @param rect the annotation position + @param contents the textual content of the annotation + @param polygon if true, the we're creating a polygon annotation, if false, a polyline + @param vertices an array with the vertices of the polygon or -line + @since 5.0.2 + + + Sets the annotation's highlighting mode. The values can be + HIGHLIGHT_NONE, HIGHLIGHT_INVERT, + HIGHLIGHT_OUTLINE and HIGHLIGHT_PUSH; + @param highlight the annotation's highlighting mode + + + Getter for property form. + @return Value of property form. + + + Getter for property annotation. + @return Value of property annotation. + + + Getter for property placeInPage. + @return Value of property placeInPage. + + + Sets the layer this annotation belongs to. + @param layer the layer this annotation belongs to + + + Sets the name of the annotation. + With this name the annotation can be identified among + all the annotations on a page (it has to be unique). + + + This class processes links from imported pages so that they may be active. The following example code reads a group + of files and places them all on the output PDF, four pages in a single page, keeping the links active. +
+            String[] files = new String[] {"input1.pdf", "input2.pdf"};
+            String outputFile = "output.pdf";
+            int firstPage=1;
+            Document document = new Document();
+            PdfWriter writer = PdfWriter.GetInstance(document, new FileOutputStream(outputFile));
+            document.SetPageSize(PageSize.A4);
+            float W = PageSize.A4.GetWidth() / 2;
+            float H = PageSize.A4.GetHeight() / 2;
+            document.Open();
+            PdfContentByte cb = writer.GetDirectContent();
+            for (int i = 0; i < files.length; i++) {
+               PdfReader currentReader = new PdfReader(files[i]);
+               currentReader.ConsolidateNamedDestinations();
+               for (int page = 1; page <= currentReader.GetNumberOfPages(); page++) {
+                   PdfImportedPage importedPage = writer.GetImportedPage(currentReader, page);
+                   float a = 0.5f;
+                   float e = (page % 2 == 0) ? W : 0;
+                   float f = (page % 4 == 1 || page % 4 == 2) ? H : 0;
+                   ArrayList links = currentReader.GetLinks(page);
+                   cb.AddTemplate(importedPage, a, 0, 0, a, e, f);
+                   for (int j = 0; j < links.Size(); j++) {
+                       PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.Get(j);
+                       if (link.IsInternal()) {
+                           int dPage = link.GetDestinationPage();
+                           int newDestPage = (dPage-1)/4 + firstPage;
+                           float ee = (dPage % 2 == 0) ? W : 0;
+                           float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0;
+                           link.SetDestinationPage(newDestPage);
+                           link.TransformDestination(a, 0, 0, a, ee, ff);
+                       }
+                       link.TransformRect(a, 0, 0, a, e, f);
+                       writer.AddAnnotation(link.CreateAnnotation(writer));
+                   }
+                   if (page % 4 == 0)
+                   document.NewPage();
+               }
+               if (i < files.length - 1)
+               document.NewPage();
+               firstPage += (currentReader.GetNumberOfPages()+3)/4;
+            }
+            document.Close();
+            
+
+ + Returns a String representation of the link. + @return a String representation of the imported link + @since 2.1.6 + + + Implements the appearance stream to be used with form fields.. + + + Creates a PdfAppearance. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + + this is the actual array of PdfObjects + + + Constructs an empty PdfArray-object. + + + Constructs an PdfArray-object, containing 1 PdfObject. + + @param object a PdfObject that has to be added to the array + + + Constructs a PdfArray with the elements of an ArrayList. + Throws a ClassCastException if the ArrayList contains something + that isn't a PdfObject. + @param l an ArrayList with PdfObjects + @since 2.1.3 + + + Constructs an PdfArray-object, containing all the PdfObjects in a given PdfArray. + + @param array a PdfArray that has to be added to the array + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + Overwrites a specified location of the array. + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Returns the PdfObject with the specified index. + + A possible indirect references is not resolved, so the returned + PdfObject may be either a direct object or an indirect + reference, depending on how the object is stored in the + PdfArray. + + @param idx The index of the PdfObject to be returned + @return A PdfObject + + + Overwrites a specified location of the array, returning the previous + value + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Remove the element at the specified position from the array. + + Shifts any subsequent elements to the left (subtracts one from their + indices). + + @param idx The index of the element to be removed. + @throws IndexOutOfBoundsException the specified position doesn't exist + @since 2.1.5 + + + Returns an ArrayList containing PdfObjects. + + @return an ArrayList + + + Returns the number of entries in the array. + + @return the size of the ArrayList + + + Returns true if the array is empty. + + @return true if the array is empty + @since 2.1.5 + + + Adds a PdfObject to the PdfArray. + + @param object PdfObject to add + @return true + + + Inserts the specified element at the specified position. + + Shifts the element currently at that position (if any) and + any subsequent elements to the right (adds one to their indices). + + @param index The index at which the specified element is to be inserted + @param element The element to be inserted + @throws IndexOutOfBoundsException if the specified index is larger than the + last position currently set, plus 1. + @since 2.1.5 + + + Inserts a PdfObject at the beginning of the + PdfArray. + + The PdfObject will be the first element, any other elements + will be shifted to the right (adds one to their indices). + + @param object The PdfObject to add + + + Checks if the PdfArray already contains a certain PdfObject. + + @param object PdfObject to check + @return true + + + + @return this PdfArray's values as a long[] + @since 5.3.5 + + + + @return this PdfArray's values as a double[] + @since 5.5.6 + + + + A possible value of PdfBoolean + + + A possible value of PdfBoolean + + + the bool value of this object + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject, represented as a string + + @throws BadPdfFormatException thrown if the value isn't 'true' or 'false' + + + Returns the primitive value of the PdfBoolean-object. + + @return the actual value of the object. + + + A PdfBorderArray defines the border of a PdfAnnotation. + + @see PdfArray + + + Constructs a new PdfBorderArray. + + + Constructs a new PdfBorderArray. + + + A PdfBorderDictionary define the appearance of a Border (Annotations). + + @see PdfDictionary + + + Constructs a PdfBorderDictionary. + + + + The allowed attributes in variable attributes. + + + The allowed attributes in variable noStroke. + + + The value of this object. + + + The encoding. + + + The font for this PdfChunk. + + + + + true if the chunk split was cause by a newline. + + + The image in this PdfChunk, if it has one + + + The offset in the x direction for the image + + + The offset in the y direction for the image + + + Indicates if the height and offset of the Image has to be taken into account + + + The leading that can overrule the existing leading. + + + Constructs a PdfChunk-object. + + @param string the content of the PdfChunk-object + @param font the PdfFont + @param attributes the metrics attributes + @param noStroke the non metric attributes + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + @param tabSettings the Phrase tab settings + + + + + + Returns the font of this Chunk. + + @return a PdfFont + + + Returns the color of this Chunk. + + @return a BaseColor + + + Returns the width of this PdfChunk. + + @return a width + + + Checks if the PdfChunk split was caused by a newline. + @return true if the PdfChunk split was caused by a newline. + + + Gets the width of the PdfChunk taking into account the + extra character and word spacing. + @param charSpacing the extra character spacing + @param wordSpacing the extra word spacing + @return the calculated width + + + Gets the text displacement relatiev to the baseline. + @return a displacement in points + + + Trims the last space. + @return the width of the space trimmed, otherwise 0 + + + Gets an attribute. The search is made in attributes + and noStroke. + @param name the attribute key + @return the attribute value or null if not found + + + Checks if the attribute exists. + @param name the attribute key + @return true if the attribute exists + + + Checks if this PdfChunk needs some special metrics handling. + @return true if this PdfChunk needs some special metrics handling. + + + Checks if this PdfChunk is a Separator Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Checks if this PdfChunk is a horizontal Separator Chunk. + @return true if this chunk is a horizontal separator. + @since 2.1.2 + + + Checks if this PdfChunk is a tab Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Correction for the tab position based on the left starting position. + @param newValue the new value for the left X. + @since 2.1.2 + + + Checks if there is an image in the PdfChunk. + @return true if an image is present + + + Gets the image in the PdfChunk. + @return the image or null + + + Returns a scalePercentage in case the image needs to be scaled. + Sets a scale percentage in case the image needs to be scaled. + + + Gets the image offset in the x direction + @return the image offset in the x direction + + + Gets the image offset in the y direction + @return Gets the image offset in the y direction + + + sets the value. + + + Tells you if this string is in Chinese, Japanese, Korean or Identity-H. + + + Gets the encoding of this string. + + @return a string + + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + Constructs a new PdfColor. + + @param red a value between 0 and 255 + @param green a value between 0 and 255 + @param blue a value between 0 and 255 + + + PdfContentByte is an object containing the user positioned + text and graphic contents of a page. It knows how to apply the proper + font encoding. + + + This class keeps the graphic state of the current page + + + This is the font in use + + + This is the color in use + + + This is the font size in use + + + The x position of the text line matrix. + + + The y position of the text line matrix. + + + The current text leading. + + + The current horizontal scaling + + + The current character spacing + + + The current word spacing + + + The alignement is center + + + The alignement is left + + + The alignement is right + + + A possible line cap value + + + A possible line cap value + + + A possible line cap value + + + A possible line join value + + + A possible line join value + + + A possible line join value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + This is the actual content + + + This is the writer + + + This is the PdfDocument + + + This is the GraphicState in use + + + The list were we save/restore the layer depth + + + The list were we save/restore the state + + + The separator between commands. + + + Constructs a new PdfContentByte-object. + + @param wr the writer associated to this content + + + Returns the string representation of this PdfContentByte-object. + + @return a string + + + [SUP-1395] If set, prevents iText from marking content and creating structure tags for items added to this content stream. + (By default, iText automatically marks content using BDC/EMC operators, and adds a structure tag for the new content + at the end of the page.) + + + Checks if the content needs to be tagged. + @return false if no tags need to be added + + + Gets the internal buffer. + @return the internal buffer + + + Returns the PDF representation of this PdfContentByte-object. + + @param writer the PdfWriter + @return a byte array with the representation + + + Adds the content of another PdfContent-object to this object. + + @param other another PdfByteContent-object + + + Gets the x position of the text line matrix. + + @return the x position of the text line matrix + + + Gets the y position of the text line matrix. + + @return the y position of the text line matrix + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current word spacing. + + @return the current word spacing + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current text leading. + + @return the current text leading + + + + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + + + + + + + + + + + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding number rule to determine which regions lie inside the clipping + path. + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + + Changes the currentgray tint for filling paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for filling paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for filling paths to black. + + + Changes the currentgray tint for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for stroking paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for stroking paths to black. + + + Helper to validate and write the RGB color components + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (minimum intensity) and + 1 (maximum intensity).

+ + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + Changes the current color for stroking paths to black. + + + + Helper to validate and write the CMYK color components. + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink).

+ + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + + Changes the current color for stroking paths to black. + + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a variable width border to the current path. + Only use if {@link com.lowagie.text.Rectangle#isUseVariableBorders() Rectangle.isUseVariableBorders} + = true. + @param rect a Rectangle + + + Adds a border (complete or partially) to the current path.. + + @param rectangle a Rectangle + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + + Ends the path without filling or stroking it. + + + Strokes the path. + + + Closes the path and strokes it. + + + Fills the path, using the non-zero winding number rule to determine the region to fill. + + + Fills the path, using the even-odd rule to determine the region to fill. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + + Adds an Image to the page. The Image must have + absolute positioning. + @param image the Image object + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The Image must have + absolute positioning. The image can be placed inline. + @param image the Image object + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @param isMCBlockOpened true not to open MCBlock, false otherwise + @throws DocumentException on error + + + Makes this PdfContentByte empty. + Calls reset( true ) + + + Makes this PdfContentByte empty. + @param validateContent will call sanityCheck() if true. + @since 2.1.6 + + + Starts the writing of text. + @param restoreTM indicates if to restore text matrix of the previous text block. + + + Starts the writing of text. + + + Ends the writing of text and makes the current font invalid. + + + Saves the graphic state. saveState and + restoreState must be balanced. + + + Restores the graphic state. saveState and + restoreState must be balanced. + + + Sets the character spacing parameter. + + @param charSpace a parameter + + + Sets the word spacing parameter. + + @param wordSpace a parameter + + + Sets the horizontal scaling parameter. + + @param scale a parameter + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + Sets the text rendering parameter. + + @param rendering a parameter + + + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + A helper to insert into the content stream the text + converted to bytes according to the font's encoding. + + @param text the text to write + + + Shows the text. + + @param text the text to write + + + Constructs a kern array for a text in a certain font + @param text the text + @param font the font + @return a PdfTextArray + + + Shows the text kerned. + + @param text the text to write + + + Moves to the next line and shows text. + + @param text the text to write + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + @param wordSpacing a parameter + @param charSpacing a parameter + @param text the text to write + + + Changes the text matrix. +

+ Remark: this operation also initializes the current point position.

+ + @param a operand 1,1 in the matrix + @param b operand 1,2 in the matrix + @param c operand 2,1 in the matrix + @param d operand 2,2 in the matrix + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + + + Changes the text matrix. The first four parameters are {1,0,0,1}. +

+ Remark: this operation also initializes the current point position.

+ + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + Moves to the start of the next line, offset from the start of the current line. + + @param x x-coordinate of the new current point + @param y y-coordinate of the new current point + + + Moves to the start of the next line, offset from the start of the current line. +

+ As a side effect, this sets the leading parameter in the text state.

+ + @param x offset of the new current point + @param y y-coordinate of the new current point +
+ + Moves to the start of the next line. + + + Gets the size of this content. + + @return the size of the content + + + Adds a named outline to the document. + + @param outline the outline + @param name the name for the local destination + + + Gets the root outline. + + @return the root outline + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The additional spacing is not computed for the last character + of the string. + @param text the string to get width of + @param kerned the kerning option + @return the width + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The spacing for the last character is also computed. + It also takes into account kerning that can be specified within TJ operator (e.g. [(Hello) 123 (World)] TJ) + @param text the string to get width of + @param kerned the kerning option + @param kerning the kerning option from TJ array + @return the width + + + Shows text right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + Shows text kerned right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + @since 5.0.1 + + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Create a new colored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @return the PdfPatternPainter where the pattern will be created + + + Create a new colored tiling pattern. Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Adds a PostScript XObject to this content. + + @param psobject the object + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink). This method however accepts only ints between 0x00 and 0xFF.

+ + @param cyan the intensity of cyan + @param magenta the intensity of magenta + @param yellow the intensity of yellow + @param black the intensity of black +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param cyan the intensity of red + @param magenta the intensity of green + @param yellow the intensity of blue + @param black the intensity of black +
+ + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF.

+ + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Sets the stroke color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the stroke color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the fill color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Outputs the color values to the content. + @param color The color + @param tint the tint if it is a spot color, ignored otherwise + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Paints using a shading object. + @param shading the shading object + + + Paints using a shading pattern. + @param shading the shading pattern + + + Sets the shading fill pattern. + @param shading the shading pattern + + + Sets the shading stroke pattern + @param shading the shading pattern + + + Check if we have a valid PdfWriter. + + + + Show an array of text. + @param text array of text + + + Gets the PdfWriter in use by this object. + @return the PdfWriter in use by this object + + + Gets the PdfDocument in use by this object. + @return the PdfDocument in use by this object + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + The local destination to where a local goto with the same + name will jump. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already exists + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Outputs a string directly to the content. + @param s the string + + + Outputs a char directly to the content. + @param c the char + + + Outputs a float directly to the content. + @param n the float + + + Throws an error if it is a pattern. + @param t the object to check + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a button. + + + Draws a button. + + + Sets the graphic state + @param gstate the graphic state + + + + Ends a layer controled graphic block. It will end the most recent open block. + + + Sets the default colorspace. + @param name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB + or PdfName.DEFAULTCMYK + @param obj the colorspace. A null or PdfNull removes any colorspace with the same name + + + Concatenates a transformation to the current transformation + matrix. + @param af the transformation + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Ends a marked content sequence + + + Begins a marked content sequence. If property is null the mark will be of the type + BMC otherwise it will be BDC. + @param tag the tag + @param property the property + @param inline true to include the property in the content or false + to include the property in the resource dictionary with the possibility of reusing + + + This is just a shorthand to beginMarkedContentSequence(tag, null, false). + @param tag the tag + + + Checks for any dangling state: Mismatched save/restore state, begin/end text, + begin/end layer, or begin/end marked content sequence. + If found, this function will throw. This function is called automatically + during a Reset() (from Document.NewPage() for example), and before writing + itself out in ToPdf(). + One possible cause: not calling myPdfGraphics2D.Dispose() will leave dangling + SaveState() calls. + @since 2.1.6 + @throws IllegalPdfSyntaxException (a runtime exception) + + + Parses the page or template content. + @author Paulo Soares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + @param tokeniser the tokeniser with the content + + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + @param ls an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + @return the same ArrayList given as argument or a new one + @throws IOException on error + + + Gets the tokeniser. + @return the tokeniser. + + + Sets the tokeniser. + @param tokeniser the tokeniser + + + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + @return the dictionary + @throws IOException on error + + + Reads an array. The tokeniser must be positioned past the "[" token. + @return an array + @throws IOException on error + + + Reads a pdf object. + @return the pdf object + @throws IOException on error + + + Reads the next token skipping over the comments. + @return true if a token was read, false if the end of content was reached + @throws IOException on error + + + PdfContents is a PdfStream containing the contents (text + graphics) of a PdfPage. + + + Constructs a PdfContents-object, containing text and general graphics. + + @param under the direct content that is under all others + @param content the graphics in a page + @param text the text in a page + @param secondContent the direct content that is over all others + @throws BadPdfFormatException on error + + + Make copies of PDF documents. Documents can be edited after reading and + before writing them out. + @author Mark Thompson + + + This class holds information about indirect references, since they are + renumbered by iText. + + + Holds value of property rotateContents. + + + Constructor + @param document + @param os outputstream + + + Setting page events isn't possible with Pdf(Smart)Copy. + Use the PageStamp class if you want to add content to copied pages. + @see com.itextpdf.text.pdf.PdfWriter#setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Grabs a page from the input document + @param reader the reader of the document + @param pageNumber which page to get + @return the page + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRStream to a PdfStream. The data part copies itself. + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PR-object to a Pdf-object + + + Translate a PR-object to a Pdf-object + + + convenience method. Given an importedpage, set our "globals" + + + convenience method. Given a reader, set our "globals" + + + Add an imported page to our output + @param iPage an imported page + @throws IOException, BadPdfFormatException + + + Adds a blank page. + @param rect The page dimension + @param rotation The rotation angle in degrees + @since 2.1.5 + @throws DocumentException + + + Copy document fields to a destination document. + @param reader a document where fields are copied from. + @throws DocumentException + @throws IOException + + + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Concatenates PDF documents including form fields. The rules for the form field + concatenation are the same as in Acrobat. All the documents are kept in memory unlike + PdfCopy. + @author Paulo Soares + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + @throws IOException on error + + + Creates a new instance. + @param os the output stream + @param pdfVersion the pdf version the output will have + @throws DocumentException on error + @throws IOException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as AddDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + + @author psoares + + + Sets a reference to "visited" in the copy process. + @param ref the reference that needs to be set to "visited" + @return true if the reference was set to visited + + + Checks if a reference has already been "visited" in the copy process. + @param ref the reference that needs to be checked + @return true if the reference was already visited + + + Checks if a reference refers to a page object. + @param ref the reference that needs to be checked + @return true is the reference refers to a page object. + + + Allows you to add one (or more) existing PDF document(s) to + create a new PDF and add the form of another PDF document to + this new PDF. + @since 2.1.5 + @deprecated since 5.5.2 + + + The class with the actual implementations. + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Copies the form fields of this PDFDocument onto the PDF-Document which was added + @param reader the PDF document + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as addDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + SimpleBookmark#. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + Allows you to add one (or more) existing PDF document(s) + and add the form(s) of (an)other PDF document(s). + @since 2.1.5 + @deprecated since 5.5.2 + + + This sets up the output document + @param os The Outputstream pointing to the output document + @throws DocumentException + + + This method feeds in the source document + @param reader The PDF reader containing the source document + @throws DocumentException + + + This merge fields is slightly different from the mergeFields method + of PdfCopyFields. + + + A PdfDashPattern defines a dash pattern as described in + the PDF Reference Manual version 1.3 p 325 (section 8.4.3). + + @see PdfArray + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + + Constructs a PdfDate-object. + + @param d the date that has to be turned into a PdfDate-object + + + Constructs a PdfDate-object, representing the current day and time. + + + Adds a number of leading zeros to a given string in order to get a string + of a certain length. + + @param i a given number + @param length the length of the resulting string + @return the resulting string + + + Gives the W3C format of the PdfDate. + @return a formatted date + + + Gives the W3C format of the PdfDate. + @param d the date in the format D:YYYYMMDDHHmmSSOHH'mm' + @return a formatted date + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + Is the indirect reference to a page already added? + + + + + + + Creates a PdfDestination based on a String. + Valid Strings are for instance the values returned by SimpleNamedDestination: + "Fit", "XYZ 36 806 0",... + @param dest a String notation of a destination. + @since iText 5.0 + + + Checks if an indirect reference to a page has been added. + + @return true or false + + + Adds the indirect reference of the destination page. + + @param page an indirect reference + @return true if the page reference was added + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications (such as this one) that PDF-consuming applications use to + interpret the extensions. + @since 2.1.6 + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the baseversion. + + + Creates a PdfDeveloperExtension object. + @param prefix the prefix referring to the developer + @param baseversion the number of the base version + @param extensionLevel the extension level within the baseverion. + + + Gets the prefix name. + @return a PdfName + + + Gets the baseversion name. + @return a PdfName + + + Gets the extension level within the baseversion. + @return an integer + + + Generations the developer extension dictionary corresponding + with the prefix. + @return a PdfDictionary + + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is the type of this dictionary + + + This is the hashmap that contains all the values and keys of the dictionary + + + Constructs an empty PdfDictionary-object. + + + Constructs a PdfDictionary-object of a certain type. + + @param type a PdfName + + + Returns the PDF representation of this PdfDictionary. + + @return an array of byte + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null or PdfNull the key is deleted. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null it does nothing. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Copies all of the mappings from the specified PdfDictionary + to this PdfDictionary. + + These mappings will replace any mappings previously contained in this + PdfDictionary. + + @param dic The PdfDictionary with the mappings to be + copied over + + + Removes a PdfObject and its key from the PdfDictionary. + + @param key key of the entry (a PdfName) + + + Removes all the PdfObjects and its keys from the + PdfDictionary. + @since 5.0.2 + + + + Checks if a Dictionary is of the type FONT. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGE. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGES. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type CATALOG. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type OUTLINES. + + @return true if it is, false if it isn't. + + + Checks the type of the dictionary. + @param type the type you're looking for + @return true if the type of the dictionary corresponds with the type you're looking for + + + This function behaves the same as 'get', but will never return an indirect reference, + it will always look such references up and return the actual object. + @param key + @return null, or a non-indirect object + + + All the getAs functions will return either null, or the specified object type + This function will automatically look up indirect references. There's one obvious + exception, the one that will only return an indirect reference. All direct objects + come back as a null. + Mark A Storer (2/17/06) + @param key + @return the appropriate object in its final type, or null + + + + + Construct a PdfInfo-object. + + + Constructs a PdfInfo-object. + + @param author name of the author of the document + @param title title of the document + @param subject subject of the document + + + Adds the title of the document. + + @param title the title of the document + + + Adds the subject to the document. + + @param subject the subject of the document + + + Adds some keywords to the document. + + @param keywords the keywords of the document + + + Adds the name of the author to the document. + + @param author the name of the author + + + Adds the name of the creator to the document. + + @param creator the name of the creator + + + Adds the name of the producer to the document. + + + Adds the date of creation to the document. + + + + Constructs a PdfCatalog. + + @param pages an indirect reference to the root of the document's Pages tree. + @param writer the writer the catalog applies to + + + Adds the names of the named destinations to the catalog. + @param localDestinations the local destinations + @param documentJavaScript the javascript used in the document + @param writer the writer the catalog applies to + + + Sets the document level additional actions. + @param actions dictionary of actions + + + Constructs a new PDF document. + @throws DocumentException on error + + + The PdfWriter. + + + Adds a PdfWriter to the PdfDocument. + + @param writer the PdfWriter that writes everything + what is added to this document to an outputstream. + @throws DocumentException on error + + + This is the PdfContentByte object, containing the text. + + + This is the PdfContentByte object, containing the borders and other Graphics. + + + This represents the leading of the lines. + + + Getter for the current leading. + @return the current leading + @since 2.1.2 + + + This is the current height of the document. + + + Signals that onParagraph is valid (to avoid that a Chapter/Section title is treated as a Paragraph). + @since 2.1.2 + + + This represents the current alignment of the PDF Elements. + + + The current active PdfAction when processing an Anchor. + + + The current tab settings. + @return the current + @since 5.4.0 + + + Signals that the current leading has to be subtracted from a YMark object when positive + and save current leading + @since 2.1.2 + + + Save current @leading + + + Restore @leading from leadingStack + + + Getter and setter for the current tab stops. + @since 5.4.0 + + + Signals that an Element was added to the Document. + + @param element the element to add + @return true if the element was added, false if not. + @throws DocumentException when a document isn't open yet, or has been closed + + + + + Use this method to set the XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + @throws IOException + + + Makes a new page and sends it to the PdfWriter. + + @return true if new page was added + @throws DocumentException on error + + + Sets the pagesize. + + @param pageSize the new pagesize + @return true if the page size was set + + + margin in x direction starting from the left. Will be valid in the next page + + + margin in x direction starting from the right. Will be valid in the next page + + + margin in y direction starting from the top. Will be valid in the next page + + + margin in y direction starting from the bottom. Will be valid in the next page + + + Sets the margins. + + @param marginLeft the margin on the left + @param marginRight the margin on the right + @param marginTop the margin on the top + @param marginBottom the margin on the bottom + @return a bool + + + @see com.lowagie.text.DocListener#setMarginMirroring(bool) + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + Sets the page number. + + @param pageN the new page number + + + Sets the page number to 0. + + + Signals that OnOpenDocument should be called. + + + + The line that is currently being written. + + + The lines that are written until now. + + + Adds the current line to the list of lines and also adds an empty line. + @throws DocumentException on error + + + line.height() is usually the same as the leading + We should take leading into account if it is not the same as the line.height + + @return float combined height of the line + @since 5.5.1 + + + If the current line is not empty or null, it is added to the arraylist + of lines and a new empty line is added. + @throws DocumentException on error + + + Gets the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Holds the type of the last element, that has been added to the document. + + + Ensures that a new line has been started. + + + Writes all the lines to the text-object. + + @return the displacement that was caused + @throws DocumentException on error + + + The characters to be applied the hanging punctuation. + + + + This represents the current indentation of the PDF Elements on the left side. + + + Indentation to the left caused by a section. + + + This represents the current indentation of the PDF Elements on the left side. + + + This is the indentation caused by an image on the left. + + + This represents the current indentation of the PDF Elements on the right side. + + + Indentation to the right caused by a section. + + + This is the indentation caused by an image on the right. + + + This represents the current indentation of the PDF Elements on the top side. + + + This represents the current indentation of the PDF Elements on the bottom side. + + + Gets the indentation on the left side. + + @return a margin + + + Gets the indentation on the right side. + + @return a margin + + + Gets the indentation on the top side. + + @return a margin + + + Gets the indentation on the bottom side. + + @return a margin + + + Calls addSpacing(float, float, Font, boolean (false)). + + + Adds extra space. + + + some meta information about the Document. + + + + Gets the PdfCatalog-object. + + @param pages an indirect reference to this document pages + @return PdfCatalog + + + This is the root outline of the document. + + + This is the current PdfOutline in the hierarchy of outlines. + + + Adds a named outline to the document . + @param outline the outline to be added + @param name the name of this local destination + + + Gets the root outline. All the outlines must be created with a parent. + The first level is created with this outline. + @return the root outline + + + Contains the Viewer preferences of this PDF document. + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Stores the destinations keyed by name. Value is + Object[]{PdfAction,PdfIndirectReference,PdfDestintion}. + + + The local destination to where a local goto with the same + name will jump to. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already existed + + + Stores a list of document level JavaScript actions. + + + Sets the collection dictionary. + @param collection a dictionary of type PdfCollection + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + This is the size of the next page. + + + This is the size of the several boxes of the current Page. + + + This is the size of the several boxes that will be used in + the next page. + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + This checks if the page is empty. + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the PdfTransition object + + + This are the page resources of the current Page. + + + Holds value of property strictImageSequence. + + + Setter for property strictImageSequence. + @param strictImageSequence New value of property strictImageSequence. + + + + This is the position where the image ends. + + + Method added by Pelikan Stephan + @see com.lowagie.text.DocListener#clearTextWrap() + + + This is the image that could not be shown on a previous page. + + + Adds an image to the document. + @param image the Image to add + @throws PdfException on error + @throws DocumentException on error + + + Adds a PdfPTable to the document. + @param ptable the PdfPTable to be added to the document. + @throws DocumentException on error + + + @since 5.0.1 + + + Extends PdfStream and should be used to create Streams for Embedded Files + (file attachments). + @since 2.1.3 + + + Creates a Stream object using an InputStream and a PdfWriter object + @param in the InputStream that will be read to get the Stream object + @param writer the writer to which the stream will be added + + + Creates a Stream object using a byte array + @param fileStore the bytes for the stream + + + @see com.lowagie.text.pdf.PdfDictionary#toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream) + + + Supports fast encodings for winansi and PDFDocEncoding. + + @author Paulo Soares + + + + + Checks is text only has PdfDocEncoding characters. + @param text the String to test + @return true if only PdfDocEncoding characters are present + + + Adds an extra encoding. + @param name the name of the encoding. The encoding recognition is case insensitive + @param enc the conversion class + + + + @author Paulo Soares + + + The encryption key for a particular object/generation + + + The encryption key length for a particular object/generation + + + The global encryption key + + + Work area to prepare the object/generation bytes + + + The message digest algorithm MD5 + + + The encryption key for the owner + + + The encryption key for the user + + + The public key security handler for certificate encryption + + + The generic key length. It may be 40 or 128. + + + Indicates if the encryption is only necessary for embedded files. + @since 2.1.3 + + + Indicates if only the embedded files have to be encrypted. + @return if true only the embedded files will be encrypted + @since 2.1.3 + + + + + + ownerKey, documentID must be setuped + + + + mkey must be setuped + + + + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm (Revision 2 - 4). + + @param ownerPassword owner password of the encrypted document. + @return user password, or null if revision 5 (AES256) or greater of standard encryption handler was used. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Give you a verbose analysis of the permissions. + @param permissions the permissions value of a PDF file + @return a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + @param permissions the permissions value of a PDF file + @return true if printing is allowed + + @since 2.0.7 + + + Tells you if modifying content is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying content is allowed + + @since 2.0.7 + + + Tells you if copying is allowed. + @param permissions the permissions value of a PDF file + @return true if copying is allowed + + @since 2.0.7 + + + Tells you if modifying annotations is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying annotations is allowed + + @since 2.0.7 + + + Tells you if filling in fields is allowed. + @param permissions the permissions value of a PDF file + @return true if filling in fields is allowed + + @since 2.0.7 + + + Tells you if repurposing for screenreaders is allowed. + @param permissions the permissions value of a PDF file + @return true if repurposing for screenreaders is allowed + + @since 2.0.7 + + + Tells you if document assembly is allowed. + @param permissions the permissions value of a PDF file + @return true if document assembly is allowed + + @since 2.0.7 + + + Tells you if degraded printing is allowed. + @param permissions the permissions value of a PDF file + @return true if degraded printing is allowed + + @since 2.0.7 + + + Signals that an unspecified problem while constructing a PDF document. + + @see BadPdfFormatException + + + Specifies a file or an URL. The file can be extern or embedded. + + @author Paulo Soares + + + Creates a new instance of PdfFileSpecification. The static methods are preferred. + + + Creates a file specification of type URL. + @param writer the PdfWriter + @param url the URL + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compressionLevel the compression level to be used for compressing the file + it takes precedence over filePath + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @param compressionLevel the level of compression + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification for an external file. + @param writer the PdfWriter + @param filePath the file path + @return the file specification + + + Gets the indirect reference to this file specification. + Multiple invocations will retrieve the same value. + @throws IOException on error + @return the indirect reference + + + Sets the file name (the key /F) string as an hex representation + to support multi byte file names. The name must have the slash and + backslash escaped according to the file specification rules + @param fileName the file name as a byte array + + + Adds the unicode file name (the key /UF). This entry was introduced + in PDF 1.7. The filename must have the slash and backslash escaped + according to the file specification rules. + @param filename the filename + @param unicode if true, the filename is UTF-16BE encoded; otherwise PDFDocEncoding is used; + + + Sets a flag that indicates whether an external file referenced by the file + specification is volatile. If the value is true, applications should never + cache a copy of the file. + @param volatile_file if true, the external file should not be cached + + + Adds a description for the file that is specified here. + @param description some text + @param unicode if true, the text is added as a unicode string + + + Adds the Collection item dictionary. + + + + the font metrics. + + + the size. + + + Compares this PdfFont with another + + @param object the other PdfFont + @return a value + + + Returns the size of this font. + + @return a size + + + Returns the approximative width of 1 character of this font. + + @return a width in Text Space + + + Returns the width of a certain character of this font. + + @param character a certain character + @return a width in Text Space + + + Implements form fields. + + @author Paulo Soares + + + Allows text fields to support rich text. + @since 5.0.6 + + + Holds value of property parent. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates new PdfFormField + + + Getter for property parent. + @return Value of property parent. + + + Sets the rich value for this field. + It is suggested that the regular value of this field be set to an + equivalent value. Rich text values are only supported since PDF 1.5, + and require that the FF_RV flag be set. See PDF Reference chapter + 12.7.3.4 for details. + @param rv HTML markup for the rich value of this field + @since 5.0.6 + + + PdfFormObject is a type of XObject containing a template-object. + + + This is a PdfNumber representing 0. + + + This is a PdfNumber representing 1. + + + This is the 1 - matrix. + + + Constructs a PdfFormXObject-object. + + @param template the template + @param compressionLevel the compression level for the stream + @since 2.1.3 (Replacing the existing constructor with param compressionLevel) + + + Implements PDF functions. + + @author Paulo Soares + + + Creates new PdfFunction + + + The graphic state dictionary. + + @author Paulo Soares + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + Sets the flag whether to apply overprint for stroking. + @param ov + + + Sets the flag whether to apply overprint for non stroking painting operations. + @param ov + + + Sets the flag whether to toggle knockout behavior for overprinted objects. + @param ov - accepts 0 or 1 + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for stroking operations in the transparent + imaging model. + @param n + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for nonstroking operations in the transparent + imaging model. + @param n + + + The alpha source flag specifying whether the current soft mask + and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + @param v + + + Determines the behaviour of overlapping glyphs within a text object + in the transparent imaging model. + @param v + + + The current blend mode to be used in the transparent imaging model. + @param bm + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + A PdfICCBased defines a ColorSpace + + @see PdfStream + + + Creates an ICC stream. + @param profile an ICC profile + + + Creates an ICC stream. + + @param compressionLevel the compressionLevel + + @param profile an ICC profile + @since 2.1.3 (replacing the constructor without param compressionLevel) + + + PdfImage is a PdfStream containing an image-Dictionary and -stream. + + + This is the PdfName of the image. + + + Constructs a PdfImage-object. + + @param image the Image-object + @param name the PdfName for this image + @throws BadPdfFormatException on error + + + Returns the PdfName of the image. + + @return the name + + + Called when no resource name is provided in our constructor. This generates a + name that is required to be unique within a given resource dictionary. + @since 5.0.1 + + + Represents an imported page. + + @author Paulo Soares + + + True if the imported page has been copied to a writer. + @since iText 5.0.4 + + + Reads the content from this PdfImportedPage-object from a reader. + + @return self + + + + Always throws an error. This operation is not allowed. + @param image dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + @throws DocumentException dummy + + + Always throws an error. This operation is not allowed. + @param template dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + + + Always throws an error. This operation is not allowed. + @return dummy + + + Gets the stream representing this page. + + @param compressionLevel the compressionLevel + @return the stream representing this page + @since 2.1.3 (replacing the method without param compressionLevel) + + + Always throws an error. This operation is not allowed. + @param bf dummy + @param size dummy + + + Checks if the page has to be copied. + @return true if the page has to be copied. + @since iText 5.0.4 + + + Indicate that the resources of the imported page have been copied. + @since iText 5.0.4 + + + + The object number + + + the generation number + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param objecti the direct objecti + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param generation the generation number + @param objecti the direct objecti + + + Returns a PdfIndirectReference to this PdfIndirectObject. + + @return a PdfIndirectReference + + + Writes eficiently to a stream + + @param os the stream to write to + @throws IOException on write error + + + + the object number + + + the generation number + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + + + Returns the number of the object. + + @return a number. + + + Returns the generation of the object. + + @return a number. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. + + @author Paulo Soares + + + Holds value of property on. + + + Holds value of property onPanel. + + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + @param title the title text + @param writer the PdfWriter + @return the title layer + + + Creates a new layer. + @param name the name of the layer + @param writer the writer + + + Adds a child layer. Nested layers can only have one parent. + @param child the child layer + + + Gets the parent layer. + @return the parent layer or null if the layer has no parent + + + Gets the children layers. + @return the children layers or null if the layer has no children + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Sets the name of this layer. + @param name the name of this layer + + + Gets the dictionary representing the layer. It just returns this. + @return the dictionary representing the layer + + + Gets the initial visibility of the layer. + @return the initial visibility of the layer + + + Used by the creating application to store application-specific + data associated with this optional content group. + @param creator a text string specifying the application that created the group + @param subtype a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + Specifies the language of the content controlled by this + optional content group + @param lang a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + @param preferred used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + @param export the export state + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + @param min the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + @param max the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + Specifies that the content in this group is intended for + use in printing + @param subtype a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + @param printstate indicates that the group should be + set to that state when the document is printed from a viewer application + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + @param view the view state + + + Indicates that the group contains a pagination artifact. + @param pe one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + @since 5.0.2 + + + One of more users for whom this optional content group is primarily intended. + @param type should be "Ind" (Individual), "Ttl" (Title), or "Org" (Organization). + @param names one or more names + @since 5.0.2 + + + Gets the layer visibility in Acrobat's layer panel + @return the layer visibility in Acrobat's layer panel + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + @param onPanel the visibility of the layer in Acrobat's layer panel + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. + + @author Paulo Soares + + + Visible only if all of the entries are ON. + + + Visible if any of the entries are ON. + + + Visible if any of the entries are OFF. + + + Visible only if all of the entries are OFF. + + + Creates a new, empty, membership layer. + @param writer the writer + + + Gets the PdfIndirectReference that represents this membership layer. + @return the PdfIndirectReference that represents this layer + + + Adds a new member to the layer. + @param layer the new member to the layer + + + Gets the member layers. + @return the member layers + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are ALLON, ANYON, ANYOFF and ALLOFF. + The default value is ANYON. + @param type the visibility policy + + + Sets the visibility expression for content belonging to this + membership dictionary. + @param ve A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + @since 5.0.2 + + + Gets the dictionary representing the membership layer. It just returns this. + @return the dictionary representing the layer + + + PdfLine defines an array with PdfChunk-objects + that fit into 1 line. + + + The arraylist containing the chunks. + + + The left indentation of the line. + + + The width of the line. + + + The alignment of the line. + + + The heigth of the line. + + + true if the chunk splitting was caused by a newline. + + + The original width. + + + Constructs a new PdfLine-object. + + @param left the limit of the line at the left + @param right the limit of the line at the right + @param alignment the alignment of the line + @param height the height of the line + + + Creates a PdfLine object. + @param left the left offset + @param originalWidth the original width of the line + @param remainingWidth bigger than 0 if the line isn't completely filled + @param alignment the alignment of the line + @param newlineSplit was the line splitted (or does the paragraph end with this line) + @param line an array of PdfChunk objects + @param isRTL do you have to read the line from Right to Left? + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @param currentLeading new value for the height of the line + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Returns the number of chunks in the line. + + @return a value + + + Returns an iterator of PdfChunks. + + @return an Iterator + + + Returns the height of the line. + + @return a value + + + Returns the left indentation of the line taking the alignment of the line into account. + + @return a value + + + Checks if this line has to be justified. + + @return true if the alignment equals ALIGN_JUSTIFIED and there is some width left. + + + + Adds extra indentation to the left (for Paragraph.setFirstLineIndent). + + + Returns the width that is left, after a maximum of characters is added to the line. + + @return a value + + + Returns the number of space-characters in this line. + + @return a value + + + + Returns the listsymbol of this line. + + @return a PdfChunk if the line has a listsymbol; null otherwise + + + Return the indentation needed to show the listsymbol. + + @return a value + + + Get the string representation of what is in this line. + + @return a string + + + Checks if a newline caused the line split. + @return true if a newline caused the line split + + + Gets the index of the last PdfChunk with metric attributes + @return the last PdfChunk with metric attributes + + + Gets a PdfChunk by index. + @param idx the index + @return the PdfChunk or null if beyond the array + + + Gets the original width of the line. + @return the original width of the line + + + Gets the difference between the "normal" leading and the maximum + size (for instance when there are images in the chunk and the leading + has to be taken into account). + @return an extra leading for images + @since 2.1.5 + + + Gets the number of separators in the line. + Returns -1 if there's a tab in the line. + @return the number of separators in the line + @since 2.1.2 + + + Gets the maximum size of the ascender for all the fonts used + in this line. + @return maximum size of all the ascenders used in this line + + + Gets the biggest descender for all the fonts used + in this line. Note that this is a negative number. + @return maximum size of all the ascenders used in this line + + + a Literal + + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from ABSOLUTECALORIMETRIC + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + a name used in PDF structure + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 5.0.3 + + + A name + + + A name + + + A name + + + Use ALT to specify alternate texts in Tagged PDF. + For alternate ICC profiles, use {@link #ALTERNATE} + + + Use ALTERNATE only in ICC profiles. It specifies an alternative color + space, in case the primary one is not supported, for legacy purposes. + For various types of alternate texts in Tagged PDF, use {@link #ALT} + + + A name + @since 5.5.8 + + + A name + @since 5.4.5 + + + A name + @since 5.4.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.0.7 + + + A name + + + A name + + + A name + + + A name + @since 5.3.2 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 renamed from DEFAULTCRYPTFILER + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + @since 5.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 2.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + @since 5.4.0 + + + A name of an attribute. + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.5 + + + A name + @since 2.1.5 + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.4 + + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use {@link #LANGUAGE} + + + A dictionary type, strictly for use in the content usage dictionary. For + dictionary entries in Tagged Pdf, use {@link #LANG} + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.2 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + @since 2.1.6 + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 renamed from MAX + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 renamed from MIN + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name used with Document Structure + @since 2.1.5 + + + a name used with Document Structure + @since 2.1.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name used in defining Document Structure. + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.0.2 + + + A name + @since 5.0.2 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from RELATIVECALORIMETRIC + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + @since 5.4.4 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.3 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + T is very commonly used for various dictionary entries, including title + entries in a Tagged PDF element dictionary, and target dictionaries. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + @since 5.4.3 + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.4 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + Use Title for the document's top level title (optional), and for document + outline dictionaries, which can store bookmarks. + For all other uses of a title entry, including Tagged PDF, use {@link #T} + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.2.1 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.0.2 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an encoding + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name of an encoding + + + A name + @since 5.4.3 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name + + + map strings to all known static names + @since 2.1.6 + + + Use reflection to cache all the static public readonly names so + future PdfName additions don't have to be "added twice". + A bit less efficient (around 50ms spent here on a 2.2ghz machine), + but Much Less error prone. + @since 2.1.6 + + + Constructs a new PdfName. The name length will be checked. + @param name the new name + + + Constructs a new PdfName. + @param name the new name + @param lengthCheck if true check the lenght validity, if false the name can + have any length + + + + Indicates whether some other object is "equal to" this one. + + @param obj the reference object with which to compare. + @return true if this object is the same as the obj + argument; false otherwise. + + + Returns a hash code value for the object. This method is + supported for the benefit of hashtables such as those provided by + java.util.Hashtable. + + @return a hash code value for this object. + + + Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD". + + @param name the name to encode + @return the encoded name + @since 2.1.5 + + + Decodes an escaped name in the form "/AB#20CD" into "AB CD". + @param name the name to decode + @return the decoded name + + + Creates a name tree. + @author Paulo Soares + + + Creates a name tree. + @param items the item of the name tree. The key is a String + and the value is a PdfObject. Note that although the + keys are strings only the lower byte is used and no check is made for chars + with the same lower byte and different upper byte. This will generate a wrong + tree name. + @param writer the writer + @throws IOException on error + @return the dictionary with the name tree. This dictionary is the one + generally pointed to by the key /Dests, for example + + + + This is an instance of the PdfNull-object. + + + + + actual value of this PdfNumber, represented as a double + + + Constructs a PdfNumber-object. + + @param content value of the new PdfNumber-object + + + Constructs a new int PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new long PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Returns the primitive int value of this object. + + @return a value + + + Returns the primitive long value of this object. + + @return a value + + + Returns the primitive double value of this object. + + @return a value + + + Increments the value of the PdfNumber-object with 1. + + + Creates a number tree. + @author Paulo Soares + + + Creates a number tree. + @param items the item of the number tree. The key is an Integer + and the value is a PdfObject. + @param writer the writer + @throws IOException on error + @return the dictionary with the number tree. + + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + This is an empty string used for the PdfNull-object and for an empty PdfString-object. + + + This is the default encoding to be used for converting strings into bytes and vice versa. + The default encoding is PdfDocEcoding. + + + This is the encoding to be used to output text in Unicode. + + + the content of this PdfObject + + + the type of this PdfObject + + + Holds value of property indRef. + + + Hash code of the PdfObject instance. + Unfortunately, default C# behavior does not generate unique hash code. + + + Used for generating hash code. + + + Making hash code generation thread safe. + + + Constructs a PdfObject of a certain type without any content. + + @param type type of the new PdfObject + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param content content of the new PdfObject as a String. + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param bytes content of the new PdfObject as an array of byte. + + + Writes the PDF representation of this PdfObject as an array of bytes to the writer. + @param writer for backwards compatibility + @param os the outputstream to write the bytes to. + @throws IOException + + + Gets the presentation of this object in a byte array + @return a byte array + + + Can this object be in an object stream? + @return true if this object can be in an object stream. + + + Returns the String-representation of this PdfObject. + + @return a String + + + Returns the length of the actual content of the PdfObject. +

+ In some cases, namely for PdfString and PdfStream, + this method differs from the method pdfLength because pdfLength + returns the length of the PDF representation of the object, not of the actual content + as does the method length.

+

+ Remark: the actual content of an object is in some cases identical to its representation. + The following statement is always true: Length() >= PdfLength().

+ + @return a length +
+ + Changes the content of this PdfObject. + + @param content the new content of this PdfObject + + + Returns the type of this PdfObject. + + @return a type + + + Checks if this PdfObject is of the type PdfNull. + + @return true or false + + + Checks if this PdfObject is of the type PdfBoolean. + + @return true or false + + + Checks if this PdfObject is of the type PdfNumber. + + @return true or false + + + Checks if this PdfObject is of the type PdfString. + + @return true or false + + + Checks if this PdfObject is of the type PdfName. + + @return true or false + + + Checks if this PdfObject is of the type PdfArray. + + @return true or false + + + Checks if this PdfObject is of the type PdfDictionary. + + @return true or false + + + Checks if this PdfObject is of the type PdfStream. + + @return true or false + + + Checks if this is an indirect object. + @return true if this is an indirect object + + + + the PdfIndirectReference of this object + + + value of the Count-key + + + value of the Parent-key + + + value of the Destination-key + + + The PdfAction for this outline. + + + Holds value of property tag. + + + Holds value of property open. + + + Holds value of property color. + + + Holds value of property style. + + + + + + + + + + + + + + + + Helper for the constructors. + @param parent the parent outline + @param title the title for this outline + @param open true if the children are visible + + + Gets the indirect reference of this PdfOutline. + + @return the PdfIndirectReference to this outline. + + + Gets the parent of this PdfOutline. + + @return the PdfOutline that is the parent of this outline. + + + Set the page of the PdfDestination-object. + + @param pageReference indirect reference to the page + @return true if this page was set as the PdfDestination-page. + + + Gets the destination for this outline. + @return the destination + + + returns the level of this outline. + + @return a level + + + Returns the PDF representation of this PdfOutline. + + @param writer the encryption information + @param os + @throws IOException + + + Getter for property tag. + @return Value of property tag. + + + Setter for property open. + @param open New value of property open. + + + + value of the Rotate key for a page in PORTRAIT + + + value of the Rotate key for a page in LANDSCAPE + + + value of the Rotate key for a page in INVERTEDPORTRAIT + + + value of the Rotate key for a page in SEASCAPE + + + value of the MediaBox key + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @param rotate a value for the Rotate key + @throws DocumentException + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @throws DocumentException + + + + Adds an indirect reference pointing to a PdfContents-object. + + @param contents an indirect reference to a PdfContents-object + + + Rotates the mediabox, but not the text in it. + + @return a PdfRectangle + + + Returns the MediaBox of this Page. + + @return a PdfRectangle + + + Helps the use of PdfPageEvent by implementing all the interface methods. + A class can extend PdfPageEventHelper and only implement the + needed methods. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + Page labels are used to identify each + page visually on the screen or in print. + @author Paulo Soares + + + Logical pages will have the form 1,2,3,... + + + Logical pages will have the form I,II,III,IV,... + + + Logical pages will have the form i,ii,iii,iv,... + + + Logical pages will have the form of uppercase letters + (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on) + + + Logical pages will have the form of uppercase letters + (a to z for the first 26 pages, aa to zz for the next 26, and so on) + + + No logical page numbers are generated but fixed text may + still exist + + + Dictionary values to set the logical page styles + + + The sequence of logical pages. Will contain at least a value for page 1 + + + Creates a new PdfPageLabel with a default logical page 1 + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + @param includeFirstPage If true, the page label will be added to the first page if it is page 1. + If the first page is not page 1 or this value is false, the value will not be added to the dictionary. + + + Adds or replaces a page label. The first logical page has the default + of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + + + Adds or replaces a page label. There is no text prefix and the first + logical page has the default of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + + + Adds or replaces a page label. + + + Removes a page label. The first page lagel can not be removed, only changed. + @param page the real page to remove + + + Gets the page label dictionary to insert into the document. + @return the page label dictionary + + + Retrieves the page labels from a PDF as an array of String objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a String array or null if no page labels are present + + + Retrieves the page labels from a PDF as an array of {@link PdfPageLabelFormat} objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a PdfPageLabelEntry array, containing an entry for each format change + or null if no page labels are present + + + Creates a page label format. + @param physicalPage the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param prefix the text to prefix the number. Can be null or empty + @param logicalPage the first logical page number + + + + Constructs a PdfPages-object. + + + A PdfPattern defines a ColorSpace + + @see PdfStream + + + Creates a PdfPattern object. + @param painter a pattern painter instance + + + Creates a PdfPattern object. + @param painter a pattern painter instance + @param compressionLevel the compressionLevel for the stream + @since 2.1.3 + + + Implements the pattern. + + + Creates a PdfPattern. + + + Creates new PdfPattern + + @param wr the PdfWriter + + + Gets the stream representing this pattern + @return the stream representing this pattern + + + Gets the stream representing this pattern + @param compressionLevel the compression level of the stream + @return the stream representing this pattern + @since 2.1.3 + + + Gets a duplicate of this PdfPatternPainter. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPatternPainter + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayFill(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayStroke(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFillF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStrokeF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFillF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStrokeF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#addImage(com.lowagie.text.Image, float, float, float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStroke(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStroke(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter) + + + A cell in a PdfPTable. + + + Holds value of property verticalAlignment. + + + Holds value of property paddingLeft. + + + Holds value of property paddingLeft. + + + Holds value of property paddingTop. + + + Holds value of property paddingBottom. + + + Holds value of property fixedHeight. + + + Fixed height of the cell. + + + Holds value of property noWrap. + + + Holds value of property table. + + + Holds value of property minimumHeight. + + + This field is used to cache the height which is calculated on getMaxHeight() method call; + this helps to avoid unnecessary recalculations on table drawing. + + + Holds value of property colspan. + + + Holds value of property rowspan. + @since 2.1.6 + + + Holds value of property image. + + + Holds value of property cellEvent. + + + Holds value of property useDescender. + + + Increases padding to include border if true + + + The text in the cell. + + + The rotation of the cell. Possible values are + 0, 90, 180 and 270. + + + Constructs an empty PdfPCell. + The default padding is 2. + + + Constructs a PdfPCell with a Phrase. + The default padding is 2. + @param phrase the text + + + Constructs a PdfPCell with an Image. + The default padding is 0. + @param image the Image + + + Constructs a PdfPCell with an Image. + The default padding is 0.25 for a border width of 0.5. + @param image the Image + @param fit true to fit the image to the cell + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + The default padding is 0. + @param table The PdfPTable + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + + @param table The PdfPTable + @param style The style to apply to the cell (you could use getDefaultCell()) + @since 2.1.0 + + + Constructs a deep copy of a PdfPCell. + @param cell the PdfPCell to duplicate + + + Adds an iText element to the cell. + @param element + + + Gets the Phrase from this cell. + @return the Phrase + + + Gets the horizontal alignment for the cell. + @return the horizontal alignment for the cell + + + Gets the vertical alignment for the cell. + @return the vertical alignment for the cell + + + Gets the effective left padding. This will include + the left border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingLeft. + + + @return Value of property paddingLeft. + + + Gets the effective right padding. This will include + the right border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingRight. + + + Getter for property paddingRight. + @return Value of property paddingRight. + + + Gets the effective top padding. This will include + the top border width if {@link #isUseBorderPadding()} is true. + @return effective value of property paddingTop. + + + Getter for property paddingTop. + @return Value of property paddingTop. + + + /** Gets the effective bottom padding. This will include + * the bottom border width if {@link #UseBorderPadding} is true. + * @return effective value of property paddingBottom. + + + Getter for property paddingBottom. + @return Value of property paddingBottom. + + + Sets the padding of the contents in the cell (space between content and border). + @param padding + + + Adjusts effective padding to include border widths. + @param use adjust effective padding if true + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the first paragraph line indent. + @return the indent + + + Gets the extra space between paragraphs. + @return the extra space between paragraphs + + + Getter for property fixedHeight. + @return Value of property fixedHeight. + + + Tells you whether the cell has a fixed height. + + @return true is a fixed height was set. + @since 2.1.5 + + + Gets the height which was calculated on last call of getMaxHeight(). + If cell's bBox and content wasn't changed this value is actual maxHeight of the cell. + @return max height which was calculated on last call of getMaxHeight(); if getMaxHeight() wasn't called the return value is 0 + + + Setter for property noWrap. + @param noWrap New value of property noWrap. + + + Getter for property table. + @return Value of property table. + + + Getter for property minimumHeight. + @return Value of property minimumHeight. + + + Tells you whether the cell has a minimum height. + + @return true if a minimum height was set. + @since 2.1.5 + + + Getter for property colspan. + @return Value of property colspan. + + + Getter for property rowspan. + @return Value of property rowspan. + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction of the text content in the cell + @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL. + + + Getter for property image. + @return Value of property image. + + + + Gets the cell event for this cell. + @return the cell event + + + + Gets the arabic shaping options. + @return the arabic shaping options + + + Gets state of first line height based on max ascender + @return true if an ascender is to be used. + + + Getter for property useDescender. + @return Value of property useDescender. + + + + Gets the ColumnText with the content of the cell. + @return a columntext object + + + Returns the list of composite elements of the column. + @return a List object. + @since 2.1.1 + + + Sets the rotation of the cell. Possible values are + 0, 90, 180 and 270. + @param rotation the rotation of the cell + + + Returns the height of the cell. + @return the height of the cell + @since 3.0.0 + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + A row in a PdfPTable. + + @author Paulo Soares + + + True if the table may not break after this row. + + + the bottom limit (bottom right y) + + + the right limit + @since 2.1.5 + + + extra heights that needs to be added to a cell because of rowspans. + @since 2.1.6 + + + Constructs a new PdfPRow with the cells in the array that was passed + as a parameter. + + @param cells + + + Makes a copy of an existing row. + + @param row + + + Sets the widths of the columns in the row. + + @param widths + @return true if everything went right + + + Initializes the extra heights array. + @since 2.1.6 + + + Sets an extra height for a cell. + @param cell the index of the cell that needs an extra height + @param height the extra height + @since 2.1.6 + + + Calculates the heights of each cell in the row. + + @return the maximum height of the row. + + + Writes the border and background of one cell in the row. + + @param xPos The x-coordinate where the table starts on the canvas + @param yPos The y-coordinate where the table starts on the canvas + @param currentMaxHeight The height of the cell to be drawn. + @param cell + @param canvases + @since 2.1.6 extra parameter currentMaxHeight + + + @since 2.1.6 private is now protected + + + @since 2.1.6 private is now protected + + + @since 3.0.0 protected is now public static + + + * Writes a number of cells (not necessarily all cells). + * + * @param colStart The first column to be written. + * Remember that the column index starts with 0. + * @param colEnd The last column to be written. + * Remember that the column index starts with 0. + * If -1, all the columns to the end are written. + * @param xPos The x-coordinate where the table starts on the canvas + * @param yPos The y-coordinate where the table starts on the canvas + * @param reusable if set to false, the content in the cells is "consumed"; + * if true, you can reuse the cells, the row, the parent table as many times you want. + * @since 5.1.0 added the reusable parameter + + + Checks if the dimensions of the columns were calculated. + + @return true if the dimensions of the columns were calculated + + + Gets the maximum height of the row (i.e. of the 'highest' cell). + @return the maximum height of the row + + + Copies the content of a specific row in a table to this row. + Don't do this if the rows have a different number of cells. + @param table the table from which you want to copy a row + @param idx the index of the row that needs to be copied + @since 5.1.0 + + + Splits a row to newHeight. + The returned row is the remainder. It will return null if the newHeight + was so small that only an empty row would result. + + @param new_height the new height + @return the remainder row or null if the newHeight was so small that only + an empty row would result + + + Split rowspan of cells with rowspan on next page by inserting copies with the remaining rowspan + and reducing the previous rowspan appropriately, i.e. if a cell with rowspan 7 gets split after 3 rows + of that rowspan have been laid out, its column on the next page should start with an empty cell + having the same attributes and rowspan 7 - 3 = 4. + + @since iText 5.4.3 + + + Returns the array of cells in the row. + Please be extremely careful with this method. + Use the cells as read only objects. + + @return an array of cells + @since 2.1.1 + + + Checks if a cell in the row has a rowspan greater than 1. + @since 5.1.0 + + + Implements the PostScript XObject. + + + Creates a new instance of PdfPSXObject + + + Constructs a PSXObject + @param wr + + + Gets the stream representing this object. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + @throws IOException + + + Gets a duplicate of this PdfPSXObject. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPSXObject + + + This is a table that can be put at an absolute position but can also + be added to the document as the class Table. + In the last case when crossing pages the table always break at full rows; if a + row is bigger than the page it is dropped silently to avoid infinite loops. +

+ A PdfPTableEvent can be associated to the table to do custom drawing + when the table is rendered. + @author Paulo Soares + + + The index of the original PdfcontentByte. + + + The index of the duplicate PdfContentByte where the background will be drawn. + + + The index of the duplicate PdfContentByte where the border lines will be drawn. + + + The index of the duplicate PdfContentByte where the text will be drawn. + + + The current column index. + + @since 5.1.0 renamed from currentColIdx + + + Holds value of property headerRows. + + + Holds value of property widthPercentage. + + + Holds value of property horizontalAlignment. + + + Holds value of property skipFirstHeader. + + + Holds value of property skipLastFooter. + + @since 2.1.6 + + + Holds value of property lockedWidth. + + + Holds value of property splitRows. + + + The spacing before the table. + + + The spacing after the table. + + + Holds value of property extendLastRow. + + + Holds value of property headersInEvent. + + + Holds value of property splitLate. + + + Defines if the table should be kept + on one page if possible + + + Indicates if the PdfPTable is complete once added to the document. + @since iText 2.0.8 + + + Keeps track of the completeness of the current row. + + @since 2.1.6 + + + Constructs a PdfPTable with the relative column widths. + @param relativeWidths the relative column widths + + + Constructs a PdfPTable with numColumns columns. + @param numColumns the number of columns + + + Constructs a copy of a PdfPTable. + @param table the PdfPTable to be copied + + + Makes a shallow copy of a table (format without content). + @param table + @return a shallow copy of the table + + + Copies the format of the sourceTable without copying the content. + @param sourceTable + @since 2.1.6 private is now protected + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + @since 2.1.6 private is now protected + + + Sets the full width of the table from the absolute column width. + @param columnWidth the absolute width of each column + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the percentage width of the table from the absolute column width. Warning: Don't use this with setLockedWidth(true). These two settings don't mix. + @param columnWidth the absolute width of each column + @param pageSize the page size + @throws DocumentException + + + Gets the full width of the table. + @return the full width of the table + + + Calculates the heights of the table. + + @return the total height of the table. Note that it will be 0 if you didn't + specify the width of the table with SetTotalWidth(). + and made it public + + + Changes the number of columns. Any existing rows will be deleted. + + @param the new number of columns + + + Gets the default PdfPCell that will be used as + reference for all the addCell methods except + addCell(PdfPCell). + @return default PdfPCell + + + Adds a cell element. + + @param cell the cell element + + + When updating the row index, cells with rowspan should be taken into account. + This is what happens in this method. + + @since 2.1.6 + + + Added by timmo3. This will return the correct cell taking it's cellspan into account + + @param row the row index + @param col the column index + @return PdfPCell at the given row and position or null otherwise + + + Checks if there are rows above belonging to a rowspan. + @param currRow the current row to check + @param currCol the current column to check + @return true if there's a cell above that belongs to a rowspan + @since 2.1.6 + + + Adds a cell element. + @param text the text for the cell + + + Adds a nested table. + @param table the table to be added to the cell + + + Adds an Image as Cell. + @param image the Image to add to the table. + This image will fit in the cell + + + Adds a cell element. + @param phrase the Phrase to be added to the cell + + + + + Writes the selected rows and columns to the document. + This method does not clip the columns; this is only important + if there are columns with colspan at boundaries. + canvases is obtained from beginWritingRows(). + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvases an array of 4 PdfContentByte obtained from + beginWritingRows() + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @return the y coordinate position of the bottom of the last row + @see #beginWritingRows(com.itextpdf.text.pdf.PdfContentByte) + @since 5.1.0 added the reusable parameter + + + Writes the selected rows to the document. + + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coodinate + @param yPos the y write coodinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + + + + Writes the selected rows and columns to the document. + This method clips the columns; this is only important + if there are columns with colspan at boundaries. + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @since 5.1.0 added the reusable parameter + + + + Finishes writing the table. + @param canvases the array returned by beginWritingRows() + + + Gets the number of rows in this table. + @return the number of rows in this table + + + Gets the total height of the table. + @return the total height of the table + + + Gets the height of a particular row. + @param idx the row index (starts at 0) + @return the height of a particular row + + + Gets the height of a particular row. + + @param idx the row index (starts at 0) + @param firsttime is this the first time the row heigh is calculated? + @return the height of a particular row + @since 5.0.0 + + + Gets the maximum height of a cell in a particular row (will only be different + from getRowHeight is one of the cells in the row has a rowspan > 1). + + @param rowIndex the row index + @param cellIndex the cell index + @return the height of a particular row including rowspan + @since 2.1.6 + + + Checks if a cell in a row has a rowspan greater than 1. + + @since 5.1.0 + + + Makes sure the footers value is lower than the headers value. + + @since 5.0.1 + + + Gets the height of the rows that constitute the header as defined by + setHeaderRows(). + @return the height of the rows that constitute the header and footer + + + Gets the height of the rows that constitute the header as defined by + setFooterRows(). + @return the height of the rows that constitute the footer + @since 2.1.1 + + + Deletes a row from the table. + @param rowNumber the row to be deleted + @return true if the row was deleted + + + Deletes the last row in the table. + @return true if the last row was deleted + + + Removes all of the rows except headers + + + Returns the number of columns. + @return the number of columns. + @since 2.1.1 + + + Gets all the chunks in this element. + + @return an List + + + Gets the type of the text element. + + @return a type + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isContent() + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isNestable() + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets a row with a given index. + + @param idx + @return the row at position idx + + + Returns the index of the last completed row. + + @return the index of a row + + + Defines where the table may be broken (if necessary). + + @param breakPoints int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines which rows should not allow a page break (if possible). + + @param rows int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows that should not allow a page break (if possible). + + @param start int + @param end int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows (from the parameter to the last row) that should not allow a page break (if possible). + The equivalent of calling {@link #keepRowsTogether(int,int) keepRowsTogether(start, rows.size()}. + + @param start int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Gets an arraylist with all the rows in the table. + @return an arraylist + + + Gets an arraylist with a selection of rows. + @param start the first row in the selection + @param end the first row that isn't part of the selection + @return a selection of rows + @since 2.1.6 + + + Calculates the extra height needed in a row because of rowspans. + @param start the index of the start row (the one to adjust) + @param end the index of the end row on the page + @since 2.1.6 + + + Sets the table event for this table. + + @param event the table event for this table + + + Gets the absolute sizes of each column width. + @return he absolute sizes of each column width + + + Tells you if the last footer needs to be skipped + (for instance if the footer says "continued on the next page") + + @return Value of property skipLastFooter. + @since 2.1.6 + + + When set the last row on every page will be extended to fill + all the remaining space to the bottom boundary; except maybe the + row. + + @param extendLastRows true to extend the last row on each page; false otherwise + @param extendFinalRow false if you don't want to extend the row of the complete table + @since iText 5.0.0 + + + * Gets the value of the last row extension, taking into account + * if the row is reached or not. + * + * @return true if the last row will extend; + * false otherwise + * @since iText 5.0.0 + + + If true the table will be kept on one page if it fits, by forcing a + new page if it doesn't fit on the current page. The default is to + split the table over multiple pages. + + @param p_KeepTogether whether to try to keep the table on one page + + + Completes the current row with the default cell. An incomplete row will be dropped + but calling this method will make sure that it will be present in the table. + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Gets row index where cell overlapping (rowIdx, colIdx) starts + @param rowIdx + @param colIdx + @return row index + @since iText 5.4.3 + + + + @since iText 5.4.3 + + + Correct chosen last fitting row so that the content of all cells with open rowspans will fit on the page, + i.e. the cell content won't be split. + (Only to be used with splitLate == true) + + + + @since iText 5.4.3 + + + Determine which rows fit on the page, respecting isSplitLate(). + Note: sets max heights of the inspected rows as a side effect, + just like PdfPTable.getRowHeight(int, boolean) does. + Respect row.getMaxHeights() if it has been previously set (which might be independent of the height of + individual cells). + The last row written on the page will be chosen by the caller who might choose not + the calculated one but an earlier one (due to mayNotBreak settings on the rows). + The height of the chosen last row has to be corrected if splitLate == true + by calling FittingRows.correctLastRowChosen() by the caller to avoid splitting the content of + cells with open rowspans. + + @since iText 5.4.3 + + + + @author Aiken Sam (aikensam@ieee.org) + + + Reads a PDF document. + @author Paulo Soares + @author Kazuya Ujihara + + + The iText developers are not responsible if you decide to change the + value of this static parameter. + @since 5.0.2 + + + Handler which will be used for decompression of pdf streams. + + + Holds value of property appendable. + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param partialRead if true, the reader is opened in partial mode (PDF is parsed on demand), if false, the entire PDF is parsed into memory as the reader opens + @param ownerPassword the password or null if no password is required + @param certificate the certificate or null if no certificate is required + @param certificateKey the key or null if no certificate key is required + @param certificateKeyProvider the name of the key provider, or null if no key is required + @param closeSourceOnConstructorError if true, the byteSource will be closed if there is an error during construction of this reader + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param properties the properties which will be used to create the reader + + + Reads and parses a PDF document. + @param filename the file name of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param properties the properties which will be used to create the reader + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param certificate the certificate to read the document + @param certificateKey the private key of the certificate + @param certificateKeyProvider the security provider for certificateKey + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param properties the properties which will be used to create the reader + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a PDF document. + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a pdf document. Contrary to the other constructors only the xref is read + into memory. The reader is said to be working in "partial" mode as only parts of the pdf + are read as needed. + @param raf the document location + @param ownerPassword the password or null for no password + @throws IOException on error + + + Reads and parses a pdf document. + @param raf the document location + @param ownerPassword the password or null for no password + @param partial indicates if the reader needs to read the document only partially. See {@link PdfReader#PdfReader(RandomAccessFileOrArray, byte[])} + @throws IOException on error + + + Creates an independent duplicate. + @param reader the PdfReader to duplicate + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + @param byteSource the source to check + @return a tokeniser that is guaranteed to start at the PDF header + @throws IOException if there is a problem reading the byte source + + + Gets a new file instance of the original PDF + document. + @return a new file instance of the original PDF document + + + Gets the number of pages in the document. + @return the number of pages in the document + + + Returns the document's catalog. This dictionary is not a copy, + any changes will be reflected in the catalog. + @return the document's catalog + + + Returns the document's acroform, if it has one. + @return the document's acroform + + + Gets the page rotation. This value can be 0, 90, 180 or 270. + @param index the page number. The first page is 1 + @return the page rotation + + + Gets the page size, taking rotation into account. This + is a Rectangle with the value of the /MediaBox and the /Rotate key. + @param index the page number. The first page is 1 + @return a Rectangle + + + Gets the rotated page from a page dictionary. + @param page the page dictionary + @return the rotated page + + + Gets the page size without taking rotation into account. This + is the value of the /MediaBox key. + @param index the page number. The first page is 1 + @return the page size + + + Gets the page from a page dictionary + @param page the page dictionary + @return the page + + + Gets the crop box without taking rotation into account. This + is the value of the /CropBox key. The crop box is the part + of the document to be displayed or printed. It usually is the same + as the media box but may be smaller. If the page doesn't have a crop + box the page size will be returned. + @param index the page number. The first page is 1 + @return the crop box + + + Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media". + @param index the page number. The first page is 1 + @param boxName the box name + @return the box rectangle or null + + + Returns the content of the document information dictionary as a Hashtable + of String. + @return content of the document information dictionary + + + Normalizes a Rectangle so that llx and lly are smaller than urx and ury. + @param box the original rectangle + @return a normalized Rectangle + + + Checks if the PDF is a tagged PDF. + + + Parses the entire PDF + + + @throws IOException + + + @param obj + @return a PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. + @param obj the PdfObject to read + @return the resolved PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. If the reader was opened in partial mode the object will be released + to save memory. + @param obj the PdfObject to read + @param parent + @return a PdfObject + + + @param obj + @param parent + @return a PdfObject + + + @param idx + @return a PdfObject + + + @param idx + @return aPdfObject + + + + + + + + + @param obj + + + @param obj + @return an indirect reference + + + @return the percentage of the cross reference table that has been read + + + Eliminates the reference to the object freeing the memory used by it and clearing + the xref entry. + @param obj the object. If it's an indirect reference it will be eliminated + @return the object or the already erased dereferenced object + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + @param in + @param dicPar + @return a byte array + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + @param in the input data + @return the decoded data + + + Checks if the document had errors and was rebuilt. + @return true if rebuilt. + + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a Dictionary object + + + @param pageNum + + + + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @param file the location of the PDF document + @throws IOException on error + @return the content + + + Gets the content from the page dictionary. + @param page the page dictionary + @throws IOException on error + @return the content + @since 5.0.6 + + + Retrieve the given page's resource dictionary + @param pageNum 1-based page number from which to retrieve the resource dictionary + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Retrieve the given page's resource dictionary + @param pageDict the given page + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @throws IOException on error + @return the content + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @throws IOException on error + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @since 2.1.3 (the method already existed without param compressionLevel) + + + Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @param filterHandlers the map used to look up a handler for each type of filter + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Get the content from a stream applying the required filters. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream applying the required filters. + @param stream the stream + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @throws IOException on error + @return the stream content + + + Eliminates shared streams if they exist. + + + Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper. + @param tampered the tampered state + + + Gets the XML metadata. + @throws IOException on error + @return the XML metadata + + + Gets the byte address of the last xref table. + @return the byte address of the last xref table + + + Gets the number of xref objects. + @return the number of xref objects + + + Gets the byte address of the %%EOF marker. + @return the byte address of the %%EOF marker + + + Gets the PDF version. Only the last version char is returned. For example + version 1.4 is returned as '4'. + @return the PDF version + + + Returns true if the PDF is encrypted. + @return true if the PDF is encrypted + + + Gets the encryption permissions. It can be used directly in + PdfWriter.SetEncryption(). + @return the encryption permissions + + + Returns true if the PDF has a 128 bit key encryption. + @return true if the PDF has a 128 bit key encryption + + + Gets the trailer dictionary + @return the trailer dictionary + + + Finds all the font subsets and changes the prefixes to some + random values. + @return the number of font subsets altered + + + Finds all the fonts not subset but embedded and marks them as subset. + @return the number of fonts altered + + + Gets all the named destinations as an Hashtable. The key is the name + and the value is the destinations array. + @return gets all the named destinations + + + Gets all the named destinations as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets all the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Dests key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Names key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Removes all the fields from the document. + + + Removes all the annotations and fields from the document. + + + Replaces remote named links with local destinations that have the same name. + @since 5.0 + + + Converts a remote named destination GoToR with a local named destination + if there's a corresponding name. + @param obj an annotation that needs to be screened for links to external named destinations. + @param names a map with names of local named destinations + @since iText 5.0 + + + Replaces all the local named links with the actual destinations. + + + Closes the reader, and any underlying stream or data source used to create the reader + + + Removes all the unreachable objects. + @return the number of indirect objects removed + + + Gets a read-only version of AcroFields. + @return a read-only version of AcroFields + + + Gets the global document JavaScript. + @param file the document file + @throws IOException on error + @return the global document JavaScript + + + Gets the global document JavaScript. + @throws IOException on error + @return the global document JavaScript + + + Selects the pages to keep in the document. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param ranges the comma separated ranges as described in {@link SequenceList} + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + @param removeUnused indicate if to remove unsed objects. @see removeUnusedObjects + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param key a key for a viewer preference + @param value a value for the viewer preference + @see PdfViewerPreferences#addViewerPreference + + + Returns a bitset representing the PageMode and PageLayout viewer preferences. + Doesn't return any information about the ViewerPreferences dictionary. + @return an int that contains the Viewer Preferences. + + + Getter for property newXrefType. + @return Value of property newXrefType. + + + Getter for property fileLength. + @return Value of property fileLength. + + + Getter for property hybridXref. + @return Value of property hybridXref. + + + Keeps track of all pages nodes to avoid circular references. + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a dictionary object + + + @param pageNum + @return an indirect reference + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + @param pageNum + + + + + + Checks if this PDF has usage rights enabled. + + @return true if usage rights are present; false otherwise + + + Removes any usage rights that this PDF may have. Only Adobe can grant usage rights + and any PDF modification with iText will invalidate them. Invalidated usage rights may + confuse Acrobat and it's advisabe to remove them altogether. + + + Gets the certification level for this document. The return values can be PdfSignatureAppearance.NOT_CERTIFIED, + PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, + PdfSignatureAppearance.CERTIFIED_FORM_FILLING and + PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS. +

+ No signature validation is made, use the methods availabe for that in AcroFields. +

+ @return gets the certification level for this document +
+ + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return true. + @return true if the document was opened with the owner password or if it's not encrypted, + false if the document was opened with the user password + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + @return user password, or null if not a standard encryption handler was used, + if standard encryption handler was used with AES256 encryption algorithm, + or if ownerPasswordUsed wasn't use to open the document. + + + Instance of PdfReader in each output document. + + @author Paulo Soares + + + Gets the content stream of a page as a PdfStream object. + @param pageNumber the page of which you want the stream + @param compressionLevel the compression level you want to apply to the stream + @return a PdfStream object + @since 2.1.3 (the method already existed without param compressionLevel) + + + + lower left x + + + lower left y + + + upper right x + + + upper right y + + + Constructs a PdfRectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + + @since rugPdf0.10 + + + Constructs a PdfRectangle-object starting from the origin (0, 0). + + @param urx upper right x + @param ury upper right y + + + Constructs a PdfRectangle-object with a Rectangle-object. + + @param rectangle a Rectangle + + + Returns the high level version of this PdfRectangle + @return this PdfRectangle translated to class Rectangle + + + Overrides the add-method in PdfArray in order to prevent the adding of extra object to the array. + + @param object PdfObject to add (will not be added here) + @return false + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param object Ignored. + @since 2.1.5 + + + Returns the lower left x-coordinate. + + @return the lower left x-coordinaat + + + Returns the upper right x-coordinate. + + @return the upper right x-coordinate + + + Returns the upper right y-coordinate. + + @return the upper right y-coordinate + + + Returns the lower left y-coordinate. + + @return the lower left y-coordinate + + + Returns the lower left x-coordinate, considering a given margin. + + @param margin a margin + @return the lower left x-coordinate + + + Returns the upper right x-coordinate, considering a given margin. + + @param margin a margin + @return the upper right x-coordinate + + + Returns the upper right y-coordinate, considering a given margin. + + @param margin a margin + @return the upper right y-coordinate + + + Returns the lower left y-coordinate, considering a given margin. + + @param margin a margin + @return the lower left y-coordinate + + + Returns the width of the rectangle. + + @return a width + + + Returns the height of the rectangle. + + @return a height + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + @return a PdfRectangle + + + A Rendition dictionary (pdf spec 1.5) + + + + Constructs a PDF ResourcesDictionary. + + + Implements the shading dictionary (or stream). + + @author Paulo Soares + + + Holds value of property bBox. + + + Holds value of property antiAlias. + + + Creates new PdfShading + + + Implements the shading pattern dictionary. + + @author Paulo Soares + + + Creates new PdfShadingPattern + + + Implements the signature dictionary. + + @author Paulo Soares + + + Creates new PdfSignature + + + Sets the signature creator name in the + {@link PdfSignatureBuildProperties} dictionary. + + @param name + + + Gets the {@link PdfSignatureBuildProperties} instance if it exists, if + not it adds a new one and returns this. + + @return {@link PdfSignatureBuildProperties} + + + Class that takes care of the cryptographic options + and appearances that form a signature. + + + Constructs a PdfSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Approval signature + + + Author signature, no changes allowed + + + Author signature, form filling allowed + + + Author signature, form filling and annotations allowed + + + The certification level + + + Sets the document type to certified instead of simply signed. + @param certificationLevel the values can be: NOT_CERTIFIED, CERTIFIED_NO_CHANGES_ALLOWED, + CERTIFIED_FORM_FILLING and CERTIFIED_FORM_FILLING_AND_ANNOTATIONS + + + The caption for the reason for signing. + + + The caption for the location of signing. + + + The reason for signing. + + + Holds value of property location. + + + Holds value of property signDate. + + + Gets and setsthe signing reason. + @return the signing reason + + + Sets the caption for signing reason. + @param reasonCaption the signing reason caption + + + Gets and sets the signing location. + @return the signing location + + + Sets the caption for the signing location. + @param locationCaption the signing location caption + + + Holds value of the application that creates the signature + + + Gets the signature creator. + @return the signature creator + + Sets the name of the application used to create the signature. + @param signatureCreator the name of the signature creating application + + + The contact name of the signer. + + + Gets the signing contact. + @return the signing contact + + + Gets the signature date. + @return the signature date + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null) + + + Array containing the byte positions of the bytes that need to be hashed. + + + + @return the underlying source + @throws IOException + + + The signing certificate + + + Adds the appropriate developer extension. + + + The crypto dictionary + + + Gets the user made signature dictionary. This is the dictionary at the /V key. + @return the user made signature dictionary + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + @param sig the signature dictionary + + + Holds value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + @param signatureEvent the signature event + + + The name of the field + + + Gets the field name. + @return the field name + + + Gets a new signature field name that + doesn't clash with any existing name. + @return a new signature field name + + + The page where the signature will appear. + + + Gets the page number of the field. + @return the page number of the field + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + Gets the rectangle representing the signature dimensions. + @return the rectangle representing the signature dimensions. It may be null + or have zero width or height for invisible signatures + + + rectangle that represent the position and dimension of the signature in the page. + + + Gets the rectangle that represent the position and dimension of the signature in the page. + @return the rectangle that represent the position and dimension of the signature in the page + + + Gets the visibility status of the signature. + @return the visibility status of the signature + + + Sets the signature to be visible. It creates a new visible signature field. + @param pageRect the position and dimension of the field in the page + @param page the page to place the field. The fist page is 1 + @param fieldName the field name or null to generate automatically a new field name + + + Sets the signature to be visible. An empty signature field with the same name must already exist. + @param fieldName the existing empty signature field name + + + Signature rendering modes + @since 5.0.1 + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + The rendering mode chosen for visible signatures + + + Gets the rendering mode for this signature. + @return the rendering mode for this signature + @since 5.0.1 + + + The image that needs to be used for a visible signature + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC + or RenderingMode.GRAPHIC_AND_DESCRIPTION. + @param signatureGraphic image rendered. If null the mode is defaulted + to RenderingMode.DESCRIPTION + + + Appearance compliant with the recommendations introduced in Acrobat 6? + + + Acrobat 6.0 and higher recommends that only layer n0 and n2 be present. + Use this method with value false if you want to ignore this recommendation. + @param acro6Layers if true only the layers n0 and n2 will be present + @deprecated Adobe no longer supports Adobe Acrobat / Reader versions older than 9 + + + Layers for a visible signature. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Indicates that the existing appearances needs to be reused as layer 0. + + + An appearance that can be used for layer 1 (if acro6Layers is false). + + + A background image for the text in layer 2. + + + Gets the background image for the layer 2. + @return the background image for the layer 2 + + + the scaling to be applied to the background image.t + + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + @param imageScale the scaling to be applied to the background image + + + The text that goes in Layer 2 of the signature appearance. + + + Sets the signature text identifying the signer. + @param text the signature text identifying the signer. If null or not set + a standard description will be used + + + Font for the text in Layer 2. + + + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + @param layer2Font the n2 and n4 font + + + Run direction for the text in layers 2 and 4. + + + Sets the run direction in the n2 and n4 layer. + @param runDirection the run direction + + + The text that goes in Layer 4 of the appearance. + + + Sets the text identifying the signature status. Will be ignored if acro6Layers is true. + @param text the text identifying the signature status. If null or not set + the description "Signature Not Verified" will be used + + + Template containing all layers drawn on top of each other. + + + + extra space at the top. + + + margin for the content inside the signature rectangle. + + + + The PdfStamper that creates the signed PDF. + + + Gets the PdfStamper associated with this instance. + @return the PdfStamper associated with this instance + + + Sets the PdfStamper + @param stamper PdfStamper + + + The PdfStamperImp object corresponding with the stamper. + + + A byte buffer containing the bytes of the Stamper. + + + Getter for the byte buffer. + + + OutputStream for the bytes of the stamper. + + + Temporary file in case you don't want to sign in memory. + + + Gets the temporary file. + @return the temporary file or null is the document is created in memory + + + Name and content of keys that can only be added in the close() method. + + + Length of the output. + + + Indicates if the stamper has already been pre-closed. + + + + Signature field lock dictionary. + + + + + Signature field lock dictionary. + + + If a signature is created on an existing signature field, then its /Lock dictionary + takes the precedence (if it exists). + + + + Checks if the document is in the process of closing. + @return true if the document is in the process of closing, + false otherwise + + + + Adds keys to the signature dictionary that define + the certification level and the permissions. + This method is only used for Certifying signatures. + @param crypto the signature dictionary + + + Adds keys to the signature dictionary that define + the field permissions. + This method is only used for signatures that lock fields. + @param crypto the signature dictionary + + + + PdfSmartCopy has the same functionality as PdfCopy, + but when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. + + + the cache with the streams and references. + + + Creates a PdfSmartCopy instance. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file if it wasn't available + in the cache yet. If it's in the cache, the reference to + the already used stream is returned. + + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + A PdfSpotColor defines a ColorSpace + + @see PdfDictionary + + + Constructs a new PdfSpotColor. + + @param name a string value + @param tint a tint value between 0 and 1 + @param altcs a altnative colorspace value + + + + The writer + + + + + + Gets the optional String map to add or change values in + the info dictionary. + @return the map or null + + An optional String map to add or change values in + the info dictionary. Entries with null + values delete the key in the original info dictionary + @param moreInfo additional entries to the info dictionary + + + + Replaces a page from this document with a page from other document. Only the content + is replaced not the fields and annotations. This method must be called before + getOverContent() or getUndercontent() are called for the same page. + @param r the PdfReader from where the new page will be imported + @param pageImported the page number of the imported page + @param pageReplaced the page to replace in this document + + + Inserts a blank page. All the pages above and including pageNumber will + be shifted up. If pageNumber is bigger than the total number of pages + the new page will be the last one. + @param pageNumber the page number position where the new page will be inserted + @param mediabox the size of the new page + + + Gets the signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + Gets the xml signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + + Gets a PdfContentByte to write under the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write under the page of + the original document + + + Gets a PdfContentByte to write over the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write over the page of + the original document + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the encryption was set too late + + + Gets a page from other PDF document. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the underlying PdfReader. + @return the underlying PdfReader + + + Gets the AcroFields object that allows to get and set field values + and to merge FDF forms. + @return the AcroFields object + + + Determines if the fields are flattened on close. The fields added with + {@link #addAnnotation(PdfAnnotation,int)} will never be flattened. + @param flat true to flatten the fields, false + to keep the fields + + + Determines if the FreeText annotations are flattened on close. + @param flat true to flatten the FreeText annotations, false + (the default) to keep the FreeText annotations as active content. + + + Flatten annotations with an appearance stream on close(). + + @param flat boolean to indicate whether iText should flatten annotations or not. + + + Adds an annotation of form field in a specific page. This page number + can be overridden with {@link PdfAnnotation#setPlaceInPage(int)}. + @param annot the annotation + @param page the page + + + Adds an empty signature. + @param name the name of the signature + @param page the page number + @param llx lower left x coordinate of the signature's position + @param lly lower left y coordinate of the signature's position + @param urx upper right x coordinate of the signature's position + @param ury upper right y coordinate of the signature's position + @return a signature form field + @since 2.1.4 + + + Adds the comments present in an FDF file. + @param fdf the FDF file + @throws IOException on error + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Sets the thumbnail image for a page. + @param image the image + @param page the page + @throws PdfException on error + @throws DocumentException on error + + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param js the JavaScript code + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param name the name for the JavaScript snippet in the name tree + @param js the JavaScript code + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fs the file specification + + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Sets the XMP metadata. + @param xmp + @see PdfWriter#setXmpMetadata(byte[]) + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. Be attentive!!! If you want set full compression , you should set immediately after creating PdfStamper, + before editing the document.It can be set once and it can't be unset. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + Integer(page number) -> PageStamp + + + Holds value of property rotateContents. + + + Creates new PdfStamperImp. + @param reader the read PDF + @param os the output destination + @param pdfVersion the new pdf version or '\0' to keep the same version as the original + document + @param append + @throws DocumentException on error + @throws IOException + + + @param reader + @param openFile + @throws IOException + + + @param reader + + + @param fdf + @throws IOException + + + If true, annotations with an appearance stream will be flattened. + + @since 5.5.3 + @param flatAnnotations boolean + + + @see com.lowagie.text.pdf.PdfWriter#getPageReference(int) + + + @see com.lowagie.text.pdf.PdfWriter#addAnnotation(com.lowagie.text.pdf.PdfAnnotation) + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfWriter#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + Always throws an UnsupportedOperationException. + @param actionType ignore + @param action ignore + @throws PdfException ignore + @see PdfStamper#setPageAction(PdfName, PdfAction, int) + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Always throws an UnsupportedOperationException. + @param seconds ignore + + + Always throws an UnsupportedOperationException. + @param transition ignore + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + Getter for property append. + @return Value of property append. + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(com.lowagie.text.pdf.PdfAction) + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(java.lang.String) + + + @see com.lowagie.text.pdf.PdfWriter#setThumbnail(com.lowagie.text.Image) + + + Reads the OCProperties dictionary from the catalog of the existing document + and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. + Note that the original OCProperties of the existing document can contain more information. + @since 2.1.2 + + + Recursive method to reconstruct the documentOCGorder variable in the writer. + @param parent a parent PdfLayer (can be null) + @param arr an array possibly containing children for the parent PdfLayer + @param ocgmap a Hashtable with indirect reference Strings as keys and PdfLayer objects as values. + @since 2.1.2 + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + is the stream compressed? + + + The level of compression. + @since 2.1.3 + + + Constructs a PdfStream-object. + + @param bytes content of the new PdfObject as an array of byte. + + + Creates an efficient stream. No temporary array is ever created. The InputStream + is totally consumed but is not closed. The general usage is: +
+            InputStream in = ...;
+            PdfStream stream = new PdfStream(in, writer);
+            stream.FlateCompress();
+            writer.AddToBody(stream);
+            stream.WriteLength();
+            in.Close();
+            
+ @param inputStream the data to write to this stream + @param writer the PdfWriter for this stream +
+ + Constructs a PdfStream-object. + + + Writes the stream length to the PdfWriter. +

+ This method must be called and can only be called if the contructor {@link #PdfStream(InputStream,PdfWriter)} + is used to create the stream. +

+ @throws IOException on error + @see #PdfStream(InputStream,PdfWriter) +
+ + Compresses the stream. + + + Compresses the stream. + @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) + @since 2.1.3 + + + Writes the data content to an Stream. + @param os the destination to write to + @throws IOException on error + + + @see com.lowagie.text.pdf.PdfObject#toString() + + + + The value of this object. + + + The encoding. + + + Constructs an empty PdfString-object. + + + Constructs a PdfString-object. + + @param value the content of the string + + + Constructs a PdfString-object. + + @param value the content of the string + @param encoding an encoding + + + Constructs a PdfString-object. + + @param bytes an array of byte + + + Returns the PDF representation of this PdfString. + + @return an array of bytes + + + Returns the string value of the PdfString-object. + + @return a string + + + Gets the encoding of this string. + + @return a string + + + This is a node in a document logical structure. It may contain a mark point or it may contain + other nodes. + @author Paulo Soares + + + Holds value of property kids. + + + Holds value of property reference. + + + Creates a new instance of PdfStructureElement. + @param parent the parent of this node + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Creates a new instance of PdfStructureElement. + @param root the structure tree root + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Gets the parent of this node. + @return the parent of this node + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + The structure tree root corresponds to the highest hierarchy level in a tagged PDF. + @author Paulo Soares + + + Holds value of property writer. + + + Creates a new instance of PdfStructureTreeRoot + + + Maps the user tags to the standard tags. The mapping will allow a standard application to make some sense of the tagged + document whatever the user tags may be. + @param used the user tag + @param standard the standard tag + + + Gets the writer. + @return the writer + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + Implements the form XObject. + + + The indirect reference to this template + + + The resources used by this template + + + The bounding box of this template + + + A dictionary with additional information + @since 5.1.0 + + + Creates a PdfTemplate. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + + Gets the bounding width of this template. + + @return width the bounding width + + + Gets the bounding heigth of this template. + + @return heigth the bounding height + + + Gets the layer this template belongs to. + @return the layer this template belongs to or null for no layer defined + + + Gets the indirect reference to this template. + + @return the indirect reference to this template + + + Constructs the resources used by this template. + + @return the resources used by this template + + + Gets the stream representing this template. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + + + Gets a duplicate of this PdfTemplate. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfTemplate + + + Sets/gets a dictionary with extra entries, for instance /Measure. + + @param additional + a PdfDictionary with additional information. + @since 5.1.0 + + + + Adds a PdfNumber to the PdfArray. + + @param number displacement of the string + + + Out Vertical Split + + + Out Horizontal Split + + + In Vertical Split + + + IN Horizontal Split + + + Vertical Blinds + + + Vertical Blinds + + + Inward Box + + + Outward Box + + + Left-Right Wipe + + + Right-Left Wipe + + + Bottom-Top Wipe + + + Top-Bottom Wipe + + + Dissolve + + + Left-Right Glitter + + + Top-Bottom Glitter + + + Diagonal Glitter + + + duration of the transition effect + + + type of the transition effect + + + Constructs a Transition. + + + + Constructs a Transition. + + @param type type of the transition effect + + + Constructs a Transition. + + @param type type of the transition effect + @param duration duration of the transition effect + + + The transparency group dictionary. + + @author Paulo Soares + + + Constructs a transparencyGroup. + + + Determining the initial backdrop against which its stack is composited. + @param isolated + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + @param knockout + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + @since 5.0.2 + + + A boolean operator. + + + A boolean operator. + + + A boolean operator. + + + Creates a visibility expression. + @param type should be AND, OR, or NOT + + + @see com.itextpdf.text.pdf.PdfArray#add(int, com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#addFirst(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(float[]) + + + @see com.itextpdf.text.pdf.PdfArray#add(int[]) + + + A DocWriter class for PDF. +

+ When this PdfWriter is added + to a certain PdfDocument, the PDF representation of every Element + added to this Document will be written to the outputstream.

+
+ + The highest generation number possible. + @since iText 2.1.6 + + + + PdfCrossReference is an entry in the PDF Cross-Reference table. + + + Byte offset in the PDF file. + + + generation of the object. + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + @param generation generationnumber of the object + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + + + Returns the PDF representation of this PdfObject. + @param os + @throws IOException + + + Writes PDF syntax to the Stream + @param midSize + @param os + @throws IOException + + + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @see java.lang.Object#equals(java.lang.Object) + + + array containing the cross-reference table of the normal objects. + + + the current byteposition in the body. + + + Constructs a new PdfBody. + @param writer + + + + Gets a PdfIndirectReference for an object that will be created in the future. + @return a PdfIndirectReference + + + + Returns the offset of the Cross-Reference table. + + @return an offset + + + Returns the total number of objects contained in the CrossReferenceTable of this Body. + + @return a number of objects + + + Returns the CrossReferenceTable of the Body. + @param os + @param root + @param info + @param encryption + @param fileID + @param prevxref + @throws IOException + + + + Constructs a PDF-Trailer. + + @param size the number of entries in the PdfCrossReferenceTable + @param offset offset of the PdfCrossReferenceTable + @param root an indirect reference to the root of the PDF document + @param info an indirect reference to the info object of the PDF document + @param encryption + @param fileID + @param prevxref + + + Returns the PDF representation of this PdfObject. + @param writer + @param os + @throws IOException + + + Constructs a PdfWriter. + + + + Use this method to get an instance of the PdfWriter. + + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @return a new PdfWriter + + @throws DocumentException on error + + + Use this method to get an instance of the PdfWriter. + + @return a new PdfWriter + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @param listener A DocListener to pass to the PdfDocument. + @throws DocumentException on error + + + the pdfdocument object. + + + Gets the PdfDocument associated with this writer. + @return the PdfDocument + + + Use this method to get the info dictionary if you want to + change it directly (add keys and values to the info dictionary). + @return the info dictionary + + + Use this method to get the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Sets the initial leading for the PDF document. + This has to be done before the document is opened. + @param leading the initial leading + @since 2.1.6 + @throws DocumentException if you try setting the leading after the document was opened. + + + The direct content in this document. + + + The direct content under in this document. + + + Use this method to get the direct content for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Use this method to get the direct content under for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Resets all the direct contents to empty. + This happens when a new page is started. + + + body of the PDF document + + + Adds the local destinations to the body of the document. + @param dest the Hashtable containing the destinations + @throws IOException on error + + + Adds an object to the PDF body. + @param object + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Use this method for caching objects. + @param iobj @see PdfIndirectObject + + + Gets a PdfIndirectReference for an object that + will be created in the future. + @return the PdfIndirectReference + + + Returns the outputStreamCounter. + @return the outputStreamCounter + + + Holds value of property extraCatalog. + + + Sets extra keys to the catalog. + @return the catalog to change + + + The root of the page tree. + + + The PdfIndirectReference to the pages. + + + The current page number. + + + The value of the Tabs entry in the page dictionary. + @since 2.1.5 + + + Additional page dictionary entries. + @since 5.1.0 + + + Adds an additional entry for the page dictionary. + @since 5.1.0 + + + Gets the additional pageDictEntries. + @since 5.1.0 + + + Resets the additional pageDictEntries. + @since 5.1.0 + + + Use this method to make sure the page tree has a lineair structure + (every leave is attached directly to the root). + Use this method to allow page reordering with method reorderPages. + + + Use this method to reorder the pages in the document. + A null argument value only returns the number of pages to process. + It is advisable to issue a Document.NewPage() before using this method. + @return the total number of pages + @param order an array with the new page sequence. It must have the + same size as the number of pages. + @throws DocumentException if all the pages are not present in the array + + + Use this method to get a reference to a page existing or not. + If the page does not exist yet the reference will be created + in advance. If on closing the document, a page number greater + than the total number of pages was requested, an exception + is thrown. + @param page the page number. The first page is 1 + @return the reference to the page + + + Gets the pagenumber of this document. + This number can be different from the real pagenumber, + if you have (re)set the page number previously. + @return a page number + + + Sets the Viewport for the next page. + @param viewport an array consisting of Viewport dictionaries. + @since 5.1.0 + + + Sets the value for the Tabs entry in the page tree. + @param tabs Can be PdfName.R, PdfName.C or PdfName.S. + Since the Adobe Extensions Level 3, it can also be PdfName.A + or PdfName.W + @since 2.1.5 + + + + The PdfPageEvent for this document. + + + Gets the PdfPageEvent for this document or null + if none is set. + @return the PdfPageEvent for this document or null + if none is set + + + A number refering to the previous Cross-Reference Table. + + + The original file ID (if present). + + + + + Use this method to get the root outline + and construct bookmarks. + @return the root outline + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + Stores the version information for the header and the catalog. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Returns the version information. + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Use this method to add page labels + @param pageLabels the page labels + + + Adds named destinations in bulk. + Valid keys and values of the map can be found in the map + that is created by SimpleNamedDestination. + @param map a map with strings as keys for the names, + and structured strings as values for the destinations + @param page_offset number of pages that has to be added to + the page numbers in the destinations (useful if you + use this method in combination with PdfCopy). + @since iText 5.0 + + + Adds one named destination. + @param name the name for the destination + @param page the page number where you want to jump to + @param dest an explicit destination + @since iText 5.0 + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param js The JavaScript action + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param js The JavaScript action + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Use this method to adds a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + + + Adds a file attachment at the document level. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. + @param description the file description + @param fs the file specification + + + Adds a file attachment at the document level. + @param fs the file specification + + + action value + + + action value + + + action value + + + action value + + + action value + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + Sets the Collection dictionary. + @param collection a dictionary of type PdfCollection + + + signature value + + + signature value + + + Gets the AcroForm object. + @return the PdfAcroForm + + + Adds a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Adds the PdfAnnotation to the calculation order + array. + @param annot the PdfAnnotation to be added + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + XMP Metadata for the document. + + + Sets XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to set the XMP Metadata for each page. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to creates XMP Metadata based + on the metadata in the PdfDocument. + @since 5.4.4 just creates XmpWriter instance which will be serialized in close. + + + PDF/X level + + + PDF/X level + + + PDF/X level + + + Stores the PDF ISO conformance. + + + Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It + must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#isPdfX() + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + @param outputConditionIdentifier a value + @param outputCondition a value + @param registryName a value + @param info a value + @param destOutputProfile a value + @throws IOException on error + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + + Prefer the ICC_Profile-based version of this method. + @param outputConditionIdentifier a value + @param outputCondition a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance. + @param registryName a value + @param info a value + @param destOutputProfile a value + @since 1.x + + @throws IOException + + + Copies the output intent dictionary from other document to this one. + @param reader the other document + @param checkExistence true to just check for the existence of a valid output intent + dictionary, false to insert the dictionary if it exists + @throws IOException on error + @return true if the output intent dictionary exists, false + otherwise + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Mask to separate the encryption type from the encryption mode. + + + Add this to the mode to keep the metadata in clear text + + + Add this to the mode to keep encrypt only the embedded files. + @since 2.1.3 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_CONTENTS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_COPY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_ANNOTATIONS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_FILL_IN} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_SCREENREADERS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_ASSEMBLY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_DEGRADED_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_40} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_128} instead. Scheduled for removal at or after 2.2.0 + + + Contains the business logic for cryptography. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Holds value of property fullCompression. + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + The compression level of the content streams. + @since 2.1.3 + + + Sets the compression level to be used for streams written by this writer. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + The fonts of this document + + + The font number counter for the fonts in the document. + + + Adds a BaseFont to the document but not to the page resources. + It is used for templates. + @param bf the BaseFont to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The form XObjects in this document. The key is the xref and the value + is Object[]{PdfName, template}. + + + The name counter for the form XObjects name. + + + Adds a template to the document but not to the page resources. + @param template the template to add + @param forcedName the template name, rather than a generated one. Can be null + @return the PdfName for this template + + + Releases the memory used by a template by writing it to the output. The template + can still be added to any content but changes to the template itself won't have + any effect. + @param tp the template to release + @throws IOException on error + + + Gets a page from other PDF document. The page can be used as + any other PdfTemplate. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Returns the PdfReaderInstance associated with the specified reader. + Multiple calls with the same reader object will return the same + PdfReaderInstance. + @param reader the PDF reader that you want an instance for + @return the instance for the provided reader + @since 5.0.3 + + + Writes the reader to the document and frees the memory used by it. + The main use is when concatenating multiple documents to keep the + memory usage restricted to the current appending document. + @param reader the PdfReader to free + @throws IOException on error + + + Gets the current document size. This size only includes + the data already writen to the output stream, it does not + include templates or fonts. It is usefull if used with + freeReader() when concatenating many documents + and an idea of the current size is needed. + @return the approximate size without fonts or templates + + + The colors of this document + + + The color number counter for the colors in the document. + + + Adds a SpotColor to the document but not to the page resources. + @param spc the SpotColor to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The patterns of this document + + + The patten number counter for the colors in the document. + + + Mark this document for tagging. It must be called before open. + + + Check if the document is marked for tagging. + @return true if the document is marked for tagging + + + Fix structure of tagged document: remove unused objects, remove unused items from class map, + fix xref table due to removed objects. + + + Flushes merged AcroFields to document (if any). + + + Gets the structure tree root. If the document is not marked for tagging it will return null. + @return the structure tree root + + + Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer + state. It's advisable to only call this method right before close and do any modifications + at that time. + @return the Optional Content Properties Dictionary + + + Sets a collection of optional content groups whose states are intended to follow + a "radio button" paradigm. That is, the state of at most one optional + content group in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + @param group the radio group + + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + @param layer the layer that needs to be added to the array of locked OCGs + @since 2.1.2 + + + Gives the size of the media box. + @return a Rectangle + + + Sets the crop box. The crop box should not be rotated even if the + page is rotated. This change only takes effect in the next + page. + @param crop the crop box + + + Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed". + @param boxName the box size + @param size the size + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + Returns the intersection between the crop, trim art or bleed box and the parameter intersectingRectangle. + This method returns null when + - there is no intersection + - any of the above boxes are not defined + - the parameter intersectingRectangle is null + + @param boxName crop, trim, art, bleed + @param intersectingRectangle the rectangle that intersects the rectangle associated to the boxName + @return the intersection of the two rectangles + + + Use this method to make sure a page is added, + even if it's empty. If you use SetPageEmpty(false), + invoking NewPage() after a blank page will add a newPage. + SetPageEmpty(true) won't have any effect. + @param pageEmpty the state + + + action value + + + action value + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the the thumbnail image for the current page. + @param image the image + @throws PdfException on error + @throws DocumentException or error + + + A group attributes dictionary specifying the attributes + of the page�s page group for use in the transparent + imaging model + + + The default space-char ratio. + + + Disable the inter-character spacing. + + + The ratio between the extra word spacing and the extra character spacing. + Extra word spacing will grow ratio times more than extra character spacing. + + + Sets the ratio between the extra word spacing and the extra character spacing + when the text is fully justified. + Extra word spacing will grow spaceCharRatio times more than extra character spacing. + If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing + will be zero. + @param spaceCharRatio the ratio between the extra word spacing and the extra character spacing + + + Use the default run direction. + + + Do not use bidirectional reordering. + + + Use bidirectional reordering with left-to-right + preferential run direction. + + + Use bidirectional reordering with right-to-left + preferential run direction. + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + A UserUnit is a value that defines the default user space unit. + The minimum UserUnit is 1 (1 unit = 1/72 inch). + The maximum UserUnit is 75,000. + Remark that this userunit only works starting with PDF1.6! + + + Gets the default colorspaces. + @return the default colorspaces + + + + Sets the image sequence to follow the text in strict order. + @param strictImageSequence new value of property strictImageSequence + + + + Clears text wrapping around images (if applicable). + Method suggested by Pelikan Stephan + @throws DocumentException + + + Dictionary, containing all the images of the PDF document + + + This is the list with all the images in the document. + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @param fixedRef the reference to used. It may be null, + a PdfIndirectReference or a PRIndirectReference. + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Writes a PdfImage to the outputstream. + + @param pdfImage the image to be added + @return a PdfIndirectReference to the encapsulated image + @throws PdfException when a document isn't open yet, or has been closed + + + return the PdfIndirectReference to the image with a given name. + + @param name the name of the image + @return a PdfIndirectReference + + + A Hashtable with Stream objects containing JBIG2 Globals + @since 2.1.5 + + + Gets an indirect reference to a JBIG2 Globals stream. + Adds the stream if it hasn't already been added to the writer. + @param content a byte array that may already been added to the writer inside a stream object. + @since 2.1.5 + + + A flag indicating the presence of structure elements that contain user properties attributes. + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + @param userProperties the user properties flag + + + Holds value of property RGBTranparency. + + + Sets the transparency blending colorspace to RGB. The default blending colorspace is + CMYK and will result in faded colors in the screen and in printing. Calling this method + will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages + until other value is set. + Note that this is a generic solution that may not work in all cases. + @param rgbTransparencyBlending true to set the transparency blending colorspace to RGB, false + to use the default blending colorspace + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param rect + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param title + @param content + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param action + @param subtype + @return + + + Gets the list of the standard structure element names (roles). + @return + + + + @author psoares + + + Creates a new instance of PdfXConformanceException. + + + Creates a new instance of PdfXConformanceException. + @param s + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + @param inp the PFM file + @param outp the AFM file + @throws IOException on error + + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + Character class. This is a minor attempt to overcome the problem that + in the pfm file, all unused characters are given the width of space. + Note that this array isn't used in iText. + + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + This class captures an AcroForm on input. Basically, it extends Dictionary + by indexing the fields of an AcroForm + @author Mark Thompson + + + This class holds the information for a single field + + + Returns the name of the widget annotation (the /NM entry). + @return a String or null (if there's no /NM key) + + + Constructor + @param reader reader of the input file + + + Number of fields found + @return size + + + Given the title (/T) of a reference, return the associated reference + @param name a string containing the path + @return a reference to the field, or null + + + Read, and comprehend the acroform + @param root the docment root + + + After reading, we index all of the fields. Recursive. + @param fieldlist An array of fields + @param fieldDict the last field dictionary we encountered (recursively) + @param parentPath the pathname of the field, up to this point or null + + + merge field attributes from two dictionaries + @param parent one dictionary + @param child the other dictionary + @return a merged dictionary + + + stack a level of dictionary. Merge in a dictionary from this level + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + + + Creates a new PDF stream object that will replace a stream + in a existing PDF file. + @param reader the reader that holds the existing PDF + @param conts the new content + @param compressionLevel the compression level for the content + @since 2.1.3 (replacing the existing constructor without param compressionLevel) + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @since iText 2.1.1 + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @param compressionLevel a value between -1 and 9 (ignored if compress == false) + @since iText 2.1.3 + + + Sets the data associated with the stream, as-is. This method will not + remove or change any existing filter: the data has to match an existing + filter or an appropriate filter has to be set. + + @param data data, possibly encrypted and/or compressed + @since 5.5.0 + + + Sets the data associated with the stream + @param data raw data, decrypted and uncompressed. + + + + @author Paulo Soares + + + Creates a PRTokeniser for the specified {@link RandomAccessSource}. + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + @param file the source + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
The same as calling {@link #isWhitespace(int, boolean) isWhiteSpace(ch, true)}. + @param ch int + @return boolean + @since 5.5.1 +
+ + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + @param ch int + @param isWhitespace boolean + @return boolean + @since 5.5.1 + + + Gets current reference number. If parsing was failed with NumberFormatException -1 will be return. + + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. +
The same as calling {@link #readLineSegment(byte[], boolean) readLineSegment(input, true)}. + + @param input byte[] + @return boolean + @throws IOException + @since 5.5.1 +
+ + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. + + @param input byte[] + @param isNullWhitespace boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method {@link #readLineSegment(byte[]) readLineSegment(input)} + @return boolean + @throws IOException + @since 5.5.1 + + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + Holds value of property layout. + + + Holds value of property image. + + + Holds value of property template. + + + Holds value of property scaleIcon. + + + Holds value of property proportionalIcon. + + + Holds value of property iconVerticalAdjustment. + + + Holds value of property iconHorizontalAdjustment. + + + Holds value of property iconFitToBounds. + + + Creates a new instance of PushbuttonField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, + LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, + LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, + LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. + The default is LAYOUT_LABEL_ONLY. + @param layout New value of property layout. + + + Sets the icon as an image. + @param image the image + + + Sets the icon as a template. + @param template the template + + + Sets the way the icon will be scaled. Possible values are + SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, + SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. + The default is SCALE_ICON_ALWAYS. + @param scaleIcon the way the icon will be scaled + + + Sets the way the icon is scaled. If true the icon is scaled proportionally, + if false the scaling is done anamorphicaly. + @param proportionalIcon the way the icon is scaled + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. + A value of 0 positions the icon at the bottom of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconVerticalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. + A value of 0 positions the icon at the left of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconHorizontalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon + + + Gets the button appearance. + @throws IOException on error + @throws DocumentException on error + @return the button appearance + + + Gets the pushbutton field. + @throws IOException on error + @throws DocumentException on error + @return the pushbutton field + + + If true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account. The default + is false. + @param iconFitToBounds if true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account + + + Holds value of property iconReference. + + + Sets the reference to an existing icon. + @param iconReference the reference to an existing icon + + +

A simple, fast array of bits, represented compactly by an array of ints internally.

+ + @author Sean Owen +
+ + @param i bit to get + @return true iff bit i is set + + + Sets bit i. + + @param i bit to set + + + Flips bit i. + + @param i bit to set + + + Sets a block of 32 bits, starting at bit i. + + @param i first bit to set + @param newBits the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + @param start start of range, inclusive. + @param end end of range, exclusive + @param value if true, checks that bits in range are set, otherwise checks that they are not set + @return true iff all bits are set or not set in range, according to value argument + @throws IllegalArgumentException if end is less than or equal to start + + + @return underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + Reverses all bits in the array. + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+ +

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+ +

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+ + @author Sean Owen + @author dswitkin@google.com (Daniel Switkin) +
+ +

Gets the requested bit, where true means black.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) + @return value of given bit in matrix +
+ +

Sets the given bit to true.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ +

Flips the given bit.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ + @param left The horizontal position to begin at (inclusive) + @param top The vertical position to begin at (inclusive) + @param width The width of the region + @param height The height of the region +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + @param y The row to retrieve + @param row An optional caller-allocated BitArray, will be allocated if null or too small + @return The resulting BitArray - this reference should always be used even when passing + your own row + + + @return The width of the matrix + + + @return The height of the matrix + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + @return row/column dimension of this matrix + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This class implements an array of unsigned bytes. + + @author dswitkin@google.com (Daniel Switkin) + + + Access an unsigned byte at location index. + @param index The index in the array to access. + @return The unsigned value of the byte as an int. + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + @author Sean Owen + + + @param name character set ECI encoding name + @return {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal + but unsupported + + + These are a set of hints that you may pass to Writers to specify their behavior. + + @author dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by ChooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + + @return the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + Append mode info. On success, store the result in "bits". + + + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + +

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard.

+ + @author Sean Owen +
+ + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + @param bits int containing the two bits encoding a QR Code's error correction level + @return {@link ErrorCorrectionLevel} representing the encoded error correction level + + +

Encapsulates a QR Code's format information, including the data mask used and + error correction level.

+ + @author Sean Owen + @see ErrorCorrectionLevel +
+ + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + @param maskedFormatInfo1 format info indicator, with mask still applied + @param maskedFormatInfo2 second copy of same info; both are checked at the same time + to establish best match + @return information about the format it specifies, or null + if doesn't seem to match any known pattern + + +

This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations.

+ +

Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used.

+ + @author Sean Owen +
+ + Create a representation of GF(256) using the given primitive polynomial. + + @param primitive irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + @return the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + + @return sum/difference of a and b + + + @return 2 to the power of a in GF(256) + + + @return base 2 log of a in GF(256) + + + @return multiplicative inverse of a + + + @param a + @param b + @return product of a and b in GF(256) + + +

Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable.

+ +

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+ + @author Sean Owen +
+ + @param field the {@link GF256} instance representing the field to use + to perform computations + @param coefficients coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + @throws IllegalArgumentException if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + @return degree of this polynomial + + + @return true iff this polynomial is the monomial "0" + + + @return coefficient of x^degree term in this polynomial + + + @return evaluation of this polynomial at a given point + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + +

See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard.

+ + @author Sean Owen +
+ + @param bits four bits encoding a QR Code data mode + @return {@link Mode} encoded by these bits + @throws IllegalArgumentException if bits do not correspond to a known mode + + + @param version version in question + @return number of bits used, in this QR Code symbol {@link Version}, to encode the + count of characters that will follow encoded in this {@link Mode} + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + + @author dswitkin@google.com (Daniel Switkin) + + +

Implements Reed-Solomon enbcoding, as the name implies.

+ + @author Sean Owen + @author William Rucklidge +
+ +

Thrown when an exception occurs during Reed-Solomon decoding, such as when + there are too many errors to correct.

+ + @author Sean Owen +
+ + See ISO 18004:2006 Annex D + + @author Sean Owen + + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + +

Deduces version information purely from QR Code dimensions.

+ + @param dimension dimension in modules + @return {@link Version} for a QR Code of that dimension + @throws FormatException if dimension is not 1 mod 4 +
+ + See ISO 18004:2006 Annex E + + +

Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version.

+
+ +

Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format.

+
+ + See ISO 18004:2006 6.5.1 Table 9 + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + @author dswitkin@google.com (Daniel Switkin) + + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Holds value of property checkType. + + + Holds value of property onValue. + + + Holds value of property checked. + + + Creates a new instance of RadioCheckField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. It must not be null + @param onValue the value when the field is checked + + + Sets the checked symbol. It can be + TYPE_CHECK, + TYPE_CIRCLE, + TYPE_CROSS, + TYPE_DIAMOND, + TYPE_SQUARE and + TYPE_STAR. + @param checkType the checked symbol + + + Sets the value when the field is checked. + @param onValue the value when the field is checked + + + Sets the state of the field to checked or unchecked. + @param checked the state of the field, true for checked + and false for unchecked + + + Gets the field appearance. + @param isRadio true for a radio field and false + for a check field + @param on true for the checked state, false + otherwise + @throws IOException on error + @throws DocumentException on error + @return the appearance + + + Gets the special field appearance for the radio circle. + @param on true for the checked state, false + otherwise + @return the appearance + + + Gets a radio group. It's composed of the field specific keys, without the widget + ones. This field is to be used as a field aggregator with {@link PdfFormField#addKid(PdfFormField) AddKid()}. + @param noToggleToOff if true, exactly one radio button must be selected at all + times; clicking the currently selected button has no effect. + If false, clicking + the selected button deselects it, leaving no button selected. + @param radiosInUnison if true, a group of radio buttons within a radio button field that + use the same value for the on state will turn on and off in unison; that is if + one is checked, they are all checked. If false, the buttons are mutually exclusive + (the same behavior as HTML radio buttons) + @return the radio group + + + Gets the radio field. It's only composed of the widget keys and must be used + with {@link #getRadioGroup(bool,bool)}. + @return the radio field + @throws IOException on error + @throws DocumentException on error + + + Gets the check field. + @return the check field + @throws IOException on error + @throws DocumentException on error + + + Gets a radio or check field. + @param isRadio true to get a radio field, false to get + a check field + @throws IOException on error + @throws DocumentException on error + @return the field + + + Intended to be layered on top of a low level RandomAccessSource object. Provides + functionality useful during parsing: +
    +
  • tracks current position in the file
  • +
  • allows single byte pushback
  • +
  • allows reading of multi-byte data structures (int, long, String) for both Big and Little Endian representations
  • +
  • allows creation of independent 'views' of the underlying data source
  • +
+ + @author Paulo Soares, Kevin Day +
+ + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + @deprecated use {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + @param filename + @throws IOException + + + Creates an independent view of the specified source. Closing the new object will not close the source. + Closing the source will have adverse effect on the behavior of the new view. + @deprecated use {@link RandomAccessFileOrArray#createView()} instead + @param source the source for the new independent view + + + Creates an independent view of this object (with it's own file pointer and pushback queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + @return the new view + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + @param byteSource the byte source to wrap + + + Constructs a new RandomAccessFileOrArrayObject + @param filename the file to open (can be a file system file or one of the following url strings: file://, http://, https://, jar:, wsjar:, vfszip: + @param forceRead if true, the entire file will be read into memory + @param plainRandomAccess if true, a regular RandomAccessFile is used to access the file contents. If false, a memory mapped file will be used, unless the file cannot be mapped into memory, in which case regular RandomAccessFile will be used + @throws IOException if there is a failure opening or reading the file + @deprecated use {@link RandomAccessSourceFactory#createBestSource(String)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param url + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(URL)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param is + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(InputStream)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param arrayIn + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(byte[])} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + @param b the byte to push + + + Reads a single byte + @return the byte, or -1 if EOF is reached + @throws IOException + + + + + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + Interface to sign a document. The signing is fully done externally, including the container composition. + @author Paulo Soares + + + Produces the container with the signature. + @param data the data to sign + @return a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + @throws GeneralSecurityException + + + Modifies the signature dictionary to suit the container. At least the keys PdfName.FILTER and + PdfName.SUBFILTER will have to be set. + @param signDic the signature dictionary + + + Helps to locate xml stream + + + Constructor for XPath2 expression + + + Get XPath2 expression + + + Get XmlNamespaceManager to resolve namespace conflicts + + + Class that signs your XML. + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param keyInfo KeyInfo for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param includeSignaturePolicy if true SignaturePolicyIdentifier will be included (XAdES-EPES) + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param publicKey PublicKey for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates new PdfSignatureAppDictionary + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary + + @param name + + + Dictionary that stores signature build properties. + @author Kwinten Pisman + + + Creates new PdfSignatureBuildProperties + + + Sets the signatureCreator property in the underlying + {@link PdfSignatureAppDictionary} dictionary. + + @param name + + + Gets the {@link PdfSignatureAppDictionary} from this dictionary. If it + does not exist, it adds a new {@link PdfSignatureAppDictionary} and + returns this instance. + + @return {@link PdfSignatureAppDictionary} + + + Class that encapsulates the signature policy information + @author J. Arturo + + Sample: + + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + a class that holds an X509 name + + + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + + email address in Verisign certificates + + + object identifier + + + LDAP User id. + + + A Hashtable with default symbols + + + A Hashtable with values + + + Constructs an X509 name + @param seq an Asn1 Sequence + + + Constructs an X509 name + @param dirName a directory name + + + gets a field array from the values Hashmap + @param name + @return an ArrayList + + + getter for values + @return a Hashtable with the fields of the X509 name + + + @see java.lang.Object#toString() + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + Get the issuer fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in + @param enc a TBSCertificate in a byte array + @return a DERObject + + + Get the subject fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "subject" from the TBSCertificate bytes that are passed in + @param enc A TBSCertificate in a byte array + @return a DERObject + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + Gets the URL of the Certificate Revocation List for a Certificate + @param certificate the Certificate + @return the String where you can check if the certificate was revoked + @throws CertificateParsingException + @throws IOException + + + Retrieves the OCSP URL from the given certificate. + @param certificate the certificate + @return the URL or null + @throws IOException + + + Gets the URL of the TSA if it's available on the certificate + @param certificate a certificate + @return a TSA URL + @throws IOException + + + @param certificate the certificate from which we need the ExtensionValue + @param oid the Object Identifier value for the extension. + @return the extension value as an ASN1Primitive object + @throws IOException + + + Gets a String from an ASN1Primitive + @param names the ASN1Primitive + @return a human-readable String + @throws IOException + + + This class consists of some methods that allow you to verify certificates. + + + Verifies a single certificate. + @param cert the certificate to verify + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return a String with the error description or null + if no error + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies an OCSP response against a KeyStore. + @param ocsp the OCSP response + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + Verifies a time stamp against a KeyStore. + @param ts the time stamp + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the CertificateVerifier in a chain of verifiers. + @param verifier the previous verifier in the chain + + + Decide whether or not online checking is allowed. + @param onlineCheckingAllowed + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @param signDate the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + @author Paulo Soares + + + The CRL as a byte array. + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + @param crlEncoded the CRL bytes + + + Returns the CRL bytes (the parameters are ignored). + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + @author Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + Creates a CrlClientOnline instance using one or more URLs. + + + Creates a CrlClientOnline instance using a certificate chain. + + + Adds an URL to the list of CRL URLs + @param url an URL in the form of a String + + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + @param verifier the next verifier in the chain + @param crls a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single CRL. + @param crl the Certificate Revocation List + @param signCert a certificate that needs to be verified + @param issuerCert its issuer + @param signDate the sign date + @return true if the verification succeeded + @throws GeneralSecurityException + + + Fetches a CRL for a specific certificate online (without further checking). + @param signCert the certificate + @param issuerCert its issuer + @return an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + @param crl the CRL + @param crlIssuer the trusted anchor + @return true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3 + + + Algorithm available for signatures since PDF 1.6 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps the name of a digest algorithm with its ID. + + + Creates a MessageDigest object that can be used to create a hash. + @param hashAlgorithm the algorithm you want to use to create a hash + @param provider the provider you want to use to create the hash + @return a MessageDigest object + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws GeneralSecurityException + + + Creates a hash using a specific digest algorithm and a provider. + @param data the message of which you want to create a hash + @param hashAlgorithm the algorithm used to create the hash + @param provider the provider used to create the hash + @return the hash + @throws GeneralSecurityException + @throws IOException + + + Gets the digest name for a certain id + @param oid an id (for instance "1.2.840.113549.2.5") + @return a digest name (for instance "MD5") + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + @param name the name of the digest algorithm + @return an oid + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + @param oid an id (for instance "1.2.840.113549.1.1.1") + @return an algorithm name (for instance "RSA") + @since 2.1.6 + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists into your PDF. + @author Paulo Soares + + + Gets a collection of byte array each representing a crl. + @param checkCert the certificate from which a CRL URL can be obtained + @param url a CRL url if you don't want to obtain it from the certificate + @return a collection of byte array each representing a crl. It may return null or an empty collection + + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + @author Paulo Soares + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + + + Signs it using the encryption algorithm in combination with + the digest algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @throws GeneralSecurityException + + + Interface for the OCSP Client. + @since 2.1.6 + + + * Gets an encoded byte array with OCSP validation. The method should not throw an exception. + * @param checkCert to certificate to check + * @param rootCert the parent certificate + * @param url the url to get the verification. It it's null it will be taken + * from the check cert or from other implementation specific source + * @return a byte array with the validation or null if the validation could not be obtained + + + + Get the time stamp token size estimate. + Implementation must return value large enough to accomodate the entire token + returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call. + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint byte[] - data imprint to be time-stamped + @return byte[] - encoded, TSA signed data of the timeStampToken + @throws Exception - TSA request failed + + + PAdES-LTV Timestamp + @author Pulo Soares + + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. + @param sap the signature appearance + @param tsa the timestamp generator + @param signatureName the signature name or null to have a name generated + automatically + @throws Exception + + + Add verification according to PAdES-LTV (part 4) + @author psoares + + + What type of verification to include + + + Include only OCSP + + + Include only CRL + + + Include both OCSP and CRL + + + Include CRL only if OCSP can't be read + + + Options for how many certificates to include + + + Include verification just for the signing certificate + + + Include verification for the whole chain of certificates + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys + + + Include certificates in the DSS and VRI dictionaries + + + Do not include certificates in the DSS and VRI dictionaries + + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + @param stp the PdfStamper to apply the validation to + + + Add verification for a particular signature + @param signatureName the signature to validate (it may be a timestamp) + @param ocsp the interface to get the OCSP + @param crl the interface to get the CRL + @param certOption + @param level the validation options to include + @param certInclude + @return true if a validation was generated, false otherwise + @throws Exception + + + Returns the issuing certificate for a child certificate. + @param cert the certificate for which we search the parent + @param certs an array with certificates that contains the parent + @return the partent certificate + + + Alternative addVerification. + I assume that inputs are deduplicated. + + @throws IOException + @throws GeneralSecurityException + + + + Merges the validation with any validation already in the document or creates + a new one. + @throws IOException + + + The Logger instance + + + Do we need to check all certificate, or only the signing certificate? + + + Verify root. + + + A reader object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + Creates a VerificationData object for a PdfReader + @param reader a reader for the document we want to verify. + @throws GeneralSecurityException + + + Sets an extra verifier. + @param verifier the verifier to set + + + Sets the certificate option. + @param option Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + @return a PdfPKCS7 object + @throws GeneralSecurityException + + + Verifies all the document-level timestamps and all the signatures in the document. + @throws IOException + @throws GeneralSecurityException + + + Verifies a document level timestamp. + @throws GeneralSecurityException + @throws IOException + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + @param chain + @throws GeneralSecurityException + + + Verifies certificates against a list of CRLs and OCSP responses. + @param signingCert + @param issuerCert + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate) + + + Switches to the previous revision. + @throws IOException + @throws GeneralSecurityException + + + Gets a list of X509CRL objects from a Document Security Store. + @return a list of CRLs + @throws GeneralSecurityException + @throws IOException + + + Gets OCSP responses from the Document Security Store. + @return a list of BasicOCSPResp objects + @throws IOException + @throws GeneralSecurityException + + + Class that signs your PDF. + @author Paulo Soares + + + The Logger instance. + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Processes a CRL list. + @param cert a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + @param crlList a list of CrlClient implementations + @return a collection of CRL bytes that can be embedded in a PDF. + + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. + @param sap the PdfSignatureAppearance + @param externalSignatureContainer the interface providing the actual signing + @param estimatedSize the reserved size for the signature + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs a PDF where space was already reserved. + @param reader the original PDF + @param fieldName the field to sign. It must be the last field + @param outs the output PDF + @param externalSignatureContainer the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + + + OcspClient implementation using BouncyCastle. + @author Paulo Soares + + + Create default implemention of {@code OcspClient}. + Note, if you use this constructor, OCSP response will not be verified. + + + Create {@code OcspClient} + @param verifier will be used for response verification. {@see OCSPVerifier}. + + + Gets OCSP response. If {@see OCSPVerifier} was set, the response will be checked. + + + Gets an encoded byte array with OCSP validation. The method should not throw an exception. + + @param checkCert to certificate to check + @param rootCert the parent certificate + @param url to get the verification. It it's null it will be taken + from the check cert or from other implementation specific source + @return a byte array with the validation or null if the validation could not be obtained + + + Generates an OCSP request using BouncyCastle. + @param issuerCert certificate of the issues + @param serialNumber serial number + @return an OCSP request + @throws OCSPException + @throws IOException + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + @param verifier the next verifier in the chain + @param ocsps a list of OCSP responses + + + Verifies if a a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single OCSP response + @param ocspResp the OCSP response + @param signCert the certificate that needs to be checked + @param issuerCert the certificate of CA + @param signDate sign date + @return {@code true}, in case successful check, otherwise false. + @throws GeneralSecurityException + @throws IOException + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + @param ocspResp the OCSP response + @param issuerCert the issuer certificate + @throws GeneralSecurityException + @throws IOException + + + Verifies if the response is valid. + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + NOTE. Use {@code isValidResponse()} instead. + @param ocspResp the response object + @param issuerCert the issuer certificate + @return true if the response can be trusted + + + Checks if an OCSP response is genuine + @param ocspResp the OCSP response + @param responderCert the responder certificate + @return true if the OCSP response verifies against the responder certificate + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking). + @param signCert the signing certificate + @param issuerCert the issuer certificate + @return an OCSP response + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + Assembles all the elements needed to create a signature, except for the data. + @param privKey the private key + @param certChain the certificate chain + @param interfaceDigest the interface digest + @param hashAlgorithm the hash algorithm + @param provider the provider or null for the default provider + @param hasRSAdata true if the sub-filter is adbe.pkcs7.sha1 + @throws InvalidKeyException on error + @throws NoSuchProviderException on error + @throws NoSuchAlgorithmException on error + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + @param contentsKey the /Contents key + @param certsKey the /Cert key + + + Use this constructor if you want to verify a signature. + @param contentsKey the /Contents key + @param filterSubtype the filtersubtype + @param provider the provider or null for the default provider + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Getter/setter for property sigName. + @return Value of property sigName. + + + Getter for property reason. + @return Value of property reason. + + + Getter for property location. + @return Value of property location. + + + Getter for property signDate. + @return Value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + @return the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + @return the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1" + + + Returns the name of the digest algorithm, e.g. "SHA256". + @return the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + @return the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + @param digest the digest. This is the actual signature + @param RSAdata the extra data that goes into the data tag in PKCS#7 + @param digestEncryptionAlgorithm the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + This method is used both for signing and verifying + @param buf the data buffer + @param off the offset in the data buffer + @param len the data length + @throws SignatureException on error + + + Gets the bytes for the PKCS#1 object. + @return a byte array + + + Gets the bytes for the PKCS7SignedData object. + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + @param secondDigest the digest in the authenticatedAttributes + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, OR a time-stamp-authority client + may be provided. + @param secondDigest the digest in the authenticatedAttributes + @param tsaClient TSAClient - null or an optional time stamp authority client + @return byte[] the bytes for the PKCS7SignedData object + @since 2.1.6 + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + @param timeStampToken byte[] - time stamp token, DER encoded signedData + @return ASN1EncodableVector + @throws IOException + + + + This method provides that encoding and the parameters must be + exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. + + @param secondDigest the content digest + @return the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + Verify the digest. + @throws SignatureException on error + @return true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + @throws java.security.NoSuchAlgorithmException on error + @return true if it checks false otherwise + @since 2.1.6 + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + @return the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + @return the X.509 certificates associated with this PKCS#7 object + @since 2.1.6 + + + Get the X.509 certificate actually used to sign the digest. + @return the X.509 certificate actually used to sign the digest + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + @return the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + @return the OCSP basic response or null + @since 2.1.6 + + + Checks if OCSP revocation refers to the document signing certificate. + @return true if it checks, false otherwise + @since 2.1.6 + + + Helper method that creates the BasicOCSPResp object. + @param seq + @throws IOException + + + True if there's a PAdES LTV time stamp. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + @return true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + @return the timestamp token or null + @since 2.1.6 + + + Gets the timestamp date + @return a date + @since 2.1.6 + + + Returns the filter subtype. + + + Returns the encryption algorithm + @return the name of an encryption algorithm + + + Implementation of the ExternalSignature interface that can be used + when you have a PrivateKey object. + @author Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Creates an ExternalSignature instance + @param pk a PrivateKey object + @param hashAlgorithm the hash algorithm (e.g. "SHA-1", "SHA-256",...) + @param provider the security provider (e.g. "BC") + + + Creates a message digest using the hash algorithm + and signs it using the encryption algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @see com.itextpdf.text.pdf.security.ExternalSignature#sign(byte[]) + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + The Logger instance + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + + @param verifier + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + + @param keyStore + a root store + + + Verifies a single certificate against a key store (if present). + + @param signCert + the certificate to verify + @param issuerCert + the issuer certificate + @param signDate + the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + A list of IDs that are used by the security classes + + + Class that contains a field lock action and + an array of the fields that are involved. + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance + + + Getter for the field lock action. + + + Getter for the fields involved in the lock action. + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + + Getter to find out if the signature is a certification signature. + @return true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + @return true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + @return true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + @return an Array with field names + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. +

+ Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. +

+ @since 2.1.6 +
+ + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + The default value for the hash algorithm + + + Estimate of the received time stamp token + + + The default value for the hash algorithm + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + @param tokSzEstimate int - estimated size of received time stamp token (DER encoded) + + + @param tsaInfo the tsaInfo to set + + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint data imprint to be time-stamped + @return encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + @return - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + @param info a TimeStampTokenInfo object + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + @param certificate the certificate that was successfully verified + @param verifierClass the class that was used for verification + @param message the reason why the certificate could be verified + + + A single String explaining which certificate was verified, how and why. + @see java.lang.Object#toString() + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + + + + The certificate with the private key + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + The certificate with the private key + The hash algorithm for the signature. As the Windows CAPI is used + to do the signature the only hash guaranteed to exist is SHA-1 + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + + Generates a list of numbers from a string. + @param ranges the comma separated ranges + @param maxNumber the maximum number in the range + @return a list with the numbers as Integer + + + Implements a shading pattern as a Color. + + @author Paulo Soares + + + + Creates a new instance of SimpleBookmark + + + Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. + (Contributed by Kazuya Ujihara) + @param indirect + 2004-06-13 + + + Gets a List with the bookmarks. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @return a List with the bookmarks or null if the + document doesn't have any + + + Gets a List with the bookmarks that are children of outline. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @param outline the outline dictionary to get bookmarks from + @param includeRoot indicates if to include outline parameter itself into returned list of bookmarks + @return a List with the bookmarks or null if the + document doesn't have any + + + Removes the bookmark entries for a number of page ranges. The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageRange the page ranges, always in pairs. + + + For the pages in range add the pageShift to the page number. + The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageShift the number to add to the pages in range + @param pageRange the page ranges, always in pairs. It can be null + to include all the pages + + + Exports the bookmarks to XML. Only of use if the generation is to be include in + some other XML document. + @param list the bookmarks + @param out the export destination. The writer is not closed + @param indent the indentation level. Pretty printing significant only. Use -1 for no indents. + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + + Exports the bookmarks to XML. + @param list the bookmarks + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the bookmarks from XML. + @param in the XML source. The stream is not closed + @throws IOException on error + @return the bookmarks + + + Import the bookmarks from XML. + @param in the XML source. The reader is not closed + @throws IOException on error + @return the bookmarks + + + + @author Paulo Soares + + + + Exports the bookmarks to XML. + @param names the names + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the names from XML. + @param inp the XML source. The stream is not closed + @throws IOException on error + @return the names + + + Import the names from XML. + @param inp the XML source. The reader is not closed + @throws IOException on error + @return the names + + + + @author psoares + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + @return an escaped byte array + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + + + Converts an array of unsigned 16bit numbers to an array of bytes. + The input values are presented as chars for convenience. + + @param chars the array of 16bit numbers that should be converted + @return the resulting byte array, twice as large as the input + + + Supports text, combo and list fields generating the correct appearances. + All the option in the Acrobat GUI are supported in an easy to use API. + @author Paulo Soares + + + Holds value of property defaultText. + + + Holds value of property choices. + + + Holds value of property choiceExports. + + + Holds value of property choiceSelection. + + + Represents the /TI value + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Obfuscates a password String. + Every character is replaced by an asterisk (*). + + @param text + @return String + @since 2.1.5 + + + Get the PdfAppearance of a text or combo field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Get the PdfAppearance of a list field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Gets a new text field. + @throws IOException on error + @throws DocumentException on error + @return a new text field + + + Gets a new combo field. + @throws IOException on error + @throws DocumentException on error + @return a new combo field + + + Gets a new list field. + @throws IOException on error + @throws DocumentException on error + @return a new list field + + + Sets the default text. It is only meaningful for text fields. + @param defaultText the default text + + + Sets the choices to be presented to the user in list/combo + fields. + @param choices the choices to be presented to the user + + + Sets the export values in list/combo fields. If this array + is null then the choice values will also be used + as the export values. + @param choiceExports the export values in list/combo fields + + + Sets the zero based index of the selected item. + @param choiceSelection the zero based index of the selected item + + + Sets the top visible choice for lists; + + @since 5.5.3 + @param visibleTopChoice index of the first visible item (zero-based array) + Returns the index of the top visible choice of a list. Default is -1. + @return the index of the top visible choice + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Holds value of property substitutionFonts. + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Holds value of property extensionFont. + + + Sets the extensionFont. This font will be searched before the + substitution fonts. It may be null. + @param extensionFont New value of property extensionFont. + + + Reads a Truetype font + + @author Paulo Soares + + + The code pages possible for a True Type font. + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + The file in use. + + + The file name. + + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + The index for the TTC font. It is an empty string for a + TTF file. + + + The style modifier + + + The content of table 'head'. + + + The content of table 'hhea'. + + + The content of table 'OS/2'. + + + The width of the glyphs. This is essentially the content of table + 'hmtx' normalized to 1000 units. + + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an int[2] where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 + units. + + + + + By James for unicode Ext.B + + + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + The font name. + This name is usually extracted from the table 'name' with + the 'Name ID' 6. + + + The font subfamily + This subFamily name is usually extracted from the table 'name' with + the 'Name ID' 2 or 'Name ID' 17. + + + The full name of the font 'Name ID' 1 or 'Name ID' 16 + + + All the names auf the Names-Table + + + The family name of the font + + + + true if all the glyphs have the same width. + + + The components of table 'head'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'hhea'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'OS/2'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + This constructor is present to allow extending the class. + + + Creates a new TrueType font. + @param ttFile the location of the font on file. The file must end in '.ttf' or + '.ttc' but can have modifiers after the name + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + @param name the full name + @return the simple file name + + + Reads the tables 'head', 'hhea', 'OS/2', 'post' and 'maxp' filling several variables. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the Postscript font name. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + @return the Postscript font name + + + Extracts the names of the font in all the languages available. + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Extracts all the names of the names-Table + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Reads the font data. + @param ttfAfm the font as a byte array, possibly null + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Reads a Unicode string from the font file. Each character is + represented by two bytes. + @param length the length of bytes to read. The string will have length/2 + characters + @return the string read + @throws IOException the font file could not be read + + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets a glyph width. + @param glyph the glyph to get the width of + @return the width of the glyph in normalized 1000 units + + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + Reads the kerning information from the 'kern' table. + @throws IOException the font file could not be read + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Gets the width from the font according to the unicode char c. + If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Generates the font descriptor for this font. + @return the PdfDictionary containing the font descriptor or null + @param subsetPrefix the subset prefix + @param fontStream the indirect reference to a PdfStream containing the font or null + @throws DocumentException if there is an error + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param subsetPrefix the subset prefx + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + @throws DocumentException if there is an error + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + @return a byte array + @since 2.1.3 + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Gets the postscript font name. + @return the postscript font name + + + Gets the code pages supported by the font. + @return the code pages supported by the font + + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Checks whether this font may be used with winansi encoding. + + @return true if the font can be correctly used with winansi encodings + + + Subsets a True Type font by removing the unneeded glyphs from + the font. + + @author Paulo Soares + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[3] where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + @param directoryOffset The offset from the start of the file to the table directory + @param fileName the file name of the font + @param glyphsUsed the glyphs used + @param includeCmap true if the table cmap is to be included in the generated font + + + Does the actual work of subsetting the font. + @throws IOException on error + @throws DocumentException on error + @return the subset font + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Represents a True Type font with Unicode encoding. All the character + in the font can be used directly by using the encoding Identity-H or + Identity-V. This is the only way to represent some character sets such + as Thai. + @author Paulo Soares + + + Creates a new TrueType font addressed by Unicode characters. The font + will always be embedded. + @param ttFile the location of the font on file. The file must end in '.ttf'. + The modifiers after the name are ignored. + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + @param metrics metrics[0] contains the glyph index and metrics[2] + contains the Unicode code + @throws DocumentException on error + @return the stream representing this CMap or null + + + Gets an hex string in the format "<HHHH>". + @param n the number + @return the hex string + + + Generates the CIDFontTyte2 dictionary. + @param fontDescriptor the indirect reference to the font descriptor + @param subsetPrefix the subset prefix + @param metrics the horizontal width metrics + @return a stream + + + Generates the font dictionary. + @param descendant the descendant dictionary + @param subsetPrefix the subset prefix + @param toUnicode the ToUnicode stream + @return the stream + + + The method used to sort the metrics array. + @param o1 the first element + @param o2 the second element + @return the comparisation + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + A forbidden operation. Will throw a null pointer exception. + @param text the text + @return always null + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Reads a Type1 font + + @author Paulo Soares + + + The PFB file if the input was made with a byte array. + + + The Postscript font name. + + + The full name of the font. + + + The family name of the font. + + + The weight of the font: normal, bold, etc. + + + The italic angle of the font, usually 0.0 or negative. + + + true if all the characters have the same + width. + + + The character set of the font. + + + The llx of the FontBox. + + + The lly of the FontBox. + + + The lurx of the FontBox. + + + The ury of the FontBox. + + + The underline position. + + + The underline thickness. + + + The font's encoding name. This encoding is 'StandardEncoding' or + 'AdobeStandardEncoding' for a font that can be totally encoded + according to the characters names. For all other names the + font is treated as symbolic. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + Represents the section CharMetrics in the AFM file. Each + value of this array contains a Object[4] with an + Integer, Integer, String and int[]. This is the code, width, name and char bbox. + The key is the name of the char and also an Integer with the char number. + + + Represents the section KernPairs in the AFM file. The key is + the name of the first character and the value is a Object[] + with 2 elements for each kern pair. Position 0 is the name of + the second character and position 1 is the kerning distance. This is + repeated for all the pairs. + + + The file in use. + + + true if this font is one of the 14 built in fonts. + + + Types of records in a PFB file. ASCII is 1 and BINARY is 2. + They have to appear in the PFB file in this sequence. + + + Creates a new Type1 font. + @param ttfAfm the AFM file if the input is made with a byte array + @param pfb the PFB file if the input is made with a byte array + @param afmFile the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + Gets the width from the font according to the name or, + if the name is null, meaning it is a symbolic font, + the char c. + @param c the char if the font is symbolic + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode characters. The characters + are converted to names and this names are used to find the kerning + pairs in the Hashtable KernPairs. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Reads the font metrics + @param rf the AFM file + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + If the embedded flag is false or if the font is + one of the 14 built in types, it returns null, + otherwise the font is read and output in a PdfStream object. + @return the PdfStream containing the font or null + @throws DocumentException if there is an error reading the font + + + Generates the font descriptor for this font or null if it is + one of the 14 built in fonts. + @param fontStream the indirect reference to a PdfStream containing the font or null + @return the PdfDictionary containing the font descriptor or null + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the postscript font name. + @return the postscript font name + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + A class to support Type3 fonts. + + + Creates a Type3 font. + @param writer the writer + @param chars an array of chars corresponding to the glyphs used (not used, prisent for compability only) + @param colorized if true the font may specify color, if false no color commands are allowed + and only images as masks can be used + + + + Defines a glyph. If the character was already defined it will return the same content + @param c the character to match this glyph. + @param wx the advance this character will have + @param llx the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param lly the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param urx the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param ury the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @return a content where the glyph can be defined + + + Always returns null, because you can't get the FontStream of a Type3 font. + @return null + @since 2.1.3 + + + The content where Type3 glyphs are written to. + + + Writes text vertically. Note that the naming is done according + to horizontal text although it referrs to vertical text. + A line with the alignment Element.LEFT_ALIGN will actually + be top aligned. + + + Signals that there are no more text available. + + + Signals that there is no more column. + + + The chunks that form the text. + + + The PdfContent where the text will be written to. + + + The column Element. Default is left Element. + + + Marks the chunks to be eliminated when the line is written. + + + The chunk created by the splitting. + + + The chunk created by the splitting. + + + The leading + + + The X coordinate. + + + The Y coordinate. + + + The maximum number of vertical lines. + + + The height of the text. + + + Creates new VerticalText + @param text the place where the text will be written to. Can + be a template. + + + Adds a Phrase to the current text array. + @param phrase the text + + + Adds a Chunk to the current text array. + @param chunk the text + + + Sets the layout. + @param startX the top right X line position + @param startY the top right Y line position + @param height the height of the lines + @param maxLines the maximum number of lines + @param leading the separation between the lines + + + Gets the separation between the vertical lines. + @return the vertical line separation + + + Creates a line from the chunk array. + @param width the width of the line + @return the line or null if no more chunks + + + Normalizes the list of chunks when the line is accepted. + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Sets the new text origin. + @param startX the X coordinate + @param startY the Y coordinate + + + Gets the X coordinate where the next line will be writen. This value will change + after each call to go(). + @return the X coordinate + + + Gets the Y coordinate where the next line will be writen. + @return the Y coordinate + + + Gets the maximum number of available lines. This value will change + after each call to go(). + @return Value of property maxLines. + + + Gets the height of the line + @return the height + + + Gets the Element. + @return the alignment + + + Processes XFA forms. + @author Paulo Soares + + + An empty constructor to build on. + + + Return the XFA Object, could be an array, could be a Stream. + Returns null f no XFA Object is present. + @param reader a PdfReader instance + @return the XFA object + @since 2.1.3 + + + A constructor from a PdfReader. It basically does everything + from finding the XFA stream to the XML parsing. + @param reader the reader + @throws java.io.IOException on error + @throws javax.xml.parsers.ParserConfigurationException on error + @throws org.xml.sax.SAXException on error + + + Extracts the nodes from the domDocument. + @since 2.1.5 + + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + Sets the XFA key from a byte array. The old XFA is erased. + @param form the data + @param reader the reader + @param writer the writer + @throws java.io.IOException on error + + + Sets the XFA key from the instance data. The old XFA is erased. + @param writer the writer + @throws java.io.IOException on error + + + Serializes a XML document to a byte array. + @param n the XML document + @throws java.io.IOException on error + @return the serialized XML document + + + Returns true if it is a XFA form. + @return true if it is a XFA form + + + Gets the top level DOM document. + @return the top level DOM document + + + Finds the complete field name contained in the "classic" forms from a partial + name. + @param name the complete or partial name + @param af the fields + @return the complete name or null if not found + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the complete name or null if not found + + + Finds the Node contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + @param n the Node + @return the text found or "" if no text was found + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param n the Node to add the text to + @param text the text to add + + + Sets the PdfReader to be used by this instance. + @param reader the PdfReader to be used by this instance + + + Checks if this XFA form was changed. + @return true if this XFA form was changed + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchie. + + + Gets the full name by traversing the hiearchie using only the + index 0. + @return the full name + + + Search the current node for a similar name. A similar name starts + with the same name but has a differnt index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + @param name the name to search + @return true if a similitude was found + + + Another stack implementation. The main use is to facilitate + the porting to other languages. + + + Looks at the object at the top of this stack without removing it from the stack. + @return the object at the top of this stack + + + Removes the object at the top of this stack and returns that object as the value of this function. + @return the object at the top of this stack + + + Pushes an item onto the top of this stack. + @param item the item to be pushed onto this stack + @return the item argument + + + Tests if this stack is empty. + @return true if and only if this stack contains no items; false otherwise + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchie. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + @param s the unescaped string + @return the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + @param s the escaped string + @return the unescaped string + + + Outputs the stack as the sequence of elements separated + by '.'. + @return the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + @param s the long name + @return the short name + + + Adds a SOM name to the search node chain. + @param unstack the SOM name + + + Adds a SOM name to the search node chain. + @param inverseSearch the start point + @param stack the stack with the separeted SOM parts + @param unstack the full name + + + Searchs the SOM hiearchie from the bottom. + @param parts the SOM parts + @return the full name or null if not found + + + Splits a SOM name in the individual parts. + @param name the full SOM name + @return the split name + + + Gets the order the names appear in the XML, depth first. + @return the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + @return the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchie. + @return the data to do a search from the bottom hierarchie + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + @param n the datasets node + + + Inserts a new Node that will match the short name. + @param n the datasets top Node + @param shortName the short name + @return the new Node of the inserted name + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + @param items the Collection + + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + @return the mapping from short names to long names + + + Processes the template section in the XFA form. + + + Creates a new instance from the datasets node. + @param n the template node + + + Gets the field type as described in the template section of the XFA. + @param s the exact template name + @return the field type or null if not found + + + true if it's a dynamic form; false + if it's a static form. + @return true if it's a dynamic form; false + if it's a static form + + + Gets the class that contains the template processing section of the XFA. + @return the class that contains the template processing section of the XFA + + + Gets the class that contains the datasets processing section of the XFA. + @return the class that contains the datasets processing section of the XFA + + + Gets the class that contains the "classic" fields processing. + @return the class that contains the "classic" fields processing + + + Gets the Node that corresponds to the datasets part. + @return the Node that corresponds to the datasets part + + + Replaces the data under datasets/data. + @since iText 5.0.0 + + + Helps to locate xml stream inside PDF document with Xfa form. + + + Gets Document to sign + + + Save document as single XML stream in AcroForm. + @param document signed document + @throws IOException + @throws DocumentException + + + Constructor for xpath expression for signing XfaForm + + + Possible xdp packages to sign + + + Empty constructor, no transform. + + + Construct for Xpath expression. Depends from selected xdp package. + @param xdpPackage + + + Get XPath expression + + + Reads a XFDF. + @author Leonard Rosenthol (leonardr@pdfsages.com) + + + Storage for field values if there's more than one value for a field. + @since 2.1.4 + + + Reads an XFDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an XFDF form. + @param xfdfIn the byte array with the form + @throws IOException on error + + + Reads an XFDF form. + @param is an InputStream to read the form + @throws IOException on error + @since 5.0.1 + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field value. + @param name the fully qualified field name + @return the field's value + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the field values for a list or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field values or null + @since 2.1.4 + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + Constructs XmlSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Holds value of property xades:SigningTime. + + + Holds value of property xades:Description. + + + Holds value of property xades:MimeType. + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + Gets the signature date. + @return the signature date + + + Sets the signature date. + @param signDate the signature date + + + Helps to locate xml stream + @return XmlLocator, cannot be null. + + + Constructor for xpath expression in case signing only part of XML document. + @return XpathConstructor, can be null + + + Close PdfStamper + @throws IOException + @throws DocumentException + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static GetDefaultFilterHandlers() method, then obtain the desired {@link IFilterHandler} + via a lookup. + @since 5.0.4 + + + The main interface for creating a new {@link IFilterHandler} + + + The default {@link IFilterHandler}s used by iText + + + @return the default {@link IFilterHandler}s used by iText + + + Creates a {@link MemoryLimitsAwareOutputStream} which will be used for decompression of the passed pdf stream. + + @param streamDictionary the pdf stream which is going to be decompressed. + @return the {@link ByteArrayOutputStream} which will be used for decompression of the passed pdf stream + + + Handles FLATEDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles LZWDECODE filter + + + Handles CCITTFAXDECODE filter + + + A filter that doesn't modify the stream at all + + + Handles RUNLENGTHDECODE filter + + + A PdfArray object consisting of nothing but PdfNumber objects + @since 5.1.0 + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers float values + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers a List containing PdfNumber objects + + + Signals that a table will continue in the next page. + + @since 5.0.6 + + + This method is called to indicate that table is being split. It's called + before the tableLayout method and before the table is drawn. + + @param table the PdfPTable in use + + + Wrapper class for PdfCopy and PdfSmartCopy. + Allows you to concatenate existing PDF documents with much less code. + + + The Document object for PdfCopy. + + + The actual PdfWriter + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + @param smart do we want PdfCopy to detect redundant content? + + + Adds the pages from an existing PDF document. + @param reader the reader for the existing PDF document + @return the number of pages that were added + @throws DocumentException + @throws IOException + + + Gets the PdfCopy instance so that you can add bookmarks or change preferences before you close PdfConcatenate. + + + Opens the document (if it isn't open already). + Opening the document is done implicitly. + + + We've finished writing the concatenated document. + + + The spacing before the table. + + + The spacing after the table. + + + Defines if the div should be kept on one page if possible + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual height the div would require to layout it's content + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual width the div would require to layout it's content + + + Image will be scaled to fit in the div occupied area. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Gets the type of the text element. + + @return a type + + + @see com.itextpdf.text.Element#isContent() + @since iText 2.0.8 + + + @see com.itextpdf.text.Element#isNestable() + @since iText 2.0.8 + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Serial version UID + + + Creates a new instance of PdfIsoConformanceException. + + + Creates a new instance of PdfIsoConformanceException. + @param s + + + A signature field lock dictionary. + + + Enumerates the different actions of a signature lock. + Indicates the set of fields that should be locked: + all the fields in the document, + all the fields specified in the /Fields array + all the fields except those specified in the /Fields array + + + Enumerates the different levels of permissions. + + + Creates a signature lock valid for all fields in the document. + + + Creates a signature lock for all fields in the document, + setting specific permissions. + + + Creates a signature lock for specific fields in the document. + + + Creates a signature lock for specific fields in the document. + + + Add kid to structureTreeRoot from structTreeRoot + + + + An Anchor can be a reference or a destination of a reference. + + + An Anchor is a special kind of . + It is constructed in the same way. + + + + + + + This is the name of the Anchor. + + + + + This is the reference of the Anchor. + + + + + Constructs an Anchor without specifying a leading. + + + Has nine overloads. + + + + + Constructs an Anchor with a certain leading. + + the leading + + + + Constructs an Anchor with a certain Chunk. + + a Chunk + + + + Constructs an Anchor with a certain string. + + a string + + + + Constructs an Anchor with a certain string + and a certain Font. + + a string + a Font + + + + Constructs an Anchor with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs an Anchor with a certain leading + and a certain string. + + the leading + a string + + + + Constructs an Anchor with a certain leading, + a certain string and a certain Font. + + the leading + a string + a Font + + + Constructs an Anchor with a certain Phrase. + + @param phrase a Phrase + + + + Processes the element by adding it (or the different parts) to an + + + an IElementListener + true if the element was processed successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + Applies the properties of the Anchor to a Chunk. + @param chunk the Chunk (part of the Anchor) + @param notGotoOK if true, this chunk will determine the local destination + @param localDestination true if the chunk is a local goto and the reference a local destination + @return the value of notGotoOK or false, if a previous Chunk was used to determine the local destination + + + + Gets the type of the text element. + + a type + + + + Name of this Anchor. + + + + + reference of this Anchor. + + + + + reference of this Anchor. + + an Uri + + + + An Annotation is a little note that can be added to a page + on a document. + + + + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is the type of annotation. + + + This is the title of the Annotation. + + + This is the lower left x-value + + + This is the lower left y-value + + + This is the upper right x-value + + + This is the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + the destination in this file + + + + Creates a Screen anotation to embed media clips + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + path to the media clip file + mime type of the media + if true play on display of the page + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + a page number in this file + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + a named destination in this file + + Has nine overloads. + + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external application + parameters to pass to this application + the operation to pass to this application + the default directory to run this application in + + + + Gets the type of the text element + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was process successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + + Sets the dimensions of this annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Returns the lower left x-value. + + a value + + + + Returns the lower left y-value. + + a value + + + + Returns the uppper right x-value. + + a value + + + + Returns the uppper right y-value. + + a value + + + + Returns the lower left x-value. + + the default value + a value + + + + Returns the lower left y-value. + + the default value + a value + + + + Returns the upper right x-value. + + the default value + a value + + + + Returns the upper right y-value. + + the default value + a value + + + + Returns the type of this Annotation. + + a type + + + + Returns the title of this Annotation. + + a name + + + + Gets the content of this Annotation. + + a reference + + + + Gets the content of this Annotation. + + a reference + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Signals an attempt to create an Element that hasn't got the right form. + + + + + + + Base class for Color, serves as wrapper class for + to allow extension. + + + + Construct a new BaseColor. + @param red the value for the red gamma + @param green the value for the green gamma + @param blue the value for the blue gamma + @param alpha the value for the alpha gamma + + + @param red + @param green + @param blue + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + @param alpha + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + + + Construct a BaseColor by setting the combined value. + @param argb + + + Construct a BaseColor by System.Drawing.Color. + @param color + + + @return the combined color value + + + + @return the value for red + + + + @return the value for green + + + + @return the value for blue + + + + @return the value for the alpha channel + + + Make this BaseColor brighter. Factor used is 0.7. + @return the new BaseColor + + + Make this color darker. Factor used is 0.7 + @return the new BaseColor + + + + A Chapter is a special Section. + + + A chapter number has to be created using a Paragraph as title + and an int as chapter number. The chapter number is shown be + default. If you don't want to see the chapter number, you have to set the + numberdepth to 0. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + chapter2.SetNumberDepth(0); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new BaseColor(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + + + + + Constructs a new Chapter. + @param number the Chapter number + + + + Constructs a new Chapter. + + the Chapter title (as a Paragraph) + the Chapter number + + Has three overloads. + + + + + Constructs a new Chapter. + + the Chapter title (as a string) + the Chapter number + + Has three overloads. + + + + + Gets the type of the text element. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Chapter with auto numbering. + + @author Michael Niedermair + + + Is the chapter number already set? + @since 2.1.4 + + + Create a new object. + + @param para the Chapter title (as a Paragraph) + + + Create a new objet. + + @param title the Chapter title (as a String) + + + Create a new section for this chapter and ad it. + + @param title the Section title (as a String) + @return Returns the new section. + + + Create a new section for this chapter and add it. + + @param title the Section title (as a Paragraph) + @return Returns the new section. + + + Changes the Chapter number. + @param number the new chapter number + @since 2.1.4 + + + + This is the smallest significant part of text that can be added to a document. + + + Most elements can be divided in one or more Chunks. + A chunk is a string with a certain Font. + all other layoutparameters should be defined in the object to which + this chunk of text is added. + + + + Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, Font.ITALIC, new BaseColor(255, 0, 0))); + document.Add(chunk); + + + + + The character stand in for an image or a separator. + + + This is a Chunk containing a newline. + + + This is a Chunk containing a newpage. + + + This is the content of this chunk of text. + + + This is the Font of this chunk of text. + + + Contains some of the attributes for this Chunk. + + + + Empty constructor. + + + Has six overloads. + + + + A Chunk copy constructor. + @param ck the Chunk to be copied + + + + Constructs a chunk of text with a certain content and a certain Font. + + the content + the font + + + + Constructs a chunk of text with a certain content, without specifying a Font. + + the content + + + Constructs a chunk of text with a char and a certain Font. + + @param c the content + @param font the font + + + Constructs a chunk of text with a char, without specifying a Font. + + @param c the content + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + + + Key for drawInterface of the Separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @param vertical true if this is a vertical separator + @since 2.1.2 + + + Key for drawInterface of the tab. + @since 2.1.2 + + + Key for tab stops of the tab. + @since 5.4.1 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @since 2.1.2 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @param newline if true, a newline will be added if the tabPosition has already been reached. + @since 2.1.2 + + + Creates a tab Chunk. + + @param tabInterval an interval that will be used if tab stops are omitted. + @param isWhitespace if true, the current tab is treated as white space. + @since 5.4.1 + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + true if the leading has to be adapted to the image + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + appends some text to this Chunk. + + a string + a StringBuilder + + + + Get/set the font of this Chunk. + + a Font + + + + Returns the content of this Chunk. + + a string + + + + Checks is this Chunk is empty. + + false if the Chunk contains other characters than space. + + + Gets the width of the Chunk in points. + @return a width in points + + + + Checks the attributes of this Chunk. + + false if there aren't any. + + + Checks the accessible attributes of this Chunk. + + @return false if there aren't any. + + + + Sets/Gets the attributes for this Chunk. + + + It may be null. + + a Hashtable + + + + Sets an arbitrary attribute. + + the key for the attribute + the value of the attribute + this Chunk + + + Key for text horizontal scaling. + + + Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f + shrinks the text to half it's width. + @param scale the horizontal scaling factor + @return this Chunk + + + Gets the horizontal scaling. + @return a percentage in float + + + Key for underline. + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param thickness the absolute thickness of the line + @param yPosition the absolute y position relative to the baseline + @return this Chunk + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param color the color of the line or null to follow + the text color + @param thickness the absolute thickness of the line + @param thicknessMul the thickness multiplication factor with the font size + @param yPosition the absolute y position relative to the baseline + @param yPositionMul the position multiplication factor with the font size + @param cap the end line cap. Allowed values are + PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and + PdfContentByte.LINE_CAP_PROJECTING_SQUARE + @return this Chunk + + + Key for sub/basescript. + + + + Sets the text displacement relative to the baseline. Positive values rise the text, + negative values lower the text. + + + It can be used to implement sub/basescript. + + the displacement in points + this Chunk + + + Key for text skewing. + + + Skews the text to simulate italic and other effects. + Try alpha=0 and beta=12. + @param alpha the first angle in degrees + @param beta the second angle in degrees + @return this Chunk + + + Key for background. + + + + Sets the color of the background Chunk. + + the color of the background + this Chunk + + + Sets the color and the size of the background Chunk. + @param color the color of the background + @param extraLeft increase the size of the rectangle in the left + @param extraBottom increase the size of the rectangle in the bottom + @param extraRight increase the size of the rectangle in the right + @param extraTop increase the size of the rectangle in the top + @return this Chunk + + + Key for text rendering mode. + + + Sets the text rendering mode. It can outline text, simulate bold and make + text invisible. + @param mode the text rendering mode. It can be PdfContentByte.TEXT_RENDER_MODE_FILL, + PdfContentByte.TEXT_RENDER_MODE_STROKE, PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE + and PdfContentByte.TEXT_RENDER_MODE_INVISIBLE. + @param strokeWidth the stroke line width for the modes PdfContentByte.TEXT_RENDER_MODE_STROKE and + PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE. + @param strokeColor the stroke color or null to follow the text color + @return this Chunk + + + Key for split character. + + + + Sets the split characters. + + the SplitCharacter interface + this Chunk + + + Key for hyphenation. + + + + sets the hyphenation engine to this Chunk. + + the hyphenation engine + this Chunk + + + Key for remote goto. + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the name of the destination to go to + this Chunk + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the page of the destination to go to. First page is 1 + this Chunk + + + Key for local goto. + + + + Sets a local goto for this Chunk. + + + There must be a local destination matching the name. + + the name of the destination to go to + this Chunk + + + Key for local destination. + + + + Sets a local destination for this Chunk. + + the name for this destination + this Chunk + + + Key for generic tag. + + + + Sets the generic tag Chunk. + + + The text for this tag can be retrieved with PdfPageEvent. + + the text for the tag + this Chunk + + + Key for line-height (alternative for leading in Phrase). + + + Sets a line height tag. + + @return this Chunk + + + Key for image. + + + + Returns the image. + + an Image + + + Key for Action. + + + + Sets an action for this Chunk. + + the action + this Chunk + + + + Sets an anchor for this Chunk. + + the Uri to link to + this Chunk + + + + Sets an anchor for this Chunk. + + the url to link to + this Chunk + + + Key for newpage. + + + + Sets a new page tag. + + this Chunk + + + Key for annotation. + + + + Sets a generic annotation to this Chunk. + + the annotation + this Chunk + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Returns the hyphenation (if present). + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Key for color. + + + Key for encoding. + + + Key for character spacing. + + + Sets the character spacing. + + @param charSpace the character spacing value + @return this Chunk + + + Gets the character spacing. + + @return a value in float + + + Key for word spacing. + + + Sets the word spacing. + + @param wordSpace the word spacing value + @return this Chunk + + + Gets the word spacing. + + @return a value in float + + + Sets the textual expansion of the abbreviation or acronym. + It is highly recommend to set textuual expansion when generating PDF/UA documents. + @param value + + + + A generic Document class. + + + All kinds of Text-elements can be added to a HTMLDocument. + The Document signals all the listeners when an element + has been added.

+

    +
  1. Once a document is created you can add some meta information. +
  2. You can also set the headers/footers. +
  3. You have to open the document before you can write content. +
  4. You can only write content (no more meta-formation!) once a document is opened. +
  5. When you change the header/footer on a certain page, this will be effective starting on the next page. +
  6. Ater closing the document, every listener (as well as its OutputStream) is closed too. +
+
+ + + // creation of the document with a certain size and certain margins + Document document = new Document(PageSize.A4, 50, 50, 50, 50); + try { + // creation of the different writers + HtmlWriter.GetInstance(document, System.out); + PdfWriter.GetInstance(document, new FileOutputStream("text.pdf")); + // we add some meta information to the document + document.AddAuthor("Bruno Lowagie"); + document.AddSubject("This is the result of a Test."); + + // we define a header and a footer + HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false); + HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase(".")); + footer.SetAlignment(Element.ALIGN_CENTER); + document.SetHeader(header); + document.SetFooter(footer); + // we open the document for writing + document.Open(); + document.Add(new Paragraph("Hello world")); + } + catch (DocumentException de) { + Console.Error.WriteLine(de.Message); + } + document.Close(); + + +
+ + Allows the pdf documents to be produced without compression for debugging purposes. + + + Scales the WMF font size. The default value is 0.86. + + + The IDocListener. + + + Is the document open or not? + + + Has the document already been closed? + + + The size of the page. + + + margin in x direction starting from the left + + + margin in x direction starting from the right + + + margin in y direction starting from the top + + + margin in y direction starting from the bottom + + + mirroring of the top/bottom margins + @since 2.1.6 + + + Content of JavaScript onLoad function + + + Content of JavaScript onUnLoad function + + + Style class in HTML body tag + + + Current pagenumber + + + This is a chapter number in case ChapterAutoNumber is used. + + + + Constructs a new Document-object. + + + Has three overloads. + + + + + Constructs a new Document-object. + + the pageSize + + + + Constructs a new Document-object. + + the pageSize + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Adds a IDocListener to the Document. + + the new IDocListener + + + + Removes a IDocListener from the Document. + + the IDocListener that has to be removed. + + + + Adds an Element to the Document. + + the Element to add + true if the element was added, false if not + + + + Opens the document. + + + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Opens the document. + + + Version for languages that are not case-dependant. + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Sets the pagesize. + + the new pagesize + a bool + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + + + Sets the page number. + + an int + + + + Returns the current page number. + + an int + + + + Closes the document. + + + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Closes the document. + + + Version for languages that are not case-dependant. + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Adds a user defined header to the document. + + the name of the header + the content of the header + true if successful, false otherwise + + + + Adds the title to a Document. + + the title + true if successful, false otherwise + + + + Adds the subject to a Document. + + the subject + true if successful, false otherwise + + + + Adds the keywords to a Document. + + keywords to add + true if successful, false otherwise + + + + Adds the author to a Document. + + the name of the author + true if successful, false otherwise + + + + Adds the creator to a Document. + + the name of the creator + true if successful, false otherwise + + + + Adds the producer to a Document. + + true if successful, false otherwise + + + Adds a language to th document. Required for PDF/UA compatible documents. + @param language + @return true if successfull, false otherwise + + + + Adds the current date and time to a Document. + + true if successful, false otherwise + + + + Returns the left margin. + + the left margin + + + + Return the right margin. + + the right margin + + + + Returns the top margin. + + the top margin + + + + Returns the bottom margin. + + the bottom margin + + + + Returns the lower left x-coordinate. + + the lower left x-coordinate + + + + Returns the upper right x-coordinate. + + the upper right x-coordinate. + + + + Returns the upper right y-coordinate. + + the upper right y-coordinate. + + + + Returns the lower left y-coordinate. + + the lower left y-coordinate. + + + + Returns the lower left x-coordinate considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Gets the pagesize. + + the page size + + + + Checks if the document is open. + + true if the document is open + + + + Gets the JavaScript onLoad command. + + the JavaScript onLoad command. + + + + Gets the JavaScript onUnLoad command. + + the JavaScript onUnLoad command + + + + Gets the style class of the HTML body tag + + the style class of the HTML body tag + + + + + Gets the margin mirroring flag. + + @return the margin mirroring flag + + + + Signals that an error has occurred in a Document. + + + + + + + + + Constructs a new DocumentException + + + Has two overloads. + + + + + Construct a new DocumentException + + error message + + + + Constructs a DocumentException with a message and a Exception. + + a message describing the exception + an exception that has to be turned into a DocumentException + + + + An abstract Writer class for documents. + + + DocWriter is the abstract class of several writers such + as PdfWriter and HtmlWriter. + A DocWriter can be added as a DocListener + to a certain Document by getting an instance (see method + GetInstance() in the specific writer-classes). + Every Element added to the original Document + will be written to the stream of the listening + DocWriter. + + + + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + The pageSize. + + + This is the document that has to be written. + + + The stream of this writer. + + + Is the writer open for writing? + + + Do we have to pause all writing actions? + + + Closes the stream on document close + + + + Constructs a DocWriter. + + The Document that has to be written + The Stream the writer has to write to. + + + + Signals that an Element was added to the Document. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class. + + + false + + + + Signals that the Document was opened. + + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + + This does nothing. Has to be overridden if needed. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + + This does nothing. Has to be overridden if needed. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Sets the page number. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + + + Converts a string into a Byte array + according to the ISO-8859-1 codepage. + + the text to be converted + the conversion result + + + + Let the writer know that all writing has to be paused. + + + + Checks if writing is paused. + + @return true if writing temporarely has to be paused, false otherwise. + + + + Let the writer know that writing may be resumed. + + + + + Flushes the Stream. + + + + + Writes a string to the stream. + + the string to write + + + + Writes a number of tabs. + + the number of tabs to add + + + + Writes a key-value pair to the stream. + + the name of an attribute + the value of an attribute + + + + Writes a starttag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + + + + Writes the markup attributes of the specified MarkupAttributes + object to the stream. + + the MarkupAttributes to write. + + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.5 + + + This is a possible type of Element. + @since 5.3.0 + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.2 + + + This is an element thats not an element. + @see WritableDirectElement + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the center + and extra whitespace should be placed equally on + the left and right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the right + indent and extra whitespace should be placed on + the left. + + + + + A possible value for paragraph Element. This + specifies that extra whitespace should be spread + out through the rows of the paragraph with the + text lined up with the left and right indent + except on the last line which should be aligned + to the left. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + Does the same as ALIGN_JUSTIFIED but the last line is also spread out. + + + + + Pure two-dimensional encoding (Group 4) + + + + + Pure one-dimensional encoding (Group 3, 1-D) + + + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows + parameter. The use of this flag will set the key /EndOfBlock to false. + + + + Localizes error messages. The messages are located in the package + com.lowagie.text.error_messages in the form language_country.lng. + The internal file encoding is UTF-8 without any escape chars, it's not a + normal property file. See en.lng for more information on the internal format. + @author Paulo Soares (psoares@glintt.com) + + + Get a message without parameters. + @param key the key to the message + @return the message + + + Get a message with parameters. The parameters will replace the strings + "{1}", "{2}", ..., "{n}" found in the message. + @param key the key to the message + @param p the variable parameter + @return the message + + + Sets the language to be used globally for the error messages. The language + is a two letter lowercase country designation like "en" or "pt". The country + is an optional two letter uppercase code like "US" or "PT". + @param language the language + @param country the country + @return true if the language was found, false otherwise + @throws IOException on error + + + Sets the error messages directly from a Reader. + @param r the Reader + @throws IOException on error + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 It was written for iText 2.0.8, but moved to another package + + + Creates an exception saying the user password was incorrect. + + + Typed exception used when creating PDF syntax that isn't valid. + @since 2.1.6 + + + Creates an exception saying the PDF syntax isn't correct. + @param message some extra info about the exception + + + RuntimeException to indicate that the provided Image is invalid/corrupted. + Should only be thrown/not caught when ignoring invalid images. + @since 5.4.2 + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 + + + Creates an instance of with a message and no cause + @param message the reason why the document isn't a PDF document according to iText. + + + Creates an exception with a message and a cause + @param message the reason why the document isn't a PDF document according to iText. + @param cause the cause of the exception, if any + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document according to iText, + but it's different from the InvalidPdfException in the sense that it may + be an iText limitation (most of the times it isn't but you might have + bumped into something that has been added to the PDF specs, but that isn't + supported in iText yet). + @since 2.1.5 + + + Creates an instance of an UnsupportedPdfException. + @param message the reason why the document isn't a PDF document according to iText. + + + This class can produce String combinations representing a number built with + Greek letters (from alpha to omega, then alpha alpha, alpha beta, alpha gamma). + We are aware of the fact that the original Greek numbering is different; + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a upper case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a Greek letter combination. + @param index the original number + @return the letter combination + + + This class can produce String combinations representing a number. + "a" to "z" represent 1 to 26, "AA" represents 27, "AB" represents 28, + and so on; "ZZ" is followed by "AAA". + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'A' to 'Z'; + 1 = A, 2 = B, ..., 26 = Z, 27 = AA, 28 = AB,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z' + (a = 1, b = 2, ..., z = 26, aa = 27, ab = 28,...). + + + This class can produce String combinations representing a roman number. + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + @param digit the roman digit + @param value the value + @param pre can it be used as a prefix + + + Array with Roman digits. + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into an upper case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a roman number. + @param index the original number + @return the roman number (lower case) + + + + Contains all the specifications of a font: fontfamily, size, style and color. + + + + Paragraph p = new Paragraph("This is a paragraph", + new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + the value of an undefined attribute. + + + the value of the default size. + + + the value of the fontfamily. + + + the value of the fontsize. + + + the value of the style. + + + the value of the color. + + + the external font + + + Copy constructor of a Font + @param other the font that has to be copied + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + + + + Constructs a Font. + + the external font + the size of this font + + + + Constructs a Font. + + the external font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + + + + Constructs a Font. + + the family to which this font belongs + + + + Constructs a Font. + + + Has nine overloads. + + + + + Compares this Font with another + + the other Font + a value + + + + Gets the family of this font. + + the value of the family + + + + Gets the familyname as a string. + + the familyname + + + + Sets the family using a String ("Courier", + "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats"). + + A String representing a certain font-family. + + + + Translates a string-value of a certain family + into the index that is used for this family in this class. + + A string representing a certain font-family + the corresponding index + + + + Get/set the size of this font. + + the size of this font + + + Gets the size that can be used with the calculated BaseFont. + @return the size that can be used with the calculated BaseFont + + + Gets the leading that can be used with this font. + + @param multipliedLeading + a certain multipliedLeading + @return the height of a line + + + + Gets the style of this font. + + the style of this font + + + Gets the style that can be used with the calculated BaseFont. + @return the style that can be used with the calculated BaseFont + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is underlined. + + a boolean + + + + checks if the style of this font is STRIKETHRU. + + a boolean + + + + Sets the style using a String containing one of + more of the following values: normal, bold, italic, underline, strike. + + A String representing a certain style. + + + Sets the style. + @param style the style. + + + + Translates a string-value of a certain style + into the index value is used for this style in this class. + + a string + the corresponding value + + + + Get/set the color of this font. + + the color of this font + + + + Sets the color. + + the red-value of the new color + the green-value of the new color + the blue-value of the new color + + + + Gets the BaseFont inside this object. + + the BaseFont + + + Gets the BaseFont this class represents. + For the built-in fonts a BaseFont is calculated. + @param specialEncoding true to use the special encoding for Symbol and ZapfDingbats, + false to always use Cp1252 + @return the BaseFont this class represents + + + + Checks if the properties of this font are undefined or null. +

+ If so, the standard should be used. +

+ a boolean +
+ + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this static class first and then create fonts in your code using one of the static getFont-method + without having to enter a path as parameter. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks whether the given font is contained within the object + + the name of the font + true if font is contained within the object + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + + This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file. + + + This is a map of fontfamilies. + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in windows + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + A special-version of LIST whitch use greek-letters. + + @see com.lowagie.text.List + + + Initialization + + @param symbolIndent indent + + + Initialisierung + + @param symbolIndent indent + + + Initialisierung + @param greeklower greek-char in lowercase + @param symbolIndent indent + + + change the font to SYMBOL + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + This is an Element that contains + some userdefined meta information about the document. + + + + Header header = new Header("inspired by", "William Shakespeare"); + + + + + This is the content of this chunk of text. + + + + Constructs a Header. + + the name of the meta-information + the content + + + + Returns the name of the meta information. + + a string + + + + List with the HTML translation of all the characters. + + + Set containing tags that trigger a new line. + @since iText 5.0.6 + + + Converts a String to the HTML-format of this String. + + @param string The String to convert + @return a String + + + Converts a BaseColor into a HTML representation of this BaseColor. + + @param color the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + Translates the alignment value. + + @param alignment the alignment value + @return the translated value + + + Returns true if the tag causes a new line like p, br etc. + @since iText 5.0.6 + + + Static final values of supported HTML tags and attributes. + @since 5.0.6 + @deprecated since 5.5.2 + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + The possible value of an alignment attribute. + @since 5.0.6 + + + The possible value of an alignment attribute. + @since 5.0.6 + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + This is used for inline css style information + + + Attribute for specifying externally defined CSS class. + @since 5.0.6 + + + the CSS tag for text color + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + the CSS tag for text decorations + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + Stores the hierarchy of tags along with the attributes of each tag. + @since 5.0.6 renamed from ChainedProperties + @deprecated since 5.5.2 + + + Class that stores the info about one tag in the chain. + + + A possible tag + + + The styles corresponding with the tag + + + Constructs a chained property. + @param tag an XML/HTML tag + @param attrs the tag's attributes + + + A list of chained properties representing the tag hierarchy. + + + Creates a new instance of ChainedProperties + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns a value as soon as a match + is found or null if the key can't be found. + @param key the key of the property + @return the value of the property + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns true as soon as a match is + found or false if the key can't be found. + @param key the key of the property + @return true if the key is found + + + Adds a tag and its corresponding properties to the chain. + @param tag the tags that needs to be added to the chain + @param props the tag's attributes + + + If the properties contain a font size, the size may need to + be adjusted based on font sizes higher in the hierarchy. + @param attrs the attributes that may have to be updated + @since 5.0.6 (renamed) + + + Old iText class that allows you to convert HTML to PDF. + We've completely rewritten HTML to PDF conversion and we made it a separate project named XML Worker. + @deprecated since 5.5.2; please switch to XML Worker instead (this is a separate project) + + + DocListener that will listen to the Elements + produced by parsing the HTML. + This can be a com.lowagie.text.Document adding + the elements to a Document directly, or an + HTMLWorker instance strong the objects in a List + + + The map with all the supported tags. + @since 5.0.6 + + + The object defining all the styles. + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + @param tags A map containing the supported tags + @param style A StyleSheet + @since 5.0.6 + + + Sets the map with supported tags. + @param tags + @since 5.0.6 + + + Setter for the StyleSheet + @param style the StyleSheet + + + Parses content read from a java.io.Reader object. + @param reader the content + @throws IOException + + + Stack with the Elements that already have been processed. + @since iText 5.0.6 (private => protected) + + + Keeps the content of the current paragraph + @since iText 5.0.6 (private => protected) + + + The current hierarchy chain of tags. + @since 5.0.6 + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Dictionary) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + Adds a new line to the currentParagraph. + @since 5.0.6 + + + Flushes the current paragraph, indicating that we're starting + a new block. + If the stack is empty, the paragraph is added to the document. + Otherwise the Paragraph is added to the stack. + @since 5.0.6 + + + Stacks the current paragraph, indicating that we're starting + a new span. + @since 5.0.6 + + + Pushes an element to the Stack. + @param element + @since 5.0.6 + + + Updates the chain with a new tag and new attributes. + @param tag the new tag + @param attrs the corresponding attributes + @since 5.0.6 + + + Updates the chain by removing a tag. + @param tag the new tag + @since 5.0.6 + + + Key used to store the image provider in the providers map. + @since 5.0.6 + + + Key used to store the image processor in the providers map. + @since 5.0.6 + + + Key used to store the image store in the providers map. + @since 5.0.6 + + + Key used to store the image baseurl provider in the providers map. + @since 5.0.6 + + + Key used to store the font provider in the providers map. + @since 5.0.6 + + + Key used to store the link provider in the providers map. + @since 5.0.6 + + + IDictionary containing providers such as a FontProvider or ImageProvider. + @since 5.0.6 (renamed from interfaceProps) + + + Setter for the providers. + If a FontProvider is added, the ElementFactory is updated. + @param providers a IDictionary with different providers + @since 5.0.6 + + + Factory that is able to create iText Element objects. + @since 5.0.6 + + + Creates a Chunk using the factory. + @param content the content of the chunk + @return a Chunk with content + @since 5.0.6 + + + Creates a Paragraph using the factory. + @return a Paragraph without any content + @since 5.0.6 + + + Creates a List object. + @param tag should be "ol" or "ul" + @return a List object + @since 5.0.6 + + + Creates a ListItem object. + @return a ListItem object + @since 5.0.6 + + + Creates a LineSeparator object. + @param attrs properties of the LineSeparator + @return a LineSeparator object + @since 5.0.6 + + + Creates an Image object. + @param attrs properties of the Image + @return an Image object (or null if the Image couldn't be found) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Creates a Cell. + @param tag the tag + @return a CellWrapper object + @since 5.0.6 + + + Adds a link to the current paragraph. + @since 5.0.6 + + + Fetches the List from the Stack and adds it to + the TextElementArray on top of the Stack, + or to the Document if the Stack is empty. + @throws DocumentException + @since 5.0.6 + + + Looks for the List object on the Stack, + and adds the ListItem to the List. + @throws DocumentException + @since 5.0.6 + + + Processes an Image. + @param img + @param attrs + @throws DocumentException + @since 5.0.6 + + + Processes the Table. + @throws DocumentException + @since 5.0.6 + + + Gets the TableWrapper from the Stack and adds a new row. + @since 5.0.6 + + + Stack to keep track of table tags. + + + Boolean to keep track of TR tags. + + + Boolean to keep track of TD and TH tags + + + Boolean to keep track of LI tags + + + Boolean to keep track of PRE tags + @since 5.0.6 renamed from isPRE + + + Indicates if text needs to be skipped. + @since iText 5.0.6 (private => protected) + + + Pushes the values of pendingTR and pendingTD + to a state stack. + @since 5.0.6 + + + Pops the values of pendingTR and pendingTD + from a state stack. + @since 5.0.6 + + + @return the pendingTR + @since 5.0.6 + + + @param pendingTR the pendingTR to set + @since 5.0.6 + + + @return the pendingTD + @since 5.0.6 + + + @param pendingTD the pendingTD to set + @since 5.0.6 + + + @return the pendingLI + @since 5.0.6 + + + @param pendingLI the pendingLI to set + @since 5.0.6 + + + @return the insidePRE + @since 5.0.6 + + + @param insidePRE the insidePRE to set + @since 5.0.6 + + + @return the skipText + @since 5.0.6 + + + @param skipText the skipText to set + @since 5.0.6 + + + The resulting list of elements. + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param tags a map containing supported tags and their processors + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + @since 5.0.6 + + + @see com.itextpdf.text.ElementListener#add(com.itextpdf.text.Element) + + + @see com.itextpdf.text.DocListener#close() + + + @see com.itextpdf.text.DocListener#newPage() + + + @see com.itextpdf.text.DocListener#open() + + + @see com.itextpdf.text.DocListener#resetPageCount() + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + @since 2.1.6 + + + @see com.itextpdf.text.DocListener#setMargins(float, float, float, float) + + + @see com.itextpdf.text.DocListener#setPageCount(int) + + + @see com.itextpdf.text.DocListener#setPageSize(com.itextpdf.text.Rectangle) + + + Sets the providers. + @deprecated use SetProviders() instead + + + Gets the providers + @deprecated use GetProviders() instead + + + @deprecated since 5.5.2 + + + Old class to define styles for HTMLWorker. + We've completely rewritten HTML to PDF functionality; see project XML Worker. + XML Worker is able to parse CSS files and "style" attribute values. + @deprecated since 5.5.2 + + + IDictionary storing tags and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + IDictionary storing possible names of the "class" attribute + and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + Creates a new instance of StyleSheet + + + Associates a IDictionary containing styles with a tag. + @param tag the name of the HTML/XML tag + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param tag the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Associates a IDictionary containing styles with a class name. + @param className the value of the class attribute + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param className the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Resolves the styles based on the tag name and the value + of the class attribute. + @param tag the tag that needs to be resolved + @param attrs existing style map that will be updated + + + Method contributed by Lubos Strapko + @param h + @param chain + @since 2.1.3 + + + We use a CellWrapper because we need some extra info + that isn't available in PdfPCell. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The cell that is wrapped in this stub. + + + The width of the cell. + @since iText 5.0.6 + + + Indicates if the width is a percentage. + @since iText 5.0.6 + + + Creates a new instance of IncCell. + @param tag the cell that is wrapped in this object. + @param chain properties such as width + @since 5.0.6 + + + Creates a PdfPCell element based on a tag and its properties. + @param tag a cell tag + @param chain the hierarchy chain + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Factory that produces iText Element objects, + based on tags and their properties. + @author blowagie + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The font provider that will be used to fetch fonts. + @since iText 5.0 This used to be a FontFactoryImp + + + Creates a new instance of FactoryProperties. + + + Setter for the font provider + @param provider + @since 5.0.6 renamed from setFontImp + + + Creates a Font object based on a chain of properties. + @param chain chain of properties + @return an iText Font object + + + Creates an iText Chunk + @param content the content of the Chunk + @param chain the hierarchy chain + @return a Chunk + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a Paragraph without any content + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a ListItem without any content + + + Method that does the actual Element creating for + the createParagraph and createListItem method. + @param paragraph + @param chain + + + Sets the leading of a Paragraph object. + @param paragraph the Paragraph for which we set the leading + @param leading the String value of the leading + + + Gets a HyphenationEvent based on the hyphenation entry in + the hierarchy chain. + @param chain the hierarchy chain + @return a HyphenationEvent + @since 2.1.2 + + + Creates a LineSeparator. + @since 5.0.6 + + + This class maps tags such as div and span to their corresponding + TagProcessor classes. + @deprecated since 5.5.2 + + + Creates a Map containing supported tags. + + + Object that processes the following tags: + i, em, b, strong, s, strike, u, sup, sub + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Maps em to i, strong to b, and strike to s. + This is a convention: the style parser expects i, b and s. + @param tag the original tag + @return the mapped tag + + + Object that processes the a tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Object that processes the br tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Interface that needs to be implemented by every tag that is supported by HTMLWorker. + @deprecated since 5.5.2 + + + Implement this class to tell the HTMLWorker what to do + when an open tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @param attrs the current attributes of the tag + @throws DocumentException + @throws IOException + + + Implement this class to tell the HTMLWorker what to do + when an close tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @throws DocumentException + + + Implement this interface to process images and + to indicate if the image needs to be added or + skipped. + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Allows you to (pre)process the image before (or instead of) + adding it to the DocListener with HTMLWorker. + @param img the Image object + @param attrs attributes of the image + @param chain hierarchy of attributes + @param doc the DocListener to which the Image needs to be added + @return false if you still want HTMLWorker to add the Image + + + Allows you to do additional processing on a Paragraph that contains a link. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Does additional processing on a link paragraph + @param current the Paragraph that has the link + @param attrs the attributes + @return false if the Paragraph no longer needs processing + + + @since 5.0.6 + @deprecated since 5.5.2 + + + We use a TableWrapper because PdfPTable is rather complex + to put on the HTMLWorker stack. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The styles that need to be applied to the table + @since 5.0.6 renamed from props + + + Nested list containing the PdfPCell elements that are part of this table. + + + Array containing the widths of the columns. + @since iText 5.0.6 + + + Creates a new instance of IncTable. + @param attrs a Map containing attributes + + + Adds a new row to the table. + @param row a list of PdfPCell elements + + + Setter for the column widths + @since iText 5.0.6 + + + Creates a new PdfPTable based on the info assembled + in the table stub. + @return a PdfPTable + + + This class is a HashMap that contains the names of colors as a key and the + corresponding Color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + @author blowagie + @deprecated since 5.5.2 + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + @param colStr + A non-null, lower case string that might describe an RGB color + in hex. + @return Is this a web color hex string without the leading #? + @since 5.0.6 + + + Gives you a BaseColor based on a name. + + @param name + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + @return the corresponding BaseColor object. Never returns null. + @throws IllegalArgumentException + if the String isn't a know representation of a color. + + + A class that contains some utilities to parse HTML attributes and content. + @since 5.0.6 (some of these methods used to be in the Markup class) + @deprecated since 5.5.2 + + + a default value for font-size + @since 2.1.3 + + + Parses a length. + + @param str + a length in the form of an optional + or -, followed by a + number and a unit. + @return a float + + + New method contributed by: Lubos Strapko + + @since 2.1.3 + + + Converts a BaseColor into a HTML representation of this + BaseColor. + + @param s + the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + This method parses a String with attributes and returns a Properties + object. + + @param str + a String of this form: 'key1="value1"; key2="value2";... + keyN="valueN" ' + @return a Properties object + + + Removes the comments sections of a String. + + @param str + the original String + @param startComment + the String that marks the start of a Comment section + @param endComment + the String that marks the end of a Comment section. + @return the String stripped of its comment section + + + Helper class that reduces the white space in a String + @param content content containing whitespace + @return the content without all unnecessary whitespace + + + A series of predefined font sizes. + @since 5.0.6 (renamed) + + + Picks a font size from a series of predefined font sizes. + @param value the new value of a font, expressed as an index + @param previous the previous value of the font size + @return a new font size. + + + Translates a String value to an alignment value. + (written by Norman Richards, integrated into iText by Bruno) + @param alignment a String (one of the ALIGN_ constants of this class) + @return an alignment value (one of the ALIGN_ constants of the Element interface) + + + + A class that implements DocListener will perform some + actions when some actions are performed on a Document. + + + + + + + + Signals that the Document has been opened and that + Elements can be added. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + The output stream of every writer implementing IDocListener will be closed. + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Parameter that allows you to do margin mirroring (odd/even pages) + @param marginMirroring + @return true if succesfull + + + Parameter that allows you to do top/bottom margin mirroring (odd/even pages) + @param marginMirroringTopBottom + @return true if successful + @since 2.1.6 + + + + Sets the page number. + + the new page number + + + + Sets the page number to 0. + + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + Checks if this element is a content object. + If not, it's a metadata object. + @since iText 2.0.8 + @return true if this is a 'content' element; false if this is a 'medadata' element + + + Checks if this element is nestable. + @since iText 2.0.8 + @return true if this element can be nested inside other elements. + + + + Gets all the chunks in this element. + + an ArrayList + + + + Gets the content of the text element. + + the content of the text element + + + + A class that implements ElementListener will perform some + actions when an Element is added. + + + + + Signals that an Element was added to the Document. + + Element added + true if the element was added, false if not. + + + These two methods are used by FactoryProperties (for HTMLWorker). + It's implemented by FontFactoryImp. + @since iText 5.0 + + + Checks if a certain font is registered. + + @param fontname the name of the font that has to be checked. + @return true if the font is found + + + Constructs a Font-object. + + @param fontname the name of the font + @param encoding the encoding of the font + @param embedded true if the font is to be embedded in the PDF + @param size the size of this font + @param style the style of this font + @param color the BaseColor of this font. + @return the Font constructed based on the parameters + + + Interface implemented by Element objects that can potentially consume + a lot of memory. Objects implementing the LargeElement interface can + be added to a Document more than once. If you have invoked setCompleted(false), + they will be added partially and the content that was added will be + removed until you've invoked setCompleted(true); + @since iText 2.0.8 + + + If you invoke setCompleted(false), you indicate that the content + of the object isn't complete yet; it can be added to the document + partially, but more will follow. If you invoke setCompleted(true), + you indicate that you won't add any more data to the object. + @since iText 2.0.8 + @param complete false if you'll be adding more data after + adding the object to the document. + + + Flushes the content that has been added. + + + + An Image is the representation of a graphic element (JPEG, PNG or GIF) + that has to be inserted into the document + + + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The imagetype. + + + The URL of the image. + + + The raw data of the image. + + + The template to be treated as an image. + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + if the annotation is not null the image will be clickable. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalType. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + + Constructs an Image-object, using an url. + + the URL where the image can be found. + + + + Constructs an Image object duplicate. + + another Image object. + + + + Gets an instance of an Image. + + an Image + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + a byte array + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image from a System.Drwaing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + + Gets an instance of an Image from a System.Drawing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + an object of type ImgRaw + + + + Gets an instance of an Image. + + a filename + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + an object of type ImgRaw + + + Creates a JBIG2 Image. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + @since 2.1.5 + + + Reuses an existing image. + @param ref the reference to the image dictionary + @throws BadElementException on error + @return the image + + + + Gets an instance of an Image in raw mode. + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + + + + + + + + + + + + + + + + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + + transparency information in the Mask format of the + image dictionary + + an object of type ImgRaw + + + + Sets the absolute position of the Image. + + + + + + + Scale the image to the dimensions of the rectangle + + dimensions to scale the Image + + + + Scale the image to an absolute width and an absolute height. + + the new width + the new height + + + + Scale the image to an absolute width. + + the new width + + + + Scale the image to an absolute height. + + the new height + + + + Scale the image to a certain percentage. + + the scaling percentage + + + + Scale the width and height of an image to a certain percentage. + + the scaling percentage of the width + the scaling percentage of the height + + + + Scales the images to the dimensions of the rectangle. + + the dimensions to fit + + + + Scales the image so that it fits a certain width and height. + + the width to fit + the height to fit + + + Gets the current image rotation in radians. + @return the current image rotation in radians + + + + Sets the rotation of the image in radians. + + rotation in radians + + + + Sets the rotation of the image in degrees. + + rotation in degrees + + + + Get/set the annotation. + + the Annotation + + + + Gets the bpc for the image. + + + this only makes sense for Images of the type RawImage. + + a bpc value + + + + Gets the raw data for the image. + + + this only makes sense for Images of the type RawImage. + + the raw data + + + + Get/set the template to be used as an image. + + + this only makes sense for Images of the type ImgTemplate. + + the template + + + + Checks if the Images has to be added at an absolute position. + + a bool + + + + Checks if the Images has to be added at an absolute X position. + + a bool + + + + Returns the absolute X position. + + a position + + + + Returns the absolute Y position. + + a position + + + + Returns the type. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Returns true if the image is a Jpeg-object. + + a bool + + + + Returns true if the image is a ImgRaw-object. + + a bool + + + + Returns true if the image is an ImgTemplate-object. + + a bool + + + + Gets the string-representation of the reference to the image. + + a string + + + + Get/set the alignment for the image. + + a value + + + + Get/set the alternative text for the image. + + a string + + + + Gets the scaled width of the image. + + a value + + + + Gets the scaled height of the image. + + a value + + + + Gets the colorspace for the image. + + + this only makes sense for Images of the type Jpeg. + + a colorspace value + + + + Returns the transformation matrix of the image. + + an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + Returns the transformation matrix of the image. + + @return an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + + Returns the transparency. + + the transparency + + + + Gets the plain width of the image. + + a value + + + + Gets the plain height of the image. + + a value + + + + generates new serial id + + + + + returns serial id for this object + + + + + Gets the dots-per-inch in the X direction. Returns 0 if not available. + + the dots-per-inch in the X direction + + + + Gets the dots-per-inch in the Y direction. Returns 0 if not available. + + the dots-per-inch in the Y direction + + + Sets the dots per inch value + + @param dpiX + dpi for x coordinates + @param dpiY + dpi for y coordinates + + + + Returns true if this Image has the + requisites to be a mask. + + true if this Image can be a mask + + + + Make this Image a mask. + + + + + Get/set the explicit masking. + + the explicit masking + + + + Returns true if this Image is a mask. + + true if this Image is a mask + + + + Inverts the meaning of the bits of a mask. + + true to invert the meaning of the bits of a mask + + + + Sets the image interpolation. Image interpolation attempts to + produce a smooth transition between adjacent sample values. + + New value of property interpolation. + + + Tags this image with an ICC profile. + @param profile the profile + + + Checks is the image has an ICC profile. + @return the ICC profile or null + + + Indicates if the image should be scaled to fit the line + when the image exceeds the available width. + @since iText 5.0.6 + + + Indicates if the image should be scaled to fit + when the image exceeds the available height. + @since iText 5.4.2 + + + Gets and sets the value of scaleToFitHeight. + @return true if the image size has to scale to the available height + @since iText 5.4.2 + + + Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray. + + + Some image formats, like TIFF may present the images rotated that have + to be compensated. + + + Sets the compression level to be used if the image is written as a compressed stream. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + CCITT Image data that has to be inserted into the document + + @see Element + @see Image + + @author Paulo Soares + + CCITT Image data that has to be inserted into the document + + + + + + + Creats an Image in CCITT mode. + + the exact width of the image + the exact height of the image + + reverses the bits in data. + Bit 0 is swapped with bit 7 and so on + + + the type of compression in data. It can be + CCITTG4, CCITTG31D, CCITTG32D + + + parameters associated with this stream. Possible values are + CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a + combination of them + + the image data + + + Support for JBIG2 images. + @since 2.1.5 + + + JBIG2 globals + + + A unique hash + + + Copy contstructor. + @param image another Image + + + Empty constructor. + + + Actual constructor for ImgJBIG2 images. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + + + Getter for the JBIG2 global data. + @return an array of bytes + + + Getter for the unique hash. + @return an array of bytes + + + + Raw Image data that has to be inserted into the document + + + + + + + Creats an Image in raw mode. + + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + data the image data + + + + PdfTemplate that has to be inserted into the document + + + + + + + Creats an Image from a PdfTemplate. + + the Image + + + + Creats an Image from a PdfTemplate. + + the PdfTemplate + + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + @see Element + @see Image + @see Gif + @see Png + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + + + + Constructs an ImgWMF-object + + a Image + + + + Constructs an ImgWMF-object, using an url. + + the URL where the image can be found + + + + Constructs an ImgWMF-object, using a filename. + + a string-representation of the file that contains the image. + + + + Constructs an ImgWMF-object from memory. + + the memory image + + + + This method checks if the image is a valid WMF and processes some parameters. + + + + + Reads the WMF into a template. + + the template to read to + + + A RandomAccessSource that is based on an underlying byte array + @since 5.3.5 + + + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + A RandomAccessSource that is based on a set of underlying sources, treating the sources as if they were a contiguous block of data. + @since 5.3.5 + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + Constructs a new {@link GroupedRandomAccessSource} based on the specified set of sources + @param sources the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently (for example {@link FileChannelRandomAccessSource} takes advantage of fixed size page buffers to compute the index) + @param offset the offset + @return the index of the input source that contains the specified offset, or 0 if unknown + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup when the source is no longer the active source + @param offset the offset of the byte to look for + @return the SourceEntry that contains the byte at the specified offset + @throws IOException if there is a problem with IO (usually the result of the sourceReleased() call) + + + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + @param source the source that is no longer the active source + @throws IOException if there are any problems + + + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + @param source the source that is about to become the active source + @throws IOException if there are any problems + + + {@inheritDoc} + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Closes all of the underlying sources + + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + @param index the index + @param source the source + @param offset the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + @param absoluteOffset the offset in the parent GroupedRandomAccessSource + @return the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSouce but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + @since 5.3.5 + + + Gets a byte at the specified position + @param position + @return the byte, or -1 if EOF is reached + + + Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be + read will be placed in bytes and the number actually read will be returned. + @param position the position in the RandomAccessSource to read from + @param bytes output buffer + @param off offset into the output buffer where results will be placed + @param len the number of bytes to read + @return the number of bytes actually read, or -1 if the file is at EOF + + + @return the length of this source + + + Closes this source. The underlying data structure or source (if any) will also be closed + @throws IOException + + + + A RandomAccessSource that uses a {@link RandomAccessFile} as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + The source + + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of IOExceptions when reading the length. + + + Creates this object + @param raf the source for this RandomAccessSource + @throws IOException if the RAF can't be read + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Note: the length is determined when the {@link RAFRandomAccessSource} is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + Closes the underlying RandomAccessFile + + + Factory to create {@link RandomAccessSource} objects based on various types of sources + @since 5.3.5 + + + + whether the full content of the source should be read into memory at construction + + + Whether {@link RandomAccessFile} should be used instead of a {@link FileChannel}, where applicable + + + Whether the underlying file should have a RW lock on it or just an R lock + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + Determines whether the full content of the source will be read into memory + @param forceRead true if the full content will be read, false otherwise + @return this object (this allows chaining of method calls) + + + Creates a {@link RandomAccessSource} based on a byte array + @param data the byte array + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a URL. The data available at the URL is read into memory and used + as the source for the {@link RandomAccessSource} + @param url the url to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on an {@link InputStream}. The full content of the InputStream is read into memory and used + as the source for the {@link RandomAccessSource} + @param is the stream to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if forceRead is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened using {@link RandomAccessFile} access (if usePlainRandomAccess is true) + This call will automatically failover to using {@link RandomAccessFile} if the memory map operation fails + @param filename the name of the file or resource to create the {@link RandomAccessSource} for + @return the newly created {@link RandomAccessSource} + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + An input stream that uses a RandomAccessSource as it's underlying source + @since 5.3.5 + + + The source + + + The current position in the source + + + Creates an input stream based on the source + @param source the source + + + Utility class with commonly used stream operations + @since 5.3.5 + + + + Reads the full content of a stream and returns them in a byte array + @param is the stream to read + @return a byte array containing all of the bytes from the stream + @throws IOException if there is a problem reading from the input stream + + + Gets the font resources. + @param key the name of the resource + @return the Stream to get the resource or + null if not found + + + A RandomAccessSource that wraps another RandomAccessSouce and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + @since 5.3.5 + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + @param source the source + @param offset the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + @param source the source + @param offset the amount of the offset to use + @param length the number of bytes to be included in this RAS + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the length will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + + + The RTF jar depends on the iText jar, but the iText jar may not + depend on the RTF jar. This interface offers a temporary solution + until we find a more elegant way to solve this. + + + + Interface for customizing the split character. + + + + + + Interface for a text element to which other objects can be added. + + + + + + + + + + + + Adds an object to the TextElementArray. + + an object that has to be added + true if the addition succeeded; false otherwise + + + + An Jpeg is the representation of a graphic element (JPEG) + that has to be inserted into the document + + + + + + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Construct a Jpeg-object, using a Image + + a Image + + + + Constructs a Jpeg-object, using an Uri. + + + Deprecated, use Image.GetInstance(...) to create an Image + + the Uri where the image can be found + + + + Constructs a Jpeg-object from memory. + + the memory image + + + + Constructs a Jpeg-object from memory. + + the memory image. + the width you want the image to have + the height you want the image to have + + + + Reads a short from the Stream. + + the Stream + an int + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Returns a type of marker. + + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + + This method checks if the image is a valid JPEG and processes some parameters. + + + + An Jpeg2000 is the representation of a graphic element (JPEG) + that has to be inserted into the document + + @see Element + @see Image + + + Constructs a Jpeg2000-object, using an url. + + @param url the URL where the image can be found + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image. + @param width the width you want the image to have + @param height the height you want the image to have + @throws BadElementException + @throws IOException + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + A List contains several ListItems. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + +
+ + a possible value for the numbered parameter + + + a possible value for the numbered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + This is the ArrayList containing the different ListItems. + + + Indicates if the list has to be numbered. + + + Indicates if the listsymbols are numerical or alphabetical. + + + Indicates if the listsymbols are lowercase or uppercase. + + + Indicates if the indentation has to be set automatically. + + + Indicates if the indentation of all the items has to be aligned. + + + This variable indicates the first number of a numbered list. + + + This is the listsymbol of a list that is not numbered. + + + In case you are using numbered/lettered lists, this String is added before the number/letter. + @since iText 2.1.1 + + + In case you are using numbered/lettered lists, this String is added after the number/letter. + @since iText 2.1.1 + + + The indentation of this list on the left side. + + + The indentation of this list on the right side. + + + The indentation of the listitems. + + + Constructs a List. + + + Constructs a List with a specific symbol indentation. + @param symbolIndent the symbol indentation + @since iText 2.0.8 + + + Constructs a List. + + @param numbered a bool + + + Constructs a List. + + @param numbered a bool + @param lettered has the list to be 'numbered' with letters + + + + Constructs a List. + + + the parameter symbolIndent is important for instance when + generating PDF-documents; it indicates the indentation of the listsymbol. + + a bool + the indentation that has to be used for the listsymbol + + + + Constructs a List. + + a bool + a bool + the indentation that has to be used for the listsymbol + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + Adds an Object to the List. + + the object to add + true is successful + + + Makes sure all the items in the list have the same indentation. + + + + Alias for VB.NET compatibility. + + + + + Get/set the first number + + an int + + + + Sets the symbol + + a Chunk + + + + Sets the listsymbol. + + + This is a shortcut for SetListSymbol(Chunk symbol). + + a string + + + + Get/set the indentation of this paragraph on the left side. + + the indentation + + + + Get/set the indentation of this paragraph on the right side. + + the indentation + + + + Gets the symbol indentation. + + the symbol indentation + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Gets all the items in the list. + + an ArrayList containing ListItems + + + + Gets the size of the list. + + a size + + + Returns true if the list is empty. + + @return true if the list is empty + + + + Gets the leading of the first listitem. + + a leading + + + + Get/set the symbol indentation. + + a Chunk + + + Returns the String that is after a number or letter in the list symbol. + @return the String that is after a number or letter in the list symbol + @since iText 2.1.1 + + + Sets the String that has to be added after a number or letter in the list symbol. + @since iText 2.1.1 + @param postSymbol the String that has to be added after a number or letter in the list symbol. + + + Sets the String that has to be added before a number or letter in the list symbol. + @since iText 2.1.1 + @param preSymbol the String that has to be added before a number or letter in the list symbol. + + + + A ListItem is a Paragraph + that can be added to a List. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + + +
+ + this is the symbol that wil proceed the listitem. + + + + Constructs a ListItem. + + + + + Constructs a ListItem with a certain leading. + + the leading + + + + Constructs a ListItem with a certain Chunk. + + a Chunk + + + + Constructs a ListItem with a certain string. + + a string + + + + Constructs a ListItem with a certain string + and a certain Font. + + a string + a string + + + + Constructs a ListItem with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a ListItem with a certain string + and a certain leading. + + the leading + a string + + + Constructs a ListItem with a certain leading, string + and Font. + + @param leading the leading + @param string a string + @param font a Font + + Constructs a ListItem with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a ListItem with a certain Phrase. + + a Phrase + + + + Gets the type of the text element. + + a type + + + + Get/set the listsymbol. + + a Chunk + + + Sets the indentation of this paragraph on the left side. + + @param indentation the new indentation + + + Changes the font of the list symbol to the font of the first chunk + in the list item. + @since 5.0.6 + + + Factory that creates a counter for every reader or writer class. + You can implement your own counter and declare it like this: + CounterFactory.getInstance().setCounter(new SysoCounter()); + SysoCounter is just an example of a Counter implementation. + It writes info about files being read and written to the System.out. + + This functionality can be used to create metrics in a SaaS context. + + + The singleton instance. + + + The current counter implementation. + + + The empty constructor. + + + Returns the singleton instance of the factory. + + + Returns a counter factory. + + + Getter for the counter. + + + Setter for the counter. + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass + @return this Counter implementation + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Interface that can be implemented if you want to count the number of documents + that are being processed by iText. + + Implementers may use this method to record actual system usage for licensing purposes + (e.g. count the number of documents or the volumne in bytes in the context of a SaaS license). + + + Gets a Counter instance for a specific class. + + + This method gets triggered if a file is read. + @param l the length of the file that was written + + + This method gets triggered if a file is written. + @param l the length of the file that was written + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass The Class asking for the Counter + @return the Counter instance + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + The name of the class for which the Counter was created + (or iText if no name is available) + + + Empty SysoCounter constructor. + + + Constructs a SysoCounter for a specific class. + @param klass + + + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Logger interface + {@link LoggerFactory#setLogger(Logger)}. + + @author redlab_b + + + + @param klass + @return the logger for the given klass + + + @param level + @return true if there should be logged for the given level + + + Log a warning message. + @param message + + + Log a trace message. + @param message + + + Log a debug message. + @param message + + + Log an info message. + @param message + + + Log an error message. + @param message + + + Log an error message and exception. + @param message + @param e + + + The different log levels. + @author redlab_b + + + + LoggerFactory can be used to set a logger. The logger should be created by + implementing {@link Logger}. In the implementation users can choose how they + log received messages. Added for developers. For some cases it can be handy + to receive logging statements while developing applications with iText + + @author redlab_b + + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param klass + @return the logger. + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param name + @return the logger. + + + Returns the LoggerFactory + @return singleton instance of this LoggerFactory + + + Set the global logger to process logging statements with. + + @param logger the logger + + + Get the logger. + + @return the logger + + + The no-operation logger, it does nothing with the received logging + statements. And returns false by default for {@link NoOpLogger#isLogging(Level)} + + @author redlab_b + + + + A Simple System.out logger. + @author redlab_be + + + + Defaults packageReduce to 1. + + + Amount of characters each package name should be reduced with. + @param packageReduce + + + + @param klass + @param shorten + + + @param name2 + @return + + + Wrapper that allows to add properties to 'basic building block' objects. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + The element that is wrapped in a MarkedObject. + + + Contains extra markupAttributes + + + This constructor is for internal use only. + + + Creates a MarkedObject. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets the type of the text element. + + @return a type + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + @return the markupAttributes + + + Wrapper that allows to add properties to a Chapter/Section object. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + This is the title of this section. + + + Creates a MarkedObject with a Section or Chapter object. + @param section the marked section + + + Adds a Paragraph, List or Table + to this Section. + + @param index index at which the specified element is to be inserted + @param o an object of type Paragraph, List or Table= + @throws ClassCastException if the object is not a Paragraph, List or Table + + + Adds a Paragraph, List, Table or another Section + to this Section. + + @param o an object of type Paragraph, List, Table or another Section + @return a bool + @throws ClassCastException if the object is not a Paragraph, List, Table or Section + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Adds a collection of Elements + to this Section. + + @param collection a collection of Paragraphs, Lists and/or Tables + @return true if the action succeeded, false if not. + @throws ClassCastException if one of the objects isn't a Paragraph, List, Table + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @return a new Section object + + + Creates a Section, add it to this Section and returns it. + + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @return a new Section object + + + Sets the title of this section. + + @param title the new title + + + + Sets the indentation of this Section on the left side. + + @param indentation the indentation + + + Sets the indentation of this Section on the right side. + + @param indentation the indentation + + + Sets the indentation of the content of this Section. + + @param indentation the indentation + + + Setter for property bookmarkOpen. + @param bookmarkOpen false if the bookmark children are not + visible. + + + Setter for property triggerNewPage. + @param triggerNewPage true if a new page has to be triggered. + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Adds a new page to the section. + @since 2.1.1 + + + + This is an Element that contains + some meta information about the document. + + + An object of type Meta can not be constructed by the user. + Userdefined meta information should be placed in a Header-object. + Meta is reserved for: Subject, Keywords, Author, Title, Producer + and Creationdate information. + + + + + + This is the type of Meta-information this object contains. + + + This is the content of the Meta-information. + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + + Constructs a Meta. + + the type of meta-information + the content + + + + Constructs a Meta. + + the tagname of the meta-information + the content + + + + Processes the element by adding it (or the different parts) to a + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + appends some text to this Meta. + + a string + a StringBuilder + + + + Returns the content of the meta information. + + a string + + + + Returns the name of the meta information. + + a string + + + + Returns the name of the meta information. + + name to match + a string + + + + The PageSize-object contains a number of read only rectangles representing the most common paper sizes. + + + + + This is the letter format + + + This is the note format + + + This is the legal format + + + This is the tabloid format + + + This is the executive format + + + This is the postcard format + + + This is the a0 format + + + This is the a1 format + + + This is the a2 format + + + This is the a3 format + + + This is the a4 format + + + This is the a5 format + + + This is the a6 format + + + This is the a7 format + + + This is the a8 format + + + This is the a9 format + + + This is the a10 format + + + This is the b0 format + + + This is the b1 format + + + This is the b2 format + + + This is the b3 format + + + This is the b4 format + + + This is the b5 format + + + This is the b6 format + + + This is the b7 format + + + This is the b8 format + + + This is the b9 format + + + This is the b10 format + + + This is the archE format + + + This is the archD format + + + This is the archC format + + + This is the archB format + + + This is the archA format + + + This is the American Foolscap format + + + This is the European Foolscap format + + + This is the halfletter format + + + This is the 11x17 format + + + This is the ISO 7810 ID-1 format (85.60 x 53.98 mm or 3.370 x 2.125 inch) + + + This is the ISO 7810 ID-2 format (A7 rotated) + + + This is the ISO 7810 ID-3 format (B7 rotated) + + + This is the ledger format + + + This is the Crown Quarto format + + + This is the Large Crown Quarto format + + + This is the Demy Quarto format. + + + This is the Royal Quarto format. + + + This is the Crown Octavo format + + + This is the Large Crown Octavo format + + + This is the Demy Octavo format + + + This is the Royal Octavo format. + + + This is the small paperback format. + + + This is the Pengiun small paperback format. + + + This is the Penguin large paparback format. + + + This is the letter format + @since iText 5.0.6 + + + This is the legal format + @since iText 5.0.6 + + + This is the a4 format + @since iText 5.0.6 + + + This method returns a Rectangle based on a String. + Possible values are the the names of a constant in this class + (for instance "A4", "LETTER",...) or a value like "595 842" + + + + A Paragraph is a series of Chunks and/or Phrases. + + + A Paragraph has the same qualities of a Phrase, but also + some additional layout-parameters: +
    +
  • the indentation +
  • the alignment of the text +
+
+ + + Paragraph p = new Paragraph("This is a paragraph", + FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + +
+ + The alignment of the text. + + + The indentation of this paragraph on the left side. + + + The indentation of this paragraph on the right side. + + + Holds value of property firstLineIndent. + + + The spacing before the paragraph. + + + The spacing after the paragraph. + + + Holds value of property extraParagraphSpace. + + + Does the paragraph has to be kept together on 1 page. + + + + Constructs a Paragraph. + + + + + Constructs a Paragraph with a certain leading. + + the leading + + + + Constructs a Paragraph with a certain Chunk. + + a Chunk + + + + Constructs a Paragraph with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a Paragraph with a certain string. + + a string + + + + Constructs a Paragraph with a certain string + and a certain Font. + + a string + a Font + + + + Constructs a Paragraph with a certain string + and a certain leading. + + the leading + a string + + + + Constructs a Paragraph with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a Paragraph with a certain Phrase. + + a Phrase + + + Creates a shallow clone of the Paragraph. + @return + + + Creates a shallow clone of the Paragraph. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + + Gets the type of the text element. + + a type + + + + Adds an Object to the Paragraph. + + the object to add + a bool + + + + Get/set the alignment of this paragraph. + + a integer + + + + Get/set the indentation of this paragraph on the left side. + + a float + + + + Get/set the indentation of this paragraph on the right side. + + a float + + + + Set/get if this paragraph has to be kept together on one page. + + a bool + + + + A Phrase is a series of Chunks. + + + A Phrase has a main Font, but some chunks + within the phrase can have a Font that differs from the + main Font. All the Chunks in a Phrase + have the same leading. + + + + // When no parameters are passed, the default leading = 16 + Phrase phrase0 = new Phrase(); + Phrase phrase1 = new Phrase("this is a phrase"); + // In this example the leading is passed as a parameter + Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16"); + // When a Font is passed (explicitely or embedded in a chunk), the default leading = 1.5 * size of the font + Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.GetFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0))); + Phrase phrase4 = new Phrase(new Chunk("this is a phrase")); + Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + + + + + This is the leading of this phrase. + + + The text leading that is multiplied by the biggest font size in the line. + + + This is the font of this phrase. + + + Null, unless the Phrase has to be hyphenated. + @since 2.1.2 + + + Predefined tab position and properties(alignment, leader and etc.); + @since 5.4.1 + + + + Constructs a Phrase without specifying a leading. + + + Has nine overloads. + + + + Copy constructor for Phrase. + + + + Constructs a Phrase with a certain leading. + + the leading + + + + Constructs a Phrase with a certain Chunk. + + a Chunk + + + + Constructs a Phrase with a certain Chunk and a certain leading. + + the leading + a Chunk + + + + Constructs a Phrase with a certain string. + + a string + + + + Constructs a Phrase with a certain string and a certain Font. + + a string + a Font + + + + Constructs a Phrase with a certain leading and a certain string. + + the leading + a string + + + + Processes the element by adding it (or the different parts) to an + . + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Chunk, an Anchor or another Phrase + to this Phrase. + + index at which the specified element is to be inserted + an object of type Chunk, Anchor, or Phrase + + + Adds a String to this Phrase. + + @param s a string + @return a boolean + @since 5.0.1 + + + + Adds a Chunk, Anchor or another Phrase + to this Phrase. + + an object of type Chunk, Anchor or Phrase + a bool + + + + Adds a collection of Chunks + to this Phrase. + + a collection of Chunks, Anchors and Phrases. + true if the action succeeded, false if not. + + + + Adds a Chunk. + + + This method is a hack to solve a problem I had with phrases that were split between chunks + in the wrong place. + + a Chunk + a bool + + + + Adds a Object to the Paragraph. + + the object to add. + + + + Checks is this Phrase contains no or 1 empty Chunk. + + + false if the Phrase + contains more than one or more non-emptyChunks. + + + + + + + Gets/sets the leading of this phrase. + + the linespacing + + + Gets the total leading. + This method is based on the assumption that the + font of the Paragraph is the font of all the elements + that make part of the paragraph. This isn't necessarily + true. + @return the total leading (fixed and multiplied) + + + + Gets the font of the first Chunk that appears in this Phrase. + + a Font + + + Returns the content as a String object. + This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase. + + + Setter/getter for the hyphenation. + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Setter/getter for the tabSettings. + @param tabSettings a TabSettings instance + @since 5.4.1 + + + Constructs a Phrase that can be used in the static GetInstance() method. + @param dummy a dummy parameter + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @param font + @return a newly constructed Phrase + + + + A Rectangle is the representation of a geometric figure. + + + + + + + + This is the value that will be used as undefined. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents a rectangle without borders. + + + This represents a type of border. + + + the lower left x-coordinate. + + + the lower left y-coordinate. + + + the upper right x-coordinate. + + + the upper right y-coordinate. + + + This represents the status of the 4 sides of the rectangle. + + + This is the width of the border around this rectangle. + + + This is the color of the border of this rectangle. + + + The color of the left border of this rectangle. + + + The color of the right border of this rectangle. + + + The color of the top border of this rectangle. + + + The color of the bottom border of this rectangle. + + + The width of the left border of this rectangle. + + + The width of the right border of this rectangle. + + + The width of the top border of this rectangle. + + + The width of the bottom border of this rectangle. + + + Whether variable width borders are used. + + + This is the color of the background of this rectangle. + + + This is the rotation value of this rectangle. + + + + Constructs a Rectangle-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a Rectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation (0, 90, 180, or 270) + @since iText 5.0.6 + + + + Constructs a Rectangle-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a Rectangle-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the rectangle + @since iText 5.0.6 + + + + Constructs a Rectangle-object. + + another Rectangle + + + Constructs a Rectangle-object based on a com.itextpdf.awt.geom.Rectangle object + @param rect com.itextpdf.awt.geom.Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Switches lowerleft with upperright + + + + Gets a Rectangle that is altered to fit on the page. + + the top position + the bottom position + a Rectangle + + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + a Rectangle + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Returns the lower left x-coordinate, considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Returns the width of the rectangle. + + a width + + + + Returns the height of the rectangle. + + a height + + + + Indicates if the table has borders. + + a bool + + + + Indicates if the table has a some type of border. + + the type of border + a bool + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Updates the border flag for a side based on the specified width. A width + of 0 will disable the border on that side. Any other width enables it. + + @param width + width of border + @param side + border side constant + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A RectangleReadOnly is the representation of a geometric figure. + It's the same as a Rectangle but immutable. + + + + + + + + + Constructs a RectangleReadOnly-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a RectangleReadOnly -object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the Rectangle (0, 90, 180, 270) + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a RectangleReadOnly-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object. + + another Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Switches lowerleft with upperright + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A special-version of LIST which use roman-letters. + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + Initialization + + + Initialization + + @param symbolIndent indent + + + Initialization + @param romanlower roman-char in lowercase + @param symbolIndent indent + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A Section is a part of a Document containing + other Sections, Paragraphs, List + and/or Tables. + + + You can not construct a Section yourself. + You will have to ask an instance of Section to the + Chapter or Section to which you want to + add the new Section. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0))); + Section section11 = section1.AddSection(40, title211, 2); + section11.Add(someSectionText);strong> + + + + + A possible number style. The default number style: "1.2.3." + @since iText 2.0.8 + + + A possible number style. For instance: "1.2.3" + @since iText 2.0.8 + + + This is the title of this section. + + + This is the number of sectionnumbers that has to be shown before the section title. + + + The style for sectionnumbers. + @since iText 2.0.8 + + + The indentation of this section on the left side. + + + The indentation of this section on the right side. + + + The additional indentation of the content of this section. + + + This is the number of subsections. + + + This is the complete list of sectionnumbers of this section and the parents of this section. + + + Indicates if the Section will be complete once added to the document. + @since iText 2.0.8 + + + Indicates if the Section was added completely to the document. + @since iText 2.0.8 + + + Indicates if this is the first time the section was added. + @since iText 2.0.8 + + + false if the bookmark children are not visible + + + true if the section has to trigger a new page + + + The bookmark title if different from the content title + + + + Constructs a new Section. + + + Has 2 overloads. + + + + + Constructs a new Section. + + a Paragraph + the numberDepth + + + + Sets the number of this section. + + the number of this section + an ArrayList, containing the numbers of the Parent + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Paragraph, List or Table + to this Section. + + index at which the specified element is to be inserted + an object of type Paragraph, List or Table + + + + Adds a Paragraph, List, Table or another Section + to this Section. + + an object of type Paragraph, List, Table or another Section + a bool + + + + Adds a collection of Elements + to this Section. + + a collection of Paragraphs, Lists and/or Tables + true if the action succeeded, false if not. + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Creates a Section, add it to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a marked section. For use in class MarkedSection only! + + + + Creates a Section, adds it to this Section and returns it. + + the title of the new section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param indentation the indentation of the new section + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the title of the new section + the newly added Section + + + + Get/set the title of this section + + a Paragraph + + + Sets the style for numbering sections. + Possible values are NUMBERSTYLE_DOTTED: 1.2.3. (the default) + or NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT: 1.2.3 + @since iText 2.0.8 + + + Constructs a Paragraph that will be used as title for a Section or Chapter. + @param title the title of the section + @param numbers a list of sectionnumbers + @param numberDepth how many numbers have to be shown + @param numberStyle the numbering style + @return a Paragraph object + @since iText 2.0.8 + + + + Checks if this object is a Chapter. + + + true if it is a Chapter, + false if it is a Section + + + + + Checks if this object is a Section. + + + true if it is a Section, + false if it is a Chapter. + + + + + Get/set the numberdepth of this Section. + + a int + + + + Get/set the indentation of this Section on the left side. + + the indentation + + + + Get/set the indentation of this Section on the right side. + + the indentation + + + + Get/set the indentation of the content of this Section. + + the indentation + + + + Returns the depth of this section. + + the depth + + + + Get/set the bookmark + + a bool + + + Gets the bookmark title. + @return the bookmark title + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Changes the Chapter number. + + + Indicates if this is the first time the section is added. + @since iText2.0.8 + @return true if the section wasn't added yet + + + @see com.lowagie.text.LargeElement#isAddedCompletely() + @since iText 2.0.8 + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Adds a new page to the section. + @since 2.1.1 + + + Returns the first occurrence of a special symbol in a String. + + @param string a String + @return an index of -1 if no special symbol was found + + + Gets a chunk with a symbol character. + @param c a character that has to be changed into a symbol + @param font Font if there is no SYMBOL character corresponding with c + @return a SYMBOL version of a character + + + Looks for the corresponding symbol in the font Symbol. + + @param c the original ASCII-char + @return the corresponding symbol in font Symbol + + + A collection of convenience methods that were present in many different iText + classes. + + + + + + + + + + Utility method to extend an array. + @param original the original array or null + @param item the item to be added to the array + @return a new array with the item appended + + + Checks for a true/false value of a key in a Properties object. + @param attributes + @param key + @return + + + + This method makes a valid URL from a given filename. + + + + + a given filename + a valid URL + + + Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value. + @param src the url to unescape + @return the eunescaped value + + + + This method is an alternative for the Stream.Skip()-method + that doesn't seem to work properly for big values of size. + + the stream + the number of bytes to skip + + + Measurement conversion from millimeters to points. + @param value a value in millimeters + @return a value in points + @since 2.1.2 + + + Measurement conversion from millimeters to inches. + @param value a value in millimeters + @return a value in inches + @since 2.1.2 + + + Measurement conversion from points to millimeters. + @param value a value in points + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from points to inches. + @param value a value in points + @return a value in inches + @since 2.1.2 + + + Measurement conversion from inches to millimeters. + @param value a value in inches + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from inches to points. + @param value a value in inches + @return a value in points + @since 2.1.2 + + + Reads the contents of a file to a String. + @param path the path to the file + @return a String with the contents of the file + @since iText 5.0.0 + + + Converts an array of bytes to a String of hexadecimal values + @param bytes a byte array + @return the same bytes expressed as hexadecimal values + + + + The ParserBase-class provides XML document parsing. + + + + + Begins the process of processing an XML document + + the XML document to parse + + + + This method gets called when a start tag is encountered. + + + + the name of the tag that is encountered + the list of attributes + + + + This method gets called when an end tag is encountered. + + + + the name of the tag that ends + + + + This method gets called when characters are encountered. + + an array of characters + the start position in the array + the number of characters to read from the array + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains all possible id values of the entity tag + that can be translated to a character in font Symbol. + + + Gets a chunk with a symbol character. + @param e a symbol value (see Entities class: alfa is greek alfa,...) + @param font the font if the symbol isn't found (otherwise Font.SYMBOL) + @return a Chunk + + + Looks for the corresponding symbol in the font Symbol. + + @param name the name of the entity + @return the corresponding character in font Symbol + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains the names of entities and their unicode value. + + + Translates an entity to a unicode character. + + @param name the name of the entity + @return the corresponding unicode character + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a comment is found. + @param text the comment text + + + + possible states + + + the state stack + + + The current character. + + + The previous character. + + + the line we are currently reading + + + the column where the current character occurs + + + was the last character equivalent to a newline? + + + A boolean indicating if the next character should be taken into account + if it's a space character. When nospace is false, the previous character + wasn't whitespace. + @since 2.1.5 + + + the current state + + + Are we parsing HTML? + + + current text (whatever is encountered between tags) + + + + current tagname + + + current attributes + + + The handler to which we are going to forward document content + + + The handler to which we are going to forward comments. + + + Keeps track of the number of tags that are open. + + + the quote character that was used to open the quote. + + + the attribute key. + + + the attribute value. + + + Creates a Simple XML parser object. + Call Go(BufferedReader) immediately after creation. + + + Does the actual parsing. Perform this immediately + after creating the parser object. + + + Gets a state from the stack + @return the previous state + + + Adds a state to the stack. + @param s a state to add to the stack + + + Flushes the text that is currently in the buffer. + The text can be ignored, added to the document + as content or as comment,... depending on the current state. + + + Initialized the tag name and attributes. + + + Sets the name of the tag. + + + processes the tag. + @param start if true we are dealing with a tag that has just been opened; if false we are closing a tag. + + + Throws an exception + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param r the document. The encoding is already resolved. The reader is not closed + @throws IOException on error + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param in the document. The encoding is deduced from the stream. The stream is not closed + @throws IOException on error + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + + + This {@link NewLineHandler} returns true on the tags p, + blockqouteand br + + @author Balder + + + + Default constructor + + @since 5.0.6 + + + Always returns false. + @author Balder + @since 5.0.6 + + + + A NewLineHandler determines if an encountered tag should result in a new line + in a document. + + @author Balder + @since 5.0.6 + + + @param tag the tag to check if after this one a new line should be in a document + @return true in case a new line should be added. + @since 5.0.6 + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + @param shorthand + @throws IOException + + + Adds a title. + @param title + + + Adds a title. + @param title + + + Adds a description. + @param desc + + + Adds a description. + @param desc + + + Adds a subject. + @param subject + + + Adds a subject. + @param subject array of subjects + + + Adds a single author. + @param author + + + Adds an array of authors. + @param author + + + Adds a single publisher. + @param publisher + + + Adds an array of publishers. + @param publisher + + + + A wrapper for an Encoding to suppress the preamble. + + + + Key for the default language. + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Add a language. + + + Process a property. + + + Creates a String that can be used in an XmpSchema. + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + @throws IOException + + + Adds keywords. + @param keywords + + + Adds the producer. + @param producer + + + Adds the version. + @param version + + + StringBuilder to construct an XMP array. + + + An array that is unordered. + + + An array that is ordered. + + + An array with alternatives. + + + the type of array. + + + Creates an XmpArray. + @param type the type of array: UNORDERED, ORDERED or ALTERNATIVE. + + + Returns the String representation of the XmpArray. + @return a String representation + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History�s softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + @param shorthand + @throws IOException + + + Adds the creatortool. + @param creator + + + Adds the creation date. + @param date + + + Adds the modification date. + @param date + + + Adds the meta data date. + @param date + + + Adds the identifier. + @param id + + + Adds the nickname. + @param name + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + @throws IOException + + + Reads an XMP stream into an org.w3c.dom.Document objects. + Allows you to replace the contents of a specific tag. + @since 2.1.3 + + + String used to fill the extra space. + + + Processing Instruction required at the start of an XMP stream + @since iText 2.1.6 + + + Processing Instruction required at the end of an XMP stream for XMP streams that can be updated + @since iText 2.1.6 + + + Constructs an XMP reader + @param bytes the XMP content + @throws ExceptionConverter + @throws IOException + @throws SAXException + + + Replaces the content of a tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 2.1.6 the return type has changed from void to boolean + + + Replaces the content of an attribute in the description tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 5.0.0 the return type has changed from void to boolean + + + Adds a tag. + @param namespaceURI the URI of the namespace + @param parent the tag name of the parent + @param localName the name of the tag to add + @param value the new content for the tag + @return true if the content was successfully added + @since 2.1.6 + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param domDocument the Document that contains the node + @param n the Node to add the text to + @param value the text to add + + + Writes the document to a byte array. + + + Abstract superclass of the XmpSchemas supported by iText. + + + the namesspace + + + Constructs an XMP schema. + @param xmlns + + + The String representation of the contents. + @return a String representation. + + + Processes a property + @param buf + @param p + + + @return Returns the xmlns. + + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @see java.util.Properties#setProperty(java.lang.String, java.lang.String) + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @param content + @return + + + With this class you can create an Xmp Stream that can be used for adding + Metadata to a PDF Dictionary. Remark that this class doesn't cover the + complete XMP specification. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + Creates an XmpWriter. + @param os + @param utfEncoding + @param extraSpace + @throws IOException + + + Creates an XmpWriter. + @param os + @throws IOException + + + @param os + @param info + @throws IOException + + + @param os + @param info + @throws IOException + @since 5.0.1 (generic type in signature) + + + Sets the XMP to read-only + + + @param about The about to set. + + + Adds an rdf:Description. + @param xmlns + @param content + @throws IOException + + + Adds an rdf:Description. + @param s + @throws IOException + + + @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + @param propName The name of the property. + Has the same usage as in getProperty(). + @param value the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + @throws XMPException Wraps all errors and exceptions that may occur. +
+ + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an ordered array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an alternate array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Flushes and closes the XmpWriter. + @throws IOException + + + Flushes and closes the XmpWriter. + @throws IOException + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + Adds a title. + + @param xmpMeta + @param title + + + Sets a title. + + @param xmpMeta + @param title + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a description. + + @param xmpMeta + @param desc + + + Sets a description. + + @param xmpMeta + @param desc + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a subject. + + @param xmpMeta + @param subject + + + Sets a subject. + + @param xmpMeta + @param subject array of subjects + + + Adds a single author. + + @param xmpMeta + @param author + + + Sets an array of authors. + + @param xmpMeta + @param author + + + Adds a single publisher. + + @param xmpMeta + @param publisher + + + Sets an array of publishers. + + @param xmpMeta + @param publisher + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + Adds keywords. + + @param xmpMeta + @param keywords + + + Adds the producer. + + @param xmpMeta + @param producer + + + Adds the version. + + @param xmpMeta + @param version + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + Adds the creatortool. + + @param xmpMeta + @param creator + + + Adds the creation date. + + @param xmpMeta + @param date + + + Adds the modification date. + + @param xmpMeta + @param date + + + Adds the meta data date. + + @param xmpMeta + @param date + + + Sets the identifier. + + @param xmpMeta + @param id + + + Adds the nickname. + + @param xmpMeta + @param name + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + + @author psoares + + + Print writer. + + + Canonical output. + + + Processing XML 1.1 document. + + + Default constructor. + + + Sets whether output is canonical. + + + Sets the output stream for printing. + + + Sets the output writer. + + + Writes the specified node, recursively. + + + Returns a sorted list of attributes. + + + Normalizes and prints the given string. + + + Normalizes and print the given character. + + + This class converts XML into plain text stripping all tags. + + + Buffer that stores all content that is encountered. + + + Static method that parses an XML Stream. + @param is the XML input that needs to be parsed + @return a String obtained by removing all tags from the XML + + + Creates an instance of XML to TXT. + + + @return the String after parsing. + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Map) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + Contains utility methods for XML. + @author Balder + @since 5.0.6 + + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + @since 5.0.6 + + + + Unescapes 'lt', 'gt', 'apos', 'quote' and 'amp' to the + corresponding character values. + @param s a string representing a character + @return a character value + + + Checks if a character value should be escaped/unescaped. + @param s the String representation of an integer + @return true if it's OK to escape or unescape this value + + + Checks if a character value should be escaped/unescaped. + @param c a character value + @return true if it's OK to escape or unescape this value + + + Looks for a character in a character array, starting from a certain position + @param needle the character you're looking for + @param haystack the character array + @param start the start position + @return the position where the character was found, or -1 if it wasn't found. + + + Returns the IANA encoding name that is auto-detected from + the bytes specified, with the endian-ness of that encoding where appropriate. + (method found in org.apache.xerces.impl.XMLEntityManager, originally published + by the Apache Software Foundation under the Apache Software License; now being + used in iText under the MPL) + @param b4 The first four bytes of the input. + @return an IANA-encoding string + @since 5.0.6 + + + + A special-version of LIST whitch use zapfdingbats-letters. + + @see com.lowagie.text.List + @author Michael Niedermair and Bruno Lowagie + + + char-number in zapfdingbats + + + Creates a ZapfDingbatsList + + @param zn a char-number + + + Creates a ZapfDingbatsList + + @param zn a char-number + @param symbolIndent indent + + + Sets the dingbat's color. + + @param zapfDingbatColor color for the ZapfDingbat + + + set the char-number + @param zn a char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A special-version of LIST whitch use zapfdingbats-numbers (1..10). + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + which type + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + get the type + + @return char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + Objects implementing Indentable allow to set indentation left and right. + + + Sets the indentation on the left side. + + @param indentation the new indentation + + + Sets the indentation on the right side. + + @param indentation the new indentation + + + Objects implementing Spaceable allow setting spacing before and after. + + + Sets the spacing before. + + @param spacing the new spacing + + + Sets the spacing after. + + @param spacing the new spacing + + + @author itextpdf.com + + + + Receive a writer and the document to do certain operations on them. + @param writer the PdfWriter + @param doc the document + @throws DocumentException + + + This class contains version information about iText. + DO NOT CHANGE THE VERSION INFORMATION WITHOUT PERMISSION OF THE COPYRIGHT HOLDERS OF ITEXT. + Changing the version makes it extremely difficult to debug an application. + Also, the nature of open source software is that you honor the copyright of the original creators of the software. + + + String that will indicate if the AGPL version is used. + + + The iText version instance. + + + This String contains the name of the product. + iText is a registered trademark by iText Group NV. + Please don't change this constant. + + + This String contains the version number of this iText release. + For debugging purposes, we request you NOT to change this constant. + + + This String contains the iText version as shown in the producer line. + iText is a product developed by iText Group NV. + iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + The license key. + + + Gets an instance of the iText version that is currently used. + Note that iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + * Gets the product name. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the product name + + + * Gets the release number. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the release number + + + * Returns the iText version as shown in the producer line. + * iText is a product developed by iText Group NV. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return iText version + + + Returns a license key if one was provided, or null if not. + @return a license key. + + + Checks if the AGPL version is used. + @return returns true if the AGPL version is used. + + + An element that is not an element, it holds {@link Element#WRITABLE_DIRECT} + as Element type. It implements WriterOperation to do operations on the + {@link PdfWriter} and the {@link Document} that must be done at the time of + the writing. Much like a {@link VerticalPositionMark} but little different. + + @author itextpdf.com + + + + @return {@link Element#WRITABLE_DIRECT} + + + The TYPE_UNKNOWN is an initial type value + + + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Multiply matrix of two AffineTransform objects + @param t1 - the AffineTransform object is a multiplicand + @param t2 - the AffineTransform object is a multiplier + @return an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + @version $Revision: 1.4 $ + + + + + marker for invalid bytes + + + + marker for accepted whitespace bytes + + + + marker for an equal symbol + + + + Encode the given byte[]. + + the source string. + the base64-encoded data. + + + + Encode the given byte[]. + + the source string. + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + the base64-encoded data. + + + + Encode the given string. + the source string. + the base64-encoded string. + + + + Decode the given byte[]. + + + the base64-encoded data. + the decoded data. + + + + Decode the given string. + + the base64-encoded string. + the decoded string. + + + + Byte buffer container including length of valid data. + + @since 11.10.2006 + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + + Loads the stream into a buffer. + + an InputStream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + + Appends a byte to the buffer. + a byte + + + + Appends a byte array or part of to the buffer. + + a byte array + an offset with + + + + + Append a byte array to the buffer + a byte array + + + + Append another buffer to this buffer. + another ByteBuffer + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + Reads a single character. + + @exception IOException If an I/O error occurs + + + Reads characters into a portion of an array. + + @exception IOException If an I/O error occurs + + + ** + + + + @since 22.08.2006 + + + + + the result of the escaping sequence + + + + count the digits of the sequence + + + + the state of the automaton + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + @since 16.02.2006 + + + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + + + @since 22.08.2006 + + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + + Skips the next char. + + + + Returns the current position. + + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + + @since 12.10.2006 + + + + + Private constructor + + + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + + @since 11.08.2006 + + + + + private constructor + + + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + + Asserts that a specific language is set. + a specific lang + Specific language is null or empty + + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + + Asserts that any string parameter is set. + any string parameter + Thrown if the parameter is null or has length 0. + + + + Asserts that the xmp object is of this implemention + (). + the XMP object + A wrong implentaion is used. + + + + Parser for "normal" XML serialisation of RDF. + + @since 14.07.2006 + + + + + Start of coreSyntaxTerms. + + + + End of coreSyntaxTerms + + + + Start of additions for syntax Terms. + + + + End of of additions for syntaxTerms. + + + + Start of oldTerms. + + + + End of oldTerms. + + + + ! Yes, the syntax terms include the core terms. + + + + this prefix is used for default namespaces + + + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + thown on parsing errors + + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* )* + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.14 propertyElt + + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + Add a leaf node with the text value and qualifiers for the attributes. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thown on parsing errors + + + + + Adds a child node. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thown on parsing errors + + + + Adds a qualifier node. + + the parent xmp node + the name of the qualifier which has to be + QName including the default prefix + the value of the qualifier + Returns the newly created child node. + thown on parsing errors + + + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thown on parsing errors + + + + Checks if the node is a white space. + an XML-node + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + If an I/O error occurs + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + If an I/O error occurs + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + If the pushback buffer is full, + or if some other I/O error occurs + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + If an I/O error occurs + + + + @since 09.11.2006 + + + + + XML localname + + + + XML namespace prefix + + + + Splits a qname into prefix and localname. + a QName + + + + Constructor that initializes the fields + the prefix + the name + + + the localName + + + the prefix + + + Returns whether the QName has a prefix. + + + + Utility functions for the XMPToolkit implementation. + + @since 06.06.2006 + + + + + segments of a UUID + + + + length of a UUID + + + + + + init char tables + + + + Private constructor + + + + + + + + a schema namespace + + an XMP Property + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + Check some requirements for an UUID: +
    +
  • Length of the UUID is 32
  • +
  • The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23)
  • +
+ +
+ uuid to test + true - this is a well formed UUID, false - UUID has not the expected format +
+ + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + + + Replaces the ASCII control chars with a space. + + + a node value + Returns the cleaned up value + + + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + @since 16.02.2006 + + + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Use NO time zone as default + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZone. + + a date describing an absolute point in time + a TimeZone how to interpret the date + + + + Creates an XMPDateTime-instance from an ISO 8601 string. + + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + @since 29.06.2006 + + + + + the node iterator doing the work + + + + stores the iterator options + + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + + flag to indicate that skipSiblings() has been called. + + + + Constructor with optionsl initial values. If propName is provided, + schemaNs has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNs + advanced iteration options, see + If the node defined by the paramters is not existing. + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + + + + + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + @since 29.06.2006 + + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + + Implementation for . + + @since 17.02.2006 + + + + + Property values are Strings by default + + + + root of the metadata tree + + + + the xpacket processing instructions content + + + + Constructor for an empty metadata object. + + + + + Constructor for a cloned metadata tree. + + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + Returns the root node of the XMP tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for SetProperty() and related calls, used after the node is + found or created. + + + the newly created node + + the node value, can be null + + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + + an int indicating the value type + + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + @since 01.02.2006 + + + + + Hidden constructor, initialises the SAX parser handler. + + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + the parse options + Returns the resulting XMP metadata object + Thrown if parsing or normalisation fails. + + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + Possible improvements: + + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + @since 21.02.2006 + + + + + flag if the node is an alias + + + + list of child nodes, lazy initialized + + + + flag if the node has aliases + + + + flag if the node has an "rdf:value" child node. + + + + flag if the node is implicitly created + + + + name of the node, contains different information depending of the node kind + + + + options describing the kind of the node + + + + link to the parent node + + + + list of qualifier of the node, lazy initialized + + + + value of the node, contains different information depending of the node kind + + + + Creates an XMPNode with initial values. + + the name of the node + the value of the node + the options of the node + + + + Constructor for the node without value. + + the name of the node + the options of the node + + + Returns the parent node. + + + Returns the number of children without neccessarily creating a list. + + + Returns the number of qualifier without neccessarily creating a list. + + + Returns the name. + + + Returns the value. + + + Returns the options. + + + Returns the implicit flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + Returns if the node contains aliases (applies only to schema nodes) + + + the hasValueChild + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + + + Resets the node. + + + + an index [1..size] + Returns the child with the requested index. + + + + Adds a node as child to this node. + an XMPNode + + + + + Adds a node as child to this node. + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + an XMPNode + + + + + Replaces a node with another one. + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + the replacement XMPNode + + + + Removes a child at the requested index. + the index to remove [1..size] + + + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + + Removes all children from the node. + + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + + Removes all qualifiers from the node and sets the options appropriate. + + + + qualifier node name to look for + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + Returns whether the node has children. + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + Returns whether the node has qualifier attached. + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + + Renders this node and the tree unter this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + + Utilities for XMPNode. + + @since Aug 28, 2006 + + + + + Private Constructor + + + + + Find or create a schema node if createNodes is false and + + the root of the xmp tree. + a namespace + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + + the parent node + + the node name to find + + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + + Follow an expanded path expression to find or create a node. + + the node to begin the search. + the complete xpath + flag if nodes shall be created + (when called by setProperty()) + the options for the created leaf nodes (only when + createNodes == true). + Returns the node if found or created or null. + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + the top-most node to delete. + + + + This is setting the value of a leaf node. + + an XMPNode + a value + + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + + the node value to set + Returns the String representation of the node value. + + + + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XmpPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + Returns the index of th + + + + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + + an alt text array node + + + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + + the array node to check if its an alt-text array + + + + Appends a language item to an alt text array. + + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + Looks for the appropriate language item in a text alternative array.item + + + an array node + + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + + @since Aug 18, 2006 + + + + + caches the correct dc-property array forms + + + + init char tables + + + + Hidden constructor + + + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + + Visit all schemas to do general fixes and handle special cases. + + the metadata object implementation + Thrown if the normalisation fails. + + + + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + the property node of the array to repair. + Forwards unexpected exceptions. + + + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + Forwards XMP errors + + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + +
+            1. If there is no dc:rights array, or an empty array -
+               Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
+            
+            2. If there is a dc:rights array but it has no x-default item -
+               Create an x-default item as a copy of the first item then apply rule #3.
+            
+            3. If there is a dc:rights array with an x-default item, 
+               Look for a double linefeed in the value.
+                A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
+                    A1. If they match then leave the x-default value alone.
+                    A2. Otherwise, append a double linefeed and 
+                        the xmpDM:copyright value to the x-default value.
+                B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
+                    B1. If they match then leave the x-default value alone.
+                    B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
+            
+            4. In all cases, delete the xmpDM:copyright property.
+            
+
+ the metadata object + the "dm:copyright"-property +
+ + + Initializes the map that contains the known arrays, that are fixed by + . + + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + @since 27.01.2006 + + + + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + + a map from a namespace URI to its registered prefix + + + + a map from a prefix to the associated namespace URI + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + If the registrations of at least one alias fails. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + @since 11.07.2006 + + + + + Static method to Serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to Serialize to + serialization options, can be null for default. + + + + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see + ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + @since 11.07.2006 + + + + + default padding + + + + The w/r is missing inbetween + + + + a set of all rdf attribute qualifier + + + + the stored serialization options + + + + the output stream to Serialize to + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + this writer is used to do the actual serialization + + + + the metadata object to be serialized. + + + + The actual serialization. + + the metadata object to be serialized + outputStream the output stream to Serialize to + the serialization options + + If case of wrong options or any other serialization error. + + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + +
+ +
+             	<ns:UnqualifiedStructProperty-1
+             		... The fields as attributes, if all are simple and unqualified
+             	/>
+             
+             	<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
+             		... The fields as elements, if none are simple and unqualified
+             	</ns:UnqualifiedStructProperty-2>
+             
+             	<ns:UnqualifiedStructProperty-3>
+             		<rdf:Description
+             			... The simple and unqualified fields as attributes
+             		>
+             			... The compound or qualified fields as elements
+             		</rdf:Description>
+             	</ns:UnqualifiedStructProperty-3>
+             
+             	<ns:UnqualifiedArrayProperty>
+             		<rdf:Bag> or Seq or Alt
+             			... Array items as rdf:li elements, same forms as top level properties
+             		</rdf:Bag>
+             	</ns:UnqualifiedArrayProperty>
+             
+             	<ns:QualifiedProperty rdf:parseType="Resource">
+             		<rdf:value> ... Property "value" 
+             			following the unqualified forms ... </rdf:value>
+             		... Qualifiers looking like named struct fields
+             	</ns:QualifiedProperty>
+            
+ +
+ + *** Consider numbered array items, but has compatibility problems. *** + Consider qualified form with rdf:Description and attributes. +
+ the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. +
+ + + Serializes a simple property. + + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + + Serializes an array property. + + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes a struct property. + + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + +
+ +
+            	<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
+            
+            	<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
+            		<rdf:Description>
+            			... Fields, same forms as top level properties
+            		</rdf:Description>
+            	</ns:UnqualifiedStructProperty>
+            
+            	<ns:ResourceStructProperty rdf:resource="URI"
+            		... Fields as attributes
+            	>
+            
+            	<ns:UnqualifiedArrayProperty>
+            		<rdf:Bag> or Seq or Alt
+            			... Array items as rdf:li elements, same forms as top level properties
+            		</rdf:Bag>
+            	</ns:UnqualifiedArrayProperty>
+            
+            	<ns:QualifiedProperty>
+            		<rdf:Description>
+            			<rdf:value> ... Property "value" following the unqualified 
+            				forms ... </rdf:value>
+            			... Qualifiers looking like named struct fields
+            		</rdf:Description>
+            	</ns:QualifiedProperty>
+            
+ +
+
+ the property node + property shall be rendered as attribute rather than tag + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. +
+ + + Writes the array start and end tags. + + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + + Writes indents and automatically includes the baseindend from the options. + number of indents to write + forwards exception + + + + Writes a char to the output. + a char + forwards writer exceptions + + + + Writes a String to the output. + a String + forwards writer exceptions + + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + + Writes a newline according to the options. + Forwards exception + + + + @since 11.08.2006 + + + + + + + + + + Private constructor, as + + + + + + see {@link XMPUtils#separateArrayItems(XMPMeta, String, String, String, + PropertyOptions, boolean)} + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + + Option flags to control the separation. + + Flag if commas shall be preserved + + + Forwards the Exceptions from the metadata processing + + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + + a schema node + + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + + opened and closing quote in a string + + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + + a char + Return the character kind. + + + + the open quote char + Returns the matching closing quote for an open quote. + + + + Add quotes to the item. + + + the array item + + the open quote character + + the closing quote character + + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + Representates an XMP XmpPath with segment accessor methods. + + @since 28.02.2006 + + + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + + Marks an array index step + + + + stores the segments of an XmpPath + + + + Append a path segment + + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + + Parser for XMP XPaths. + + @since 01.03.2006 + + + Private constructor + + + + @param path + @param pos + @throws XmpException + + + Parses a struct segment + @param pos the current position in the path + @return Retusn the segment or an errror + @throws XmpException If the sement is empty + + + Parses an array index segment. + + @param pos the xmp path + @return Returns the segment or an error + @throws XmpException thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + @param schemaNs the root namespace + @param pos the parsing position helper + @param expandedXPath the path to contribute to + @throws XmpException If the path is not valid. + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + @param qualName + a qualifier name + @throws XmpException + If the name is not conformant + + + Verify if an XML name is conformant. + + @param name + an XML name + @throws XmpException + When the name is not XML conformant + + + + This objects contains all needed char positions to parse. + + + the complete path + the end of a segment name + + + the begin of a step + + + the end of a step + + + + A segment of a parsed XmpPath. + + @since 23.06.2006 + + + + + flag if segment is an alias + + + + alias form if applicable + + + + kind of the path segment + + + + name of the path segment + + + + Constructor with initial values. + + the name of the segment + + + + Constructor with initial values. + + the name of the segment + the kind of the segment + + + Returns the kind. + + + Returns the name. + + + the flag to set + + + Returns the aliasForm if this segment has been created by an alias. + + + + + Returns the year, can be negative. + + + Returns The month in the range 1..12. + + + Returns the day of the month in the range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + Returns the time zone. + + + + Returns the ISO 8601 string representation of the date and time. + + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and Serialize the metadata + to a String, byte-array or OutputStream. + + @since 20.01.2006 + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last existing array + item. + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + Wraps all errors and exceptions that may occur. + + + + Returns the number of items in the array. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + + + + + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use to find + out the length of the array. + the new value of the array item. Has the same usage as propValue in + SetProperty(). + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XmpConst.ARRAY_LAST_ITEM to append items. + the new value of the array item. Has the same usage as + propValue in SetProperty(). + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + + + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + the value of thefield, if the field has a value. + Has the same usage as propValue in GetProperty. + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in GetProperty. + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. Has the same usage as in GetProperty. + + + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns true if the property exists. + + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + GetProperty(). + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + Returns true if the array exists, false otherwise. + + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + Returns true if the field exists. + + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty(). + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + Returns true if the qualifier exists. + + + + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + GetProperty(). + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + + These are very similar to GetProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Boolean value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns an Integer value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Long value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Double value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a XMPDateTime-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Java Calendar-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + Note: There is no SetPropertyString(), + because SetProperty() sets a string value. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a String value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as Java Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + Option flags to control the iteration. See for + details. + Returns an XMPIterator for this XMPMeta-object + considering the given options. + Wraps all errors and exceptions that may occur. + + + + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + + Determines if a name is an alias, and what it is aliased to. + + + The namespace URI of the alias. Must not be null or the empty + string. + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + + Searches for registered aliases. + + + an XML conform qname + Returns if an alias definition for the given qname to another + schema and property is registered. + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + Options for XMPSchemaRegistryImpl#registerAlias. + + @since 20.02.2006 + + + + + This is a direct mapping. The actual data type does not matter. + + + + The actual is an unordered array, the alias is to the first element of the array. + + + + The actual is an ordered array, the alias is to the first element of the array. + + + + The actual is an alternate array, the alias is to the first element of the array. + + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + + returns a s object + If the options are not consistant. + + + + + Options for XMPIterator construction. + + @since 24.01.2006 + + + + + Just do the immediate children of the root, default is subtree. + + + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + + Return just the leaf part of the path, default is the full path. + + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + + + + Options for . + + @since 24.01.2006 + + + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + + Do not reconcile alias differences, throw an exception instead. + + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + + Sets the options to the default values. + + + + Returns the requireXMPMeta. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the option "omit normalization". + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + @since 03.07.2006 + + + + + may be used in the future + + + + Updated by iText. Indicates if the property should be writted as a separate node + + + + + Default constructor + + + + + Intialization constructor + + the initialization options + If the options are not valid + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + the value to set + Returns this to enable cascaded options. + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns true if only array options are set. + + + + + Compares two options set for array compatibility. + + other options + Returns true if the array options of the sets are equal. + + + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + other options + If illegal options are provided + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + @since 24.01.2006 + + + + + Omit the XML packet wrapper. + + + + Mark packet as read-only. Default is a writeable packet. + + + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To Serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + + Use the canonical form of RDF if set. By default the compact form is used + + + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + + + Sort the struct properties and qualifier before serializing + + + + Bit indicating little endian encoding, unset is big endian + + + + Bit indication UTF16 encoding. + + + + UTF8 encoding; this is the default + + + + UTF16BE encoding + + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + + Default constructor. + + + + + Constructor using inital options + the inital options + Thrown if options are not consistant. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the baseIndent. + + + Returns the indent. + + + Returns the newline. + + + Returns the padding. + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + Returns the encoding as Java encoding String. + + + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + @since 24.01.2006 + + + + + a map containing the bit names + + + + the internal int containing all options + + + + The default constructor. + + + + + Constructor with the options bit mask. + + the options bit mask + If the options are not correct + + + + Is friendly to access it during the tests. + Returns the options. + + + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + Returns a String listing all options that are set to true by their name, + like "option1 | option4". + + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + + Resets the options. + + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + + + Returns the options as hex bitmask. + + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional -method is called. + + the options to check + Thrown if the options are invalid. + + + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + This interface is used to return info about an alias. + + @since 27.01.2006 + + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + + @since 23.01.2006 + + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + Returns the language of the alt-text item. + + + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + @since 06.07.2006 + + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + Common constants for the XMP Toolkit. + + @since 20.01.2006 + + + + + The XML namespace for XML. + + + + The XML namespace for RDF. + + + + The XML namespace for the Dublin Core schema. + + + + The XML namespace for the IPTC Core schema. + + + + The XML namespace for the IPTC Extension schema. + + + + The XML namespace for the DICOM medical schema. + + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + + The XML namespace Adobe XMP Metadata. + + + + The XML namespace for the XMP "basic" schema. + + + + The XML namespace for the XMP copyright schema. + + + + The XML namespace for the XMP digital asset management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the Photoshop custom schema. + + + + The XML namespace for the Photoshop Album schema. + + + + The XML namespace for Adobe's EXIF schema. + + + + NS for the CIPA XMP for Exif document v1.1 + + + + The XML namespace for Adobe's TIFF schema. + + + + BExt Schema + + + + RIFF Info Schema + + + + Transform XMP + + + + Adobe Flash SWF + + + + legacy Dublin Core NS, will be converted to NS_DC + + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + + The XML namespace for fields of the Dimensions type. + + + + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + + The XML namespace for fields of the ResourceEvent type. + + + + The XML namespace for fields of the ResourceRef type. + + + + The XML namespace for fields of the Version type. + + + + The XML namespace for fields of the JobRef type. + + + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + + Index that has the meaning to be always the last item in an array. + + + + Node name of an array item. + + + + The x-default string for localized properties + + + + xml:lang qualfifier + + + + rdf:type qualfifier + + + + Processing Instruction (PI) for xmp packet + + + + XMP meta tag version new + + + + XMP meta tag version old + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + @since 16.02.2006 + + + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + + + + Creates an XMPDateTime from an ISO 8601 string. + + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + When the ISO 8601 string is non-conform + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + Returns an updated XMPDateTime-object. + + + + @since 21.09.2006 + + + + + Note: This is an error code introduced by Java. + + + + This exception wraps all errors that occur in the XMP Toolkit. + + @since 16.02.2006 + + + + + the errorCode of the XMP toolkit + + + + Constructs an exception with a message and an error code. + the message + the error code + + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Creates XMPMeta-instances from an InputStream + + @since 30.01.2006 + + + + + The singleton instance of the XMPSchemaRegistry. + + + + + cache for version info + + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + + + + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into an OutputStream. + + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + + Resets the _schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNs and + "i" is the decimal representation of itemIndex. + Throws exeption if index zero is used. + + + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + The name of the field. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNs and "fNS" is the prefix for fieldNs. + Thrown if the path to create is not valid. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNs and "qNS" is the prefix for qualNs. + Thrown if the path to create is not valid. + + + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNs. + + + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + @since 21.02.2006 + + + + + Private constructor + + + + Create a single edit string from an array of strings. + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + Separate a single edit string into an array of strings. + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Forwards the Exceptions from the metadata processing + + + + + + Convert from boolean to string. + + + a boolean value + The XMP string representation of the boolean. The values used are + given by the constnts and + . + + + + Converts a string value to an int. + + + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + + + an int value + The string representation of the int. + + + + Converts a string value to a long. + + + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to a double. + + + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to an XMPDateTime. + + + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + + + an XMPDateTime + The string representation of the long. + + + + Convert from a byte array to a base64 encoded string. + + + the byte array to be converted + Returns the base64 string. + + + + Decode from Base64 encoded string to raw data. + + + a base64 encoded string + Returns a byte array containg the decoded string. + Thrown if the given string is not property base64 encoded + + + + Implementation of the IndicLigaturizer for Devanagari. + + Warning: this is an incomplete and experimental implementation of Devanagari. This implementation should not be used in production. + + + Constructor for the IndicLigaturizer for Devanagari. + + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + @author Paulo Soares + + + + Add + args: ByVal key As IComparable, ByVal data As Object + key is object that implements IComparable interface + performance tip: change to use use int type (such as the hashcode) + + + + + RestoreAfterInsert + Additions to red-black trees usually destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + RotateLeft + Rebalance the tree by rotating the nodes to the left + + + + + RotateRight + Rebalance the tree by rotating the nodes to the right + + + + + + + + + + + + + + + + + RestoreAfterDelete + Deletions from red-black trees may destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + + + + Key + + + + + Data + + + + + Determine order, walk the tree and push the nodes onto the stack + + + + + HasMoreElements + + + + + NextElement + + + + + MoveNext + For .NET compatibility + + + + + Key + + + + + Data + + + + + Color + + + + + Left + + + + + Right + + + + + Provides the base class for a generic read-only dictionary. + + + The type of keys in the dictionary. + + + The type of values in the dictionary. + + + + An instance of the ReadOnlyDictionary generic class is + always read-only. A dictionary that is read-only is simply a + dictionary with a wrapper that prevents modifying the + dictionary; therefore, if changes are made to the underlying + dictionary, the read-only dictionary reflects those changes. + See for a modifiable version of + this class. + + + Notes to Implementers This base class is provided to + make it easier for implementers to create a generic read-only + custom dictionary. Implementers are encouraged to extend this + base class instead of creating their own. + + + + + + Initializes a new instance of the + class that wraps + the supplied . + + The + that will be wrapped. + + Thrown when the dictionary is null. + + + + + Gets the number of key/value pairs contained in the + . + + The number of key/value pairs. + The number of key/value pairs contained in the + . + + + Gets a collection containing the keys in the + . + A + containing the keys. + A + + containing the keys in the + . + + + + + Gets a collection containing the values of the + . + + The collection of values. + + + Gets a value indicating whether the dictionary is read-only. + This value will always be true. + + + + Gets a value indicating whether access to the dictionary + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to dictionary. + + + + + Gets or sets the value associated with the specified key. + + + The value associated with the specified key. If the specified key + is not found, a get operation throws a + , + and a set operation creates a new element with the specified key. + + The key of the value to get or set. + + Thrown when the key is null. + + + The property is retrieved and key does not exist in the collection. + + + + This method is not supported by the + . + + The object to use as the key of the element to add. + + The object to use as the value of the element to add. + + + Determines whether the + contains the specified key. + + True if the contains + an element with the specified key; otherwise, false. + + The key to locate in the + . + + Thrown when the key is null. + + + + + This method is not supported by the . + + The key of the element to remove. + + True if the element is successfully removed; otherwise, false. + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value + associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. + This parameter is passed uninitialized. + + true if the contains + an element with the specified key; otherwise, false. + + + + This method is not supported by the + . + + The object to add to the . + + + + This method is not supported by the + . + + + + Determines whether the contains a + specific value. + + + The object to locate in the . + + + true if item is found in the ICollection; + otherwise, false. + + + + + Copies the elements of the ICollection to an Array, starting at a + particular Array index. + + The one-dimensional Array that is the + destination of the elements copied from ICollection. + The Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + This method is not supported by the + . + + The object to remove from the ICollection. + + Will never return a value. + + + + Returns an enumerator that iterates through the collection. + + + A IEnumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + For a description of this member, see . + + + The one-dimensional Array that is the destination of the elements copied from + ICollection. The Array must have zero-based indexing. + + + The zero-based index in Array at which copying begins. + + + + + Summary description for ListIterator. + + + + + Summary description for Properties. + + + + + Summary description for Util. + + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
+
diff --git a/采集器3.0框架封装包2023-11-01/终端/x64/concrt140.dll b/采集器3.0框架封装包2023-11-01/终端/x64/concrt140.dll new file mode 100644 index 0000000..667ecc9 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x64/concrt140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x64/cvextern.dll b/采集器3.0框架封装包2023-11-01/终端/x64/cvextern.dll new file mode 100644 index 0000000..c33278a Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x64/cvextern.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x64/msvcp140.dll b/采集器3.0框架封装包2023-11-01/终端/x64/msvcp140.dll new file mode 100644 index 0000000..60f1219 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x64/msvcp140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x64/opencv_videoio_ffmpeg411_64.dll b/采集器3.0框架封装包2023-11-01/终端/x64/opencv_videoio_ffmpeg411_64.dll new file mode 100644 index 0000000..35ebf9c Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x64/opencv_videoio_ffmpeg411_64.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x64/sqlite3.dll b/采集器3.0框架封装包2023-11-01/终端/x64/sqlite3.dll new file mode 100644 index 0000000..2797682 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x64/sqlite3.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x64/vcruntime140.dll b/采集器3.0框架封装包2023-11-01/终端/x64/vcruntime140.dll new file mode 100644 index 0000000..46cb058 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x64/vcruntime140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x86/concrt140.dll b/采集器3.0框架封装包2023-11-01/终端/x86/concrt140.dll new file mode 100644 index 0000000..0975433 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x86/concrt140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x86/cvextern.dll b/采集器3.0框架封装包2023-11-01/终端/x86/cvextern.dll new file mode 100644 index 0000000..d7d801e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x86/cvextern.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x86/msvcp140.dll b/采集器3.0框架封装包2023-11-01/终端/x86/msvcp140.dll new file mode 100644 index 0000000..1ff435c Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x86/msvcp140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x86/opencv_videoio_ffmpeg411.dll b/采集器3.0框架封装包2023-11-01/终端/x86/opencv_videoio_ffmpeg411.dll new file mode 100644 index 0000000..1de72f2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x86/opencv_videoio_ffmpeg411.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x86/sqlite3.dll b/采集器3.0框架封装包2023-11-01/终端/x86/sqlite3.dll new file mode 100644 index 0000000..fcac1b2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x86/sqlite3.dll differ diff --git a/采集器3.0框架封装包2023-11-01/终端/x86/vcruntime140.dll b/采集器3.0框架封装包2023-11-01/终端/x86/vcruntime140.dll new file mode 100644 index 0000000..528dcf2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/终端/x86/vcruntime140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/BouncyCastle.Crypto.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/BouncyCastle.Crypto.dll new file mode 100644 index 0000000..9059e64 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/BouncyCastle.Crypto.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.dll new file mode 100644 index 0000000..0685a8b Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.dll.config b/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.dll.config new file mode 100644 index 0000000..d5d0df3 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.dll.config @@ -0,0 +1,14 @@ + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.pdb new file mode 100644 index 0000000..066794b Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/CollectorFramework.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.dll new file mode 100644 index 0000000..05fbf2e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.dll.config b/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.dll.config new file mode 100644 index 0000000..497a120 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.dll.config @@ -0,0 +1,19 @@ + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.pdb new file mode 100644 index 0000000..9d2ca5e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/CommonUtils.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/ElectronicMedicalRecordSpy.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/ElectronicMedicalRecordSpy.pdb new file mode 100644 index 0000000..3b53728 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/ElectronicMedicalRecordSpy.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Emgu.CV.World.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/Emgu.CV.World.dll new file mode 100644 index 0000000..9c75eb3 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/Emgu.CV.World.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Emgu.CV.World.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/Emgu.CV.World.xml new file mode 100644 index 0000000..3f6f817 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/Emgu.CV.World.xml @@ -0,0 +1,36189 @@ + + + + Emgu.CV.World + + + + + Wrapped CvArr + + The type of elements in this CvArray + + + + The size of the elements in the CvArray, it is the cached value of Marshal.SizeOf(typeof(TDepth)). + + + + + The pinned GCHandle to _array; + + + + + Get or set the Compression Ratio for serialization. A number between 0 - 9. + 0 means no compression at all, while 9 means best compression + + + + + Get the size of element in bytes + + + + The pointer to the internal structure + + + + Get the size of the array + + + + + Get the width (Cols) of the cvArray. + If ROI is set, the width of the ROI + + + + + Get the height (Rows) of the cvArray. + If ROI is set, the height of the ROI + + + + + Get the number of channels of the array + + + + + The number of rows for this array + + + + + The number of cols for this array + + + + + Get or Set an Array of bytes that represent the data in this array + + Should only be used for serialization & deserialization + + + + Get the underneath managed array + + + + + Allocate data for the array + + The number of rows + The number of columns + The number of channels of this cvArray + + + + Sum of diagonal elements of the matrix + + + + + The norm of this Array + + + + + Calculates and returns the Euclidean dot product of two arrays. + src1 dot src2 = sumI(src1(I)*src2(I)) + + In case of multiple channel arrays the results for all channels are accumulated. In particular, cvDotProduct(a,a), where a is a complex vector, will return ||a||^2. The function can process multi-dimensional arrays, row by row, layer by layer and so on. + The other Array to apply dot product with + src1 dot src2 + + + + Check that every array element is neither NaN nor +- inf. The functions also check that each value + is between and . in the case of multi-channel arrays each channel is processed + independently. If some values are out of range, position of the first outlier is stored in pos, + and then the functions return false. + + The inclusive lower boundary of valid values range + The exclusive upper boundary of valid values range + This will be filled with the position of the first outlier + True if all values are in range + + + + Reduces matrix to a vector by treating the matrix rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained. + + + The function can be used to compute horizontal and vertical projections of an raster image. + In case of CV_REDUCE_SUM and CV_REDUCE_AVG the output may have a larger element bit-depth to preserve accuracy. + And multi-channel arrays are also supported in these two reduction modes + + The destination single-row/single-column vector that accumulates somehow all the matrix rows/columns + The dimension index along which the matrix is reduce. + The reduction operation type + The type of depth of the reduced array + + + + Copy the current array to + + The destination Array + + + + Set the element of the Array to , using the specific + + The value to be set + The mask for the operation + + + + Set the element of the Array to , using the specific + + The value to be set + The mask for the operation + + + + Inplace fills Array with uniformly distributed random numbers + + the inclusive lower boundary of random numbers range + the exclusive upper boundary of random numbers range + + + + Inplace fills Array with normally distributed random numbers + + The mean value of random numbers + The standard deviation of random numbers + + + + Initializes scaled identity matrix + + The value on the diagonal + + + + Set the values to zero + + + + + Initialize the identity matrix + + + + + Inplace multiply elements of the Array by + + The scale to be multiplyed + + + + Inplace elementwise multiply the current Array with + + The other array to be elementwise multiplied with + + + + Free the _dataHandle if it is set + + + + + Inplace compute the elementwise minimum value + + The value to compare with + + + + Inplace elementwise minimize the current Array with + + The other array to be elementwise minimized with this array + + + + Inplace compute the elementwise maximum value with + + The value to be compare with + + + + Inplace elementwise maximize the current Array with + + The other array to be elementwise maximized with this array + + + + Inplace And operation with + + The other array to perform AND operation + + + + Inplace Or operation with + + The other array to perform OR operation + + + + Inplace compute the complement for all array elements + + + + + Save the CvArray as image + + The name of the image to save + + + + Get the xml schema + + The xml schema + + + + Function to call when deserializing this object from XML + + The xml reader + + + + Function to call when serializing this object to XML + + The xml writer + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + The Mat header that represent this CvArr + + + + + Get the Mat header that represent this CvArr + + + + + The unmanaged pointer to the input array. + + The input array + + + + The unmanaged pointer to the output array. + + The output array + + + + The unmanaged pointer to the input output array. + + The input output array + + + + Get the umat representation of this mat + + The UMat + + + + Wrapper for cv::String. This class support UTF-8 chars. + + + + + Create a CvString from System.String + + The System.String object to be converted to CvString + + + + Create an empty CvString + + + + + Get the string representation of the CvString + + The string representation of the CvString + + + + Gets the length of the string + + + The length of the string + + + + + Release all the unmanaged resource associated with this object. + + + + + Class that provide access to native OpenCV functions + + + + + Release the InputArray + + Pointer to the input array + + + + Release the input / output array + + Pointer to the input output array + + + + Release the input / output array + + Pointer to the input / output array + + + + Returns list of all builtin backends + + + + + Returns list of available backends which works via cv::VideoCapture(int index) + + + + + Returns list of available backends which works via cv::VideoCapture(filename) + + + + + Returns list of available backends which works via cv::VideoWriter() + + + + + Creates video writer structure. + + Name of the output video file. + 4-character code of codec used to compress the frames. For example, CV_FOURCC('P','I','M','1') is MPEG-1 codec, CV_FOURCC('M','J','P','G') is motion-jpeg codec etc. + Framerate of the created video stream. + Size of video frames. + If != 0, the encoder will expect and encode color frames, otherwise it will work with grayscale frames + The video writer + + + + Finishes writing to video file and releases the structure. + + pointer to video file writer structure + + + + Writes/appends one frame to video file. + + video writer structure. + the written frame + True on success, false otherwise + + + + Check to make sure all the unmanaged libraries are loaded + + True if library loaded + + + + string marshaling type + + + + + Represent a bool value in C++ + + + + + Represent a int value in C++ + + + + + Opencv's calling convention + + + + + Attempts to load opencv modules from the specific location + + The directory where the unmanaged modules will be loaded. If it is null, the default location will be used. + The names of opencv modules. e.g. "opencv_cxcore.dll" on windows. + True if all the modules has been loaded successfully + If is null, the default location on windows is the dll's path appended by either "x64" or "x86", depends on the applications current mode. + + + + Get the module format string. + + On Windows, "{0}".dll will be returned; On Linux, "lib{0}.so" will be returned; Otherwise {0} is returned. + + + + Attempts to load opencv modules from the specific location + + The names of opencv modules. e.g. "opencv_cxcore.dll" on windows. + True if all the modules has been loaded successfully + + + + Static Constructor to setup opencv environment + + + + + Get the corresponding depth type + + The opencv depth type + The equivalent depth type + + + + Get the corresponding opencv depth type + + The element type + The equivalent opencv depth type + + + + This function performs the same as MakeType macro + + The type of depth + The number of channels + An interger tha represent a mat type + + + + Check if the size of the C structures match those of C# + + True if the size matches + + + + Finds perspective transformation H=||h_ij|| between the source and the destination planes + + Point coordinates in the original plane + Point coordinates in the destination plane + FindHomography method + + The maximum allowed reprojection error to treat a point pair as an inlier. + The parameter is only used in RANSAC-based homography estimation. + E.g. if dst_points coordinates are measured in pixels with pixel-accurate precision, it makes sense to set this parameter somewhere in the range ~1..3 + + Optional output mask set by a robust method ( CV_RANSAC or CV_LMEDS ). Note that the input mask values are ignored. + The 3x3 homography matrix if found. Null if not found. + + + + Finds perspective transformation H=||hij|| between the source and the destination planes + + Point coordinates in the original plane, 2xN, Nx2, 3xN or Nx3 array (the latter two are for representation in homogeneous coordinates), where N is the number of points. + Point coordinates in the destination plane, 2xN, Nx2, 3xN or Nx3 array (the latter two are for representation in homogeneous coordinates) + The type of the method + The maximum allowed re-projection error to treat a point pair as an inlier. The parameter is only used in RANSAC-based homography estimation. E.g. if dst_points coordinates are measured in pixels with pixel-accurate precision, it makes sense to set this parameter somewhere in the range ~1..3 + The optional output mask set by a robust method (RANSAC or LMEDS). + Output 3x3 homography matrix. Homography matrix is determined up to a scale, thus it is normalized to make h33=1 + + + + Converts a rotation vector to rotation matrix or vice versa. Rotation vector is a compact representation of rotation matrix. Direction of the rotation vector is the rotation axis and the length of the vector is the rotation angle around the axis. + + The input rotation vector (3x1 or 1x3) or rotation matrix (3x3). + The output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively + Optional output Jacobian matrix, 3x9 or 9x3 - partial derivatives of the output array components w.r.t the input array components + + + + Calculates an essential matrix from the corresponding points in two images. + + Array of N (N >= 5) 2D points from the first image. The point coordinates should be floating-point (single or double precision). + Array of the second image points of the same size and format as points1 + Camera matrix K=[[fx 0 cx][0 fy cy][0 0 1]]. Note that this function assumes that points1 and points2 are feature points from cameras with the same camera matrix. + Method for computing a fundamental matrix. RANSAC for the RANSAC algorithm. LMEDS for the LMedS algorithm + Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of confidence (probability) that the estimated matrix is correct. + Parameter used for RANSAC. It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise. + Output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. The array is computed only in the RANSAC and LMedS methods. + The essential mat + + + + Calculates fundamental matrix using one of four methods listed above and returns the number of fundamental matrices found (1 or 3) and 0, if no matrix is found. + + Array of N points from the first image. The point coordinates should be floating-point (single or double precision). + Array of the second image points of the same size and format as points1 + Method for computing the fundamental matrix + Parameter used for RANSAC. It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise. + Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of confidence (probability) that the estimated matrix is correct. + The optional pointer to output array of N elements, every element of which is set to 0 for outliers and to 1 for the "inliers", i.e. points that comply well with the estimated epipolar geometry. The array is computed only in RANSAC and LMedS methods. For other methods it is set to all 1. + The calculated fundamental matrix + + + + For every point in one of the two images of stereo-pair the function cvComputeCorrespondEpilines finds equation of a line that contains the corresponding point (i.e. projection of the same 3D point) in the other image. Each line is encoded by a vector of 3 elements l=[a,b,c]^T, so that: + l^T*[x, y, 1]^T=0, or + a*x + b*y + c = 0 + From the fundamental matrix definition (see cvFindFundamentalMatrix discussion), line l2 for a point p1 in the first image (which_image=1) can be computed as: + l2=F*p1 and the line l1 for a point p2 in the second image (which_image=1) can be computed as: + l1=F^T*p2Line coefficients are defined up to a scale. They are normalized (a2+b2=1) are stored into correspondent_lines + + The input points. 2xN, Nx2, 3xN or Nx3 array (where N number of points). Multi-channel 1xN or Nx1 array is also acceptable. + Index of the image (1 or 2) that contains the points + Fundamental matrix + Computed epilines, 3xN or Nx3 array + + + + Converts points from Euclidean to homogeneous space. + + Input vector of N-dimensional points. + Output vector of N+1-dimensional points. + + + + Converts points from homogeneous to Euclidean space. + + Input vector of N-dimensional points. + Output vector of N-1-dimensional points. + + + + Transforms 1-channel disparity map to 3-channel image, a 3D surface. + + Disparity map + 3-channel, 16-bit integer or 32-bit floating-point image - the output map of 3D points + The reprojection 4x4 matrix, can be arbitrary, e.g. the one, computed by cvStereoRectify + Indicates, whether the function should handle missing values (i.e. points where the disparity was not computed). + If handleMissingValues=true, then pixels with the minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) + are transformed to 3D points with a very large Z value (currently set to 10000). + The optional output array depth. If it is -1, the output image will have CV_32F depth. ddepth can also be set to CV_16S, CV_32S or CV_32F. + + + + Returns the new camera matrix based on the free scaling parameter. + + Input camera matrix. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,?x,?y]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Original image size. + Free scaling parameter between 0 (when all the pixels in the undistorted image are valid) and 1 (when all the source image pixels are retained in the undistorted image). + Image size after rectification. By default,it is set to imageSize . + output rectangle that outlines all-good-pixels region in the undistorted image. + indicates whether in the new camera matrix the principal point should be at the image center or not. By default, the principal point is chosen to best fit a subset of the source image (determined by alpha) to the corrected image. + The new camera matrix based on the free scaling parameter. + + + + Finds an initial camera matrix from 3D-2D point correspondences. + + Vector of vectors of the calibration pattern points in the calibration pattern coordinate space. + Vector of vectors of the projections of the calibration pattern points. + Image size in pixels used to initialize the principal point. + If it is zero or negative, both fx and fy are estimated independently. Otherwise, fx=fy*aspectRatio. + An initial camera matrix for the camera calibration process. + Currently, the function only supports planar calibration patterns, which are patterns where each object point has z-coordinate =0. + + + + Computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. + Optionally, the function computes jacobians - matrices of partial derivatives of image points as functions of all the input parameters w.r.t. the particular parameters, intrinsic and/or extrinsic. + The jacobians are used during the global optimization in cvCalibrateCamera2 and cvFindExtrinsicCameraParams2. + The function itself is also used to compute back-projection error for with current intrinsic and extrinsic parameters. + + Note, that with intrinsic and/or extrinsic parameters set to special values, the function can be used to compute just extrinsic transformation or just intrinsic transformation (i.e. distortion of a sparse set of points) + The array of object points. + The rotation vector, 1x3 or 3x1 + The translation vector, 1x3 or 3x1 + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's + The output array of image points, 2xN or Nx2, where N is the total number of points in the view + Aspect ratio + Optional output 2Nx(10+<numDistCoeffs>) jacobian matrix of derivatives of image points with respect to components of the rotation vector, translation vector, focal lengths, coordinates of the principal point and the distortion coefficients. In the old interface different components of the jacobian are returned via different output parameters. + The array of image points which is the projection of + + + + Computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. Optionally, the function computes jacobians - matrices of partial derivatives of image points as functions of all the input parameters w.r.t. the particular parameters, intrinsic and/or extrinsic. The jacobians are used during the global optimization in cvCalibrateCamera2 and cvFindExtrinsicCameraParams2. The function itself is also used to compute back-projection error for with current intrinsic and extrinsic parameters. + Note, that with intrinsic and/or extrinsic parameters set to special values, the function can be used to compute just extrinsic transformation or just intrinsic transformation (i.e. distortion of a sparse set of points). + + The array of object points, 3xN or Nx3, where N is the number of points in the view + The rotation vector, 1x3 or 3x1 + The translation vector, 1x3 or 3x1 + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's + The output array of image points, 2xN or Nx2, where N is the total number of points in the view + Aspect ratio + Optional output 2Nx(10+<numDistCoeffs>) jacobian matrix of derivatives of image points with respect to components of the rotation vector, translation vector, focal lengths, coordinates of the principal point and the distortion coefficients. In the old interface different components of the jacobian are returned via different output parameters. + + + + Estimates intrinsic camera parameters and extrinsic parameters for each of the views + + The 3D location of the object points. The first index is the index of image, second index is the index of the point + The 2D image location of the points. The first index is the index of the image, second index is the index of the point + The size of the image, used only to initialize intrinsic camera matrix + The output 3xM or Mx3 array of rotation vectors (compact representation of rotation matrices, see cvRodrigues2). + The output 3xM or Mx3 array of translation vectors/// cCalibration type + The termination criteria + The output camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS and/or CV_CALIB_FIX_ASPECT_RATION are specified, some or all of fx, fy, cx, cy must be initialized + The output 4x1 or 1x4 vector of distortion coefficients [k1, k2, p1, p2] + The final reprojection error + + + + Estimates intrinsic camera parameters and extrinsic parameters for each of the views + + The joint matrix of object points, 3xN or Nx3, where N is the total number of points in all views + The joint matrix of corresponding image points, 2xN or Nx2, where N is the total number of points in all views + Size of the image, used only to initialize intrinsic camera matrix + The output camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS and/or CV_CALIB_FIX_ASPECT_RATION are specified, some or all of fx, fy, cx, cy must be initialized + The output 4x1 or 1x4 vector of distortion coefficients [k1, k2, p1, p2] + The output 3xM or Mx3 array of rotation vectors (compact representation of rotation matrices, see cvRodrigues2). + The output 3xM or Mx3 array of translation vectors + Different flags + The termination criteria + The final reprojection error + + + + Computes various useful camera (sensor/lens) characteristics using the computed camera calibration matrix, image frame resolution in pixels and the physical aperture size + + The matrix of intrinsic parameters + Image size in pixels + Aperture width in real-world units (optional input parameter). Set it to 0 if not used + Aperture width in real-world units (optional input parameter). Set it to 0 if not used + Field of view angle in x direction in degrees + Field of view angle in y direction in degrees + Focal length in real-world units + The principal point in real-world units + The pixel aspect ratio ~ fy/f + + + + Estimates extrinsic camera parameters using known intrinsic parameters and extrinsic parameters for each view. The coordinates of 3D object points and their correspondent 2D projections must be specified. This function also minimizes back-projection error. + + The array of object points + The array of corresponding image points + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's. + The output 3x1 or 1x3 rotation vector (compact representation of a rotation matrix, see cvRodrigues2). + The output 3x1 or 1x3 translation vector + Use the input rotation and translation parameters as a guess + Method for solving a PnP problem + True if successful + + + + Estimates extrinsic camera parameters using known intrinsic parameters and extrinsic parameters for each view. The coordinates of 3D object points and their correspondent 2D projections must be specified. This function also minimizes back-projection error + + The array of object points, 3xN or Nx3, where N is the number of points in the view + The array of corresponding image points, 2xN or Nx2, where N is the number of points in the view + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's. + The output 3x1 or 1x3 rotation vector (compact representation of a rotation matrix, see cvRodrigues2). + The output 3x1 or 1x3 translation vector + Use the input rotation and translation parameters as a guess + Method for solving a PnP problem + True if successful + + + + Finds an object pose from 3D-2D point correspondences using the RANSAC scheme. + + Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3D32f can be also passed here. + Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPointF can be also passed here. + Input camera matrix + Input vector of distortion coefficients of 4, 5, 8 or 12 elements. If the vector is null/empty, the zero distortion coefficients are assumed. + Output rotation vector + Output translation vector. + If true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them. + Number of iterations. + Inlier threshold value used by the RANSAC procedure. The parameter value is the maximum allowed distance between the observed and computed point projections to consider it an inlier. + The probability that the algorithm produces a useful result. + Output vector that contains indices of inliers in objectPoints and imagePoints . + Method for solving a PnP problem + True if successful + + + + Finds an object pose from 3 3D-2D point correspondences. + + Array of object points in the object coordinate space, 3x3 1-channel or 1x3/3x1 3-channel. VectorOfPoint3f can be also passed here. + Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel. VectorOfPoint2f can be also passed here. + Input camera matrix A=[[fx 0 0] [0 fy 0] [cx cy 1]] . + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Output rotation vectors (see Rodrigues ) that, together with tvecs , brings points from the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions. + Output translation vectors. + Method for solving a P3P problem: either P3P or AP3P + Number of solutions + + + + Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution + + Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3f can also be passed here. + Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPoint2f can also be passed here. + Input camera matrix A=[[fx,0,0],[0,fy,0][cx,cy,1]]. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Input/Output rotation vector (see Rodrigues ) that, together with tvec, brings points from the model coordinate system to the camera coordinate system. Input values are used as an initial solution. + Input/Output translation vector. Input values are used as an initial solution. + Criteria when to stop the Levenberg-Marquard iterative algorithm. + + + + Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution. + + Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3f can also be passed here. + Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPoint2f can also be passed here. + Input camera matrix A=[[fx,0,0],[0,fy,0][cx,cy,1]]. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Input/Output rotation vector (see Rodrigues ) that, together with tvec, brings points from the model coordinate system to the camera coordinate system. Input values are used as an initial solution. + Input/Output translation vector. Input values are used as an initial solution. + Criteria when to stop the Levenberg-Marquard iterative algorithm. + Gain for the virtual visual servoing control law, equivalent to the α gain in the Damped Gauss-Newton formulation. + + + + Finds an object pose from 3D-2D point correspondences. + + Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3f can also be passed here. + Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPoint2f can also be passed here. + Input camera matrix A=[[fx,0,0],[0,fy,0][cx,cy,1]]. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Vector of output rotation vectors (see Rodrigues ) that, together with tvecs, brings points from the model coordinate system to the camera coordinate system. + Vector of output translation vectors. + Parameter used for SOLVEPNP_ITERATIVE. If true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them. + Method for solving a PnP problem + Rotation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE and useExtrinsicGuess is set to true. + Translation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE and useExtrinsicGuess is set to true. + Optional vector of reprojection error, that is the RMS error between the input image points and the 3D object points projected with the estimated pose. + + + + + Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the first camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2) - we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that: + R2=R*R1, + T2=R*T1 + T + + The 3D location of the object points. The first index is the index of image, second index is the index of the point + The 2D image location of the points for camera 1. The first index is the index of the image, second index is the index of the point + The 2D image location of the points for camera 2. The first index is the index of the image, second index is the index of the point + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + Size of the image, used only to initialize intrinsic camera matrix + The rotation matrix between the 1st and the 2nd cameras' coordinate systems + The translation vector between the cameras' coordinate systems + The optional output essential matrix + The optional output fundamental matrix + Termination criteria for the iterative optimization algorithm + The calibration flags + The final value of the re-projection error. + + + + Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the fist camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2) - we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that: + R2=R*R1, + T2=R*T1 + T + + The joint matrix of object points, 3xN or Nx3, where N is the total number of points in all views + The joint matrix of corresponding image points in the views from the 1st camera, 2xN or Nx2, where N is the total number of points in all views + The joint matrix of corresponding image points in the views from the 2nd camera, 2xN or Nx2, where N is the total number of points in all views + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + Size of the image, used only to initialize intrinsic camera matrix + The rotation matrix between the 1st and the 2nd cameras' coordinate systems + The translation vector between the cameras' coordinate systems + The optional output essential matrix + The optional output fundamental matrix + Termination criteria for the iterative optimization algorithm + The calibration flags + The final value of the re-projection error. + + + + Computes the rectification transformations without knowing intrinsic parameters of the cameras and their relative position in space, hence the suffix "Uncalibrated". Another related difference from cvStereoRectify is that the function outputs not the rectification transformations in the object (3D) space, but the planar perspective transformations, encoded by the homography matrices H1 and H2. The function implements the following algorithm [Hartley99]. + + + Note that while the algorithm does not need to know the intrinsic parameters of the cameras, it heavily depends on the epipolar geometry. Therefore, if the camera lenses have significant distortion, it would better be corrected before computing the fundamental matrix and calling this function. For example, distortion coefficients can be estimated for each head of stereo camera separately by using cvCalibrateCamera2 and then the images can be corrected using cvUndistort2 + + The array of 2D points + The array of 2D points + Fundamental matrix. It can be computed using the same set of point pairs points1 and points2 using cvFindFundamentalMat + Size of the image + The rectification homography matrices for the first images + The rectification homography matrices for the second images + If the parameter is greater than zero, then all the point pairs that do not comply the epipolar geometry well enough (that is, the points for which fabs(points2[i]T*F*points1[i])>threshold) are rejected prior to computing the homographies + True if successful + + + + computes the rotation matrices for each camera that (virtually) make both camera image planes the same plane. Consequently, that makes all the epipolar lines parallel and thus simplifies the dense stereo correspondence problem. On input the function takes the matrices computed by cvStereoCalibrate and on output it gives 2 rotation matrices and also 2 projection matrices in the new coordinates. The function is normally called after cvStereoCalibrate that computes both camera matrices, the distortion coefficients, R and T + + The camera matrices [fx_k 0 cx_k; 0 fy_k cy_k; 0 0 1] + The camera matrices [fx_k 0 cx_k; 0 fy_k cy_k; 0 0 1] + The vectors of distortion coefficients for first camera, 4x1, 1x4, 5x1 or 1x5 + The vectors of distortion coefficients for second camera, 4x1, 1x4, 5x1 or 1x5 + Size of the image used for stereo calibration + The rotation matrix between the 1st and the 2nd cameras' coordinate systems + The translation vector between the cameras' coordinate systems + 3x3 Rectification transforms (rotation matrices) for the first camera + 3x3 Rectification transforms (rotation matrices) for the second camera + 3x4 Projection matrices in the new (rectified) coordinate systems + 3x4 Projection matrices in the new (rectified) coordinate systems + The optional output disparity-to-depth mapping matrix, 4x4, see cvReprojectImageTo3D. + The operation flags, use ZeroDisparity for default + Use -1 for default + Use Size.Empty for default + The valid pixel ROI for image1 + The valid pixel ROI for image2 + + + + Finds subpixel-accurate positions of the chessboard corners + + Source chessboard view; it must be 8-bit grayscale or color image + Pointer to the output array of corners(PointF) detected + region size + True if successful + + + + Attempts to determine whether the input image is a view of the chessboard pattern and locate internal chessboard corners + + Source chessboard view; it must be 8-bit grayscale or color image + The number of inner corners per chessboard row and column + Pointer to the output array of corners(PointF) detected + Various operation flags + True if all the corners have been found and they have been placed in a certain order (row by row, left to right in every row), otherwise, if the function fails to find all the corners or reorder them, it returns 0 + The coordinates detected are approximate, and to determine their position more accurately, the user may use the function cvFindCornerSubPix + + + + Filters off small noise blobs (speckles) in the disparity map. + + The input 16-bit signed disparity image + The disparity value used to paint-off the speckles + The maximum speckle size to consider it a speckle. Larger blobs are not affected by the algorithm + Maximum difference between neighbor disparity pixels to put them into the same blob. Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point disparity map, where disparity values are multiplied by 16, this scale factor should be taken into account when specifying this parameter value. + The optional temporary buffer to avoid memory allocation within the function. + + + + Finds the positions of internal corners of the chessboard using a sector based approach. + + Source chessboard view. It must be an 8-bit grayscale or color image. + Number of inner corners per a chessboard row and column ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ). + Output array of detected corners. + Various operation flags + True if chessboard corners found + + + + Draws the individual chessboard corners detected (as red circles) in case if the board was not found (pattern_was_found=0) or the colored corners connected with lines when the board was found (pattern_was_found != 0). + + The destination image; it must be 8-bit color image + The number of inner corners per chessboard row and column + The array of corners detected + Indicates whether the complete board was found (!=0) or not (=0). One may just pass the return value cvFindChessboardCorners here. + + + + Reconstructs points by triangulation. + + 3x4 projection matrix of the first camera. + 3x4 projection matrix of the second camera. + 2xN array of feature points in the first image. It can be also a vector of feature points or two-channel matrix of size 1xN or Nx1 + 2xN array of corresponding points in the second image. It can be also a vector of feature points or two-channel matrix of size 1xN or Nx1. + 4xN array of reconstructed points in homogeneous coordinates. + + + + Refines coordinates of corresponding points. + + 3x3 fundamental matrix. + 1xN array containing the first set of points. + 1xN array containing the second set of points. + The optimized points1. + The optimized points2. + + + + The default Exception callback to handle Error thrown by OpenCV + + + + + An error handler which will ignore any error and continue + + + + + A custom error handler for OpenCV + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the source where error is encountered + Arbitrary pointer that is transparently passed to the error handler. + if 0, signal the process to continue + + + + A custom error handler for OpenCV + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the source where error is encountered + Arbitrary pointer that is transparently passed to the error handler. + If 0, signal the process to continue + + + + Define an error callback that can be registered using cvRedirectError function + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the source where error is encountered + Arbitrary pointer that is transparently passed to the error handler. + + + + + Sets a new error handler that can be one of standard handlers or a custom handler that has the certain interface. The handler takes the same parameters as cvError function. If the handler returns non-zero value, the program is terminated, otherwise, it continues. The error handler may check the current error mode with cvGetErrMode to make a decision. + + The new error handler + Arbitrary pointer that is transparently passed to the error handler. + Pointer to the previously assigned user data pointer. + Pointer to the old error handler + + + + Sets a new error handler that can be one of standard handlers or a custom handler that has the certain interface. The handler takes the same parameters as cvError function. If the handler returns non-zero value, the program is terminated, otherwise, it continues. The error handler may check the current error mode with cvGetErrMode to make a decision. + + Pointer to the new error handler + Arbitrary pointer that is transparently passed to the error handler. + Pointer to the previously assigned user data pointer. + Pointer to the old error handler + + + + Sets the specified error mode. + + The error mode + The previous error mode + + + + Returns the current error mode + + The error mode + + + + Returns the current error status - the value set with the last cvSetErrStatus call. Note, that in Leaf mode the program terminates immediately after error occurred, so to always get control after the function call, one should call cvSetErrMode and set Parent or Silent error mode. + + The current error status + + + + Sets the error status to the specified value. Mostly, the function is used to reset the error status (set to it CV_StsOk) to recover after error. In other cases it is more natural to call cvError or CV_ERROR. + + The error status. + + + + Returns the textual description for the specified error status code. In case of unknown status the function returns NULL pointer. + + The error status + the textual description for the specified error status code. + + + + initializes CvMat header so that it points to the same data as the original array but has different shape - different number of channels, different number of rows or both + + Input array + Output header to be filled + New number of channels. new_cn = 0 means that number of channels remains unchanged + New number of rows. new_rows = 0 means that number of rows remains unchanged unless it needs to be changed according to new_cn value. destination array to be changed + The CvMat header + + + + Fills the destination array with source array tiled: + dst(i,j)=src(i mod rows(src), j mod cols(src))So the destination array may be as larger as well as smaller than the source array + + Source array, image or matrix + Destination array, image or matrix + Flag to specify how many times the src is repeated along the vertical axis. + Flag to specify how many times the src is repeated along the horizontal axis. + + + + This function is the opposite to cvSplit. If the destination array has N channels then if the first N input channels are not IntPtr.Zero, all they are copied to the destination array, otherwise if only a single source channel of the first N is not IntPtr.Zero, this particular channel is copied into the destination array, otherwise an error is raised. Rest of source channels (beyond the first N) must always be IntPtr.Zero. For IplImage cvCopy with COI set can be also used to insert a single channel into the image. + + Input vector of matrices to be merged; all the matrices in mv must have the same size and the same depth. + output array of the same size and the same depth as mv[0]; The number of channels will be the total number of channels in the matrix array. + + + + The function cvMixChannels is a generalized form of cvSplit and cvMerge and some forms of cvCvtColor. It can be used to change the order of the planes, add/remove alpha channel, extract or insert a single plane or multiple planes etc. + + The array of input arrays. + The array of output arrays + The array of pairs of indices of the planes copied. from_to[k*2] is the 0-based index of the input plane, and from_to[k*2+1] is the index of the output plane, where the continuous numbering of the planes over all the input and over all the output arrays is used. When from_to[k*2] is negative, the corresponding output plane is filled with 0's. + Unlike many other new-style C++ functions in OpenCV, mixChannels requires the output arrays to be pre-allocated before calling the function. + + + + Extract the specific channel from the image + + The source image + The channel + 0 based index of the channel to be extracted + + + + Insert the specific channel to the image + + The source channel + The destination image where the channel will be inserted into + 0-based index of the channel to be inserted + + + + Shuffles the matrix by swapping randomly chosen pairs of the matrix elements on each iteration (where each element may contain several components in case of multi-channel arrays) + + The input/output matrix. It is shuffled in-place. + Pointer to MCvRNG random number generator. Use 0 if not sure + The relative parameter that characterizes intensity of the shuffling performed. The number of iterations (i.e. pairs swapped) is round(iter_factor*rows(mat)*cols(mat)), so iter_factor=0 means that no shuffling is done, iter_factor=1 means that the function swaps rows(mat)*cols(mat) random pairs etc + + + + Inverses every bit of every array element: + + The source array + The destination array + The optional mask for the operation, use null to ignore + + + + Calculates per-element maximum of two arrays: + dst(I)=max(src1(I), src2(I)) + All the arrays must have a single channel, the same data type and the same size (or ROI size). + + The first source array + The second source array. + The destination array + + + + Returns the number of non-zero elements in arr: + result = sumI arr(I)!=0 + In case of IplImage both ROI and COI are supported. + + The image + the number of non-zero elements in image + + + + Find the location of the non-zero pixel + + The source array + The output array where the location of the pixels are sorted + + + + Computes PSNR image/video quality metric + + The first source image + The second source image + the quality metric + + + + Calculates per-element minimum of two arrays: + dst(I)=min(src1(I),src2(I)) + All the arrays must have a single channel, the same data type and the same size (or ROI size). + + The first source array + The second source array + The destination array + + + + Adds one array to another one: + dst(I)=src1(I)+src2(I) if mask(I)!=0All the arrays must have the same type, except the mask, and the same size (or ROI size) + + The first source array. + The second source array. + The destination array. + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed. + Optional depth type of the output array + + + + Subtracts one array from another one: + dst(I)=src1(I)-src2(I) if mask(I)!=0 + All the arrays must have the same type, except the mask, and the same size (or ROI size) + + The first source array + The second source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + Optional depth of the output array + + + + Divides one array by another: + dst(I)=scale * src1(I)/src2(I), if src1!=IntPtr.Zero; + dst(I)=scale/src2(I), if src1==IntPtr.Zero; + All the arrays must have the same type, and the same size (or ROI size) + + The first source array. If the pointer is IntPtr.Zero, the array is assumed to be all 1s. + The second source array + The destination array + Optional scale factor + Optional depth of the output array + + + + Calculates per-element product of two arrays: + dst(I)=scale*src1(I)*src2(I) + All the arrays must have the same type, and the same size (or ROI size) + + The first source array. + The second source array + The destination array + Optional scale factor + Optional depth of the output array + + + + Calculates per-element bit-wise logical conjunction of two arrays: + dst(I)=src1(I) & src2(I) if mask(I)!=0 + In the case of floating-point arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size + + The first source array + The second source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + + + + Calculates per-element bit-wise disjunction of two arrays: + dst(I)=src1(I)|src2(I) + In the case of floating-point arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size + + The first source array + The second source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + + + + Calculates per-element bit-wise logical conjunction of two arrays: + dst(I)=src1(I)^src2(I) if mask(I)!=0 + In the case of floating-point arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size + + The first source array + The second source array + The destination array + Mask, 8-bit single channel array; specifies elements of destination array to be changed. + + + + Copies selected elements from input array to output array: + dst(I)=src(I) if mask(I)!=0. + If any of the passed arrays is of IplImage type, then its ROI and COI fields are used. Both arrays must have the same type, the same number of dimensions and the same size. The function can also copy sparse arrays (mask is not supported in this case). + + The source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + + + + Initializes scaled identity matrix: + arr(i,j)=value if i=j, + 0 otherwise + + The matrix to initialize (not necessarily square). + The value to assign to the diagonal elements. + + + + Initializes the matrix as following: + arr(i,j)=(end-start)*(i*cols(arr)+j)/(cols(arr)*rows(arr)) + + The matrix to initialize. It should be single-channel 32-bit, integer or floating-point + The lower inclusive boundary of the range + The upper exclusive boundary of the range + + + + Calculates the magnitude and angle of 2D vectors. + magnitude(I)=sqrt( x(I)^2+y(I)^2 ), + angle(I)=atan2( y(I)/x(I) ) + The angles are calculated with accuracy about 0.3 degrees. For the point (0,0), the angle is set to 0. + + Array of x-coordinates; this must be a single-precision or double-precision floating-point array. + Array of y-coordinates, that must have the same size and same type as x. + Output array of magnitudes of the same size and type as x. + Output array of angles that has the same size and type as x; the angles are measured in radians (from 0 to 2*Pi) or in degrees (0 to 360 degrees). + A flag, indicating whether the angles are measured in radians (which is by default), or in degrees. + + + + Calculates either x-coordinate, y-coordinate or both of every vector magnitude(I)* exp(angle(I)*j), j=sqrt(-1): + x(I)=magnitude(I)*cos(angle(I)), + y(I)=magnitude(I)*sin(angle(I)) + + Input floating-point array of magnitudes of 2D vectors; it can be an empty matrix (=Mat()), in this case, the function assumes that all the magnitudes are =1; if it is not empty, it must have the same size and type as angle + input floating-point array of angles of 2D vectors. + Output array of x-coordinates of 2D vectors; it has the same size and type as angle. + Output array of y-coordinates of 2D vectors; it has the same size and type as angle. + The flag indicating whether the angles are measured in radians or in degrees + + + + Raises every element of input array to p: + dst(I)=src(I)p, if p is integer + dst(I)=abs(src(I))p, otherwise + That is, for non-integer power exponent the absolute values of input array elements are used. However, it is possible to get true values for negative values using some extra operations, as the following sample, computing cube root of array elements, shows: + CvSize size = cvGetSize(src); + CvMat* mask = cvCreateMat( size.height, size.width, CV_8UC1 ); + cvCmpS( src, 0, mask, CV_CMP_LT ); /* find negative elements */ + cvPow( src, dst, 1./3 ); + cvSubRS( dst, cvScalarAll(0), dst, mask ); /* negate the results of negative inputs */ + cvReleaseMat( &mask ); + For some values of power, such as integer values, 0.5 and -0.5, specialized faster algorithms are used. + + The source array + The destination array, should be the same type as the source + The exponent of power + + + + Calculates exponent of every element of input array: + dst(I)=exp(src(I)) + Maximum relative error is 7e-6. Currently, the function converts denormalized values to zeros on output + + The source array + The destination array, it should have double type or the same type as the source + + + + Calculates natural logarithm of absolute value of every element of input array: + dst(I)=log(abs(src(I))), src(I)!=0 + dst(I)=C, src(I)=0 + Where C is large negative number (-700 in the current implementation) + + The source array + The destination array, it should have double type or the same type as the source + + + + finds real roots of a cubic equation: + coeffs[0]*x^3 + coeffs[1]*x^2 + coeffs[2]*x + coeffs[3] = 0 + (if coeffs is 4-element vector) + or + x^3 + coeffs[0]*x^2 + coeffs[1]*x + coeffs[2] = 0 + (if coeffs is 3-element vector) + + The equation coefficients, array of 3 or 4 elements + The output array of real roots. Should have 3 elements. Padded with zeros if there is only one root + the number of real roots found + + + + Finds all real and complex roots of any degree polynomial with real coefficients + + The (degree + 1)-length array of equation coefficients (CV_32FC1 or CV_64FC1) + The degree-length output array of real or complex roots (CV_32FC2 or CV_64FC2) + The maximum number of iterations + + + + Solves linear system (src1)*(dst) = (src2) + + The source matrix in the LHS + The source matrix in the RHS + The result + The method for solving the equation + 0 if src1 is a singular and CV_LU method is used + + + + Sorts each matrix row or each matrix column in + ascending or descending order.So you should pass two operation flags to + get desired behaviour. + + input single-channel array. + output array of the same size and type as src. + operation flags + + + + Sorts each matrix row or each matrix column in the + ascending or descending order.So you should pass two operation flags to + get desired behaviour. Instead of reordering the elements themselves, it + stores the indices of sorted elements in the output array. + + input single-channel array. + output integer array of the same size as src. + operation flags + + + + Performs forward or inverse transform of 1D or 2D floating-point array + In case of real (single-channel) data, the packed format, borrowed from IPL, is used to to represent a result of forward Fourier transform or input for inverse Fourier transform + + Source array, real or complex + Destination array of the same size and same type as the source + Transformation flags + Number of nonzero rows to in the source array (in case of forward 2d transform), or a number of rows of interest in the destination array (in case of inverse 2d transform). If the value is negative, zero, or greater than the total number of rows, it is ignored. The parameter can be used to speed up 2d convolution/correlation when computing them via DFT. See the sample below + + + + Returns the minimum number N that is greater to equal to size0, such that DFT of a vector of size N can be computed fast. In the current implementation N=2^p x 3^q x 5^r for some p, q, r. + + Vector size + The minimum number N that is greater to equal to size0, such that DFT of a vector of size N can be computed fast. In the current implementation N=2^p x 3^q x 5^r for some p, q, r. + + + + Performs per-element multiplication of the two CCS-packed or complex matrices that are results of real or complex Fourier transform. + + The first source array + The second source array + The destination array of the same type and the same size of the sources + Operation flags; currently, the only supported flag is DFT_ROWS, which indicates that each row of src1 and src2 is an independent 1D Fourier spectrum. + Optional flag that conjugates the second input array before the multiplication (true) or not (false). + + + + Performs forward or inverse transform of 1D or 2D floating-point array + + Source array, real 1D or 2D array + Destination array of the same size and same type as the source + Transformation flags + + + + Calculates a part of the line segment which is entirely in the rectangle. + + The rectangle + First ending point of the line segment. It is modified by the function + Second ending point of the line segment. It is modified by the function. + It returns false if the line segment is completely outside the rectangle and true otherwise. + + + + Calculates absolute difference between two arrays. + dst(I)c = abs(src1(I)c - src2(I)c). + All the arrays must have the same data type and the same size (or ROI size) + + The first source array + The second source array + The destination array + + + + Calculated weighted sum of two arrays as following: + dst(I)=src1(I)*alpha+src2(I)*beta+gamma + All the arrays must have the same type and the same size (or ROI size) + + The first source array. + Weight of the first array elements. + The second source array. + Weight of the second array elements. + Scalar, added to each sum. + The destination array. + Optional depth of the output array; when both input arrays have the same depth + + + + Performs range check for every element of the input array: + dst(I)=lower(I)_0 <= src(I)_0 <= upper(I)_0 + For single-channel arrays, + dst(I)=lower(I)_0 <= src(I)_0 <= upper(I)_0 && + lower(I)_1 <= src(I)_1 <= upper(I)_1 + For two-channel arrays etc. + dst(I) is set to 0xff (all '1'-bits) if src(I) is within the range and 0 otherwise. All the arrays must have the same type, except the destination, and the same size (or ROI size) + + The source image + The lower values stored in an image of same type & size as + The upper values stored in an image of same type & size as + The resulting mask + + + + Returns the calculated norm. The multiple-channel array are treated as single-channel, that is, the results for all channels are combined. + + The first source image + The second source image. If it is null, the absolute norm of arr1 is calculated, otherwise absolute or relative norm of arr1-arr2 is calculated + Type of norm + The optional operation mask + The calculated norm + + + + Returns the calculated norm. The multiple-channel array are treated as single-channel, that is, the results for all channels are combined. + + The first source image + Type of norm + The optional operation mask + The calculated norm + + + + Creates the header and allocates data. + + Image width and height. + Bit depth of image elements + + Number of channels per element(pixel). Can be 1, 2, 3 or 4. The channels are interleaved, for example the usual data layout of a color image is: + b0 g0 r0 b1 g1 r1 ... + + A pointer to IplImage + + + + Allocates, initializes, and returns the structure IplImage. + + Image width and height. + Bit depth of image elements + + Number of channels per element(pixel). Can be 1, 2, 3 or 4. The channels are interleaved, for example the usual data layout of a color image is: + b0 g0 r0 b1 g1 r1 ... + + The structure IplImage + + + + Initializes the image header structure, pointer to which is passed by the user, and returns the pointer. + + Image header to initialize. + Image width and height. + Image depth + Number of channels + IPL_ORIGIN_TL or IPL_ORIGIN_BL. + Alignment for image rows, typically 4 or 8 bytes. + Pointer to the image header + + + + Assigns user data to the array header. + + Array header. + User data. + Full row length in bytes. + + + + Releases the header. + + Pointer to the deallocated header. + + + + Initializes already allocated CvMat structure. It can be used to process raw data with OpenCV matrix functions. + + Pointer to the matrix header to be initialized. + Number of rows in the matrix. + Number of columns in the matrix. + Type of the matrix elements. + Optional data pointer assigned to the matrix header + Full row width in bytes of the data assigned. By default, the minimal possible step is used, i.e., no gaps is assumed between subsequent rows of the matrix. + Pointer to the CvMat + + + + Sets the channel of interest to a given value. Value 0 means that all channels are selected, 1 means that the first channel is selected etc. If ROI is NULL and coi != 0, ROI is allocated. + + Image header + Channel of interest starting from 1. If 0, the COI is unset. + + + + Returns channel of interest of the image (it returns 0 if all the channels are selected). + + Image header. + channel of interest of the image (it returns 0 if all the channels are selected) + + + + Releases image ROI. After that the whole image is considered selected. + + Image header + + + + Sets the image ROI to a given rectangle. If ROI is NULL and the value of the parameter rect is not equal to the whole image, ROI is allocated. + + Image header. + ROI rectangle. + + + + Returns channel of interest of the image (it returns 0 if all the channels are selected). + + Image header. + channel of interest of the image (it returns 0 if all the channels are selected) + + + + Allocates header for the new matrix and underlying data, and returns a pointer to the created matrix. Matrices are stored row by row. All the rows are aligned by 4 bytes. + + Number of rows in the matrix. + Number of columns in the matrix. + Type of the matrix elements. + A pointer to the created matrix + + + + Initializes CvMatND structure allocated by the user + + Pointer to the array header to be initialized + Number of array dimensions + Array of dimension sizes + Type of array elements + Optional data pointer assigned to the matrix header + Pointer to the array header + + + + Decrements the matrix data reference counter and releases matrix header + + Double pointer to the matrix. + + + + The function allocates a multi-dimensional sparse array. Initially the array contain no elements, that is Get or GetReal returns zero for every index + + Number of array dimensions + Array of dimension sizes + Type of array elements + Pointer to the array header + + + + The function releases the sparse array and clears the array pointer upon exit. + + Reference of the pointer to the array + + + + Assign the new value to the particular element of single-channel array + + Input array + The first zero-based component of the element index + The assigned value + + + + Assign the new value to the particular element of single-channel array + + Input array + The first zero-based component of the element index + The second zero-based component of the element index + The assigned value + + + + Assign the new value to the particular element of single-channel array + + Input array + The first zero-based component of the element index + The second zero-based component of the element index + The third zero-based component of the element index + The assigned value + + + + Assign the new value to the particular element of single-channel array + + Input array + Array of the element indices + The assigned value + + + + Clears (sets to zero) the particular element of dense array or deletes the element of sparse array. If the element does not exists, the function does nothing + + Input array + Array of the element indices + + + + Assign the new value to the particular element of array + + Input array. + The first zero-based component of the element index + The second zero-based component of the element index + The assigned value + + + + Flips the array in one of different 3 ways (row and column indices are 0-based) + + Source array. + Destination array. + Specifies how to flip the array. + + + + Rotates a 2D array in multiples of 90 degrees. + + input array. + output array of the same type as src. The size is the same with ROTATE_180, and the rows and cols are switched for ROTATE_90 and ROTATE_270. + an enum to specify how to rotate the array + + + + Returns header, corresponding to a specified rectangle of the input array. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. ROI is taken into account by the function so the sub-array of ROI is actually extracted. + + Input array + Pointer to the resultant sub-array header. + Zero-based coordinates of the rectangle of interest. + the resultant sub-array header + + + + Return the header, corresponding to a specified row span of the input array + + Input array + Pointer to the prelocated memory of resulting sub-array header + Zero-based index of the starting row (inclusive) of the span + Zero-based index of the ending row (exclusive) of the span + Index step in the row span. That is, the function extracts every delta_row-th row from start_row and up to (but not including) end_row + The header, corresponding to a specified row span of the input array + + + + Return the header, corresponding to a specified row of the input array + + Input array + Pointer to the prelocate memory of the resulting sub-array header + Zero-based index of the selected row + The header, corresponding to a specified row of the input array + + + + Return the header, corresponding to a specified col span of the input array + + Input array + Pointer to the prelocated memory of the resulting sub-array header + Zero-based index of the selected column + Zero-based index of the ending column (exclusive) of the span + The header, corresponding to a specified col span of the input array + + + + Return the header, corresponding to a specified column of the input array + + Input array + Pointer to the prelocate memory of the resulting sub-array header + Zero-based index of the selected column + The header, corresponding to a specified column of the input array + + + + returns the header, corresponding to a specified diagonal of the input array + + Input array + Pointer to the resulting sub-array header + Array diagonal. Zero corresponds to the main diagonal, -1 corresponds to the diagonal above the main etc., 1 corresponds to the diagonal below the main etc + Pointer to the resulting sub-array header + + + + Returns number of rows (CvSize::height) and number of columns (CvSize::width) of the input matrix or image. In case of image the size of ROI is returned. + + array header + number of rows (CvSize::height) and number of columns (CvSize::width) of the input matrix or image. In case of image the size of ROI is returned. + + + + Draws a simple or filled circle with given center and radius. The circle is clipped by ROI rectangle. + + Image where the circle is drawn + Center of the circle + Radius of the circle. + Color of the circle + Thickness of the circle outline if positive, otherwise indicates that a filled circle has to be drawn + Line type + Number of fractional bits in the center coordinates and radius value + + + + Divides a multi-channel array into separate single-channel arrays. Two modes are available for the operation. If the source array has N channels then if the first N destination channels are not IntPtr.Zero, all they are extracted from the source array, otherwise if only a single destination channel of the first N is not IntPtr.Zero, this particular channel is extracted, otherwise an error is raised. Rest of destination channels (beyond the first N) must always be IntPtr.Zero. For IplImage cvCopy with COI set can be also used to extract a single channel from the image + + Input multi-channel array + Output array or vector of arrays + + + + Draws a simple or thick elliptic arc or fills an ellipse sector. The arc is clipped by ROI rectangle. A piecewise-linear approximation is used for antialiased arcs and thick arcs. All the angles are given in degrees. + + Image + Center of the ellipse + Length of the ellipse axes + Rotation angle + Starting angle of the elliptic arc + Ending angle of the elliptic arc + Ellipse color + Thickness of the ellipse arc + Type of the ellipse boundary + Number of fractional bits in the center coordinates and axes' values + + + + Draws a simple or thick elliptic arc or fills an ellipse sector. The arc is clipped by ROI rectangle. A piecewise-linear approximation is used for antialiased arcs and thick arcs. All the angles are given in degrees. + + Image + The box the define the ellipse area + Ellipse color + Thickness of the ellipse arc + Type of the ellipse boundary + Number of fractional bits in the center coordinates and axes' values + + + + Fills the destination array with values from the look-up table. Indices of the entries are taken from the source array. That is, the function processes each element of src as following: + dst(I)=lut[src(I)+DELTA] + where DELTA=0 if src has depth CV_8U, and DELTA=128 if src has depth CV_8S + + Source array of 8-bit elements + Destination array of arbitrary depth and of the same number of channels as the source array + Look-up table of 256 elements; should have the same depth as the destination array. In case of multi-channel source and destination arrays, the table should either have a single-channel (in this case the same table is used for all channels), or the same number of channels as the source/destination array + + + + This function has several different purposes and thus has several synonyms. It copies one array to another with optional scaling, which is performed first, and/or optional type conversion, performed after: + dst(I)=src(I)*scale + (shift,shift,...) + All the channels of multi-channel arrays are processed independently. + The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination array element type, it is set to the nearest representable value on the real axis. + In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate cvConvert synonym. If source and destination array types have equal types, this is also a special case that can be used to scale and shift a matrix or an image and that fits to cvScale synonym. + + Source array + Destination array + Scale factor + Value added to the scaled source array elements + + + + Similar to cvCvtScale but it stores absolute values of the conversion results: + dst(I)=abs(src(I)*scale + (shift,shift,...)) + The function supports only destination arrays of 8u (8-bit unsigned integers) type, for other types the function can be emulated by combination of cvConvertScale and cvAbs functions. + + Source array + Destination array (should have 8u depth). + ScaleAbs factor + Value added to the scaled source array elements + + + + Calculates the average value M of array elements, independently for each channel: + N = sumI mask(I)!=0 + Mc = 1/N * sumI,mask(I)!=0 arr(I)c + If the array is IplImage and COI is set, the function processes the selected channel only and stores the average to the first scalar component (S0). + + The array + The optional operation mask + average (mean) of array elements + + + + The function cvAvgSdv calculates the average value and standard deviation of array elements, independently for each channel + + If the array is IplImage and COI is set, the function processes the selected channel only and stores the average and standard deviation to the first compoenents of output scalars (M0 and S0). + The array + Pointer to the mean value + Pointer to the standard deviation + The optional operation mask + + + + Calculates a mean and standard deviation of array elements. + + Input array that should have from 1 to 4 channels so that the results can be stored in MCvScalar + Calculated mean value + Calculated standard deviation + Optional operation mask + + + + Calculates sum S of array elements, independently for each channel + Sc = sumI arr(I)c + If the array is IplImage and COI is set, the function processes the selected channel only and stores the sum to the first scalar component (S0). + + The array + The sum of array elements + + + + Reduces matrix to a vector by treating the matrix rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained. + + + The function can be used to compute horizontal and vertical projections of an raster image. + In case of CV_REDUCE_SUM and CV_REDUCE_AVG the output may have a larger element bit-depth to preserve accuracy. + And multi-channel arrays are also supported in these two reduction modes + + The input matrix + The output single-row/single-column vector that accumulates somehow all the matrix rows/columns + The dimension index along which the matrix is reduce. + The reduction operation type + Optional depth type of the output array + + + + Releases the header and the image data. + + Double pointer to the header of the deallocated image + + + + Draws contours outlines or filled contours. + + Image where the contours are to be drawn. Like in any other drawing function, the contours are clipped with the ROI + All the input contours. Each contour is stored as a point vector. + Parameter indicating a contour to draw. If it is negative, all the contours are drawn. + Color of the contours + Maximal level for drawn contours. If 0, only contour is drawn. If 1, the contour and all contours after it on the same level are drawn. If 2, all contours after and all contours one level below the contours are drawn, etc. If the value is negative, the function does not draw the contours following after contour but draws child contours of contour up to abs(maxLevel)-1 level. + Thickness of lines the contours are drawn with. If it is negative the contour interiors are drawn + Type of the contour segments + Optional information about hierarchy. It is only needed if you want to draw only some of the contours + Shift all the point coordinates by the specified value. It is useful in case if the contours retrieved in some image ROI and then the ROI offset needs to be taken into account during the rendering. + + + + Fills convex polygon interior. This function is much faster than The function cvFillPoly and can fill not only the convex polygons but any monotonic polygon, i.e. a polygon whose contour intersects every horizontal line (scan line) twice at the most + + Image + Array of pointers to a single polygon + Polygon color + Type of the polygon boundaries + Number of fractional bits in the vertex coordinates + + + + Fills the area bounded by one or more polygons. + + Image. + Array of polygons where each polygon is represented as an array of points. + Polygon color + Type of the polygon boundaries. + Number of fractional bits in the vertex coordinates. + Optional offset of all points of the contours. + + + + Renders the text in the image with the specified font and color. The printed text is clipped by ROI rectangle. Symbols that do not belong to the specified font are replaced with the rectangle symbol. + + Input image + String to print + Coordinates of the bottom-left corner of the first letter + Font type. + Font scale factor that is multiplied by the font-specific base size. + Text color + Thickness of the lines used to draw a text. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Calculates the width and height of a text string. + + Input text string. + Font to use + Font scale factor that is multiplied by the font-specific base size. + Thickness of lines used to render the text. + Y-coordinate of the baseline relative to the bottom-most text point. + The size of a box that contains the specified text. + + + + Finds minimum and maximum element values and their positions. The extremums are searched over the whole array, selected ROI (in case of IplImage) or, if mask is not IntPtr.Zero, in the specified array region. If the array has more than one channel, it must be IplImage with COI set. In case if multi-dimensional arrays min_loc->x and max_loc->x will contain raw (linear) positions of the extremums + + The source array, single-channel or multi-channel with COI set + Pointer to returned minimum value + Pointer to returned maximum value + Pointer to returned minimum location + Pointer to returned maximum location + The optional mask that is used to select a subarray. Use IntPtr.Zero if not needed + + + + Copies the source 2D array into interior of destination array and makes a border of the specified type around the copied area. The function is useful when one needs to emulate border type that is different from the one embedded into a specific algorithm implementation. For example, morphological functions, as well as most of other filtering functions in OpenCV, internally use replication border type, while the user may need zero border or a border, filled with 1's or 255's + + The source image + The destination image + Type of the border to create around the copied source image rectangle + Value of the border pixels if bordertype=CONSTANT + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + + + + Return the particular array element + + Input array. Must have a single channel + The first zero-based component of the element index + the particular array element + + + + Return the particular array element + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + the particular array element + + + + Return the particular array element + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + The third zero-based component of the element index + the particular array element + + + + Return the particular element of single-channel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both single-channel and multiple-channel arrays though they are a bit slower. + + Input array. Must have a single channel + The first zero-based component of the element index + the particular element of single-channel array + + + + Return the particular element of single-channel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both single-channel and multiple-channel arrays though they are a bit slower. + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + the particular element of single-channel array + + + + Return the particular element of single-channel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both single-channel and multiple-channel arrays though they are a bit slower. + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + The third zero-based component of the element index + the particular element of single-channel array + + + + Enables or disables the optimized code. + + + true if [use optimized]; otherwise, false. + + The function can be used to dynamically turn on and off optimized code (code that uses SSE2, AVX, and other instructions on the platforms that support it). It sets a global flag that is further checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only safe to call the function on the very top level in your application where you can be sure that no other OpenCV function is currently executed. + + + + Returns full configuration time cmake output. + Returned value is raw cmake output including version control system revision, compiler version, compiler flags, enabled modules and third party libraries, etc.Output format depends on target architecture. + + + + + Fills the array with normally distributed random numbers. + + Output array of random numbers; the array must be pre-allocated and have 1 to 4 channels. + Mean value (expectation) of the generated random numbers. + Standard deviation of the generated random numbers; it can be either a vector (in which case a diagonal standard deviation matrix is assumed) or a square matrix. + + + + Fills the array with normally distributed random numbers. + + Output array of random numbers; the array must be pre-allocated and have 1 to 4 channels. + Mean value (expectation) of the generated random numbers. + Standard deviation of the generated random numbers; it can be either a vector (in which case a diagonal standard deviation matrix is assumed) or a square matrix. + + + + Generates a single uniformly-distributed random number or an array of random numbers. + + Output array of random numbers; the array must be pre-allocated. + Inclusive lower boundary of the generated random numbers. + Exclusive upper boundary of the generated random numbers. + + + + Generates a single uniformly-distributed random number or an array of random numbers. + + Output array of random numbers; the array must be pre-allocated. + Inclusive lower boundary of the generated random numbers. + Exclusive upper boundary of the generated random numbers. + + + + Computes eigenvalues and eigenvectors of a symmetric matrix + + The input symmetric square matrix, modified during the processing + The output matrix of eigenvectors, stored as subsequent rows + The output vector of eigenvalues, stored in the descending order (order of eigenvalues and eigenvectors is syncronized, of course) + Currently the function is slower than cvSVD yet less accurate, so if A is known to be positivelydefined (for example, it is a covariance matrix)it is recommended to use cvSVD to find eigenvalues and eigenvectors of A, especially if eigenvectors are not required. + To calculate the largest eigenvector/-value set lowindex = highindex = 1. For legacy reasons this function always returns a square matrix the same size as the source matrix with eigenvectors and a vector the length of the source matrix with eigenvalues. The selected eigenvectors/-values are always in the first highindex - lowindex + 1 rows. + + + + normalizes the input array so that it's norm or value range takes the certain value(s). + + The input array + The output array; in-place operation is supported + The minimum/maximum value of the output array or the norm of output array + The maximum/minimum value of the output array + The normalization type + The operation mask. Makes the function consider and normalize only certain array elements + Optional depth type for the dst array + + + + Performs generalized matrix multiplication: + dst = alpha*op(src1)*op(src2) + beta*op(src3), where op(X) is X or XT + + The first source array. + The second source array. + The scalar + The third source array (shift). Can be null, if there is no shift. + The scalar + The destination array. + The Gemm operation type + + + + Performs matrix transformation of every element of array src and stores the results in dst + Both source and destination arrays should have the same depth and the same size or selected ROI size. transmat and shiftvec should be real floating-point matrices. + + The first source array + The destination array + transformation 2x2 or 2x3 floating-point matrix. + + + + Transforms every element of src in the following way: + (x, y) -> (x'/w, y'/w), + where + (x', y', w') = mat3x3 * (x, y, 1) + and w = w' if w'!=0, + inf otherwise + + The source points + 3x3 floating-point transformation matrix. + The destination points + + + + Transforms every element of src (by treating it as 2D or 3D vector) in the following way: + (x, y, z) -> (x'/w, y'/w, z'/w) or + (x, y) -> (x'/w, y'/w), + where + (x', y', z', w') = mat4x4 * (x, y, z, 1) or + (x', y', w') = mat3x3 * (x, y, 1) + and w = w' if w'!=0, + inf otherwise + + The source three-channel floating-point array + The destination three-channel floating-point array + 3x3 or 4x4 floating-point transformation matrix. + + + + Calculates the product of src and its transposition. + The function evaluates dst=scale(src-delta)*(src-delta)^T if order=0, and dst=scale(src-delta)^T*(src-delta) otherwise. + + The source matrix + The destination matrix + Order of multipliers + An optional array, subtracted from before multiplication + An optional scaling + Optional depth type of the output array + + + + Returns sum of diagonal elements of the matrix . + + the matrix + sum of diagonal elements of the matrix src1 + + + + Transposes matrix src1: + dst(i,j)=src(j,i) + Note that no complex conjugation is done in case of complex matrix. Conjugation should be done separately: look at the sample code in cvXorS for example + + The source matrix + The destination matrix + + + + Returns determinant of the square matrix mat. The direct method is used for small matrices and Gaussian elimination is used for larger matrices. For symmetric positive-determined matrices it is also possible to run SVD with U=V=NULL and then calculate determinant as a product of the diagonal elements of W + + The pointer to the matrix + determinant of the square matrix mat + + + + Finds the inverse or pseudo-inverse of a matrix. This function inverts the matrix src and stores the result in dst . When the matrix src is singular or non-square, the function calculates the pseudo-inverse matrix (the dst matrix) so that norm(src*dst - I) is minimal, where I is an identity matrix. + + The input floating-point M x N matrix. + The output matrix of N x M size and the same type as src. + Inversion method + + In case of the DECOMP_LU method, the function returns non-zero value if the inverse has been successfully calculated and 0 if src is singular. + In case of the DECOMP_SVD method, the function returns the inverse condition number of src (the ratio of the smallest singular value to the largest singular value) and 0 if src is singular. The SVD method calculates a pseudo-inverse matrix if src is singular. + Similarly to DECOMP_LU, the method DECOMP_CHOLESKY works only with non-singular square matrices that should also be symmetrical and positively defined. In this case, the function stores the inverted matrix in dst and returns non-zero. Otherwise, it returns 0. + + + + + Decomposes matrix A into a product of a diagonal matrix and two orthogonal matrices: + A=U*W*VT + Where W is diagonal matrix of singular values that can be coded as a 1D vector of singular values and U and V. All the singular values are non-negative and sorted (together with U and V columns) in descenting order. + + + SVD algorithm is numerically robust and its typical applications include: + 1. accurate eigenvalue problem solution when matrix A is square, symmetric and positively defined matrix, for example, when it is a covariation matrix. W in this case will be a vector of eigen values, and U=V is matrix of eigen vectors (thus, only one of U or V needs to be calculated if the eigen vectors are required) + 2. accurate solution of poor-conditioned linear systems + 3. least-squares solution of overdetermined linear systems. This and previous is done by cvSolve function with CV_SVD method + 4. accurate calculation of different matrix characteristics such as rank (number of non-zero singular values), condition number (ratio of the largest singular value to the smallest one), determinant (absolute value of determinant is equal to the product of singular values). All the things listed in this item do not require calculation of U and V matrices. + + Source MxN matrix + Resulting singular value matrix (MxN or NxN) or vector (Nx1). + Optional left orthogonal matrix (MxM or MxN). If CV_SVD_U_T is specified, the number of rows and columns in the sentence above should be swapped + Optional right orthogonal matrix (NxN) + Operation flags + + + + Performs a singular value back substitution. + + Singular values + Left singular vectors + Transposed matrix of right singular vectors. + Right-hand side of a linear system + Found solution of the system. + + + + Calculates the covariance matrix of a set of vectors. + + Samples stored either as separate matrices or as rows/columns of a single matrix. + Output covariance matrix of the type ctype and square size. + Input or output (depending on the flags) array as the average value of the input vectors. + Operation flags + Type of the matrix + + + + Calculates the weighted distance between two vectors and returns it + + The first 1D source vector + The second 1D source vector + The inverse covariation matrix + the Mahalanobis distance + + + + Performs Principal Component Analysis of the supplied dataset. + + Input samples stored as the matrix rows or as the matrix columns. + Optional mean value; if the matrix is empty, the mean is computed from the data. + The eigenvectors. + Maximum number of components that PCA should retain; by default, all the components are retained. + + + + Performs Principal Component Analysis of the supplied dataset. + + Input samples stored as the matrix rows or as the matrix columns. + Optional mean value; if the matrix is empty, the mean is computed from the data. + The eigenvectors. + Percentage of variance that PCA should retain. Using this parameter will let the PCA decided how many components to retain but it will always keep at least 2. + + + + Projects vector(s) to the principal component subspace. + + Input vector(s); must have the same dimensionality and the same layout as the input data used at PCA phase + The mean. + The eigenvectors. + The result. + + + + Reconstructs vectors from their PC projections. + + Coordinates of the vectors in the principal component subspace + The mean. + The eigenvectors. + The result. + + + + Fills output variables with low-level information about the array data. All output parameters are optional, so some of the pointers may be set to NULL. If the array is IplImage with ROI set, parameters of ROI are returned. + + Array header + Output pointer to the whole image origin or ROI origin if ROI is set + Output full row length in bytes + Output ROI size + + + + Returns matrix header for the input array that can be matrix - CvMat, image - IplImage or multi-dimensional dense array - CvMatND* (latter case is allowed only if allowND != 0) . In the case of matrix the function simply returns the input pointer. In the case of IplImage* or CvMatND* it initializes header structure with parameters of the current image ROI and returns pointer to this temporary structure. Because COI is not supported by CvMat, it is returned separately. + + Input array + Pointer to CvMat structure used as a temporary buffer + Optional output parameter for storing COI + If non-zero, the function accepts multi-dimensional dense arrays (CvMatND*) and returns 2D (if CvMatND has two dimensions) or 1D matrix (when CvMatND has 1 dimension or more than 2 dimensions). The array must be continuous + Returns matrix header for the input array + + + + Returns image header for the input array that can be matrix - CvMat*, or image - IplImage*. + + Input array. + Pointer to IplImage structure used as a temporary buffer. + Returns image header for the input array + + + + Checks that every array element is neither NaN nor Infinity. If CV_CHECK_RANGE is set, it also checks that every element is greater than or equal to minVal and less than maxVal. + + The array to check. + The operation flags, CHECK_NAN_INFINITY or combination of + CHECK_RANGE - if set, the function checks that every value of array is within [minVal,maxVal) range, otherwise it just checks that every element is neither NaN nor Infinity. + CHECK_QUIET - if set, the function does not raises an error if an element is invalid or out of range + + The inclusive lower boundary of valid values range. It is used only if CHECK_RANGE is set. + The exclusive upper boundary of valid values range. It is used only if CHECK_RANGE is set. + Returns nonzero if the check succeeded, i.e. all elements are valid and within the range, and zero otherwise. In the latter case if CV_CHECK_QUIET flag is not set, the function raises runtime error. + + + + Get or set the number of threads that are used by parallelized OpenCV functions + + When the argument is zero or negative, and at the beginning of the program, the number of threads is set to the number of processors in the system, as returned by the function omp_get_num_procs() from OpenMP runtime. + + + + Returns the index, from 0 to cvGetNumThreads()-1, of the thread that called the function. It is a wrapper for the function omp_get_thread_num() from OpenMP runtime. The retrieved index may be used to access local-thread data inside the parallelized code fragments. + + + + + Returns the number of logical CPUs available for the process. + + + + + Compares the corresponding elements of two arrays and fills the destination mask array: + dst(I)=src1(I) op src2(I), + dst(I) is set to 0xff (all '1'-bits) if the particular relation between the elements is true and 0 otherwise. + All the arrays must have the same type, except the destination, and the same size (or ROI size) + + The first image to compare with + The second image to compare with + dst(I) is set to 0xff (all '1'-bits) if the particular relation between the elements is true and 0 otherwise. + The comparison operator type + + + + Converts CvMat, IplImage , or CvMatND to Mat. + + Input CvMat, IplImage , or CvMatND. + When true (default value), CvMatND is converted to 2-dimensional Mat, if it is possible (see the discussion below); if it is not possible, or when the parameter is false, the function will report an error + When false (default value), no data is copied and only the new header is created, in this case, the original array should not be deallocated while the new matrix header is used; if the parameter is true, all the data is copied and you may deallocate the original array right after the conversion. + Parameter specifying how the IplImage COI (when set) is handled. If coiMode=0 and COI is set, the function reports an error. If coiMode=1 , the function never reports an error. Instead, it returns the header to the whole original image and you will have to check and process COI manually. + The Mat header + + + + Horizontally concatenate two images + + The first image + The second image + The result image + + + + Vertically concatenate two images + + The first image + The second image + The result image + + + + Swaps two matrices + + The Mat to be swapped + The Mat to be swapped + + + + Swaps two matrices + + The UMat to be swapped + The UMat to be swapped + + + + Check if we have OpenCL + + + + + Get or set if OpenCL should be used + + + + + Finishes OpenCL queue. + + + + + Get the OpenCL platform summary as a string + + An OpenCL platform summary + + + + Set the default opencl device + + The name of the opencl device + + + + Gets a value indicating whether this device have open CL compatible gpu device. + + true if have open CL compatible gpu device; otherwise, false. + + + + Implements k-means algorithm that finds centers of cluster_count clusters and groups the input samples around the clusters. On output labels(i) contains a cluster index for sample stored in the i-th row of samples matrix + + Floating-point matrix of input samples, one row per sample + Output integer vector storing cluster indices for every sample + Specifies maximum number of iterations and/or accuracy (distance the centers move by between the subsequent iterations) + The number of attempts. Use 2 if not sure + Flags, use 0 if not sure + Pointer to array of centers, use IntPtr.Zero if not sure + Number of clusters to split the set by. + The function returns the compactness measure. The best (minimum) value is chosen and the corresponding labels and the compactness value are returned by the function. + + + + The grab cut algorithm for segmentation + + The 8-bit 3-channel image to be segmented + Input/output 8-bit single-channel mask. The mask is initialized by the function + when mode is set to GC_INIT_WITH_RECT. Its elements may have one of following values: + 0 (GC_BGD) defines an obvious background pixels. + 1 (GC_FGD) defines an obvious foreground (object) pixel. + 2 (GC_PR_BGR) defines a possible background pixel. + 3 (GC_PR_FGD) defines a possible foreground pixel. + + The rectangle to initialize the segmentation + + Temporary array for the background model. Do not modify it while you are + processing the same image. + + + Temporary arrays for the foreground model. Do not modify it while you are + processing the same image. + + The number of iterations + The initialization type + + + + Calculate square root of each source array element. in the case of multichannel + arrays each channel is processed independently. The function accuracy is approximately + the same as of the built-in std::sqrt. + + The source floating-point array + The destination array; will have the same size and the same type as src + + + + Applies a GNU Octave/MATLAB equivalent colormap on a given image. + + The source image, grayscale or colored of type CV_8UC1 or CV_8UC3 + The result is the colormapped source image + The type of color map + + + + Applies a user colormap on a given image. + + The source image, grayscale or colored of type CV_8UC1 or CV_8UC3. + The result is the colormapped source image. + The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256 + + + + Check that every array element is neither NaN nor +- inf. The functions also check that each value + is between minVal and maxVal. in the case of multi-channel arrays each channel is processed + independently. If some values are out of range, position of the first outlier is stored in pos, + and then the functions either return false (when quiet=true) or throw an exception. + + The array to check + The flag indicating whether the functions quietly return false when the array elements are + out of range, or they throw an exception + This will be filled with the position of the first outlier + The inclusive lower boundary of valid values range + The exclusive upper boundary of valid values range + If quiet, return true if all values are in range + + + + Converts NaN's to the given number + + The array where NaN needs to be converted + The value to convert to + + + + Computes an optimal affine transformation between two 3D point sets. + + First input 3D point set. + Second input 3D point set. + Output 3D affine transformation matrix. + Output vector indicating which points are inliers. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + The result + + + + Computes an optimal affine transformation between two 3D point sets. + + First input 3D point set. + Second input 3D point set. + Output 3D affine transformation matrix 3 x 4 + Output vector indicating which points are inliers. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + the result + + + + Finds the global minimum and maximum in an array + + Input single-channel array. + The returned minimum value + The returned maximum value + The returned minimum location + The returned maximum location + The extremums are searched across the whole array if mask is IntPtr.Zert. Otherwise, search is performed in the specified array region. + + + + Applies arbitrary linear filter to the image. In-place operation is supported. When the aperture is partially outside the image, the function interpolates outlier pixel values from the nearest pixels that is inside the image + + The source image + The destination image + Convolution kernel, single-channel floating point matrix. If you want to apply different kernels to different channels, split the image using cvSplit into separate color planes and process them individually + The anchor of the kernel that indicates the relative position of a filtered point within the kernel. The anchor shoud lie within the kernel. The special default value (-1,-1) means that it is at the kernel center + The optional value added to the filtered pixels before storing them in dst + The pixel extrapolation method. + + + + The function applies a separable linear filter to the image. That is, first, every row of src is filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D kernel kernelY. The final result shifted by delta is stored in dst . + + Source image. + Destination image of the same size and the same number of channels as src. + Destination image depth + Coefficients for filtering each row. + Coefficients for filtering each column. + Anchor position within the kernel. The value (-1,-1) means that the anchor is at the kernel center. + Value added to the filtered results before storing them. + Pixel extrapolation method + + + + Performs linear blending of two images: + dst(i, j)=weights1(i, j) x src1(i, j) + weights2(i, j) x src2(i, j) + + It has a type of CV_8UC(n) or CV_32FC(n), where n is a positive integer. + It has the same type and size as src1. + It has a type of CV_32FC1 and the same size with src1. + It has a type of CV_32FC1 and the same size with src1. + It is created if it does not have the same size and type with src1. + + + + Contrast Limited Adaptive Histogram Equalization (CLAHE) + + The source image + Clip Limit, use 40 for default + Tile grid size, use (8, 8) for default + The destination image + + + + This function retrieve the Open CV structure sizes in unmanaged code + + The structure that will hold the Open CV structure sizes + + + + Finds centers in the grid of circles + + Source chessboard view + The number of inner circle per chessboard row and column + Various operation flags + The feature detector. Use a SimpleBlobDetector for default + The center of circles detected if the chess board pattern is found, otherwise null is returned + + + + Finds centers in the grid of circles + + Source chessboard view + The number of inner circle per chessboard row and column + Various operation flags + The feature detector. Use a SimpleBlobDetector for default + output array of detected centers. + True if grid found. + + + + The file name of the cvextern library + + + + + The file name of the cvextern library + + + + + The file name of the opencv_ffmpeg library + + + + + The List of the opencv modules + + + + + Creates a window which can be used as a placeholder for images and trackbars. Created windows are reffered by their names. + If the window with such a name already exists, the function does nothing. + + Name of the window which is used as window identifier and appears in the window caption + Flags of the window. + + + + Waits for key event infinitely (delay <= 0) or for "delay" milliseconds. + + Delay in milliseconds. + The code of the pressed key or -1 if no key were pressed until the specified timeout has elapsed + + + + Shows the image in the specified window + + Name of the window + Image to be shown + + + + Destroys the window with a given name + + Name of the window to be destroyed + + + + Destroys all of the HighGUI windows. + + + + + Selects ROI on the given image. Function creates a window and allows user to select a ROI using mouse. Controls: use space or enter to finish selection, use key c to cancel selection (function will return the zero cv::Rect). + + Name of the window where selection process will be shown. + Image to select a ROI. + If true crosshair of selection rectangle will be shown. + If true center of selection will match initial mouse position. In opposite case a corner of selection rectangle will correspont to the initial mouse position. + Selected ROI or empty rect if selection canceled. + + + + Selects ROIs on the given image. Function creates a window and allows user to select a ROIs using mouse. Controls: use space or enter to finish current selection and start a new one, use esc to terminate multiple ROI selection process. + + Name of the window where selection process will be shown. + Image to select a ROI. + If true crosshair of selection rectangle will be shown. + If true center of selection will match initial mouse position. In opposite case a corner of selection rectangle will correspont to the initial mouse position. + Selected ROIs. + + + + Loads an image from the specified file and returns the pointer to the loaded image. Currently the following file formats are supported: + Windows bitmaps - BMP, DIB; + JPEG files - JPEG, JPG, JPE; + Portable Network Graphics - PNG; + Portable image format - PBM, PGM, PPM; + Sun rasters - SR, RAS; + TIFF files - TIFF, TIF; + OpenEXR HDR images - EXR; + JPEG 2000 images - jp2. + + The name of the file to be loaded + The image loading type + The loaded image + + + + The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects. + + Name of file to be loaded. + Read flags + Null if the reading fails, otherwise, an array of Mat from the file + + + + Saves the image to the specified file. The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format + + The name of the file to be saved to + The image to be saved + The parameters + true if success + + + + Decode image stored in the buffer + + The buffer + The image loading type + The output placeholder for the decoded matrix. + + + + Decode image stored in the buffer + + The buffer + The image loading type + The output placeholder for the decoded matrix. + + + + encode image and store the result as a byte vector. + + The image format + The image + Output buffer resized to fit the compressed image. + The pointer to the array of integers, which contains the parameter for encoding, use IntPtr.Zero for default + + + + Extracts pixels from src: + dst(x, y) = src(x + center.x - (width(dst)-1)*0.5, y + center.y - (height(dst)-1)*0.5) + where the values of pixels at non-integer coordinates are retrieved using bilinear interpolation. Every channel of multiple-channel images is processed independently. Whereas the rectangle center must be inside the image, the whole rectangle may be partially occluded. In this case, the replication border mode is used to get pixel values beyond the image boundaries. + + Source image + Size of the extracted patch. + Extracted rectangle + Depth of the extracted pixels. By default, they have the same depth as . + Floating point coordinates of the extracted rectangle center within the source image. The center must be inside the image. + + + + Resizes the image src down to or up to the specified size + + Source image. + Destination image + Output image size; if it equals zero, it is computed as: dsize=Size(round(fx*src.cols), round(fy * src.rows)). Either dsize or both fx and fy must be non-zero. + Scale factor along the horizontal axis + Scale factor along the vertical axis; + Interpolation method + + + + Resize an image such that it fits in a given frame + + The source image + The result image + The size of the frame + The interpolation method + If true, it will not try to scale up the image to fit the frame + + + + Applies an affine transformation to an image. + + Source image + Destination image + 2x3 transformation matrix + Size of the output image. + Interpolation method + Warp method + Pixel extrapolation method + A value used to fill outliers + + + + Calculates the matrix of an affine transform such that: + (x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2. + + Coordinates of 3 triangle vertices in the source image. If the array contains more than 3 points, only the first 3 will be used + Coordinates of the 3 corresponding triangle vertices in the destination image. If the array contains more than 3 points, only the first 3 will be used + The 2x3 rotation matrix that defines the Affine transform + + + + Calculates the matrix of an affine transform such that: + (x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2. + + Pointer to an array of PointF, Coordinates of 3 triangle vertices in the source image. + Pointer to an array of PointF, Coordinates of the 3 corresponding triangle vertices in the destination image + The destination 2x3 matrix + + + + Calculates rotation matrix + + Center of the rotation in the source image. + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at top-left corner). + Isotropic scale factor + Pointer to the destination 2x3 matrix + Pointer to the destination 2x3 matrix + + + + Applies a perspective transformation to an image + + Source image + Destination image + 3x3 transformation matrix + Size of the output image + Interpolation method + Warp method + Pixel extrapolation method + value used in case of a constant border + + + + calculates matrix of perspective transform such that: + (t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3. + + Coordinates of 4 quadrangle vertices in the source image + Coordinates of the 4 corresponding quadrangle vertices in the destination image + The perspective transform matrix + + + + calculates matrix of perspective transform such that: + (t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)^T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3. + + Coordinates of 4 quadrangle vertices in the source image + Coordinates of the 4 corresponding quadrangle vertices in the destination image + The 3x3 Homography matrix + + + + Applies a generic geometrical transformation to an image. + + Source image + Destination image + The first map of either (x,y) points or just x values having the type CV_16SC2 , CV_32FC1 , or CV_32FC2 . See convertMaps() for details on converting a floating point representation to fixed-point for speed. + The second map of y values having the type CV_16UC1 , CV_32FC1 , or none (empty map if map1 is (x,y) points), respectively. + Interpolation method (see resize() ). The method 'Area' is not supported by this function. + Pixel extrapolation method + A value used to fill outliers + + + + Inverts an affine transformation + + Original affine transformation + Output reverse affine transformation. + + + + The function emulates the human "foveal" vision and can be used for fast scale and rotation-invariant template matching, for object tracking etc. + + Source image + Destination image + The transformation center, where the output precision is maximal + Magnitude scale parameter + Interpolation method + warp method + + + + The function emulates the human "foveal" vision and can be used for fast scale and rotation-invariant template matching, for object tracking etc. + + Source image + Destination image + The transformation center, where the output precision is maximal + Maximum radius + Interpolation method + Warp method + + + + Performs downsampling step of Gaussian pyramid decomposition. First it convolves source image with the specified filter and then downsamples the image by rejecting even rows and columns. + + The source image. + The destination image, should have 2x smaller width and height than the source. + Border type + + + + Performs up-sampling step of Gaussian pyramid decomposition. First it upsamples the source image by injecting even zero rows and columns and then convolves result with the specified filter multiplied by 4 for interpolation. So the destination image is four times larger than the source image. + + The source image. + The destination image, should have 2x smaller width and height than the source. + Border type + + + + The function constructs a vector of images and builds the Gaussian pyramid by recursively applying pyrDown to the previously built pyramid layers, starting from dst[0]==src. + + Source image. Check pyrDown for the list of supported types. + Destination vector of maxlevel+1 images of the same type as src. dst[0] will be the same as src. dst[1] is the next pyramid layer, a smoothed and down-sized src, and so on. + 0-based index of the last (the smallest) pyramid layer. It must be non-negative. + Pixel extrapolation method + + + + Implements one of the variants of watershed, non-parametric marker-based segmentation algorithm, described in [Meyer92] Before passing the image to the function, user has to outline roughly the desired regions in the image markers with positive (>0) indices, i.e. every region is represented as one or more connected components with the pixel values 1, 2, 3 etc. Those components will be "seeds" of the future image regions. All the other pixels in markers, which relation to the outlined regions is not known and should be defined by the algorithm, should be set to 0's. On the output of the function, each pixel in markers is set to one of values of the "seed" components, or to -1 at boundaries between the regions. + + Note, that it is not necessary that every two neighbor connected components are separated by a watershed boundary (-1's pixels), for example, in case when such tangent components exist in the initial marker image. + The input 8-bit 3-channel image + The input/output Int32 depth single-channel image (map) of markers. + + + + Finds minimum area rectangle that contains both input rectangles inside + + First rectangle + Second rectangle + The minimum area rectangle that contains both input rectangles inside + + + + Fits line to 2D or 3D point set + + Input vector of 2D or 3D points, stored in std::vector or Mat. + The distance used for fitting + Numerical parameter (C) for some types of distances, if 0 then some optimal value is chosen + Sufficient accuracy for radius (distance between the coordinate origin and the line), 0.01 would be a good default + Sufficient accuracy for angle, 0.01 would be a good default + Output line parameters. In case of 2D fitting, it should be a vector of 4 elements (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line + and (x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements + (like Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector + collinear to the line and (x0, y0, z0) is a point on the line. + + + + + Fits line to 2D or 3D point set + + Input vector of 2D points. + The distance used for fitting + Numerical parameter (C) for some types of distances, if 0 then some optimal value is chosen + Sufficient accuracy for radius (distance between the coordinate origin and the line), 0.01 would be a good default + Sufficient accuracy for angle, 0.01 would be a good default + A normalized vector collinear to the line + A point on the line. + + + + Finds out if there is any intersection between two rotated rectangles. + + First rectangle + Second rectangle + The output array of the verticies of the intersecting region. It returns at most 8 vertices. Stored as VectorOfPointF or Mat as Mx1 of type CV_32FC2. + The intersect type + + + + Calculates vertices of the input 2d box. + + The box + The four vertices of rectangles. + + + + Calculates vertices of the input 2d box. + + The box + The output array of four vertices of rectangles. + + + + Fits an ellipse around a set of 2D points. + + Input 2D point set + The ellipse that fits best (in least-squares sense) to a set of 2D points + + + + The function calculates the ellipse that fits a set of 2D points. The Approximate Mean Square (AMS) is used. + + Input 2D point set + The rotated rectangle in which the ellipse is inscribed + + + + The function calculates the ellipse that fits a set of 2D points. The Direct least square (Direct) method by [58] is used. + + Input 2D point set + The rotated rectangle in which the ellipse is inscribed + + + + Finds convex hull of 2D point set using Sklansky's algorithm + + The points to find convex hull from + Orientation flag. If it is true, the output convex hull is oriented clockwise. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing to the right, and its Y axis pointing upwards. + The convex hull of the points + + + + The function cvConvexHull2 finds convex hull of 2D point set using Sklansky's algorithm. + + Input 2D point set + Output convex hull. It is either an integer vector of indices or vector of points. In the first case, the hull elements are 0-based indices of the convex hull points in the original array (since the set of convex hull points is a subset of the original point set). In the second case, hull elements are the convex hull points themselves. + Orientation flag. If it is true, the output convex hull is oriented clockwise. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing to the right, and its Y axis pointing upwards. + Operation flag. In case of a matrix, when the flag is true, the function returns convex hull points. Otherwise, it returns indices of the convex hull points. When the output array is std::vector, the flag is ignored, and the output depends on the type of the vector + + + + The default morphology value. + + + + + Erodes the source image using the specified structuring element that determines the shape of a pixel neighborhood over which the minimum is taken: + dst=erode(src,element): dst(x,y)=min((x',y') in element)) src(x+x',y+y') + The function supports the in-place mode. Erosion can be applied several (iterations) times. In case of color image each channel is processed independently. + + Source image. + Destination image + Structuring element used for erosion. If it is IntPtr.Zero, a 3x3 rectangular structuring element is used. + Number of times erosion is applied. + Pixel extrapolation method + Border value in case of a constant border, use Constant for default + Position of the anchor within the element; default value (-1, -1) means that the anchor is at the element center. + + + + Dilates the source image using the specified structuring element that determines the shape of a pixel neighborhood over which the maximum is taken + The function supports the in-place mode. Dilation can be applied several (iterations) times. In case of color image each channel is processed independently + + Source image + Destination image + Structuring element used for erosion. If it is IntPtr.Zero, a 3x3 rectangular structuring element is used + Number of times erosion is applied + Pixel extrapolation method + Border value in case of a constant border + Position of the anchor within the element; default value (-1, -1) means that the anchor is at the element center. + + + + Blurs an image using a Gaussian filter. + + input image; the image can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. + output image of the same size and type as src. + Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd. Or, they can be zero’s and then they are computed from sigma* . + Gaussian kernel standard deviation in X direction. + Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height , respectively (see getGaussianKernel() for details); to fully control the result regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY. + Pixel extrapolation method + + + + Blurs an image using the normalized box filter. + + input image; it can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. + Output image of the same size and type as src. + Blurring kernel size. + Anchor point; default value Point(-1,-1) means that the anchor is at the kernel center. + Border mode used to extrapolate pixels outside of the image. + + + + Blurs an image using the median filter. + + Input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U. + Destination array of the same size and type as src. + Aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... + + + + Blurs an image using the box filter. + + Input image. + Output image of the same size and type as src. + The output image depth (-1 to use src.depth()). + Blurring kernel size. + Anchor point; default value Point(-1,-1) means that the anchor is at the kernel center. + Specifying whether the kernel is normalized by its area or not. + Border mode used to extrapolate pixels outside of the image. + + + + Calculates the normalized sum of squares of the pixel values overlapping the filter. + For every pixel(x, y) in the source image, the function calculates the sum of squares of those neighboring pixel values which overlap the filter placed over the pixel(x, y). + The unnormalized square box filter can be useful in computing local image statistics such as the the local variance and standard deviation around the neighborhood of a pixel. + + input image + output image of the same size and type as src + the output image depth (-1 to use src.depth()) + kernel size + kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel center + flag, specifying whether the kernel is to be normalized by it's area or not. + border mode used to extrapolate pixels outside of the image + + + + Applies the bilateral filter to an image. + + Source 8-bit or floating-point, 1-channel or 3-channel image. + Destination image of the same size and type as src . + Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace . + Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace ) will be mixed together, resulting in larger areas of semi-equal color. + Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0 , it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is proportional to sigmaSpace. + Border mode used to extrapolate pixels outside of the image. + + + + The Sobel operators combine Gaussian smoothing and differentiation so the result is more or less robust to the noise. Most often, the function is called with (xorder=1, yorder=0, aperture_size=3) or (xorder=0, yorder=1, aperture_size=3) to calculate first x- or y- image derivative. The first case corresponds to +
 
+              |-1  0  1|
+              |-2  0  2|
+              |-1  0  1|
+ kernel and the second one corresponds to +
+              |-1 -2 -1|
+              | 0  0  0|
+              | 1  2  1|
+ or +
+              | 1  2  1|
+              | 0  0  0|
+              |-1 -2 -1|
+ kernel, depending on the image origin (origin field of IplImage structure). No scaling is done, so the destination image usually has larger by absolute value numbers than the source image. To avoid overflow, the function requires 16-bit destination image if the source image is 8-bit. The result can be converted back to 8-bit using cvConvertScale or cvConvertScaleAbs functions. Besides 8-bit images the function can process 32-bit floating-point images. Both source and destination must be single-channel images of equal size or ROI size +
+ Source image. + Destination image + output image depth; the following combinations of src.depth() and ddepth are supported: + src.depth() = CV_8U, ddepth = -1/CV_16S/CV_32F/CV_64F + src.depth() = CV_16U/CV_16S, ddepth = -1/CV_32F/CV_64F + src.depth() = CV_32F, ddepth = -1/CV_32F/CV_64F + src.depth() = CV_64F, ddepth = -1/CV_64F + when ddepth=-1, the destination image will have the same depth as the source; in the case of 8-bit input images it will result in truncated derivatives. + Order of the derivative x + Order of the derivative y + Size of the extended Sobel kernel, must be 1, 3, 5 or 7. + Pixel extrapolation method + Optional scale factor for the computed derivative values + Optional delta value that is added to the results prior to storing them in +
+ + + Calculates the first order image derivative in both x and y using a Sobel operator. Equivalent to calling: + Sobel(src, dx, CV_16SC1, 1, 0, 3 ); + Sobel(src, dy, CV_16SC1, 0, 1, 3 ); + + input image. + output image with first-order derivative in x. + output image with first-order derivative in y. + size of Sobel kernel. It must be 3. + pixel extrapolation method + + + + Calculates the first x- or y- image derivative using Scharr operator. + + input image. + output image of the same size and the same number of channels as src. + output image depth + order of the derivative x. + order of the derivative y. + optional scale factor for the computed derivative values; by default, no scaling is applied + optional delta value that is added to the results prior to storing them in dst. + pixel extrapolation method + + + + Calculates Laplacian of the source image by summing second x- and y- derivatives calculated using Sobel operator: + dst(x,y) = d2src/dx2 + d2src/dy2 + Specifying aperture_size=1 gives the fastest variant that is equal to convolving the image with the following kernel: + |0 1 0| + |1 -4 1| + |0 1 0| + Similar to cvSobel function, no scaling is done and the same combinations of input and output formats are supported. + + Source image. + Destination image. Should have type of float + Desired depth of the destination image. + Aperture size used to compute the second-derivative filters. + Optional scale factor for the computed Laplacian values. By default, no scaling is applied. + Optional delta value that is added to the results prior to storing them in dst. + Pixel extrapolation method. + + + + Finds the edges on the input and marks them in the output image edges using the Canny algorithm. The smallest of threshold1 and threshold2 is used for edge linking, the largest - to find initial segments of strong edges. + + Input image + Image to store the edges found by the function + The first threshold + The second threshold. + Aperture parameter for Sobel operator + a flag, indicating whether a more accurate norm should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default norm is enough ( L2gradient=false ). + + + + Finds the edges on the input , and marks them in the output image edges using the Canny algorithm. The smallest of threshold1 and threshold2 is used for edge linking, the largest - to find initial segments of strong edges. + + 16-bit x derivative of input image + 16-bit y derivative of input image + Image to store the edges found by the function + The first threshold + The second threshold. + a flag, indicating whether a more accurate norm should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default norm is enough ( L2gradient=false ). + + + + The function tests whether the input contour is convex or not. The contour must be simple, that is, without self-intersections. Otherwise, the function output is undefined. + + Input vector of 2D points + true if input is convex + + + + finds intersection of two convex polygons + + The first convex polygon + The second convex polygon + The intersection of the convex polygon + Handle nest + + + + + Determines whether the point is inside contour, outside, or lies on an edge (or coinsides with a vertex). It returns positive, negative or zero value, correspondingly + + Input contour + The point tested against the contour + If != 0, the function estimates distance from the point to the nearest contour edge + + When measureDist = false, the return value is >0 (inside), <0 (outside) and =0 (on edge), respectively. + When measureDist != true, it is a signed distance between the point and the nearest contour edge + + + + + Finds the convexity defects of a contour. + + Input contour + Convex hull obtained using ConvexHull that should contain pointers or indices to the contour points, not the hull points themselves, i.e. return_points parameter in cvConvexHull2 should be 0 + The output vector of convexity defects. Each convexity defect is represented as 4-element integer vector (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices in the original contour of the convexity defect beginning, end and the farthest point, and fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the farthest contour point and the hull. That is, to get the floating-point value of the depth will be fixpt_depth/256.0. + + + + Find the bounding rectangle for the specific array of points + + The collection of points + The bounding rectangle for the array of points + + + + Finds a rotated rectangle of the minimum area enclosing the input 2D point set. + + Input vector of 2D points + a circumscribed rectangle of the minimal area for 2D point set + + + + Finds the minimal circumscribed circle for 2D point set using iterative algorithm. It returns nonzero if the resultant circle contains all the input points and zero otherwise (i.e. algorithm failed) + + Sequence or array of 2D points + The minimal circumscribed circle for 2D point set + + + + Finds the minimal circumscribed circle for 2D point set using iterative algorithm. It returns nonzero if the resultant circle contains all the input points and zero otherwise (i.e. algorithm failed) + + Sequence or array of 2D points + The minimal circumscribed circle for 2D point set + + + + Finds a triangle of minimum area enclosing a 2D point set and returns its area. + + Input vector of 2D points with depth CV_32S or CV_32F + Output vector of three 2D points defining the vertices of the triangle. The depth of the OutputArray must be CV_32F. + The triangle's area + + + + Approximates a polygonal curve(s) with the specified precision. + + Input vector of a 2D point + Result of the approximation. The type should match the type of the input curve. + Parameter specifying the approximation accuracy. This is the maximum distance between the original curve and its approximation. + If true, the approximated curve is closed (its first and last vertices are connected). Otherwise, it is not closed. + + + + Returns the up-right bounding rectangle for 2d point set + + Input 2D point set, stored in std::vector or Mat. + The up-right bounding rectangle for 2d point set + + + + Calculates area of the whole contour or contour section. + + Input vector of 2D points (contour vertices), stored in std::vector or Mat. + Oriented area flag. If it is true, the function returns a signed area value, depending on the contour orientation (clockwise or counter-clockwise). + Using this feature you can determine orientation of a contour by taking the sign of an area. + By default, the parameter is false, which means that the absolute value is returned. + The area of the whole contour or contour section + + + + Calculates a contour perimeter or a curve length + + Sequence or array of the curve points + + Indicates whether the curve is closed or not. + + Contour perimeter or a curve length + + + + Applies a fixed-level threshold to each array element. + The function applies fixed-level thresholding to a multiple-channel array. The function is typically used to get a bi-level (binary) image out of a grayscale image ( compare could be also used for this purpose) or for removing a noise, that is, filtering out pixels with too small or too large values. There are several types of thresholding supported by the function. They are determined by type parameter. + + Input array (multiple-channel, 8-bit or 32-bit floating point). + Output array of the same size and type and the same number of channels as src. + Threshold value + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Thresholding type + + + + Transforms grayscale image to binary image. + Threshold calculated individually for each pixel. + For the method CV_ADAPTIVE_THRESH_MEAN_C it is a mean of x pixel + neighborhood, subtracted by param1. + For the method CV_ADAPTIVE_THRESH_GAUSSIAN_C it is a weighted sum (gaussian) of x pixel neighborhood, subtracted by param1. + + Source array (single-channel, 8-bit of 32-bit floating point). + Destination array; must be either the same type as src or 8-bit. + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Adaptive_method + Thresholding type. must be one of CV_THRESH_BINARY, CV_THRESH_BINARY_INV + The size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, ... + Constant subtracted from mean or weighted mean. It may be negative. + + + + Retrieves contours from the binary image and returns the number of retrieved contours. The pointer firstContour is filled by the function. It will contain pointer to the first most outer contour or IntPtr.Zero if no contours is detected (if the image is completely black). Other contours may be reached from firstContour using h_next and v_next links. The sample in cvDrawContours discussion shows how to use contours for connected component detection. Contours can be also used for shape analysis and object recognition - see squares.c in OpenCV sample directory + The function modifies the source image content + + The source 8-bit single channel image. Non-zero pixels are treated as 1s, zero pixels remain 0s - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content + Detected contours. Each contour is stored as a vector of points. + Optional output vector, containing information about the image topology. + Retrieval mode + Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation). + Offset, by which every contour point is shifted. This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context + The number of countours + + + + Retrieves contours from the binary image as a contour tree. The pointer firstContour is filled by the function. It is provided as a convenient way to obtain the hierarchy value as int[,]. + The function modifies the source image content + + The source 8-bit single channel image. Non-zero pixels are treated as 1s, zero pixels remain 0s - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content + Detected contours. Each contour is stored as a vector of points. + Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation). + Offset, by which every contour point is shifted. This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context + The contour hierarchy + + + + Convert raw data to bitmap + + The pointer to the raw data + The step + The size of the image + The source image color type + The number of channels + The source image depth type + Try to create Bitmap that shares the data with the image + The Bitmap + + + + Converts input image from one color space to another. The function ignores colorModel and channelSeq fields of IplImage header, so the source image color space should be specified correctly (including order of the channels in case of RGB space, e.g. BGR means 24-bit format with B0 G0 R0 B1 G1 R1 ... layout, whereas RGB means 24-bit format with R0 G0 B0 R1 G1 B1 ... layout). + + The source 8-bit (8u), 16-bit (16u) or single-precision floating-point (32f) image + The destination image of the same data type as the source one. The number of channels may be different + Source color type. + Destination color type + + + + Converts input image from one color space to another. The function ignores colorModel and channelSeq fields of IplImage header, so the source image color space should be specified correctly (including order of the channels in case of RGB space, e.g. BGR means 24-bit format with B0 G0 R0 B1 G1 R1 ... layout, whereas RGB means 24-bit format with R0 G0 B0 R1 G1 B1 ... layout). + + The source 8-bit (8u), 16-bit (16u) or single-precision floating-point (32f) image + The destination image of the same data type as the source one. The number of channels may be different + Color conversion operation that can be specifed using CV_src_color_space2dst_color_space constants + number of channels in the destination image; if the parameter is 0, the number of the channels is derived automatically from src and code . + + + + Finds circles in grayscale image using some modification of Hough transform + + The input 8-bit single-channel grayscale image + The storage for the circles detected. It can be a memory storage (in this case a sequence of circles is created in the storage and returned by the function) or single row/single column matrix (CvMat*) of type CV_32FC3, to which the circles' parameters are written. The matrix header is modified by the function so its cols or rows will contain a number of lines detected. If circle_storage is a matrix and the actual number of lines exceeds the matrix size, the maximum possible number of circles is returned. Every circle is encoded as 3 floating-point numbers: center coordinates (x,y) and the radius + Currently, the only implemented method is CV_HOUGH_GRADIENT + Resolution of the accumulator used to detect centers of the circles. For example, if it is 1, the accumulator will have the same resolution as the input image, if it is 2 - accumulator will have twice smaller width and height, etc + Minimum distance between centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed + The first method-specific parameter. In case of CV_HOUGH_GRADIENT it is the higher threshold of the two passed to Canny edge detector (the lower one will be twice smaller). + The second method-specific parameter. In case of CV_HOUGH_GRADIENT it is accumulator threshold at the center detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first + Minimal radius of the circles to search for + Maximal radius of the circles to search for. By default the maximal radius is set to max(image_width, image_height). + Pointer to the sequence of circles + + + + Finds circles in a grayscale image using the Hough transform + + 8-bit, single-channel, grayscale input image. + Detection method to use. Currently, the only implemented method is CV_HOUGH_GRADIENT , which is basically 21HT + Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height. + Minimum distance between the centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed. + First method-specific parameter. In case of CV_HOUGH_GRADIENT , it is the higher threshold of the two passed to the Canny() edge detector (the lower one is twice smaller). + Second method-specific parameter. In case of CV_HOUGH_GRADIENT , it is the accumulator threshold for the circle centers at the detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first. + Minimum circle radius. + Maximum circle radius. + The circles detected + + + + Finds lines in a binary image using the standard Hough transform. + + 8-bit, single-channel binary source image. The image may be modified by the function. + Output vector of lines. Each line is represented by a two-element vector + Distance resolution of the accumulator in pixels. + Angle resolution of the accumulator in radians. + Accumulator threshold parameter. Only those lines are returned that get enough votes (> threshold) + For the multi-scale Hough transform, it is a divisor for the distance resolution rho . The coarse accumulator distance resolution is rho and the accurate accumulator resolution is rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these parameters should be positive. + For the multi-scale Hough transform, it is a divisor for the distance resolution theta + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image. The image may be modified by the function. + Distance resolution of the accumulator in pixels + Angle resolution of the accumulator in radians + Accumulator threshold parameter. Only those lines are returned that get enough votes + Minimum line length. Line segments shorter than that are rejected. + Maximum allowed gap between points on the same line to link them. + The found line segments + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image. The image may be modified by the function. + Output vector of lines. Each line is represented by a 4-element vector (x1, y1, x2, y2) + Distance resolution of the accumulator in pixels + Angle resolution of the accumulator in radians + Accumulator threshold parameter. Only those lines are returned that get enough votes + Minimum line length. Line segments shorter than that are rejected. + Maximum allowed gap between points on the same line to link them. + + + + Calculates spatial and central moments up to the third order and writes them to moments. The moments may be used then to calculate gravity center of the shape, its area, main axises and various shape characeteristics including 7 Hu invariants. + + Image (1-channel or 3-channel with COI set) or polygon (CvSeq of points or a vector of points) + (For images only) If the flag is true, all the zero pixel values are treated as zeroes, all the others are treated as 1s + The moment + + + + This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result + + Image where the search is running. It should be 8-bit or 32-bit floating-point + Searched template; must be not greater than the source image and the same data type as the image + A map of comparison results; single-channel 32-bit floating-point. If image is WxH and templ is wxh then result must be W-w+1xH-h+1. + Specifies the way the template must be compared with image regions + Mask of searched template. It must have the same datatype and size with templ. It is not set by default. + + + + Compares two shapes. The 3 implemented methods all use Hu moments + + First contour or grayscale image + Second contour or grayscale image + Comparison method + Method-specific parameter (is not used now) + The result of the comparison + + + + Returns a structuring element of the specified size and shape for morphological operations. + + Element shape + Size of the structuring element. + Anchor position within the element. The value (-1, -1) means that the anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates how much the result of the morphological operation is shifted. + The structuring element + + + + Performs advanced morphological transformations. + + Source image. + Destination image. + Structuring element. + Type of morphological operation. + Number of times erosion and dilation are applied. + Pixel extrapolation method. + Anchor position with the kernel. Negative values mean that the anchor is at the kernel center. + Border value in case of a constant border. + + + + The algorithm normalizes brightness and increases contrast of the image + + The input 8-bit single-channel image + The output image of the same size and the same data type as src + + + + Calculates a histogram of a set of arrays. + + Source arrays. They all should have the same depth, CV_8U or CV_32F , and the same size. Each of them can have an arbitrary number of channels. + List of the channels used to compute the histogram. + Optional mask. If the matrix is not empty, it must be an 8-bit array of the same size as images[i] . The non-zero mask elements mark the array elements counted in the histogram. + Output histogram + Array of histogram sizes in each dimension. + Array of the dims arrays of the histogram bin boundaries in each dimension. + Accumulation flag. If it is set, the histogram is not cleared in the beginning when it is allocated. This feature enables you to compute a single histogram from several sets of arrays, or to update the histogram in time. + + + + Calculates the back projection of a histogram. + + Source arrays. They all should have the same depth, CV_8U or CV_32F , and the same size. Each of them can have an arbitrary number of channels. + Number of source images. + Input histogram that can be dense or sparse. + Destination back projection array that is a single-channel array of the same size and depth as images[0] . + Array of arrays of the histogram bin boundaries in each dimension. + Optional scale factor for the output back projection. + + + + Compares two histograms. + + First compared histogram. + Second compared histogram of the same size as H1 . + Comparison method + The distance between the histogram + + + + Adds the whole image or its selected region to accumulator sum + + Input image, 1- or 3-channel, 8-bit or 32-bit floating point. (each channel of multi-channel image is processed independently). + Accumulator of the same number of channels as input image, 32-bit or 64-bit floating-point. + Optional operation mask + + + + Adds the input or its selected region, raised to power 2, to the accumulator sqsum + + Input image, 1- or 3-channel, 8-bit or 32-bit floating point (each channel of multi-channel image is processed independently) + Accumulator of the same number of channels as input image, 32-bit or 64-bit floating-point + Optional operation mask + + + + Adds product of 2 images or thier selected regions to accumulator acc + + First input image, 1- or 3-channel, 8-bit or 32-bit floating point (each channel of multi-channel image is processed independently) + Second input image, the same format as the first one + Accumulator of the same number of channels as input images, 32-bit or 64-bit floating-point + Optional operation mask + + + + Calculates weighted sum of input and the accumulator acc so that acc becomes a running average of frame sequence: + acc(x,y)=(1-) * acc(x,y) + * image(x,y) if mask(x,y)!=0 + where regulates update speed (how fast accumulator forgets about previous frames). + + Input image, 1- or 3-channel, 8-bit or 32-bit floating point (each channel of multi-channel image is processed independently). + Accumulator of the same number of channels as input image, 32-bit or 64-bit floating-point. + Weight of input image + Optional operation mask + + + + Runs the Harris edge detector on image. Similarly to cvCornerMinEigenVal and cvCornerEigenValsAndVecs, for each pixel it calculates 2x2 gradient covariation matrix M over block_size x block_size neighborhood. Then, it stores + det(M) - k*trace(M)^2 + to the destination image. Corners in the image can be found as local maxima of the destination image. + + Input image + Image to store the Harris detector responces. Should have the same size as image + Neighborhood size + Aperture parameter for Sobel operator (see cvSobel). format. In the case of floating-point input format this parameter is the number of the fixed float filter used for differencing. + Harris detector free parameter. + Pixel extrapolation method. + + + + Iterates to find the sub-pixel accurate location of corners, or radial saddle points + + Input image + Initial coordinates of the input corners and refined coordinates on output + Half sizes of the search window. For example, if win=(5,5) then 5*2+1 x 5*2+1 = 11 x 11 search window is used + Half size of the dead region in the middle of the search zone over which the summation in formulae below is not done. It is used sometimes to avoid possible singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such size + Criteria for termination of the iterative process of corner refinement. That is, the process of corner position refinement stops either after certain number of iteration or when a required accuracy is achieved. The criteria may specify either of or both the maximum number of iteration and the required accuracy + + + + Calculates one or more integral images for the source image + Using these integral images, one may calculate sum, mean, standard deviation over arbitrary up-right or rotated rectangular region of the image in a constant time. + It makes possible to do a fast blurring or fast block correlation with variable window size etc. In case of multi-channel images sums for each channel are accumulated independently. + + The source image, WxH, 8-bit or floating-point (32f or 64f) image. + The integral image, W+1xH+1, 32-bit integer or double precision floating-point (64f). + The integral image for squared pixel values, W+1xH+1, double precision floating-point (64f). + The integral for the image rotated by 45 degrees, W+1xH+1, the same data type as sum. + Desired depth of the integral and the tilted integral images, CV_32S, CV_32F, or CV_64F. + Desired depth of the integral image of squared pixel values, CV_32F or CV_64F. + + + + Calculates distance to closest zero pixel for all non-zero pixels of source image + + Source 8-bit single-channel (binary) image. + Output image with calculated distances (32-bit floating-point, single-channel). + Type of distance + Size of distance transform mask; can be 3 or 5. + In case of CV_DIST_L1 or CV_DIST_C the parameter is forced to 3, because 3x3 mask gives the same result as 5x5 yet it is faster. + The optional output 2d array of labels of integer type and the same size as src and dst. Can be null if not needed + Type of the label array to build. If labelType==CCOMP then each connected component of zeros in src (as well as all the non-zero pixels closest to the connected component) will be assigned the same label. If labelType==PIXEL then each zero pixel (and all the non-zero pixels closest to it) gets its own label. + + + + Fills a connected component with given color. + + Input 1- or 3-channel, 8-bit or floating-point image. It is modified by the function unless CV_FLOODFILL_MASK_ONLY flag is set. + The starting point. + New value of repainted domain pixels. + Maximal lower brightness/color difference + between the currently observed pixel and one of its neighbor belong to the component + or seed pixel to add the pixel to component. + In case of 8-bit color images it is packed value. + Maximal upper brightness/color difference + between the currently observed pixel and one of its neighbor belong to the component + or seed pixel to add the pixel to component. + In case of 8-bit color images it is packed value. + The operation flags. + Operation mask, + should be singe-channel 8-bit image, 2 pixels wider and 2 pixels taller than image. + If not IntPtr.Zero, the function uses and updates the mask, so user takes responsibility of initializing mask content. + Floodfilling can't go across non-zero pixels in the mask, for example, an edge detector output can be used as a mask to stop filling at edges. + Or it is possible to use the same mask in multiple calls to the function to make sure the filled area do not overlap. + Note: because mask is larger than the filled image, pixel in mask that corresponds to (x,y) pixel in image will have coordinates (x+1,y+1). + Output parameter set by the function to the minimum bounding rectangle of the repainted domain. + Flood fill connectivity + The area of the connected component + + + + Filters image using meanshift algorithm + + Source image + Result image + The spatial window radius. + The color window radius. + Maximum level of the pyramid for the segmentation. Use 1 as default value + Termination criteria: when to stop meanshift iterations. Use new MCvTermCriteria(5, 1) as default value + + + + Converts image transformation maps from one representation to another. + + The first input map of type CV_16SC2 , CV_32FC1 , or CV_32FC2 . + The second input map of type CV_16UC1 , CV_32FC1 , or none (empty matrix), respectively. + The first output map that has the type dstmap1type and the same size as src . + The second output map. + Depth type of the first output map that should be CV_16SC2 , CV_32FC1 , or CV_32FC2. + The number of channels in the dst map. + Flag indicating whether the fixed-point maps are used for the nearest-neighbor or for a more complex interpolation. + + + + Computes the 'minimal work' distance between two weighted point configurations. + + First signature, a size1 x dims + 1 floating-point matrix. Each row stores the point weight followed by the point coordinates. The matrix is allowed to have a single column (weights only) if the user-defined cost matrix is used. + Second signature of the same format as signature1 , though the number of rows may be different. The total weights may be different. In this case an extra 'dummy' point is added to either signature1 or signature2 + Used metric. CV_DIST_L1, CV_DIST_L2 , and CV_DIST_C stand for one of the standard metrics. CV_DIST_USER means that a pre-calculated cost matrix cost is used. + User-defined size1 x size2 cost matrix. Also, if a cost matrix is used, lower boundary lowerBound cannot be calculated because it needs a metric function. + Optional input/output parameter: lower boundary of a distance between the two signatures that is a distance between mass centers. The lower boundary may not be calculated if the user-defined cost matrix is used, the total weights of point configurations are not equal, or if the signatures consist of weights only (the signature matrices have a single column). + Resultant size1 x size2 flow matrix + The 'minimal work' distance between two weighted point configurations. + + + + The function is used to detect translational shifts that occur between two images. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in the frequency domain. It can be used for fast image registration as well as motion estimation. + + Source floating point array (CV_32FC1 or CV_64FC1) + Source floating point array (CV_32FC1 or CV_64FC1) + Floating point array with windowing coefficients to reduce edge effects (optional). + Signal power within the 5x5 centroid around the peak, between 0 and 1 + The translational shifts that occur between two images + + + + This function computes a Hanning window coefficients in two dimensions. + + Destination array to place Hann coefficients in + The window size specifications + Created array type + + + + Draws the line segment between pt1 and pt2 points in the image. The line is clipped by the image or ROI rectangle. For non-antialiased lines with integer coordinates the 8-connected or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased lines are drawn using Gaussian filtering. + + The image + First point of the line segment + Second point of the line segment + Line color + Line thickness. + Type of the line: + 8 (or 0) - 8-connected line. + 4 - 4-connected line. + CV_AA - antialiased line. + + Number of fractional bits in the point coordinates + + + + Draws a arrow segment pointing from the first point to the second one. + + Image + The point the arrow starts from. + The point the arrow points to. + Line color. + Line thickness. + Type of the line. + Number of fractional bits in the point coordinates. + The length of the arrow tip in relation to the arrow length + + + + Draws a single or multiple polygonal curves + + Image + Array points + + Indicates whether the polylines must be drawn closed. + If !=0, the function draws the line from the last vertex of every contour to the first vertex. + + Polyline color + Thickness of the polyline edges + Type of the line segments, see cvLine description + Number of fractional bits in the vertex coordinates + + + + Draws a single or multiple polygonal curves + + Image + Array of pointers to polylines + + Indicates whether the polylines must be drawn closed. + If !=0, the function draws the line from the last vertex of every contour to the first vertex. + + Polyline color + Thickness of the polyline edges + Type of the line segments, see cvLine description + Number of fractional bits in the vertex coordinates + + + + Draws a rectangle specified by a CvRect structure + + /// Image + The rectangle to be drawn + Line color + Thickness of lines that make up the rectangle. Negative values make the function to draw a filled rectangle. + Type of the line + Number of fractional bits in the point coordinates + + + + Computes the connected components labeled image of boolean image + + The boolean image + The connected components labeled image of boolean image + 4 or 8 way connectivity + Specifies the output label image type, an important consideration based on the total number of labels or alternatively the total number of pixels in the source image + N, the total number of labels [0, N-1] where 0 represents the background label. + + + + Computes the connected components labeled image of boolean image + + The boolean image + The connected components labeled image of boolean image + Statistics output for each label, including the background label, see below for available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of cv::ConnectedComponentsTypes. The data type is CV_32S + Centroid output for each label, including the background label. Centroids are accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F. + 4 or 8 way connectivity + Specifies the output label image type, an important consideration based on the total number of labels or alternatively the total number of pixels in the source image + N, the total number of labels [0, N-1] where 0 represents the background label. + + + + Calculates seven Hu invariants + + The output Hu moments. e.g. a Mat can be passed here. + The image moment + + + + Calculates seven Hu invariants + + The image moment + The output Hu moments. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + Weights + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + weights + level weights + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + reject levels + level weights + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + found weights + found scales + detect threshold, use 0 for default + win det size, use (64, 128) for default + + + + Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method). + What we mean here by “linear programming problem” (or LP problem, for short) can be formulated as: + Maximize c x subject to: Ax <= b and x >= 0 + + This row-vector corresponds to c in the LP problem formulation (see above). It should contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted, in the latter case it is understood to correspond to c^T. + m-by-n+1 matrix, whose rightmost column corresponds to b in formulation above and the remaining to A. It should containt 32- or 64-bit floating point numbers. + The solution will be returned here as a column-vector - it corresponds to c in the formulation above. It will contain 64-bit floating point numbers. + The return codes + + + + Primal-dual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional). + As the image denoising, in particular, may be seen as the variational problem, primal-dual algorithm then can be used to perform + denoising and this is exactly what is implemented. + + This array should contain one or more noised versions of the image that is to be restored. + Here the denoised image will be stored. There is no need to do pre-allocation of storage space, as it will be automatically allocated, if necessary. + Corresponds to in the formulas above. As it is enlarged, the smooth (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly speaking, as it becomes smaller, the result will be more blur but more sever outliers will be removed. + Number of iterations that the algorithm will run. Of course, as more iterations as better, but it is hard to quantitatively refine this statement, so just use the default and increase it if the results are poor. + + + + Reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable objects from still images or video. + + The input 8-bit 1-channel or 3-channel image + The inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that needs to be inpainted + The output image of the same format and the same size as input + The inpainting method + The radius of circular neighborhood of each point inpainted that is considered by the algorithm + + + + Perform image denoising using Non-local Means Denoising algorithm: + http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/ + with several computational optimizations. Noise expected to be a Gaussian white noise. + + Input 8-bit 1-channel, 2-channel or 3-channel image. + Output image with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + Size in pixels of the template patch that is used to compute weights. Should be odd. + Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. + + + + Perform image denoising using Non-local Means Denoising algorithm (modified for color image): + http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/ + with several computational optimizations. Noise expected to be a Gaussian white noise. + The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function. + + Input 8-bit 1-channel, 2-channel or 3-channel image. + Output image with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + The same as h but for color components. For most images value equals 10 will be enought to remove colored noise and do not distort colors. + Size in pixels of the template patch that is used to compute weights. Should be odd. + Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. + + + + Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters are used in many different applications. + + Input 8-bit 3-channel image + Output 8-bit 3-channel image + Edge preserving filters + Range between 0 to 200 + Range between 0 to 1 + + + + This filter enhances the details of a particular image. + + Input 8-bit 3-channel image + Output image with the same size and type as src + Range between 0 to 200 + Range between 0 to 1 + + + + Pencil-like non-photorealistic line drawing + + Input 8-bit 3-channel image + Output 8-bit 1-channel image + Output image with the same size and type as src + Range between 0 to 200 + Range between 0 to 1 + Range between 0 to 0.1 + + + + Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, high-contrast features. + + Input 8-bit 3-channel image. + Output image with the same size and type as src. + Range between 0 to 200. + Range between 0 to 1. + + + + Given an original color image, two differently colored versions of this image can be mixed seamlessly. + + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Output image with the same size and type as src . + R-channel multiply factor. Multiplication factor is between .5 to 2.5. + G-channel multiply factor. Multiplication factor is between .5 to 2.5. + B-channel multiply factor. Multiplication factor is between .5 to 2.5. + + + + Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image. + + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Output image with the same size and type as src. + Value ranges between 0-2. + Value ranges between 0-2. + + + + By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge Detector is used. + + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Output image with the same size and type as src. + Range from 0 to 100. + Value > 100 + The size of the Sobel kernel to be used. + + + + Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized black-and-white photograph rendering, and in many single channel image processing applications + + Input 8-bit 3-channel image. + Output 8-bit 1-channel image. + Output 8-bit 3-channel image. + + + + Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or local changes concerned to a selection. Here we are interested in achieving local changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless manner. The extent of the changes ranges from slight distortions to complete replacement by novel content + + Input 8-bit 3-channel image. + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Point in dst image where object is placed. + Output image with the same size and type as dst. + Cloning method + + + + Implements CAMSHIFT object tracking algorithm ([Bradski98]). First, it finds an object center using cvMeanShift and, after that, calculates the object size and orientation. + + Back projection of object histogram + Initial search window + Criteria applied to determine when the window search should be finished + Circumscribed box for the object, contains object size and orientation + + + + Iterates to find the object center given its back projection and initial position of search window. The iterations are made until the search window center moves by less than the given value and/or until the function has done the maximum number of iterations. + + Back projection of object histogram + Initial search window + Criteria applied to determine when the window search should be finished. + The number of iterations made + + + + Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK. + + 8-bit input image. + Output pyramid. + Window size of optical flow algorithm. Must be not less than winSize argument of calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels. + 0-based maximal pyramid level number. + Set to precompute gradients for the every pyramid level. If pyramid is constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally. + The border mode for pyramid layers. + The border mode for gradients. + put ROI of input image into the pyramid if possible. You can pass false to force data copying. + Number of levels in constructed pyramid. Can be less than maxLevel. + + + + Updates the motion history image as following: + mhi(x,y)=timestamp if silhouette(x,y)!=0 + 0 if silhouette(x,y)=0 and mhi(x,y)<timestamp-duration + mhi(x,y) otherwise + That is, MHI pixels where motion occurs are set to the current timestamp, while the pixels where motion happened far ago are cleared. + + Silhouette mask that has non-zero pixels where the motion occurs. + Motion history image, that is updated by the function (single-channel, 32-bit floating-point) + Current time in milliseconds or other units. + Maximal duration of motion track in the same units as timestamp. + + + + Calculates the derivatives Dx and Dy of mhi and then calculates gradient orientation as: + orientation(x,y)=arctan(Dy(x,y)/Dx(x,y)) + where both Dx(x,y)' and Dy(x,y)' signs are taken into account (as in cvCartToPolar function). After that mask is filled to indicate where the orientation is valid (see delta1 and delta2 description). + + Motion history image + Mask image; marks pixels where motion gradient data is correct. Output parameter. + Motion gradient orientation image; contains angles from 0 to ~360. + The function finds minimum (m(x,y)) and maximum (M(x,y)) mhi values over each pixel (x,y) neihborhood and assumes the gradient is valid only if min(delta1,delta2) <= M(x,y)-m(x,y) <= max(delta1,delta2). + The function finds minimum (m(x,y)) and maximum (M(x,y)) mhi values over each pixel (x,y) neihborhood and assumes the gradient is valid only if min(delta1,delta2) <= M(x,y)-m(x,y) <= max(delta1,delta2). + Aperture size of derivative operators used by the function: CV_SCHARR, 1, 3, 5 or 7 (see cvSobel). + + + + Finds all the motion segments and marks them in segMask with individual values each (1,2,...). It also returns a sequence of CvConnectedComp structures, one per each motion components. After than the motion direction for every component can be calculated with cvCalcGlobalOrientation using extracted mask of the particular component (using cvCmp) + + Motion history image + Image where the mask found should be stored, single-channel, 32-bit floating-point + Current time in milliseconds or other units + Segmentation threshold; recommended to be equal to the interval between motion history "steps" or greater + Vector containing ROIs of motion connected components. + + + + Calculates the general motion direction in the selected region and returns the angle between 0 and 360. At first the function builds the orientation histogram and finds the basic orientation as a coordinate of the histogram maximum. After that the function calculates the shift relative to the basic orientation as a weighted sum of all orientation vectors: the more recent is the motion, the greater is the weight. The resultant angle is a circular sum of the basic orientation and the shift. + + Motion gradient orientation image; calculated by the function cvCalcMotionGradient. + Mask image. It may be a conjunction of valid gradient mask, obtained with cvCalcMotionGradient and mask of the region, whose direction needs to be calculated. + Motion history image. + Current time in milliseconds or other units, it is better to store time passed to cvUpdateMotionHistory before and reuse it here, because running cvUpdateMotionHistory and cvCalcMotionGradient on large images may take some time. + Maximal duration of motion track in milliseconds, the same as in cvUpdateMotionHistory + The angle + + + + Calculates optical flow for a sparse feature set using iterative Lucas-Kanade method in pyramids + + First frame, at time t + Second frame, at time t + dt + Array of points for which the flow needs to be found + Size of the search window of each pyramid level + Maximal pyramid level number. If 0 , pyramids are not used (single level), if 1 , two levels are used, etc + Specifies when the iteration process of finding the flow for each point on each pyramid level should be stopped + Flags + Array of 2D points containing calculated new positions of input features in the second image + Array. Every element of the array is set to 1 if the flow for the corresponding feature has been found, 0 otherwise + Array of double numbers containing difference between patches around the original and moved points + the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations (this matrix is called a spatial gradient matrix in [Bouguet00]), divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost. + + + + Implements sparse iterative version of Lucas-Kanade optical flow in pyramids ([Bouguet00]). It calculates coordinates of the feature points on the current video frame given their coordinates on the previous frame. The function finds the coordinates with sub-pixel accuracy. + + Both parameters prev_pyr and curr_pyr comply with the following rules: if the image pointer is 0, the function allocates the buffer internally, calculates the pyramid, and releases the buffer after processing. Otherwise, the function calculates the pyramid and stores it in the buffer unless the flag CV_LKFLOW_PYR_A[B]_READY is set. The image should be large enough to fit the Gaussian pyramid data. After the function call both pyramids are calculated and the readiness flag for the corresponding image can be set in the next call (i.e., typically, for all the image pairs except the very first one CV_LKFLOW_PYR_A_READY is set). + First frame, at time t. + Second frame, at time t + dt . + Array of points for which the flow needs to be found. + Array of 2D points containing calculated new positions of input + Size of the search window of each pyramid level. + Maximal pyramid level number. If 0 , pyramids are not used (single level), if 1 , two levels are used, etc. + Array. Every element of the array is set to 1 if the flow for the corresponding feature has been found, 0 otherwise. + Array of double numbers containing difference between patches around the original and moved points. Optional parameter; can be NULL + Specifies when the iteration process of finding the flow for each point on each pyramid level should be stopped. + Miscellaneous flags + the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations (this matrix is called a spatial gradient matrix in [Bouguet00]), divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost. + + + + Computes dense optical flow using Gunnar Farneback's algorithm + + The first 8-bit single-channel input image + The second input image of the same size and the same type as prevImg + The computed flow image for x-velocity; will have the same size as prevImg + The computed flow image for y-velocity; will have the same size as prevImg + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + + + + Computes dense optical flow using Gunnar Farneback's algorithm + + The first 8-bit single-channel input image + The second input image of the same size and the same type as prevImg + The computed flow image; will have the same size as prevImg and type CV 32FC2 + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + + + + Finds the geometric transform (warp) between two images in terms of the ECC criterion + + single-channel template image; CV_8U or CV_32F array. + single-channel input image which should be warped with the final warpMatrix in order to provide an image similar to templateImage, same type as temlateImage. + floating-point 2×3 or 3×3 mapping matrix (warp). + Specifying the type of motion. Use Affine for default + specifying the termination criteria of the ECC algorithm; criteria.epsilon defines the threshold of the increment in the correlation coefficient between two iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion). Default values can use 50 iteration and 0.001 eps. + An optional mask to indicate valid values of inputImage. + The final enhanced correlation coefficient, that is the correlation coefficient between the template image and the final warped input image. + + + + Read point cloud from file + + The point cloud file + The color of the points + The normal of the points + The points + + + + Write point cloud to file + + The point cloud file name + The point cloud + The color + The normals + + + + Computes disparity map for the specified stereo pair + + The stereo matcher + Left 8-bit single-channel image. + Right image of the same size and the same type as the left one. + Output disparity map. It has the same size as the input images. Some algorithms, like StereoBM or StereoSGBM compute 16-bit fixed-point disparity map (where each disparity value has 4 fractional bits), whereas other algorithms output 32-bit floating-point disparity map + + + + Transforms the image to compensate radial and tangential lens distortion. + + The input (distorted) image + The output (corrected) image + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. + Camera matrix of the distorted image. By default it is the same as cameraMatrix, but you may additionally scale and shift the result by using some different matrix + + + + This function is an extended version of cvInitUndistortMap. That is, in addition to the correction of lens distortion, the function can also apply arbitrary perspective transformation R and finally it can scale and shift the image according to the new camera matrix + + The camera matrix A=[fx 0 cx; 0 fy cy; 0 0 1] + The vector of distortion coefficients, 4x1, 1x4, 5x1 or 1x5 + The rectification transformation in object space (3x3 matrix). R1 or R2, computed by cvStereoRectify can be passed here. If the parameter is IntPtr.Zero, the identity matrix is used + The new camera matrix A'=[fx' 0 cx'; 0 fy' cy'; 0 0 1] + Depth type of the first output map that can be CV_32FC1 or CV_16SC2 . + The first output map. + The second output map. + Undistorted image size. + + + + Similar to cvInitUndistortRectifyMap and is opposite to it at the same time. + The functions are similar in that they both are used to correct lens distortion and to perform the optional perspective (rectification) transformation. + They are opposite because the function cvInitUndistortRectifyMap does actually perform the reverse transformation in order to initialize the maps properly, while this function does the forward transformation. + + The observed point coordinates + The ideal point coordinates, after undistortion and reverse perspective transformation. + The camera matrix A=[fx 0 cx; 0 fy cy; 0 0 1] + The vector of distortion coefficients, 4x1, 1x4, 5x1 or 1x5. + The rectification transformation in object space (3x3 matrix). R1 or R2, computed by cvStereoRectify can be passed here. If the parameter is IntPtr.Zero, the identity matrix is used. + The new camera matrix (3x3) or the new projection matrix (3x4). P1 or P2, computed by cvStereoRectify can be passed here. If the parameter is IntPtr.Zero, the identity matrix is used. + + + + Returns the default new camera matrix. + + Input camera matrix. + Camera view image size in pixels. + Location of the principal point in the new camera matrix. The parameter indicates whether this location should be at the image center or not. + The default new camera matrix. + + + + Computes an optimal affine transformation between two 2D point sets. + + First input 2D point set containing (X,Y). + Second input 2D point set containing (x,y). + Output vector indicating which points are inliers (1-inlier, 0-outlier). + Robust method used to compute transformation. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. + The maximum number of robust method iterations. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + Maximum number of iterations of refining algorithm (Levenberg-Marquardt). Passing 0 will disable refining, so the output matrix will be output of robust method. + Output 2D affine transformation matrix 2×3 or empty matrix if transformation could not be estimated. + + + + Computes an optimal affine transformation between two 2D point sets. + + First input 2D point set containing (X,Y). + Second input 2D point set containing (x,y). + Output vector indicating which points are inliers (1-inlier, 0-outlier). + Robust method used to compute transformation. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. + The maximum number of robust method iterations. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + Maximum number of iterations of refining algorithm (Levenberg-Marquardt). Passing 0 will disable refining, so the output matrix will be output of robust method. + Output 2D affine transformation matrix 2×3 or empty matrix if transformation could not be estimated. + + + + Computes an optimal limited affine transformation with 4 degrees of freedom between two 2D point sets. + + First input 2D point set. + Second input 2D point set. + Output vector indicating which points are inliers. + Robust method used to compute transformation. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. + The maximum number of robust method iterations. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + Maximum number of iterations of refining algorithm (Levenberg-Marquardt). Passing 0 will disable refining, so the output matrix will be output of robust method. + Output 2D affine transformation (4 degrees of freedom) matrix 2×3 or empty matrix if transformation could not be estimated. + + + + Computes Hand-Eye calibration + + + Rotation part extracted from the homogeneous matrix that transforms a point expressed in the gripper frame to the robot base frame. + This is a vector (vector<Mat>) that contains the rotation matrices for all the transformations from gripper frame to robot base frame. + + + Translation part extracted from the homogeneous matrix that transforms a point expressed in the gripper frame to the robot base frame. + This is a vector (vector<Mat>) that contains the translation vectors for all the transformations from gripper frame to robot base frame. + + + Rotation part extracted from the homogeneous matrix that transforms a point expressed in the target frame to the camera frame. + This is a vector (vector<Mat>) that contains the rotation matrices for all the transformations from calibration target frame to camera frame. + + + Rotation part extracted from the homogeneous matrix that transforms a point expressed in the target frame to the camera frame. + This is a vector (vector<Mat>) that contains the translation vectors for all the transformations from calibration target frame to camera frame. + + + Estimated rotation part extracted from the homogeneous matrix that transforms a point expressed in the camera frame to the gripper frame. + + + Estimated translation part extracted from the homogeneous matrix that transforms a point expressed in the camera frame to the gripper frame. + + One of the implemented Hand-Eye calibration method + + + + File Storage Node class. + The node is used to store each and every element of the file storage opened for reading. When + XML/YAML file is read, it is first parsed and stored in the memory as a hierarchical collection of + nodes. Each node can be a "leaf" that is contain a single number or a string, or be a collection of + other nodes. There can be named collections (mappings) where each element has a name and it is + accessed by a name, and ordered collections (sequences) where elements do not have names but rather + accessed by index. Type of the file node can be determined using FileNode::type method. + Note that file nodes are only used for navigating file storages opened for reading. When a file + storage is opened for writing, no data is stored in memory after it is written. + + + + + Type of the file storage node + + + + + Empty node + + + + + an integer + + + + + Floating-point number + + + + + Synonym or Real + + + + + Text string in UTF-8 encoding + + + + + Synonym for Str + + + + + Integer of size size_t. Typically used for storing complex dynamic structures where some elements reference the others + + + + + The sequence + + + + + Mapping + + + + + The type mask + + + + + Compact representation of a sequence or mapping. Used only by YAML writer + + + + + A registered object (e.g. a matrix) + + + + + Empty structure (sequence or mapping) + + + + + The node has a name (i.e. it is element of a mapping) + + + + + Reads a Mat from the node + + The Mat where the result is read into + The default mat. + + + + Gets the type of the node. + + + The type of the node. + + + + + Release the unmanaged resources + + + + + Reads the string from the node + + The default value if one is not found in the node. + The string from the node + + + + Reads the int from the node. + + The default value if one is not found in the node. + The int from the node. + + + + Reads the float from the node. + + The default value if one is not found in the node. + The float from the node. + + + + Reads the double from the node. + + The default value if one is not found in the node. + The double from the node. + + + + Returns true if the node has a name + + + + + Returns true if the node is empty + + + + + Returns true if the node is a "none" object + + + + + Returns true if the node is a sequence + + + + + Returns true if the node is a mapping + + + + + Returns true if the node is an integer + + + + + Returns true if the node is a floating-point number + + + + + Returns true if the node is a text string + + + + + XML/YAML file storage class that encapsulates all the information necessary for writing or reading data to/from a file. + + + + + File storage mode + + + + + Open the file for reading + + + + + Open the file for writing + + + + + Open the file for appending + + + + + ReadMat data from source or write data to the internal buffer + + + + + Mask for format flags + + + + + Auto format + + + + + XML format + + + + + YAML format + + + + + JSON format + + + + + Write rawdata in Base64 by default. (consider using WriteBase64) + + + + + enable both Write and Base64 + + + + + Initializes a new instance of the class. + + Name of the file to open or the text string to read the data from. Extension of the + file (.xml or .yml/.yaml) determines its format (XML or YAML respectively). Also you can append .gz + to work with compressed files, for example myHugeMatrix.xml.gz. If both FileStorage::WRITE and + FileStorage::MEMORY flags are specified, source is used just to specify the output file format (e.g. + mydata.xml, .yml etc.). + Mode of operation. + Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. + + + + Writes the specified Mat to the node with the specific name. + + The Mat to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Gets a value indicating whether this instance is opened. + + + true if the object is associated with the current file; otherwise, false. + + + + + Closes the file and releases all the memory buffers + Call this method after all I/O operations with the storage are finished. If the storage was + opened for writing data and FileStorage.Mode.Write was specified + + The string that represent the text in the FileStorage + + + + Gets the top-level mapping. + + Zero-based index of the stream. In most cases there is only one stream in the file. + However, YAML supports multiple streams and so there can be several. + The top-level mapping + + + + Gets the first element of the top-level mapping. + + The first element of the top-level mapping. + + + + Gets the specified element of the top-level mapping. + + Name of the node. + The specified element of the top-level mapping. + + + + Gets the with the specified node name. + + + The . + + Name of the node. + The file node + + + + Release the unmanaged resources + + + + + Similar to the << operator in C++, we cannot have the operator overload to << in C# where the second parameter is not an int. Therefore we use this function instead. + + The string value to insert. + + + + Interface to the algorithm class + + + + + Return the pointer to the algorithm object + + The pointer to the algorithm object + + + + Extension methods to the IAlgorithm interface + + + + + Reads algorithm parameters from a file storage. + + The algorithm. + The node from file storage. + + + + Stores algorithm parameters in a file storage + + The algorithm. + The storage. + + + + Stores algorithm parameters in a file storage + + The algorithm. + The storage. + Simplified API for language bindings + + + + Save the algorithm to file + + The algorithm + The file name where this algorithm will be saved to + + + + Save the algorithm to a string + + The algorithm + file format, can be .xml or .yml + The algorithm as an yml string + + + + Clear the algorithm + + The algorithm + + + + Returns true if the Algorithm is empty. e.g. in the very beginning or after unsuccessful read. + + The algorithm + Returns true if the Algorithm is empty. e.g. in the very beginning or after unsuccessful read. + + + + Loads algorithm from the file + + The algorithm + Name of the file to read. + The optional name of the node to read (if empty, the first top-level node will be used) + Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. + + + + Loads algorithm from a String + + The algorithm + The string variable containing the model you want to load. + The optional name of the node to read (if empty, the first top-level node will be used) + Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. + + + + Returns the algorithm string identifier. + This string is used as top level xml/yml node tag when the object is saved to a file or string. + + The algorithm + + Returns the algorithm string identifier. + This string is used as top level xml/yml node tag when the object is saved to a file or string. + + + + + This is the proxy class for passing read-only input arrays into OpenCV functions. + + + + + The unmanaged pointer to the input array. + + The input array + + + + InputArrayOfArrays + + + + + Extension methods for IInputArrays + + + + + Determines whether the specified input array is umat. + + The array + True if it is a umat + + + + Apply converter and compute result for each channel of the image, for single channel image, apply converter directly, for multiple channel image, make a copy of each channel to a temperary image and apply the convertor + + The return type + The source image + The converter such that accept the IntPtr of a single channel IplImage, and image channel index which returning result of type R + An array which contains result for each channel + + + + Apply converter and compute result for each channel of the image, for single channel image, apply converter directly, for multiple channel image, make a copy of each channel to a temperary image and apply the convertor + + The source image + The converter such that accept the IntPtr of a single channel IplImage, and image channel index which returning result of type R + An array which contains result for each channel + + + + This type is very similar to InputArray except that it is used for input/output function parameters. + + + + + The unmanaged pointer to the input/output array + + Get the input output array + + + + An Image is a wrapper to IplImage of OpenCV. + + Color type of this image (either Gray, Bgr, Bgra, Hsv, Hls, Lab, Luv, Xyz, Ycc, Rgb or Rbga) + Depth of this image (either Byte, SByte, Single, double, UInt16, Int16 or Int32) + + + + The dimension of color + + + + + Create an empty Image + + + + + Create image from the specific multi-dimensional data, where the 1st dimesion is # of rows (height), the 2nd dimension is # cols (width) and the 3rd dimension is the channel + + The multi-dimensional data where the 1st dimension is # of rows (height), the 2nd dimension is # cols (width) and the 3rd dimension is the channel + + + + Create an Image from unmanaged data. + + The width of the image + The height of the image + Size of aligned image row in bytes + Pointer to aligned image data, where each row should be 4-align + The caller is responsible for allocating and freeing the block of memory specified by the scan0 parameter, however, the memory should not be released until the related Image is released. + + + + Allocate the image from the image header. + + This should be only a header to the image. When the image is disposed, the cvReleaseImageHeader will be called on the pointer. + + + + Read image from a file + + the name of the file that contains the image + + + + Load the specific file using OpenCV + + The file to load + + + + Create a blank Image of the specified width, height and color. + + The width of the image + The height of the image + The initial color of the image + + + + Create a blank Image of the specified width and height. + + The width of the image + The height of the image + + + + Create a blank Image of the specific size + + The size of the image + + + + Get or Set the data for this matrix. The Get function has O(1) complexity. The Set function make a copy of the data + + + If the image contains Byte and width is not a multiple of 4. The second dimension of the array might be larger than the Width of this image. + This is necessary since the length of a row need to be 4 align for OpenCV optimization. + The Set function always make a copy of the specific value. If the image contains Byte and width is not a multiple of 4. The second dimension of the array created might be larger than the Width of this image. + + + + + Allocate data for the array + + The number of rows + The number of columns + The number of channels of this image + + + + Create a multi-channel image from multiple gray scale images + + The image channels to be merged into a single image + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + The IplImage structure + + + + + Get or Set the region of interest for this image. To clear the ROI, set it to System.Drawing.Rectangle.Empty + + + + + Get the number of channels for this image + + + + + Get the underneath managed array + + + + + Get the equivalent opencv depth type for this image + + + + + Indicates if the region of interest has been set + + + + + Get the average value on this image + + The average color of the image + + + + Get the average value on this image, using the specific mask + + The mask for find the average value + The average color of the masked area + + + Get the sum for each color channel + The sum for each color channel + + + + Set every pixel of the image to the specific color + + The color to be set + + + + Set every pixel of the image to the specific color, using a mask + + The color to be set + The mask for setting color + + + + Copy the masked area of this image to destination + + the destination to copy to + the mask for copy + + + + Make a copy of the image using a mask, if ROI is set, only copy the ROI + + the mask for coping + A copy of the image + + + + Make a copy of the specific ROI (Region of Interest) from the image + + The roi to be copied + The region of interest + + + + Get a copy of the boxed region of the image + + The boxed region of the image + A copy of the boxed region of the image + + + Make a copy of the image, if ROI is set, only copy the ROI + A copy of the image + + + + Create an image of the same size + + The initial pixel in the image equals zero + The image of the same size + + + + Make a clone of the current image. All image data as well as the COI and ROI are cloned + + A clone of the current image. All image data as well as the COI and ROI are cloned + + + + Get a subimage which image data is shared with the current image. + + The rectangle area of the sub-image + A subimage which image data is shared with the current image + + + Draw an Rectangle of the specific color and thickness + The rectangle to be drawn + The color of the rectangle + If thickness is less than 1, the rectangle is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a 2D Cross using the specific color and thickness + The 2D Cross to be drawn + The color of the cross + Must be > 0 + + + Draw a line segment using the specific color and thickness + The line segment to be drawn + The color of the line segment + The thickness of the line segment + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a line segment using the specific color and thickness + The line segment to be drawn + The color of the line segment + The thickness of the line segment + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a convex polygon using the specific color and thickness + The convex polygon to be drawn + The color of the triangle + If thickness is less than 1, the triangle is filled up + + + + Fill the convex polygon with the specific color + + The array of points that define the convex polygon + The color to fill the polygon with + Line type + Number of fractional bits in the center coordinates and radius value + + + + Draw the polyline defined by the array of 2D points + + A polyline defined by its point + if true, the last line segment is defined by the last point of the array and the first point of the array + the color used for drawing + the thinkness of the line + Line type + Number of fractional bits in the center coordinates and radius value + + + + Draw the polylines defined by the array of array of 2D points + + An array of polylines each represented by an array of points + if true, the last line segment is defined by the last point of the array and the first point of the array + the color used for drawing + the thickness of the line + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a Circle of the specific color and thickness + The circle to be drawn + The color of the circle + If thickness is less than 1, the circle is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a Ellipse of the specific color and thickness + The ellipse to be draw + The color of the ellipse + If thickness is less than 1, the ellipse is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + + Draw the text using the specific font on the image + + The text message to be draw + Font type. + Font scale factor that is multiplied by the font-specific base size. + The location of the bottom left corner of the font + The color of the text + Thickness of the lines used to draw a text. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Draws contour outlines in the image if thickness>=0 or fills area bounded by the contours if thickness<0 + + All the input contours. Each contour is stored as a point vector. + Parameter indicating a contour to draw. If it is negative, all the contours are drawn. + Color of the contours + Maximal level for drawn contours. If 0, only contour is drawn. If 1, the contour and all contours after it on the same level are drawn. If 2, all contours after and all contours one level below the contours are drawn, etc. If the value is negative, the function does not draw the contours following after contour but draws child contours of contour up to abs(maxLevel)-1 level. + Thickness of lines the contours are drawn with. If it is negative the contour interiors are drawn + Type of the contour segments + Optional information about hierarchy. It is only needed if you want to draw only some of the contours + Shift all the point coordinates by the specified value. It is useful in case if the contours retrieved in some image ROI and then the ROI offset needs to be taken into account during the rendering. + + + + Draws contour outlines in the image if thickness>=0 or fills area bounded by the contours if thickness<0 + + The input contour stored as a point vector. + Color of the contours + Thickness of lines the contours are drawn with. If it is negative the contour interiors are drawn + Type of the contour segments + Shift all the point coordinates by the specified value. It is useful in case if the contours retrieved in some image ROI and then the ROI offset needs to be taken into account during the rendering. + + + + Apply Probabilistic Hough transform to find line segments. + The current image must be a binary image (eg. the edges as a result of the Canny edge detector) + + Distance resolution in pixel-related units. + Angle resolution measured in radians + A line is returned by the function if the corresponding accumulator value is greater than threshold + Minimum width of a line + Minimum gap between lines + The line segments detected for each of the channels + + + + Apply Canny Edge Detector follows by Probabilistic Hough transform to find line segments in the image + + The threshold to find initial segments of strong edges + The threshold used for edge Linking + Distance resolution in pixel-related units. + Angle resolution measured in radians + A line is returned by the function if the corresponding accumulator value is greater than threshold + Minimum width of a line + Minimum gap between lines + The line segments detected for each of the channels + + + + First apply Canny Edge Detector on the current image, + then apply Hough transform to find circles + + The higher threshold of the two passed to Canny edge detector (the lower one will be twice smaller). + Accumulator threshold at the center detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first + Resolution of the accumulator used to detect centers of the circles. For example, if it is 1, the accumulator will have the same resolution as the input image, if it is 2 - accumulator will have twice smaller width and height, etc + Minimal radius of the circles to search for + Maximal radius of the circles to search for + Minimum distance between centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed + The circle detected for each of the channels + + + + Get or Set the specific channel of the current image. + For Get operation, a copy of the specific channel is returned. + For Set operation, the specific channel is copied to this image. + + The channel to get from the current image, zero based index + The specific channel of the current image + + + + Get or Set the color in the th row (y direction) and th column (x direction) + + The zero-based row (y direction) of the pixel + The zero-based column (x direction) of the pixel + The color in the specific and + + + + Get or Set the color in the + + the location of the pixel + the color in the + + + + Return parameters based on ROI + + The Pointer to the IplImage + The address of the pointer that point to the start of the Bytes taken into consideration ROI + ROI.Width * ColorType.Dimension + The number of bytes in a row taken into consideration ROI + The number of rows taken into consideration ROI + The width step required to jump to the next row + + + + Apply convertor and compute result for each channel of the image. + + + For single channel image, apply converter directly. + For multiple channel image, set the COI for the specific channel before appling the convertor + + The return type + The converter such that accept the IntPtr of a single channel IplImage, and image channel index which returning result of type R + An array which contains result for each channel + + + + If the image has only one channel, apply the action directly on the IntPtr of this image and , + otherwise, make copy each channel of this image to a temperary one, apply action on it and another temperory image and copy the resulting image back to image2 + + The type of the depth of the image + The function which acepts the src IntPtr, dest IntPtr and index of the channel as input + The destination image + + + + Calculates the image derivative by convolving the image with the appropriate kernel + The Sobel operators combine Gaussian smoothing and differentiation so the result is more or less robust to the noise. Most often, the function is called with (xorder=1, yorder=0, aperture_size=3) or (xorder=0, yorder=1, aperture_size=3) to calculate first x- or y- image derivative. + + Order of the derivative x + Order of the derivative y + Size of the extended Sobel kernel, must be 1, 3, 5 or 7. In all cases except 1, aperture_size xaperture_size separable kernel will be used to calculate the derivative. + The result of the sobel edge detector + + + + Calculates Laplacian of the source image by summing second x- and y- derivatives calculated using Sobel operator. + Specifying aperture_size=1 gives the fastest variant that is equal to convolving the image with the following kernel: + + |0 1 0| + |1 -4 1| + |0 1 0| + + Aperture size + The Laplacian of the image + + + Find the edges on this image and marked them in the returned image. + The threshhold to find initial segments of strong edges + The threshold used for edge Linking + The edges found by the Canny edge detector + + + Find the edges on this image and marked them in the returned image. + The threshhold to find initial segments of strong edges + The threshold used for edge Linking + The aperture size, use 3 for default + a flag, indicating whether a more accurate norm should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default norm is enough ( L2gradient=false ). + The edges found by the Canny edge detector + + + + Iterates to find the sub-pixel accurate location of corners, or radial saddle points + + Coordinates of the input corners, the values will be modified by this function call + Half sizes of the search window. For example, if win=(5,5) then 5*2+1 x 5*2+1 = 11 x 11 search window is used + Half size of the dead region in the middle of the search zone over which the summation in formulae below is not done. It is used sometimes to avoid possible singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such size + Criteria for termination of the iterative process of corner refinement. That is, the process of corner position refinement stops either after certain number of iteration or when a required accuracy is achieved. The criteria may specify either of or both the maximum number of iteration and the required accuracy + Refined corner coordinates + + + + The function slides through image, compares overlapped patches of size wxh with templ using the specified method and return the comparison results + + Searched template; must be not greater than the source image and the same data type as the image + Specifies the way the template must be compared with image regions + The comparison result: width = this.Width - template.Width + 1; height = this.Height - template.Height + 1 + + + Perform an elementwise AND operation with another image and return the result + The second image for the AND operation + The result of the AND operation + + + + Perform an elementwise AND operation with another image, using a mask, and return the result + + The second image for the AND operation + The mask for the AND operation + The result of the AND operation + + + Perform an binary AND operation with some color + The color for the AND operation + The result of the AND operation + + + Perform an binary AND operation with some color using a mask + The color for the AND operation + The mask for the AND operation + The result of the AND operation + + + Perform an elementwise OR operation with another image and return the result + The second image for the OR operation + The result of the OR operation + + + Perform an elementwise OR operation with another image, using a mask, and return the result + The second image for the OR operation + The mask for the OR operation + The result of the OR operation + + + Perform an elementwise OR operation with some color + The value for the OR operation + The result of the OR operation + + + Perform an elementwise OR operation with some color using a mask + The color for the OR operation + The mask for the OR operation + The result of the OR operation + + + Perform an elementwise XOR operation with another image and return the result + The second image for the XOR operation + The result of the XOR operation + + + + Perform an elementwise XOR operation with another image, using a mask, and return the result + + The second image for the XOR operation + The mask for the XOR operation + The result of the XOR operation + + + + Perform an binary XOR operation with some color + + The value for the XOR operation + The result of the XOR operation + + + + Perform an binary XOR operation with some color using a mask + + The color for the XOR operation + The mask for the XOR operation + The result of the XOR operation + + + + Compute the complement image + + The complement image + + + Find the elementwise maximum value + The second image for the Max operation + An image where each pixel is the maximum of this image and the parameter image + + + Find the elementwise maximum value + The value to compare with + An image where each pixel is the maximum of this image and + + + Find the elementwise minimum value + The second image for the Min operation + An image where each pixel is the minimum of this image and the parameter image + + + Find the elementwise minimum value + The value to compare with + An image where each pixel is the minimum of this image and + + + Checks that image elements lie between two scalars + The inclusive lower limit of color value + The inclusive upper limit of color value + res[i,j] = 255 if <= this[i,j] <= , 0 otherwise + + + Checks that image elements lie between values defined by two images of same size and type + The inclusive lower limit of color value + The inclusive upper limit of color value + res[i,j] = 255 if [i,j] <= this[i,j] <= [i,j], 0 otherwise + + + + Compare the current image with and returns the comparison mask + + The other image to compare with + The comparison type + The result of the comparison as a mask + + + + Compare the current image with and returns the comparison mask + + The value to compare with + The comparison type + The result of the comparison as a mask + + + + Compare two images, returns true if the each of the pixels are equal, false otherwise + + The other image to compare with + true if the each of the pixels for the two images are equal, false otherwise + + + + Use grabcut to perform background foreground segmentation. + + The initial rectangle region for the foreground + The number of iterations to run GrabCut + The background foreground mask where 2 indicates background and 3 indicates foreground + + + Elementwise subtract another image from the current image + The second image to be subtracted from the current image + The result of elementwise subtracting img2 from the current image + + + Elementwise subtract another image from the current image, using a mask + The image to be subtracted from the current image + The mask for the subtract operation + The result of elementwise subtracting img2 from the current image, using the specific mask + + + Elementwise subtract a color from the current image + The color value to be subtracted from the current image + The result of elementwise subtracting color 'val' from the current image + + + + result = val - this + + the value which subtract this image + val - this + + + + result = val - this, using a mask + + The value which subtract this image + The mask for subtraction + val - this, with mask + + + Elementwise add another image with the current image + The image to be added to the current image + The result of elementwise adding img2 to the current image + + + Elementwise add with the current image, using a mask + The image to be added to the current image + The mask for the add operation + The result of elementwise adding img2 to the current image, using the specific mask + + + Elementwise add a color to the current image + The color value to be added to the current image + The result of elementwise adding color from the current image + + + Elementwise multiply another image with the current image and the + The image to be elementwise multiplied to the current image + The scale to be multiplied + this .* img2 * scale + + + Elementwise multiply with the current image + The image to be elementwise multiplied to the current image + this .* img2 + + + Elementwise multiply the current image with + The scale to be multiplied + The scaled image + + + + Accumulate to the current image using the specific mask + + The image to be added to the current image + the mask + + + + Accumulate to the current image using the specific mask + + The image to be added to the current image + + + + Return the weighted sum such that: res = this * alpha + img2 * beta + gamma + + img2 in: res = this * alpha + img2 * beta + gamma + alpha in: res = this * alpha + img2 * beta + gamma + beta in: res = this * alpha + img2 * beta + gamma + gamma in: res = this * alpha + img2 * beta + gamma + this * alpha + img2 * beta + gamma + + + + Update Running Average. this = (1-alpha)*this + alpha*img + + Input image, 1- or 3-channel, Byte or Single (each channel of multi-channel image is processed independently). + the weight of + + + + Update Running Average. this = (1-alpha)*this + alpha*img, using the mask + + Input image, 1- or 3-channel, Byte or Single (each channel of multi-channel image is processed independently). + The weight of + The mask for the running average + + + + Computes absolute different between this image and the other image + + The other image to compute absolute different with + The image that contains the absolute different value + + + + Computes absolute different between this image and the specific color + + The color to compute absolute different with + The image that contains the absolute different value + + + + Raises every element of input array to p + dst(I)=src(I)^p, if p is integer + dst(I)=abs(src(I))^p, otherwise + + The exponent of power + The power image + + + + Calculates exponent of every element of input array: + dst(I)=exp(src(I)) + + Maximum relative error is ~7e-6. Currently, the function converts denormalized values to zeros on output. + The exponent image + + + + Calculates natural logarithm of absolute value of every element of input array + + Natural logarithm of absolute value of every element of input array + + + + Scale the image to the specific size + + The width of the returned image. + The height of the returned image. + The type of interpolation + The resized image + + + + Scale the image to the specific size + + The width of the returned image. + The height of the returned image. + The type of interpolation + if true, the scale is preservered and the resulting image has maximum width(height) possible that is <= (), if false, this function is equaivalent to Resize(int width, int height) + The resized image + + + + Scale the image to the specific size: width *= scale; height *= scale + + The scale to resize + The type of interpolation + The scaled image + + + + Rotate the image the specified angle cropping the result to the original size + + The angle of rotation in degrees. + The color with which to fill the background + The image rotates by the specific angle + + + + Transforms source image using the specified matrix + + 2x3 transformation matrix + Interpolation type + Warp type + Pixel extrapolation method + A value used to fill outliers + The result of the transformation + + + + Transforms source image using the specified matrix + + 2x3 transformation matrix + The width of the resulting image + the height of the resulting image + Interpolation type + Warp type + Pixel extrapolation method + A value used to fill outliers + The result of the transformation + + + + Transforms source image using the specified matrix + + 3x3 transformation matrix + Interpolation type + Warp type + Pixel extrapolation method + A value used to fill outliers + The depth type of , should be either float or double + The result of the transformation + + + + Transforms source image using the specified matrix + + 3x3 transformation matrix + The width of the resulting image + the height of the resulting image + Interpolation type + Warp type + Border type + A value used to fill outliers + The depth type of , should be either float or double + The result of the transformation + + + + Rotate this image the specified + + The angle of rotation in degrees. + The color with which to fill the background + If set to true the image is cropped to its original size, possibly losing corners information. If set to false the result image has different size than original and all rotation information is preserved + The rotated image + + + + Rotate this image the specified + + The angle of rotation in degrees. Positive means clockwise. + The color with with to fill the background + If set to true the image is cropped to its original size, possibly losing corners information. If set to false the result image has different size than original and all rotation information is preserved + The center of rotation + The interpolation method + The rotated image + + + + Convert the image to log polar, simulating the human foveal vision + + The transformation center, where the output precision is maximal + Magnitude scale parameter + interpolation type + Warp type + The converted image + + + Convert the current image to the specific color and depth + The type of color to be converted to + The type of pixel depth to be converted to + Image of the specific color and depth + + + + Convert the source image to the current image, if the size are different, the current image will be a resized version of the srcImage. + + The color type of the source image + The color depth of the source image + The sourceImage + + + + Convert the source image to the current image, if the size are different, the current image will be a resized version of the srcImage. + + The sourceImage + + + Convert the current image to the specific depth, at the same time scale and shift the values of the pixel + The value to be multiplied with the pixel + The value to be added to the pixel + The type of depth to convert to + Image of the specific depth, val = val * scale + shift + + + + Load the specific file using Bitmap + + The file to load + + + + Obtain the image from the specific Bitmap + + The bitmap which will be converted to the image + + + + The Get property provide a more efficient way to convert Image<Gray, Byte>, Image<Bgr, Byte> and Image<Bgra, Byte> into Bitmap + such that the image data is shared with Bitmap. + If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well! + For other types of image this property has the same effect as ToBitmap() + Take extra caution not to use the Bitmap after the Image object is disposed + The Set property convert the bitmap to this Image type. + + + + + Utility function for Bitmap Set property + + + + + + Convert this image into Bitmap, the pixel values are copied over to the Bitmap + + For better performance on Image<Gray, Byte> and Image<Bgr, Byte>, consider using the Bitmap property + This image in Bitmap format, the pixel data are copied over to the Bitmap + + + Create a Bitmap image of certain size + The width of the bitmap + The height of the bitmap + This image in Bitmap format of the specific size + + + + Performs downsampling step of Gaussian pyramid decomposition. + First it convolves this image with the specified filter and then downsamples the image + by rejecting even rows and columns. + + The downsampled image + + + + Performs up-sampling step of Gaussian pyramid decomposition. + First it upsamples this image by injecting even zero rows and columns and then convolves + result with the specified filter multiplied by 4 for interpolation. + So the resulting image is four times larger than the source image. + + The upsampled image + + + + Compute the image pyramid + + The number of level's for the pyramid; Level 0 referes to the current image, level n is computed by calling the PyrDown() function on level n-1 + The image pyramid + + + Use inpaint to recover the intensity of the pixels which location defined by on this image + The inpainting mask. Non-zero pixels indicate the area that needs to be inpainted + The radius of circular neighborhood of each point inpainted that is considered by the algorithm + The inpainted image + + + + Perform advanced morphological transformations using erosion and dilation as basic operations. + + Structuring element + Anchor position with the kernel. Negative values mean that the anchor is at the kernel center. + Type of morphological operation + Number of times erosion and dilation are applied + Border type + Border value + The result of the morphological operation + + + + Perform inplace advanced morphological transformations using erosion and dilation as basic operations. + + Structuring element + Anchor position with the kernel. Negative values mean that the anchor is at the kernel center. + Type of morphological operation + Number of times erosion and dilation are applied + Border type + Border value + + + + Erodes this image using a 3x3 rectangular structuring element. + Erosion are applied several (iterations) times + + The number of erode iterations + The eroded image + + + + Dilates this image using a 3x3 rectangular structuring element. + Dilation are applied several (iterations) times + + The number of dilate iterations + The dilated image + + + + Erodes this image inplace using a 3x3 rectangular structuring element. + Erosion are applied several (iterations) times + + The number of erode iterations + + + + Dilates this image inplace using a 3x3 rectangular structuring element. + Dilation are applied several (iterations) times + + The number of dilate iterations + + + + perform an generic action based on each element of the image + + The action to be applied to each element of the image + + + + Perform an generic operation based on the elements of the two images + + The depth of the second image + The second image to perform action on + An action such that the first parameter is the a single channel of a pixel from the first image, the second parameter is the corresponding channel of the correspondind pixel from the second image + + + + Compute the element of a new image based on the value as well as the x and y positions of each pixel on the image + + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on element of this image + The depth type of the result image + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on the elements of the two image + The depth type of img2 + The depth type of the result image + The second image + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on the elements of the three image + The depth type of img2 + The depth type of img3 + The depth type of the result image + The second image + The third image + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on the elements of the four image + The depth type of img2 + The depth type of img3 + The depth type of img4 + The depth type of the result image + The second image + The third image + The fourth image + The function to be applied to the image pixels + The result image + + + + Release all unmanaged memory associate with the image + + + + + Perform an element wise AND operation on the two images + + The first image to AND + The second image to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + Perform an element wise OR operation with another image and return the result + The first image to apply bitwise OR operation + The second image to apply bitwise OR operation + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + Compute the complement image + The image to be inverted + The complement image + + + + Element wise add with + + The first image to be added + The second image to be added + The sum of the two images + + + + Element wise add with + + The image to be added + The value to be added + The images plus the color + + + + Element wise add with + + The image to be added + The value to be added + The images plus the color + + + + Element wise add with + + The image to be added + The color to be added + The images plus the color + + + + Element wise add with + + The image to be added + The color to be added + The images plus the color + + + + Element wise subtract another image from the current image + + The image to be subtracted + The second image to be subtracted from + The result of element wise subtracting img2 from + + + + Element wise subtract another image from the current image + + The image to be subtracted + The color to be subtracted + The result of element wise subtracting from + + + + Element wise subtract another image from the current image + + The image to be subtracted + The color to be subtracted + - + + + + - + + The image to be subtracted + The value to be subtracted + - + + + + Element wise subtract another image from the current image + + The image to be subtracted + The value to be subtracted + - + + + + * + + The image + The multiplication scale + * + + + + * + + The image + The multiplication scale + * + + + + Perform the convolution with on + + The image + The kernel + Result of the convolution + + + + / + + The image + The division scale + / + + + + / + + The image + The scale + / + + + + Summation over a pixel param1 x param2 neighborhood with subsequent scaling by 1/(param1 x param2) + + The width of the window + The height of the window + The result of blur + + + + Summation over a pixel param1 x param2 neighborhood. If scale is true, the result is subsequent scaled by 1/(param1 x param2) + + The width of the window + The height of the window + If true, the result is subsequent scaled by 1/(param1 x param2) + The result of blur + + + + Finding median of x neighborhood + + The size (width & height) of the window + The result of median smooth + + + + Applying bilateral 3x3 filtering + + Color sigma + Space sigma + The size of the bilateral kernel + The result of bilateral smooth + + + Perform Gaussian Smoothing in the current image and return the result + The size of the Gaussian kernel ( x ) + The smoothed image + + + Perform Gaussian Smoothing in the current image and return the result + The width of the Gaussian kernel + The height of the Gaussian kernel + The standard deviation of the Gaussian kernel in the horizontal dimension + The standard deviation of the Gaussian kernel in the vertical dimension + The smoothed image + + + Perform Gaussian Smoothing inplace for the current image + The size of the Gaussian kernel ( x ) + + + Perform Gaussian Smoothing inplace for the current image + The width of the Gaussian kernel + The height of the Gaussian kernel + The standard deviation of the Gaussian kernel in the horizontal dimension + The standard deviation of the Gaussian kernel in the vertical dimension + + + + Performs a convolution using the specific + + The convolution kernel + The optional value added to the filtered pixels before storing them in dst + The pixel extrapolation method. + The result of the convolution + + + + Calculates integral images for the source image + + The integral image + + + + Calculates integral images for the source image + + The integral image + The integral image for squared pixel values + The integral image + + + + Calculates one or more integral images for the source image + + The integral image + The integral image for squared pixel values + The integral for the image rotated by 45 degrees + + + + Transforms grayscale image to binary image. + Threshold calculated individually for each pixel. + For the method CV_ADAPTIVE_THRESH_MEAN_C it is a mean of x pixel + neighborhood, subtracted by param1. + For the method CV_ADAPTIVE_THRESH_GAUSSIAN_C it is a weighted sum (gaussian) of x pixel neighborhood, subtracted by param1. + + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Adaptive_method + Thresholding type. must be one of CV_THRESH_BINARY, CV_THRESH_BINARY_INV + The size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, ... + Constant subtracted from mean or weighted mean. It may be negative. + The result of the adaptive threshold + + + + The base threshold method shared by public threshold functions + + + + Threshold the image such that: dst(x,y) = src(x,y), if src(x,y)>threshold; 0, otherwise + The threshold value + dst(x,y) = src(x,y), if src(x,y)>threshold; 0, otherwise + + + + Threshold the image such that: dst(x,y) = 0, if src(x,y)>threshold; src(x,y), otherwise + + The threshold value + The image such that: dst(x,y) = 0, if src(x,y)>threshold; src(x,y), otherwise + + + + Threshold the image such that: dst(x,y) = threshold, if src(x,y)>threshold; src(x,y), otherwise + + The threshold value + The image such that: dst(x,y) = threshold, if src(x,y)>threshold; src(x,y), otherwise + + + + Threshold the image such that: dst(x,y) = max_value, if src(x,y)>threshold; 0, otherwise + + The threshold value + The maximum value of the pixel on the result + The image such that: dst(x,y) = max_value, if src(x,y)>threshold; 0, otherwise + + + Threshold the image such that: dst(x,y) = 0, if src(x,y)>threshold; max_value, otherwise + The threshold value + The maximum value of the pixel on the result + The image such that: dst(x,y) = 0, if src(x,y)>threshold; max_value, otherwise + + + Threshold the image inplace such that: dst(x,y) = src(x,y), if src(x,y)>threshold; 0, otherwise + The threshold value + + + Threshold the image inplace such that: dst(x,y) = 0, if src(x,y)>threshold; src(x,y), otherwise + The threshold value + + + Threshold the image inplace such that: dst(x,y) = threshold, if src(x,y)>threshold; src(x,y), otherwise + The threshold value + + + Threshold the image inplace such that: dst(x,y) = max_value, if src(x,y)>threshold; 0, otherwise + The threshold value + The maximum value of the pixel on the result + + + Threshold the image inplace such that: dst(x,y) = 0, if src(x,y)>threshold; max_value, otherwise + The threshold value + The maximum value of the pixel on the result + + + + Calculates the average value and standard deviation of array elements, independently for each channel + + The avg color + The standard deviation for each channel + The operation mask + + + + Calculates the average value and standard deviation of array elements, independently for each channel + + The avg color + The standard deviation for each channel + + + + Count the non Zero elements for each channel + + Count the non Zero elements for each channel + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + Return a flipped copy of the current image + The type of the flipping + The flipped copy of this image + + + Inplace flip the image + The type of the flipping + The flipped copy of this image + + + + Concate the current image with another image vertically. + + The other image to concate + A new image that is the vertical concatening of this image and + + + + Concate the current image with another image horizontally. + + The other image to concate + A new image that is the horizontal concatening of this image and + + + + Calculates spatial and central moments up to the third order and writes them to moments. The moments may be used then to calculate gravity center of the shape, its area, main axises and various shape characteristics including 7 Hu invariants. + + If the flag is true, all the zero pixel values are treated as zeroes, all the others are treated as 1's + spatial and central moments up to the third order + + + + Gamma corrects this image inplace. The image must have a depth type of Byte. + + The gamma value + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of gray scale images where each element + in the array represent a single color channel of the original image + + + + + Save this image to the specific file. + + The name of the file to be saved to + The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format. + + + + The algorithm inplace normalizes brightness and increases contrast of the image. + For color images, a HSV representation of the image is first obtained and the V (value) channel is histogram normalized + + + + + This function load the image data from Mat + + The Mat + + + + This function load the image data from the iplImage pointer + + The pointer to the iplImage + + + + Get the managed image from an unmanaged IplImagePointer + + The pointer to the iplImage + The managed image from the iplImage pointer + + + + Get the jpeg representation of the image + + The jpeg quality + An byte array that contains the image as jpeg data + + + + Get the size of the array + + + + + Constants used by the image class + + + + + Offset of roi + + + + + Image data release mode + + + + + Release just the header + + + + + Release the IplImage + + + + + This is the proxy class for passing read-only input arrays into OpenCV functions. + + + This is the proxy class for passing read-only input arrays into OpenCV functions. + + + + + Input array type + + + + + kind shift + + + + + Fixed type + + + + + Fixed size + + + + + Kind mask + + + + + None + + + + + Mat + + + + + Matx + + + + + StdVector + + + + + StdVectorVector + + + + + StdVectorMat + + + + + Expr + + + + + Opengl buffer + + + + + Cuda Host Mem + + + + + Cuda GpuMat + + + + + UMat + + + + + StdVectorUMat + + + + + StdBoolVector + + + + + StdVectorCudaGpuMat + + + + + Create a Input array from an existing unmanaged inputArray pointer + + The unmanaged pointer the the InputArray + The parent object to keep reference to + + + + Get an empty input array + + An empty input array + + + + Get the Mat from the input array + + The index, in case if this is an VectorOfMat + The Mat + + + + Get the UMat from the input array + + The index, in case if this is an VectorOfUMat + The UMat + + + + Get the size of the input array + + The optional index + The size of the input array + + + + Return true if the input array is empty + + + + + Get the depth type + + The optional index + The depth type + + + + Get the number of dimensions + + The optional index + The dimensions + + + + Get the number of channels + + The optional index + The number of channels + + + + Copy this Input array to another. + + The destination array. + The optional mask. + + + + Release all the unmanaged memory associated with this InputArray + + + + + True if the input array is a Mat + + + + + True if the input array is an UMat + + + + + True if the input array is a vector of Mat + + + + + True if the input array is a vector of UMat + + + + + True if the input array is a Matx + + + + + The type of the input array + + + + + Get the GpuMat from the input array + + The GpuMat + + + + This type is very similar to InputArray except that it is used for input/output function parameters. + + + + + Create an InputOutputArray from an existing unmanaged inputOutputArray pointer + + The pointer to the existing inputOutputArray + The parent object to keep reference to + + + + Get an empty InputOutputArray + + An empty InputOutputArray + + + + Release all the memory associated with this InputOutputArry + + + + + This type is very similar to InputArray except that it is used for output function parameters. + + + + + The unmanaged pointer to the output array + + Get the output array + + + + OutputArrayOfArrays + + + + + A Map is similar to an Image, except that the location of the pixels is defined by + its area and resolution + + The color of this map + The depth of this map + + + + Get the area of this map as a rectangle + + + + + Get the resolution of this map as a 2D point + + + + + Create a new Image Map defined by the Rectangle area. The center (0.0, 0.0) of this map is + defined by the center of the rectangle. + + The area this map covers. + The resolution of x (y), (e.g. a value of 0.5 means each cell in the map is 0.5 unit in x (y) dimension) + The initial color of the map + + + + Create a new Image Map defined by the Rectangle area. The center (0.0, 0.0) of this map is + defined by the center of the rectangle. The initial value of the map is 0.0 + + The area this map covers. + The resolution of x (y), (e.g. a value of 0.5 means each cell in the map is 0.5 unit in x (y) dimension) + + + + Map a point to a position in the internal image + + The point on the map + The point on the image + + + + Map a point to a position in the internal image + + The point on the map + The point on the image + + + + Map an image point to a Map point + + The point on image + The point on map + + + + Get a copy of the map in the specific area + + the area of the map to be retrieve + The area of the map + + + + Get or Set the region of interest for this map. To clear the ROI, set it to System.Drawing.RectangleF.Empty + + + + + Draw a rectangle in the map + + The rectangle to draw + The color for the rectangle + The thickness of the rectangle, any value less than or equal to 0 will result in a filled rectangle + + + + Draw a line segment in the map + + The line to be draw + The color for the line + The thickness of the line + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a Circle of the specific color and thickness + The circle to be drawn + The color of the circle + If thickness is less than 1, the circle is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a convex polygon of the specific color and thickness + The convex polygon to be drawn + The color of the convex polygon + If thickness is less than 1, the triangle is filled up + + + + Draw the text using the specific font on the image + + The text message to be draw + Font type. + Font scale factor that is multiplied by the font-specific base size. + The location of the bottom left corner of the font + The color of the text + Thickness of the lines used to draw a text. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Draw the polyline defined by the array of 2D points + + the points that defines the poly line + if true, the last line segment is defined by the last point of the array and the first point of the array + the color used for drawing + the thinkness of the line + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + The equivalent of cv::Mat + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + Gets or sets the data as byte array. + + + The bytes. + + + + + Copy data from this Mat to the managed array + + The type of managed data array + The managed array where data will be copied to. + + + + Copy data from managed array to this Mat + + The type of managed data array + The managed array where data will be copied from + + + + An option parent object to keep reference to + + + + + Create an empty cv::Mat + + + + + Create a mat of the specific type. + + Number of rows in a 2D array. + Number of columns in a 2D array. + Mat element type + Number of channels + + + + Create a mat of the specific type. + + Size of the Mat + Mat element type + Number of channels + + + + Create a Mat header from existing data + + Number of rows in a 2D array. + Number of columns in a 2D array. + Mat element type + Number of channels + Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data. Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied. This operation is very efficient and can be used to process external data using OpenCV functions. The external data is not automatically deallocated, so you should take care of it. + Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any. + + + + Create multi-dimension mat using existing data. + + The sizes of each dimension + The type of data + The pointer to the unmanaged data + The steps + + + + Create a Mat header from existing data + + Size of the Mat + Mat element type + Number of channels + Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data. Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied. This operation is very efficient and can be used to process external data using OpenCV functions. The external data is not automatically deallocated, so you should take care of it. + Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any. + + + + Load the Mat from file + + The name of the file + File loading method + + + + Create a mat header for the specific ROI + + The mat where the new Mat header will share data from + The region of interest + + + + Create a mat header for the specific ROI + + The mat where the new Mat header will share data from + The region of interest + The region of interest + + + + Convert this Mat to UMat + + Access type + Usage flags + The UMat + + + + Allocates new array data if needed. + + New number of rows. + New number of columns. + New matrix element depth type. + New matrix number of channels + + + + The size of this matrix + + + + + The number of rows + + + + + The number of columns + + + + + Pointer to the beginning of the raw data + + + + + Get a pointer to the raw data given the specific index + + The index to the Mat data + A pointer to the raw data given the specific index + + + + Get a copy of the data values as an array + + If true, a jagged array will returned. Otherwise it will return a regular array. + a copy of the data values as an array + + + + Gets the binary data from the specific indices. + + The indices. + The raw data in byte + Indices of length more than 2 is not implemented + + + + Step + + + + + The size of the elements in this matrix + + + + + Copy the data in this cv::Mat to an output array + + The output array to copy to + Operation mask. Its non-zero elements indicate which matrix elements need to be copied. + + + + Converts an array to another data type with optional scaling. + + Output matrix; if it does not have a proper size or type before the operation, it is reallocated. + Desired output matrix type or, rather, the depth since the number of channels are the same as the input has; if rtype is negative, the output matrix will have the same type as the input. + Optional scale factor. + Optional delta added to the scaled values. + + + + Changes the shape and/or the number of channels of a 2D matrix without copying the data. + + New number of channels. If the parameter is 0, the number of channels remains the same. + New number of rows. If the parameter is 0, the number of rows remains the same. + A new mat header that has different shape + + + + Release all the unmanaged memory associated with this object. + + + + + Pointer to the InputArray + + The input array + + + + Pointer to the OutputArray + + The output array + + + + Pointer to the InputOutputArray + + The input output array + + + + Get the width of the mat + + + + + Get the height of the mat. + + + + + Get the minimum and maximum value across all channels of the mat + + The range that contains the minimum and maximum values + + + + Convert this Mat to Image + + The type of Color + The type of Depth + If true, we will try to see if we can create an Image object that shared the pixel memory with this Mat. + The image + + + + The Get property provide a more efficient way to convert gray scale Mat of Byte, 3 channel Mat of Byte (assuming BGR color space) or 4 channel Mat of Byte (assuming Bgra color space) into Bitmap + such that the image data is shared with Bitmap. + If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well! + For other types of image this property has the same effect as ToBitmap() + Take extra caution not to use the Bitmap after the Mat object is disposed + The Set property convert the bitmap to this Image type. + + + + + Set the mat to the specific value + + The value to set to + Optional mask + + + + Set the mat to the specific value + + The value to set to + Optional mask + + + + Returns an identity matrix of the specified size and type. + + Number of rows. + Number of columns. + Mat element type + Number of channels + An identity matrix of the specified size and type. + + + + Extracts a diagonal from a matrix. The method makes a new header for the specified matrix diagonal. The new matrix is represented as a single-column matrix. Similarly to Mat::row and Mat::col, this is an O(1) operation. + + Index of the diagonal, with the following values: d=0 is the main diagonal; d < 0 is a diagonal from the lower half. For example, d=-1 means the diagonal is set immediately below the main one; d > 0 is a diagonal from the upper half. For example, d=1 means the diagonal is set immediately above the main one. + A diagonal from a matrix + + + + Transposes a matrix. + + The transposes of the matrix. + + + + Returns a zero array of the specified size and type. + + Number of rows. + Number of columns. + Mat element type + Number of channels + A zero array of the specified size and type. + + + + Returns an array of all 1's of the specified size and type. + + Number of rows. + Number of columns. + Mat element type + Number of channels + An array of all 1's of the specified size and type. + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + + Creates a matrix header for the specified matrix row. + + A 0-based row index. + A matrix header for the specified matrix row. + + + + Creates a matrix header for the specified matrix column. + + A 0-based column index. + A matrix header for the specified matrix column. + + + + Save this image to the specific file. + + The name of the file to be saved to + The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format. + + + + Make a clone of the current Mat + + A clone of the current Mat + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of gray scale images where each element in the array represent a single color channel of the original image + + + + + Compares two Mats and check if they are equal + + The other mat to compare with + True if the two Mats are equal + + + + Computes a dot-product of two vectors. + + Another dot-product operand + The dot-product of two vectors. + + + + Computes a cross-product of two 3-element vectors. + + Another cross-product operand. + Cross-product of two 3-element vectors. + + + + Get an array of the size of the dimensions. e.g. if the mat is 9x10x11, the array of {9, 10, 11} will be returned. + + + + + Perform an element wise AND operation on the two mats + + The first mat to AND + The second mat to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first image to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a color + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The scalar to AND + The result of the AND operation + + + Perform an element wise OR operation with another mat and return the result + The first mat to apply bitwise OR operation + The second mat to apply bitwise OR operation + The result of the OR operation + + + + Perform an binary OR operation with some value + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The value to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The color to OR + The result of the OR operation + + + Compute the complement Mat + The mat to be inverted + The complement image + + + + Element wise add with + + The first image to be added + The second image to be added + The sum of the two images + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The images plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The color to be added + The images plus the color + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted from. + The second image to be subtracted from + The result of element wise subtracting img2 from + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted + The value to be subtracted + The result of element wise subtracting from + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The color to be subtracted + - + + + + - + + The mat to be subtracted + The value to be subtracted + - + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The value to be subtracted + - + + + + * + + The mat + The multiplication scale + * + + + + * + + The mat + The multiplication scale + * + + + + / + + The mat + The division scale + / + + + + / + + The mat + The scale + / + + + + True if the data is continues + + + + + True if the matrix is a submatrix of another matrix + + + + + Depth type + + + + + True if the Mat is empty + + + + + Number of channels + + + + + The method removes one or more rows from the bottom of the matrix + + The value + + + + Adds elements to the bottom of the matrix + + The value + + + + The method returns the number of array elements (a number of pixels if the array represents an image) + + + + + The matrix dimensionality + + + + + Matrix data allocator. Base class for Mat that handles the matrix data allocation and deallocation + + + + + Get the managed data used by the Mat + + + + + Release resource associated with this object + + + + + A MatND is a wrapper to cvMatND of OpenCV. + + The type of depth + + + + Create a N-dimensional matrix + + The size for each dimension + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + This function is not implemented for MatND + + Not implemented + Not implemented + Not implemented + + + + This function is not implemented for MatND + + + + + Get the underneath managed array + + + + + Get the depth representation for Open CV + + + + + Release the matrix and all the memory associate with it + + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + Not Implemented + + The XmlReader + + + + Not Implemented + + The XmlWriter + + + + The MCvMatND structure + + + + + Convert this matrix to different depth + + The depth type to convert to + Matrix of different depth + + + + Check if the two MatND are equal + + The other MatND to compares to + True if the two MatND equals + + + + A Matrix is a wrapper to cvMat of OpenCV. + + Depth of this matrix (either Byte, SByte, Single, double, UInt16, Int16 or Int32) + + + + The default constructor which allows Data to be set later on + + + + + Create a Matrix (only header is allocated) using the Pinned/Unmanaged . The is not freed by the disposed function of this class + + The number of rows + The number of cols + The Pinned/Unmanaged data, the data must not be release before the Matrix is Disposed + The step (row stride in bytes) + The caller is responsible for allocating and freeing the block of memory specified by the data parameter, however, the memory should not be released until the related Matrix is released. + + + + Create a Matrix (only header is allocated) using the Pinned/Unmanaged . The is not freed by the disposed function of this class + + The number of rows + The number of cols + The number of channels + The Pinned/Unmanaged data, the data must not be release before the Matrix is Disposed + The step (row stride in bytes) + The caller is responsible for allocating and freeing the block of memory specified by the data parameter, however, the memory should not be released until the related Matrix is released. + + + + Create a Matrix (only header is allocated) using the Pinned/Unmanaged . The is not freed by the disposed function of this class + + The number of rows + The number of cols + The Pinned/Unmanaged data, the data must not be release before the Matrix is Disposed + The caller is responsible for allocating and freeing the block of memory specified by the data parameter, however, the memory should not be released until the related Matrix is released. + + + + Create a matrix of the specific size + + The number of rows (height) + The number of cols (width) + + + + Create a matrix of the specific size + + The size of the matrix + + + + Create a matrix of the specific size and channels + + The number of rows + The number of cols + The number of channels + + + + Create a matrix using the specific data. + + The data will be used as the Matrix data storage. You need to make sure that the data object live as long as this Matrix object + The data will be used as the Matrix data storage. You need to make sure that the data object live as long as this Matrix object + + + + Create a matrix using the specific + + the data for this matrix + + + + Get the underneath managed array + + + + + Get or Set the data for this matrix + + + + + Get the number of channels for this matrix + + + + + The MCvMat structure format + + + + + Returns determinant of the square matrix + + + + + Return the sum of the elements in this matrix + + + + + Return a matrix of the same size with all elements equals 0 + + A matrix of the same size with all elements equals 0 + + + + Make a copy of this matrix + + A copy if this matrix + + + + Get reshaped matrix which also share the same data with the current matrix + + the new number of channles + The new number of rows + A reshaped matrix which also share the same data with the current matrix + + + + Convert this matrix to different depth + + The depth type to convert to + the scaling factor to apply during conversion (defaults to 1.0 -- no scaling) + the shift factor to apply during conversion (defaults to 0.0 -- no shifting) + Matrix of different depth + + + Returns the transpose of this matrix + The transpose of this matrix + + + + Get or Set the value in the specific and + + the row of the element + the col of the element + The element on the specific and + + + + Allocate data for the array + + The number of rows + The number of columns + The number of channels for this matrix + + + + Get a submatrix corresponding to a specified rectangle + + the rectangle area of the sub-matrix + A submatrix corresponding to a specified rectangle + + + + Get the specific row of the matrix + + the index of the row to be reterived + the specific row of the matrix + + + + Return the matrix corresponding to a specified row span of the input array + + Zero-based index of the starting row (inclusive) of the span + Zero-based index of the ending row (exclusive) of the span + Index step in the row span. That is, the function extracts every delta_row-th row from start_row and up to (but not including) end_row + A matrix corresponding to a specified row span of the input array + + + + Get the specific column of the matrix + + the index of the column to be reterived + the specific column of the matrix + + + + Get the Matrix, corresponding to a specified column span of the input array + + Zero-based index of the ending column (exclusive) of the span + Zero-based index of the selected column + the specific column span of the matrix + + + + Return the specific diagonal elements of this matrix + + Array diagonal. Zero corresponds to the main diagonal, -1 corresponds to the diagonal above the main etc., 1 corresponds to the diagonal below the main etc + The specific diagonal elements of this matrix + + + + Return the main diagonal element of this matrix + + The main diagonal element of this matrix + + + + Return the matrix without a specified row span of the input array + + Zero-based index of the starting row (inclusive) of the span + Zero-based index of the ending row (exclusive) of the span + The matrix without a specified row span of the input array + + + + Return the matrix without a specified column span of the input array + + Zero-based index of the starting column (inclusive) of the span + Zero-based index of the ending column (exclusive) of the span + The matrix without a specified column span of the input array + + + + Concate the current matrix with another matrix vertically. If this matrix is n1 x m and is n2 x m, the resulting matrix is (n1+n2) x m. + + The other matrix to concate + A new matrix that is the vertical concatening of this matrix and + + + + Concate the current matrix with another matrix horizontally. If this matrix is n x m1 and is n x m2, the resulting matrix is n x (m1 + m2). + + The other matrix to concate + A matrix that is the horizontal concatening of this matrix and + + + + Returns the min / max locations and values for the matrix + + The minimum value + The maximum value + The minimum location + The maximum location + The optional mask + + + Elementwise add another matrix with the current matrix + The matrix to be added to the current matrix + The result of elementwise adding mat2 to the current matrix + + + Elementwise add a color to the current matrix + The value to be added to the current matrix + The result of elementwise adding from the current matrix + + + Elementwise subtract another matrix from the current matrix + The matrix to be subtracted to the current matrix + The result of elementwise subtracting mat2 from the current matrix + + + Elementwise subtract a color to the current matrix + The value to be subtracted from the current matrix + The result of elementwise subtracting from the current matrix + + + + result = val - this + + The value which subtract this matrix + val - this + + + Multiply the current matrix with + The scale to be multiplied + The scaled matrix + + + Multiply the current matrix with + The matrix to be multiplied + Result matrix of the multiplication + + + + Elementwise add with + + The Matrix to be added + The Matrix to be added + The elementwise sum of the two matrices + + + + Elementwise add with + + The Matrix to be added + The value to be added + The matrix plus the value + + + + + + + The Matrix to be added + The value to be added + The matrix plus the value + + + + - + + The Matrix to be subtracted + The value to be subtracted + - + + + + - + + The Matrix to be subtracted + The matrix to subtract + - + + + + - + + The Matrix to be subtracted + The value to be subtracted + - + + + + * + + The Matrix to be multiplied + The value to be multiplied + * + + + + * + + The matrix to be multiplied + The value to be multiplied + * + + + + / + + The Matrix to be divided + The value to be divided + / + + + + * + + The Matrix to be multiplied + The Matrix to be multiplied + * + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + Release the matrix and all the memory associate with it + + + + + This function compare the current matrix with and returns the comparison mask + + The other matrix to compare with + Comparison type + The comparison mask + + + + Get all channels for the multi channel matrix + + Each individual channel of this matrix + + + + Return true if every element of this matrix equals elements in + + The other matrix to compare with + true if every element of this matrix equals elements in + + + + Get the size of the array + + + + + The equivalent of cv::Moments + + + + + Create an empty Moment object + + + + + Release the unmanaged resources + + + + + The Gravity Center of this Moment + + + + + M00 + + + + + M10 + + + + + M01 + + + + + M20 + + + + + M11 + + + + + M02 + + + + + M30 + + + + + M21 + + + + + M12 + + + + + M03 + + + + + Mu20 + + + + + Mu11 + + + + + Mu02 + + + + + Mu30 + + + + + Mu21 + + + + + Mu12 + + + + + Mu03 + + + + + Nu20 + + + + + Nu11 + + + + + Nu02 + + + + + Nu30 + + + + + Nu21 + + + + + Nu12 + + + + + Nu03 + + + + + This type is very similar to InputArray except that it is used for output function parameters. + + + + + Create an OutputArray from an existing unmanaged outputArray pointer + + The pointer to the unmanaged outputArray + The parent object to keep reference to + + + + Get an empty output array + + An empty output array + + + + Release the unmanaged memory associated with this output array. + + + + + True if the output array is fixed size + + + + + True if the output array is fixed type + + + + + True if the output array is needed + + + + + Random Number Generator. + + + + + Distribution type + + + + + Uniform distribution + + + + + Normal distribution + + + + + Create a Random Number Generator. + + + + + Create a Random Number Generator using a seed. + + 64-bit value used to initialize the RNG + + + + Release the unmanaged resources + + + + + Fills arrays with random numbers. + + 2D or N-dimensional matrix; currently matrices with more than 4 channels are not supported by the methods, use Mat::reshape as a possible workaround. + distribution type + First distribution parameter; in case of the uniform distribution, this is an inclusive lower boundary, in case of the normal distribution, this is a mean value. + Second distribution parameter; in case of the uniform distribution, this is a non-inclusive upper boundary, in case of the normal distribution, this is a standard deviation (diagonal of the standard deviation matrix or the full standard deviation matrix). + Pre-saturation flag; for uniform distribution only; if true, the method will first convert a and b to the acceptable value range (according to the mat datatype) and then will generate uniformly distributed random numbers within the range [saturate(a), saturate(b)), if saturateRange=false, the method will generate uniformly distributed random numbers in the original range [a, b) and then will saturate them + + + + Fills arrays with random numbers. + + 2D or N-dimensional matrix; currently matrices with more than 4 channels are not supported by the methods, use Mat::reshape as a possible workaround. + distribution type + First distribution parameter; in case of the uniform distribution, this is an inclusive lower boundary, in case of the normal distribution, this is a mean value. + Second distribution parameter; in case of the uniform distribution, this is a non-inclusive upper boundary, in case of the normal distribution, this is a standard deviation (diagonal of the standard deviation matrix or the full standard deviation matrix). + Pre-saturation flag; for uniform distribution only; if true, the method will first convert a and b to the acceptable value range (according to the mat datatype) and then will generate uniformly distributed random numbers within the range [saturate(a), saturate(b)), if saturateRange=false, the method will generate uniformly distributed random numbers in the original range [a, b) and then will saturate them + + + + Returns the next random number sampled from the Gaussian distribution. + + standard deviation of the distribution. + Returns the next random number from the Gaussian distribution N(0,sigma) . That is, the mean value of the returned random numbers is zero and the standard deviation is the specified sigma . + + + + The method updates the state using the MWC algorithm and returns the next 32-bit random number. + + The next 32-bit random number + + + + Returns uniformly distributed integer random number from [a,b) range + + Lower inclusive boundary of the returned random number. + Upper non-inclusive boundary of the returned random number. + Uniformly distributed integer random number from [a,b) range + + + + Returns uniformly distributed random float number from [a,b) range + + Lower inclusive boundary of the returned random number. + Upper non-inclusive boundary of the returned random number. + Uniformly distributed random float number from [a,b) range + + + + Returns uniformly distributed random double number from [a,b) range + + Lower inclusive boundary of the returned random number. + Upper non-inclusive boundary of the returned random number. + Uniformly distributed random double number from [a,b) range + + + + An implementation of IInputArray intented to convert data to IInputArray + + + + + Create an InputArray from MCvScalar + + The MCvScalar to be converted to InputArray + + + + Create an InputArray from a double value + + The double value to be converted to InputArray + + + + Convert double scalar to InputArray + + The double scalar + The InputArray + + + + Convert MCvScalar to InputArray + + The MCvScalar + The InputArray + + + + Release all the unmanaged memory associated with this InputArray + + + + + The pointer to the input array + + The input array + + + + Create a sparse matrix + + The type of elements in this matrix + + + + Create a sparse matrix of the specific dimension + + The dimension of the sparse matrix + + + + Get or Set the value in the specific and + + the row of the element + the col of the element + The element on the specific and + + + + Release the unmanaged memory associated with this sparse matrix + + + + + The Image which contains time stamp which specified what time this image is created + + The color of this map + The depth of this map + + + + Create a empty Image + + + + + Create a blank Image of the specified width, height, depth and color. + + The width of the image + The height of the image + The initial color of the image + + + + Create an empty Image of the specified width and height + + The width of the image + The height of the image + + + + The time this image is captured + + + + + The equivalent of cv::Mat, should only be used if you know what you are doing. + In most case you should use the Matrix class instead + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + Allocation usage. + + + + + Default + + + + + Buffer allocation policy is platform and usage specific + + + + + Buffer allocation policy is platform and usage specific + + + + + Buffer allocation policy is platform and usage specific + It is not equal to: AllocateHostMemory | AllocateDeviceMemory + + + + + Get or Set the raw image data + + + + + Create an empty cv::UMat + + + + + Create a umat of the specific type. + + Number of rows in a 2D array. + Number of columns in a 2D array. + Mat element type + Number of channels + Allocation Usage + + + + Create a umat of the specific type. + + Size of the UMat + Mat element type + Number of channels + Allocation Usage + + + + Get the Umat header for the specific roi of the parent + + The parent Umat + The region of interest + + + + Create a umat header for the specific ROI + + The umat where the new UMat header will share data from + The region of interest + The region of interest + + + + Allocates new array data if needed. + + New number of rows. + New number of columns. + New matrix element depth type. + New matrix number of channels + Allocation Usage + + + + Read a UMat from file. + + The name of the file + The read mode + + + + The size of this matrix + + + + + The number of rows + + + + + The number of columns + + + + + The size of the elements in this matrix + + + + + Copy the data in this umat to the other mat + + Operation mask. Its non-zero elements indicate which matrix elements need to be copied. + The input array to copy to + + + + Sets all or some of the array elements to the specified value. + + Assigned scalar converted to the actual array type. + Operation mask of the same size as the umat. + + + + Sets all or some of the array elements to the specified value. + + Assigned scalar value. + Operation mask of the same size as the umat. + + + + Return the Mat representation of the UMat + + The access type + The Mat representation of the UMat + + + + Release all the unmanaged memory associated with this object. + + + + + Pointer to the InputArray + + The input array + + + + Pointer to the OutputArray + + The output array + + + + Pointer to the InputOutputArray + + The input output array + + + + Changes the shape and/or the number of channels of a 2D matrix without copying the data. + + New number of channels. If the parameter is 0, the number of channels remains the same. + New number of rows. If the parameter is 0, the number of rows remains the same. + A new mat header that has different shape + + + + Convert this Mat to Image + + The type of Color + The type of Depth + The image + + + + The Get property provide a more efficient way to convert Image<Gray, Byte>, Image<Bgr, Byte> and Image<Bgra, Byte> into Bitmap + such that the image data is shared with Bitmap. + If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well! + For other types of image this property has the same effect as ToBitmap() + Take extra caution not to use the Bitmap after the Image object is disposed + The Set property convert the bitmap to this Image type. + + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + + Converts an array to another data type with optional scaling. + + Output matrix; if it does not have a proper size or type before the operation, it is reallocated. + Desired output matrix type or, rather, the depth since the number of channels are the same as the input has; if rtype is negative, the output matrix will have the same type as the input. + Optional scale factor. + Optional delta added to the scaled values. + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of gray scale images where each element + in the array represent a single color channel of the original image + + + + + Save this image to the specific file. + + The name of the file to be saved to + The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format. + + + + Make a clone of the current UMat. + + A clone of the current UMat. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the parameter; otherwise, false. + + + + + Copy data from this Mat to the managed array + + The type of managed data array + The managed array where data will be copied to. + + + + Copy data from managed array to this Mat + + The type of managed data array + The managed array where data will be copied from + + + + Computes the dot product of two mats + + The matrix to compute dot product with + The dot product + + + + Creates a matrix header for the specified matrix row. + + A 0-based row index. + A matrix header for the specified matrix row. + + + + Creates a matrix header for the specified matrix column. + + A 0-based column index. + A matrix header for the specified matrix column. + + + + Get a copy of the data values as an array + + If true, a jagged array will returned. Otherwise it will return a regular array. + a copy of the data values as an array + + + + Perform an element wise AND operation on the two mats + + The first mat to AND + The second mat to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first image to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a color + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The scalar to AND + The result of the AND operation + + + Perform an element wise OR operation with another mat and return the result + The first mat to apply bitwise OR operation + The second mat to apply bitwise OR operation + The result of the OR operation + + + + Perform an binary OR operation with some value + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The value to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The color to OR + The result of the OR operation + + + Compute the complement Mat + The mat to be inverted + The complement image + + + + Element wise add with + + The first mat to be added + The second mat to be added + The sum of the two images + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The images plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The color to be added + The images plus the color + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted from. + The second image to be subtracted from + The result of element wise subtracting img2 from + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted + The value to be subtracted + The result of element wise subtracting from + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The color to be subtracted + - + + + + - + + The mat to be subtracted + The value to be subtracted + - + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The value to be subtracted + - + + + + * + + The mat + The multiplication scale + * + + + + * + + The mat + The multiplication scale + * + + + + / + + The mat + The division scale + / + + + + / + + The mat + The scale + / + + + + True if the data is continues + + + + + True if the matrix is a submatrix of another matrix + + + + + Depth type + + + + + True if the matrix is empty + + + + + Number of channels + + + + + The method returns the number of array elements (a number of pixels if the array represents an image) + + + + + The matrix dimensionality + + + + + The Affine3 matrix, double precision. + + + + + Create an empty Affine3, double precision matrix + + + + + Create a new identity matrix + + The identity affine 3d matrix + + + + Rotate the Affine3 matrix by a Rodrigues vector + + Value of the Rodrigues vector + Value of the Rodrigues vector + Value of the Rodrigues vector + The rotated Affine3 matrix + + + + Translate the Affine3 matrix by the given value + + Value of the translation vector + Value of the translation vector + Value of the translation vector + The translated Affine3 matrix + + + + Get the 3x3 matrix's value as a double vector (of size 9) + + The 3x3 matrix's value as a double vector (of size 9) + + + + Release the unmanaged memory associated with this Affine3 model + + + + + A Uniform Multi-dimensional Dense Histogram + + + + + Creates a uniform 1-D histogram of the specified size + + The number of bins in this 1-D histogram. + The upper and lower boundary of the bin + + + + Creates a uniform multi-dimension histogram of the specified size + + The length of this array is the dimension of the histogram. The values of the array contains the number of bins in each dimension. The total number of bins eaquals the multiplication of all numbers in the array + the upper and lower boundaries of the bins + + + + Clear this histogram + + + + + Project the images to the histogram bins + + The type of depth of the image + images to project + If it is true, the histogram is not cleared in the beginning. This feature allows user to compute a single histogram from several images, or to update the histogram online. + Can be null if not needed. The operation mask, determines what pixels of the source images are counted + + + + Project the matrices to the histogram bins + + The type of depth of the image + Matrices to project + If it is true, the histogram is not cleared in the beginning. This feature allows user to compute a single histogram from several images, or to update the histogram online. + Can be null if not needed. The operation mask, determines what pixels of the source images are counted + + + + Backproject the histogram into a gray scale image + + Source images, all are of the same size and type + Destination back projection image of the same type as the source images + The type of depth of the image + + + + Backproject the histogram into a matrix + + Source matrices, all are of the same size and type + Destination back projection matrix of the sametype as the source matrices + The type of depth of the matrix + + + + Get the size of the bin dimensions + + + + + Get the ranges of this histogram + + + + + Gets the bin values. + + The bin values + + + The interface that is used for WCF to provide a image capture service + + + Capture a Bgr image frame + A Bgr image frame + + + Capture a Bgr image frame that is half width and half height + A Bgr image frame that is half width and half height + + + + The interface to request a duplex image capture + + + + + Request a frame from server + + + + + Request a frame from server which is half width and half height + + + + + The interface for DuplexCaptureCallback + + + + + Function to call when an image is received + + The image received + + + + Capture images from either camera or video file. + + VideoCapture class is NOT implemented in Open CV for Android, iOS or UWP platforms + + + + VideoCapture API backends identifier. + + + + + Auto detect + + + + + Video For Windows (obsolete, removed) + + + + + V4L/V4L2 capturing support + + + + + Same as CAP_V4L + + + + + IEEE 1394 drivers + + + + + IEEE 1394 drivers + + + + + IEEE 1394 drivers + + + + + IEEE 1394 drivers + + + + + QuickTime (obsolete, removed) + + + + + Unicap drivers (obsolete, removed) + + + + + DirectShow (via videoInput) + + + + + PvAPI, Prosilica GigE SDK + + + + + OpenNI (for Kinect) + + + + + OpenNI (for Asus Xtion) + + + + + Android - not used + + + + + XIMEA Camera API + + + + + AVFoundation framework for iOS (OS X Lion will have the same API) + + + + + Smartek Giganetix GigEVisionSDK + + + + + Microsoft Media Foundation (via videoInput) + + + + + Microsoft Windows Runtime using Media Foundation + + + + + Intel Perceptual Computing SDK + + + + + OpenNI2 (for Kinect) + + + + + OpenNI2 (for Asus Xtion and Occipital Structure sensors) + + + + + gPhoto2 connection + + + + + GStreamer + + + + + Open and record video file or stream using the FFMPEG library + + + + + OpenCV Image Sequence (e.g. img_%02d.jpg) + + + + + Aravis SDK + + + + + Built-in OpenCV MotionJPEG codec + + + + + Intel MediaSDK + + + + + XINE engine (Linux) + + + + + the type of flipping + + + + + The type of capture source + + + + + Capture from camera + + + + + Capture from file using HighGUI + + + + + Get the type of the capture module + + + + + Get and set the flip type + + + + + Get or Set if the captured image should be flipped horizontally + + + + + Get or Set if the captured image should be flipped vertically + + + + The width of this capture + + + The height of this capture + + + Create a capture using the specific camera + The index of the camera to create capture from, starting from 0 + The preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available. + + + + Create a capture from file or a video stream + + The name of a file, or an url pointed to a stream. + The preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available. + + + + Release the resource for this capture + + + + + Obtain the capture property + + The index for the property + The value of the specific property + + + + Sets the specified property of video capturing + + Property identifier + Value of the property + True if success + + + + Grab a frame + + True on success + + + + The event to be called when an image is grabbed + + + + + Start the grab process in a separate thread. Once started, use the ImageGrabbed event handler and RetrieveGrayFrame/RetrieveBgrFrame to obtain the images. + + An exception handler. If provided, it will be used to handle exception in the capture thread. + + + + Pause the grab process if it is running. + + + + + Stop the grabbing thread + + + + + Retrieve a Gray image frame after Grab() + + The output image + The channel to retrieve image + True if the frame can be retrieved + + + + Similar to the C++ implementation of cv::Capture >> Mat. It first call Grab() function follows by Retrieve() + + The matrix the image will be read into. + + + + The name of the backend used by this VideoCapture + + + + + Capture a Bgr image frame + + A Bgr image frame. If no more frames are available, null will be returned. + + + + Capture a Bgr image frame that is half width and half height. + Mainly used by WCF when sending image to remote locations in a bandwidth conservative scenario + + Internally, this is a cvQueryFrame operation follow by a cvPyrDown + A Bgr image frame that is half width and half height + + + + Query a frame duplexly over WCF + + + + + Query a small frame duplexly over WCF + + + + + True if the camera is opened + + + + + The backend for video + + + + + Create a backend given its id + + The id of the backend + + + + The ID of the backend. + + + + + The name of the backend + + + + + Create a video writer that write images to video format + + + + + Create a video writer using the specific information. + On windows, it will open a codec selection dialog. + On linux, it will use the default codec for the specified filename + + The name of the video file to be written to + frame rate per second + the size of the frame + true if this is a color video, false otherwise + + + + Create a video writer using the specific information + + The name of the video file to be written to + Compression code. Usually computed using CvInvoke.CV_FOURCC. + On windows use -1 to open a codec selection dialog. + On Linux, use CvInvoke.CV_FOURCC('I', 'Y', 'U', 'V') for default codec for the specific file name. + + frame rate per second + the size of the frame + true if this is a color video, false otherwise + + + + Create a video writer using the specific information + + The name of the video file to be written to + Compression code. Usually computed using CvInvoke.CV_FOURCC. + On windows use -1 to open a codec selection dialog. + On Linux, use CvInvoke.CV_FOURCC('I', 'Y', 'U', 'V') for default codec for the specific file name. + + frame rate per second + the size of the frame + true if this is a color video, false otherwise + Allows to specify API backends to use. + + + + Write a single frame to the video writer + + The frame to be written to the video writer + + + + Generate 4-character code of codec used to compress the frames. For example, CV_FOURCC('P','I','M','1') is MPEG-1 codec, CV_FOURCC('M','J','P','G') is motion-jpeg codec etc. + + C1 + C2 + C3 + C4 + The integer value calculated from the four cc code + + + + Release the video writer and all the memory associate with it + + + + + Returns true if video writer has been successfully initialized. + + + + + Sets a property in the VideoWriter. + + Property identifier + Value of the property. + The value of the specific property + + + + Returns the specified VideoWriter property. + + Property identifier. + The value of the specific property + + + + The VideoWriter property + + + + + Current quality (0..100%) of the encoded videostream. Can be adjusted dynamically in some codecs. + + + + + (Read-only): Size of just encoded video frame. Note that the encoding order may be different from representation order. + + + + + Number of stripes for parallel encoding. -1 for auto detection. + + + + + Wrapped AGAST detector + + + + + Agast feature type + + + + + AGAST_5_8 + + + + + AGAST_7_12d + + + + + AGAST_7_12s + + + + + OAST_9_16 + + + + + Create AGAST using the specific values + + Threshold + Non maximum suppression + Type + + + + Release the unmanaged resources associated with this object + + + + + Library to invoke Features2D functions + + + + + Wrapped AKAZE detector + + + + + Type of the extracted descriptor + + + + + The kaze upright + + + + + The kaze + + + + + Modified-Local Difference Binary (M-LDB), upright + + + + + Modified-Local Difference Binary (M-LDB) + + + + + Create AKAZE using the specific values + + Type of the extracted descriptor + Size of the descriptor in bits. 0 -> Full size + Number of channels in the descriptor (1, 2, 3) + Detector response threshold to accept point + Default number of sublevels per scale level + Maximum octave evolution of the image + Diffusivity type + + + + Release the unmanaged resources associated with this object + + + + + The match distance type + + + + + + + + + + Manhattan distance (city block distance) + + + + + Squared Euclidean distance + + + + + Euclidean distance + + + + + Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor, + bit count of A exclusive XOR'ed with B. + + + + + Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor, + bit count of A exclusive XOR'ed with B. + + + + + bit-mask which can be used to separate norm type from norm flags + + + + + Relative, flag + + + + + MinMax, flag + + + + + Wrapped BFMatcher + + + + + Create a BFMatcher of the specific distance type + + The distance type + Specify whether or not cross check is needed. Use false for default. + + + + Release the unmanaged resource associated with the BFMatcher + + + + + Class to compute an image descriptor using the bag of visual words. Such a computation consists of the following + steps: + 1. Compute descriptors for a given image and its key points set. + 2. Find the nearest visual words from the vocabulary for each key point descriptor. + 3. Compute the bag-of-words image descriptor as is a normalized histogram of vocabulary words encountered in + the image. The i-th bin of the histogram is a frequency of i-th word of the vocabulary in the given image. + + + + + Create a BOWImgDescriptorExtractor + + Descriptor extractor that is used to compute descriptors for an input image and its key points. + Descriptor matcher that is used to find the nearest word of the trained vocabulary for each key point descriptor of the image. + + + + Sets a visual vocabulary. + + The vocabulary + + + + Computes an image descriptor using the set visual vocabulary. + + Image, for which the descriptor is computed + Key points detected in the input image. + The output image descriptors. + + + + Release all the unmanaged memory associated with this object + + + + + Kmeans-based class to train visual vocabulary using the bag of visual words approach. + + + + + Create a new BOWKmeans trainer + + Number of clusters to split the set by. + Specifies maximum number of iterations and/or accuracy (distance the centers move by between the subsequent iterations). Use empty termcrit for default. + The number of attempts. Use 3 for default + Kmeans initialization flag. Use PPCenters for default. + + + + Get the number of descriptors + + + + + Add the descriptors to the trainer + + The descriptors to be added to the trainer + + + + Cluster the descriptors and return the cluster centers + + The cluster centers + + + + Release all the unmanaged memory associated with this object + + + + + BRISK: Binary Robust Invariant Scalable Keypoints + + + + + Create a BRISK keypoint detector and descriptor extractor. + + Feature parameters. + The number of octave layers. + Pattern scale + + + + Release the unmanaged resources associated with this object + + + + + Descriptor matcher + + + + + The pointer to the Descriptor matcher + + + + + Finds the k best matches for each descriptor from a query set. + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches. Each matches[i] is k or less matches for the same query descriptor. + Count of best matches found per each query descriptor or less if a query descriptor has less than k possible matches in total. + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Find the k-nearest match + + An n x m matrix of descriptors to be query for nearest neighbours. n is the number of descriptor and m is the size of the descriptor + Number of nearest neighbors to search for + Can be null if not needed. An n x 1 matrix. If 0, the query descriptor in the corresponding row will be ignored. + Matches. Each matches[i] is k or less matches for the same query descriptor. + + Parameter used when the mask (or masks) is not empty. If compactResult is + false, the matches vector has the same size as queryDescriptors rows.If compactResult is true, + the matches vector does not contain matches for fully masked-out query descriptors. + + + + + Add the model descriptors + + The model descriptors + + + + Reset the native pointer upon object disposal + + + + + Clears the train descriptor collections. + + + + + Returns true if there are no train descriptors in the both collections. + + + + + Returns true if the descriptor matcher supports masking permissible matches. + + + + + Trains a descriptor matcher (for example, the flann index). In all methods to match, the method + train() is run every time before matching.Some descriptor matchers(for example, BruteForceMatcher) + have an empty implementation of this method.Other matchers really train their inner structures (for + example, FlannBasedMatcher trains flann::Index ). + + + + + Finds the best match for each descriptor from a query set. + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + Finds the best match for each descriptor from a query set. Train descriptors collection that was set by the Add function is used. + + Query set of descriptors. + If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance. + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance. + + Query set of descriptors. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + FAST(Features from Accelerated Segment Test) keypoint detector. + See Detects corners using FAST algorithm by E. Rosten ("Machine learning for high-speed corner + detection, 2006). + + + + + One of the three neighborhoods as defined in the paper + + + + + The type5_8 + + + + + The type7_12 + + + + + The type9_16 + + + + + Create a fast detector with the specific parameters + + Threshold on difference between intensity of center pixel and pixels on circle around + this pixel. + Specify if non-maximum suppression should be used. + One of the three neighborhoods as defined in the paper + + + + Release the unmanaged memory associated with this detector. + + + + + The feature 2D base class + + + + + The pointer to the Feature2D object + + + + + The pointer to the Algorithm object. + + + + + Get the pointer to the Feature2D object + + The pointer to the Feature2D object + + + + Detect keypoints in an image and compute the descriptors on the image from the keypoint locations. + + The image + The optional mask, can be null if not needed + The detected keypoints will be stored in this vector + The descriptors from the keypoints + If true, the method will skip the detection phase and will compute descriptors for the provided keypoints + + + + Reset the pointers + + + + + Detect the features in the image + + The result vector of keypoints + The image from which the features will be detected from + The optional mask. + + + + Detect the keypoints from the image + + The image to extract keypoints from + The optional mask. + An array of key points + + + + Compute the descriptors on the image from the given keypoint locations. + + The image to compute descriptors from + The keypoints where the descriptor computation is perfromed + The descriptors from the given keypoints + + + + Get the number of elements in the descriptor. + + The number of elements in the descriptor + + + + Tools for features 2D + + + + + Draw the keypoints found on the image. + + The image + The keypoints to be drawn + The color used to draw the keypoints + The drawing type + The image with the keypoints drawn + + + + Draw the matched keypoints between the model image and the observered image. + + The model image + The keypoints in the model image + The observed image + The keypoints in the observed image + The color for the match correspondence lines + The color for highlighting the keypoints + The mask for the matches. Use null for all matches. + The drawing type + The image where model and observed image is displayed side by side. Matches are drawn as indicated by the flag + Matches. Each matches[i] is k or less matches for the same query descriptor. + + + + Define the Keypoint draw type + + + + + Two source image, matches and single keypoints will be drawn. + For each keypoint only the center point will be drawn (without + the circle around keypoint with keypoint size and orientation). + + + + + Single keypoints will not be drawn. + + + + + For each keypoint the circle around keypoint with keypoint size and + orientation will be drawn. + + + + + Eliminate the matched features whose scale and rotation do not aggree with the majority's scale and rotation. + + The numbers of bins for rotation, a good value might be 20 (which means each bin covers 18 degree) + This determines the different in scale for neighbor hood bins, a good value might be 1.5 (which means matched features in bin i+1 is scaled 1.5 times larger than matched features in bin i + The keypoints from the model image + The keypoints from the observed image + This is both input and output. This matrix indicates which row is valid for the matches. + Matches. Each matches[i] is k or less matches for the same query descriptor. + The number of non-zero elements in the resulting mask + + + + Recover the homography matrix using RANDSAC. If the matrix cannot be recovered, null is returned. + + The model keypoints + The observed keypoints + + The maximum allowed reprojection error to treat a point pair as an inlier. + If srcPoints and dstPoints are measured in pixels, it usually makes sense to set this parameter somewhere in the range 1 to 10. + + + The mask matrix of which the value might be modified by the function. + As input, if the value is 0, the corresponding match will be ignored when computing the homography matrix. + If the value is 1 and RANSAC determine the match is an outlier, the value will be set to 0. + + The homography matrix, if it cannot be found, null is returned + Matches. Each matches[i] is k or less matches for the same query descriptor. + + + + Filter the matched Features, such that if a match is not unique, it is rejected. + + The distance different ratio which a match is consider unique, a good number will be 0.8 + This is both input and output. This matrix indicates which row is valid for the matches. + Matches. Each matches[i] is k or less matches for the same query descriptor. + + + + This matcher trains flann::Index_ on a train descriptor collection and calls its nearest search methods to find the best matches. So, this matcher may be faster when matching a large train collection than the brute force matcher. + + + + + Create a Flann based matcher. + + The type of index parameters + The search parameters + + + + Release the unmanaged memory associated with this Flann based matcher. + + + + + Wrapping class for feature detection using the goodFeaturesToTrack() function. + + + + + Create a Good Feature to Track detector + + The function first calculates the minimal eigenvalue for every source image pixel using cvCornerMinEigenVal function and stores them in eig_image. Then it performs non-maxima suppression (only local maxima in 3x3 neighborhood remain). The next step is rejecting the corners with the minimal eigenvalue less than quality_level?max(eig_image(x,y)). Finally, the function ensures that all the corners found are distanced enough one from another by considering the corners (the most strongest corners are considered first) and checking that the distance between the newly considered feature and the features considered earlier is larger than min_distance. So, the function removes the features than are too close to the stronger features + The maximum number of features to be detected. + Multiplier for the maxmin eigenvalue; specifies minimal accepted quality of image corners. + Limit, specifying minimum possible distance between returned corners; Euclidian distance is used. + Size of the averaging block, passed to underlying cvCornerMinEigenVal or cvCornerHarris used by the function. + If true, will use Harris corner detector. + K + + + + Release the unmanaged memory associated with this detector. + + + + + Wrapped KAZE detector + + + + + The diffusivity + + + + + PM G1 + + + + + PM G2 + + + + + Weickert + + + + + Charbonnier + + + + + Create KAZE using the specific values + + Set to enable extraction of extended (128-byte) descriptor. + Set to enable use of upright descriptors (non rotation-invariant). + Detector response threshold to accept point + Maximum octave evolution of the image + Default number of sublevels per scale level + Diffusivity type. + + + + Release the unmanaged resources associated with this object + + + + + MSER detector + + + + + Create a MSER detector using the specific parameters + + In the code, it compares (size_{i}-size_{i-delta})/size_{i-delta} + Prune the area which bigger than max_area + Prune the area which smaller than min_area + Prune the area have similar size to its children + Trace back to cut off mser with diversity < min_diversity + For color image, the evolution steps + The area threshold to cause re-initialize + Ignore too small margin + The aperture size for edge blur + + + + Release the unmanaged memory associated with this detector. + + + + + Detect MSER regions + + input image (8UC1, 8UC3 or 8UC4, must be greater or equal than 3x3) + resulting list of point sets + resulting bounding boxes + + + + Wrapped ORB detector + + + + + The score type + + + + + Harris + + + + + Fast + + + + + Create a ORBDetector using the specific values + + The number of desired features. + Coefficient by which we divide the dimensions from one scale pyramid level to the next. + The number of levels in the scale pyramid. + The level at which the image is given. If 1, that means we will also look at the image. times bigger + How far from the boundary the points should be. + How many random points are used to produce each cell of the descriptor (2, 3, 4 ...). + Type of the score to use. + Patch size. + FAST threshold + + + + Release the unmanaged resources associated with this object + + + + + Simple Blob detector + + + + + Create a simple blob detector + + The parameters for creating a simple blob detector + + + + Release the unmanaged memory associated with this detector. + + + + + Parameters for the simple blob detector + + + + + Create parameters for simple blob detector and use default values. + + + + + Release all the unmanaged memory associated with this simple blob detector parameter. + + + + + Threshold step + + + + + Min threshold + + + + + Max threshold + + + + + Min dist between blobs + + + + + Filter by color + + + + + Blob color + + + + + Filter by area + + + + + Min area + + + + + Max area + + + + + Filter by circularity + + + + + Min circularity + + + + + Max circularity + + + + + Filter by inertia + + + + + Min inertia ratio + + + + + Max inertia ratio + + + + + Filter by convexity + + + + + Min Convexity + + + + + Max Convexity + + + + + Min Repeatability + + + + + The Kmeans center initiation types + + + + + Random + + + + + + + + + + + + + + + The index parameters interface + + + + + Gets the pointer to the index parameter. + + + The index parameter pointer. + + + + + Distance Type + + + + + Euclidean + + + + + L2 + + + + + Manhattan + + + + + L1 + + + + + Minkowski + + + + + Max + + + + + HistIntersect + + + + + Hellinger + + + + + ChiSquare + + + + + CS + + + + + KullbackLeibler + + + + + KL + + + + + Hamming + + + + + Flann index + + + + + Create a flann index + + A row by row matrix of descriptors + The index parameter + The distance type + + + + Perform k-nearest-neighbours (KNN) search + + A row by row matrix of descriptors to be query for nearest neighbours + The result of the indices of the k-nearest neighbours + The square of the Eculidean distance between the neighbours + Number of nearest neighbors to search for + The number of times the tree(s) in the index should be recursively traversed. A + higher value for this parameter would give better search precision, but also take more + time. If automatic configuration was used when the index was created, the number of + checks required to achieve the specified precision was also computed, in which case + this parameter is ignored + The search epsilon + If set to true, the search result is sorted + + + + Performs a radius nearest neighbor search for multiple query points + + The query points, one per row + Indices of the nearest neighbors found + The square of the Eculidean distance between the neighbours + The search radius + The maximum number of results + The number of times the tree(s) in the index should be recursively traversed. A + higher value for this parameter would give better search precision, but also take more + time. If automatic configuration was used when the index was created, the number of + checks required to achieve the specified precision was also computed, in which case + this parameter is ignored + The search epsilon + If set to true, the search result is sorted + The number of points in the search radius + + + + Release the unmanaged memory associated with this Flann Index + + + + + Create index for 3D points + + + + + Create a flann index for 3D points + + The IPosition3D array + The index parameters + + + + A neighbor point + + + + + The index of the point + + + + + The square distance + + + + + Find the approximate nearest position in 3D + + The position to start the search from + The nearest neighbor (may be an approximation, depends in the index type). + + + + Perform a search within the given radius + + The center of the search area + The radius of the search + The maximum number of results to return + The neighbors found + + + + Release the resource used by this object + + + + + When passing an object of this type, the index will perform a linear, brute-force search. + + + + + Initializes a new instance of the class. + + + + + Release all the memory associated with this IndexParam + + + + + When passing an object of this type the index constructed will consist of a set of randomized kd-trees which will be searched in parallel. + + + + + Initializes a new instance of the class. + + The number of parallel kd-trees to use. Good values are in the range [1..16] + + + + Release all the memory associated with this IndexParam + + + + + When using a parameters object of this type the index created uses multi-probe LSH (by Multi-Probe LSH: Efficient Indexing for High-Dimensional Similarity Search by Qin Lv, William Josephson, Zhe Wang, Moses Charikar, Kai Li., Proceedings of the 33rd International Conference on Very Large Data Bases (VLDB). Vienna, Austria. September 2007) + + + + + Initializes a new instance of the class. + + The number of hash tables to use (between 10 and 30 usually). + The size of the hash key in bits (between 10 and 20 usually). + The number of bits to shift to check for neighboring buckets (0 is regular LSH, 2 is recommended). + + + + Release all the memory associated with this IndexParam + + + + + When passing an object of this type the index constructed will be a hierarchical k-means tree. + + + + + Initializes a new instance of the class. + + The branching factor to use for the hierarchical k-means tree + The maximum number of iterations to use in the k-means clustering stage when building the k-means tree. A value of -1 used here means that the k-means clustering should be iterated until convergence + The algorithm to use for selecting the initial centers when performing a k-means clustering step. The possible values are CENTERS_RANDOM (picks the initial cluster centers randomly), CENTERS_GONZALES (picks the initial centers using Gonzales’ algorithm) and CENTERS_KMEANSPP (picks the initial centers using the algorithm suggested in arthur_kmeanspp_2007 ) + This parameter (cluster boundary index) influences the way exploration is performed in the hierarchical kmeans tree. When cb_index is zero the next kmeans domain to be explored is chosen to be the one with the closest center. A value greater then zero also takes into account the size of the domain. + + + + Release all the memory associated with this IndexParam + + + + + When using a parameters object of this type the index created combines the randomized kd-trees and the hierarchical k-means tree. + + + + + Initializes a new instance of the class. + + The number of parallel kd-trees to use. Good values are in the range [1..16] + The branching factor to use for the hierarchical k-means tree + The maximum number of iterations to use in the k-means clustering stage when building the k-means tree. A value of -1 used here means that the k-means clustering should be iterated until convergence + The algorithm to use for selecting the initial centers when performing a k-means clustering step. The possible values are CENTERS_RANDOM (picks the initial cluster centers randomly), CENTERS_GONZALES (picks the initial centers using Gonzales’ algorithm) and CENTERS_KMEANSPP (picks the initial centers using the algorithm suggested in arthur_kmeanspp_2007 ) + This parameter (cluster boundary index) influences the way exploration is performed in the hierarchical kmeans tree. When cb_index is zero the next kmeans domain to be explored is chosen to be the one with the closest center. A value greater then zero also takes into account the size of the domain. + + + + Release all the memory associated with this IndexParam + + + + + When passing an object of this type the index created is automatically tuned to offer the best performance, by choosing the optimal index type (randomized kd-trees, hierarchical kmeans, linear) and parameters for the dataset provided. + + + + + Initializes a new instance of the class. + + Is a number between 0 and 1 specifying the percentage of the approximate nearest-neighbor searches that return the exact nearest-neighbor. Using a higher value for this parameter gives more accurate results, but the search takes longer. The optimum value usually depends on the application. + Specifies the importance of the index build time reported to the nearest-neighbor search time. In some applications it’s acceptable for the index build step to take a long time if the subsequent searches in the index can be performed very fast. In other applications it’s required that the index be build as fast as possible even if that leads to slightly longer search times. + Is used to specify the trade off between time (index build time and search time) and memory used by the index. A value less than 1 gives more importance to the time spent and a value greater than 1 gives more importance to the memory usage. + Is a number between 0 and 1 indicating what fraction of the dataset to use in the automatic parameter configuration algorithm. Running the algorithm on the full dataset gives the most accurate results, but for very large datasets can take longer than desired. In such case using just a fraction of the data helps speeding up this algorithm while still giving good approximations of the optimum parameters. + + + + Release all the memory associated with this IndexParam + + + + + Hierarchical Clustering Index Parameters + + + + + Initializes a new instance of the . + + branching + Center initialization method + Trees + Leaf Size + + + + Release all the memory associated with this IndexParam + + + + + Search parameters + + + + + Initializes a new instance of the class. + + how many leafs to visit when searching for neighbors (-1 for unlimited) + Search for eps-approximate neighbors + Only for radius search, require neighbors sorted by distance + + + + Release all the memory associated with this IndexParam + + + + + A geodetic coordinate that is defined by its latitude, longitude and altitude + + + + + Indicates the origin of the Geodetic Coordinate + + + + + Create a geodetic coordinate using the specific values + + Latitude in radian + Longitude in radian + Altitude in meters + + + + Latitude (phi) in radian + + + + + Longitude (lambda) in radian + + + + + Altitude (height) in meters + + + + + Compute the sum of two GeodeticCoordinates + + The first coordinate to be added + The second coordinate to be added + The sum of two GeodeticCoordinates + + + + Compute - + + The first coordinate + The coordinate to be subtracted + - + + + + Compute * + + The coordinate + The scale to be multiplied + * + + + + Check if this Geodetic coordinate equals + + The other coordinate to be compared with + True if two coordinates equals + + + + Convert radian to degree + + radian + degree + + + + Convert degree to radian + + degree + radian + + + + Fisheye Camera model + + + + + Fisheye calibration flag. + + + + + Default flag + + + + + cameraMatrix contains valid initial values of fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image center ( imageSize is used), and focal distances are computed in a least-squares fashion. + + + + + Extrinsic will be recomputed after each iteration of intrinsic optimization. + + + + + The functions will check validity of condition number. + + + + + Skew coefficient (alpha) is set to zero and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Fix intrinsic + + + + + Projects points using fisheye model. The function computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. Optionally, the function computes Jacobians - matrices of partial derivatives of image points coordinates (as functions of all the input parameters) with respect to the particular parameters, intrinsic and/or extrinsic. + + Array of object points, 1xN/Nx1 3-channel (or vector<Point3f> ), where N is the number of points in the view. + Output array of image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, or vector<Point2f>. + rotation vector + translation vector + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + The skew coefficient. + Optional output 2Nx15 jacobian matrix of derivatives of image points with respect to components of the focal lengths, coordinates of the principal point, distortion coefficients, rotation vector, translation vector, and the skew. In the old interface different components of the jacobian are returned via different output parameters. + + + + Distorts 2D points using fisheye model. + + Array of object points, 1xN/Nx1 2-channel (or vector<Point2f> ), where N is the number of points in the view. + Output array of image points, 1xN/Nx1 2-channel, or vector<Point2f> . + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + The skew coefficient. + + + + Transforms an image to compensate for fisheye lens distortion. + + Array of object points, 1xN/Nx1 2-channel (or vector<Point2f> ), where N is the number of points in the view. + Output array of image points, 1xN/Nx1 2-channel, or vector<Point2f>. + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel + New camera matrix (3x3) or new projection matrix (3x4) + + + + Computes undistortion and rectification maps for image transform by cv::remap(). If D is empty zero distortion is used, if R or P is empty identity matrixes are used. + + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel + New camera matrix (3x3) or new projection matrix (3x4) + Undistorted image size. + Type of the first output map that can be CV_32FC1 or CV_16SC2 . See convertMaps() for details. + The first output map. + The second output map. + + + + Transforms an image to compensate for fisheye lens distortion. The function is simply a combination of fisheye::initUndistortRectifyMap (with unity R ) and remap (with bilinear interpolation). + + Image with fisheye lens distortion. + Output image with compensated fisheye lens distortion. + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + Camera matrix of the distorted image. By default, it is the identity matrix but you may additionally scale and shift the result by using a different matrix. + The function transforms an image to compensate radial and tangential lens distortion. + + + + Estimates new camera matrix for undistortion or rectification. + + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + + Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel + New camera matrix (3x3) or new projection matrix (3x4) + Sets the new focal length in range between the min focal length and the max focal length. Balance is in range of [0, 1] + + Divisor for new focal length. + + + + Stereo rectification for fisheye camera model. + + First camera matrix. + First camera distortion parameters. + Second camera matrix. + Second camera distortion parameters. + Size of the image used for stereo calibration. + Rotation matrix between the coordinate systems of the first and the second cameras. + Translation vector between coordinate systems of the cameras. + Output 3x3 rectification transform (rotation matrix) for the first camera. + Output 3x3 rectification transform (rotation matrix) for the second camera. + Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera. + Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera. + Output 4×4 disparity-to-depth mapping matrix (see reprojectImageTo3D ). + Operation flags that may be zero or ZeroDisparity . If the flag is set, the function makes the principal points of each camera have the same pixel coordinates in the rectified views. And if the flag is not set, the function may still shift the images in the horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the useful image area. + New image resolution after rectification. The same size should be passed to initUndistortRectifyMap. When (0,0) is passed (default), it is set to the original imageSize . Setting it to larger value can help you preserve details in the original image, especially when there is a big radial distortion. + Sets the new focal length in range between the min focal length and the max focal length. Balance is in range of [0, 1]. + Divisor for new focal length. + + + + Performs camera calibaration. + + vector of vectors of calibration pattern points in the calibration pattern coordinate space. + vector of vectors of the projections of calibration pattern points. imagePoints.size() and objectPoints.size() and imagePoints[i].size() must be equal to objectPoints[i].size() for each i. + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. If UseIntrisicGuess is specified, some or all of fx, fy, cx, cy must be initialized before calling the function. + Output vector of distortion coefficients (k1,k2,k3,k4). + Output vector of rotation vectors (see Rodrigues ) estimated for each pattern view. That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the calibration pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the calibration pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Different flags + Termination criteria for the iterative optimization algorithm. + + + + Performs stereo calibration. + + Vector of vectors of the calibration pattern points. + Vector of vectors of the projections of the calibration pattern points, observed by the first camera. + Vector of vectors of the projections of the calibration pattern points, observed by the second camera. + Input/output first camera matrix.If FixIntrinsic is specified, some or all of the matrix components must be initialized. + Input/output vector of distortion coefficients (k1,k2,k3,k4) of 4 elements. + Input/output second camera matrix. The parameter is similar to + Input/output lens distortion coefficients for the second camera. The parameter is similar to + Size of the image used only to initialize intrinsic camera matrix. + Output rotation matrix between the 1st and the 2nd camera coordinate systems. + Output translation vector between the coordinate systems of the cameras. + Fish eye calibration flags + Termination criteria for the iterative optimization algorithm. + + + + Attribute used by ImageBox to generate Operation Menu + + + + + Get or Set the exposable value, if true, this function will be displayed in Operation Menu of ImageBox + + + + + The catefory of this function + + + + + The size for each generic parameter Options + + + + + The options for generic parameters + + + + + Constructor + + + + + A generic parameter for the Operation class + + + + + The selected generic parameter type + + + + + The types that can be used + + + + + Create a generic parameter for the Operation class + + The selected generic parameter typ + The types that can be used + + + + A collection of reflection function that can be applied to ColorType object + + + + + Get the display color for each channel + + The color + The display color for each channel + + + + Get the names of the channels + + The color + The names of the channels + + + + A collection of reflection function that can be applied to IImage object + + + + + Get all the methods that belongs to the IImage and Image class with ExposableMethodAttribute set true. + + The IImage object to be refelected for methods marked with ExposableMethodAttribute + All the methods that belongs to the IImage and Image class with ExposableMethodAttribute set true + + + + Get the color type of the image + + The image to apply reflection on + The color type of the image + + + + Get the depth type of the image + + The image to apply reflection on + The depth type of the image + + + + Get the color at the specific location of the image + + The image to obtain pixel value from + The location to sample a pixel + The color at the specific location + + + + A class that can be used for writing geotiff + + The color type of the image to be written + The depth type of the image to be written + + + + Create a tiff writer to save an image + + The file name to be saved + + + + Write the image to the tiff file + + The image to be written + + + + Write the geo information into the tiff file + + Model Tie Point, an array of size 6 + Model pixel scale, an array of size 3 + + + + Release the writer and write all data on to disk. + + + + + A writer for writing GeoTiff + + The color type of the image to be written + The depth type of the image to be written + + + + Create a TitleTiffWriter. + + The name of the file to be written to + The size of the image + The tile size in pixels + + + + Write a tile into the tile tiff + + The starting row for the tile + The starting col for the tile + The tile to be written + + + + Get the equivalent size for a tile of data as it would be returned in a call to TIFFReadTile or as it would be expected in a call to TIFFWriteTile. + + + + + Get the number of bytes of a row of data in a tile. + + + + + Get tile size in pixels. + + + + + Write the whole image as tile tiff + + The image to be written + + + + This class contains ocl runtime information + + + + + Create a empty OclDevice object + + + + + Get the default OclDevice. Do not dispose this device. + + + + + Release all the unmanaged memory associated with this OclInfo + + + + + Get the native device pointer + + + + + Set the native device pointer + + + + + + Get the string representation of this oclDevice + + A string representation of this oclDevice + + + + Indicates if this is an NVidia device + + + + + Indicates if this is an Intel device + + + + + Indicates if this is an AMD device + + + + + The AddressBits + + + + + Indicates if the linker is available + + + + + Indicates if the compiler is available + + + + + Indicates if the device is available + + + + + The maximum work group size + + + + + The max compute unit + + + + + The local memory size + + + + + The maximum memory allocation size + + + + + The device major version number + + + + + The device minor version number + + + + + The device half floating point configuration + + + + + The device single floating point configuration + + + + + The device double floating point configuration + + + + + True if the device use unified memory + + + + + The global memory size + + + + + The image 2d max width + + + + + The image2d max height + + + + + The ocl device type + + + + + The device name + + + + + The device version + + + + + The device vendor name + + + + + The device driver version + + + + + The device extensions + + + + + The device OpenCL version + + + + + The device OpenCL C version + + + + + Ocl Device Type + + + + + Default + + + + + Cpu + + + + + Gpu + + + + + Accerlerator + + + + + DGpu + + + + + IGpu + + + + + All + + + + + Floating point configuration + + + + + Denorm + + + + + inf, nan + + + + + round to nearest + + + + + round to zero + + + + + round to infinite + + + + + FMA + + + + + soft float + + + + + Correctly rounded divide sqrt + + + + + Class that contains ocl functions + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + + + Convert the DepthType to a string that represent the OpenCL value type. + + The depth type + The number of channels + A string the repsent the OpenCL value type + + + + Get all the platform info as a vector + + The vector of Platfom info + + + + cv::ocl::Image2D + + + + + Create an OclImage2D object from UMat + + The UMat from which to get image properties and data + Flag to enable the use of normalized channel data types + Flag indicating that the image should alias the src UMat. If true, changes to the image or src will be reflected in both objects. + + + + Release the unmanaged memory associated with this OclImage2D + + + + + An opencl kernel + + + + + Create an opencl kernel + + + + + Create an opencl kernel + + The name of the kernel + The program source code + The build options + Option error message container that can be passed to this function + True if the kernel can be created + + + + Release the opencl kernel + + + + + Set the parameters for the kernel + + The index of the parameter + The ocl image + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The umat + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The value + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The value + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The value + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The kernel arg + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The data + The size of the data in number of bytes + The next index value to be set + + + + Execute the kernel + + The global size + The local size + If true, the code is run synchronously (blocking) + Optional Opencl queue + True if the execution is sucessful + + + + Indicates if the kernel is empty + + + + + The pointer to the native kernel + + + + + OpenCL kernel arg + + + + + KernelArg flags + + + + + Local + + + + + Read only + + + + + Write only + + + + + Read write + + + + + Constant + + + + + Ptr only + + + + + No size + + + + + Create the OCL kernel arg + + The flags + The UMat + wscale + iwscale + obj + sz + + + + Release the unmanaged memory associated with this object + + + + + This class contains ocl platform information + + + + + Release all the unmanaged memory associated with this OclInfo + + + + + Get the OclDevice with the specific index + + The index of the ocl device + The ocl device with the specific index + + + + Get the string that represent this oclPlatformInfo object + + A string that represent this oclPlatformInfo object + + + + The platform name + + + + + The platform version + + + + + The platform vendor + + + + + The number of devices + + + + + Open CL kernel program source code + + + + + Create OpenCL program source code + + The source code + + + + Get the source code as String + + + + + Release the unmanaged memory associated with this object + + + + + An OpenCL Queue + + + + + OpenCL queue + + + + + Wait for the queue to finish + + + + + Release the unmanaged memory associated with this object. + + + + + A raw data storage + + The type of elements in the storage + + + + The file info + + + + + Create a binary File Storage + + The file name of the storage + + + + Create a binary File Storage + + The file name of the storage + The data will be read in trunk of this size internally. Can be use to seed up the file read. A good number will be 4096 + + + + Create a binary File Storage with the specific data + + The file name of the storage, all data in the existing file will be replaced + The data which will be stored in the storage + + + + Append the samples to the end of the storage + + The samples to be appended to the storage + + + + The file name of the storage + + + + + Delete all data in the existing storage, if there is any. + + + + + Estimate the number of elements in this storage as the size of the storage divided by the size of the elements + + An estimation of the number of elements in this storage + + + + Get a copy of the first element in the storage. If the storage is empty, a default value will be returned + + A copy of the first element in the storage. If the storage is empty, a default value will be returned + + + + Get the subsampled data in this storage + + The subsample rate + The sub-sampled data in this storage + + + + Get the data in this storage + + The data in this storage + + + + The default exception to be thrown when error encounter in Open CV + + + + + The numeric code for error status + + + + + The corresponding error string for the Status code + + + + + The name of the function the error is encountered + + + + + A description of the error + + + + + The source file name where error is encountered + + + + + The line number in the souce where error is encountered + + + + + The default exception to be thrown when error is encountered in Open CV + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the souce where error is encountered + + + + Utilities class + + + + + The ColorPalette of Grayscale for Bitmap Format8bppIndexed + + + + + Convert the color palette to four lookup tables + + The color palette to transform + Lookup table for the B channel + Lookup table for the G channel + Lookup table for the R channel + Lookup table for the A channel + + + + Convert arrays of data to matrix + + Arrays of data + A two dimension matrix that represent the array + The data type of the matrix + + + + Convert arrays of points to matrix + + Arrays of points + A two dimension matrix that represent the points + + + + Compute the minimum and maximum value from the points + + The points + The minimum x,y,z values + The maximum x,y,z values + + + + Copy a generic vector to the unmanaged memory + + The data type of the vector + The source vector + Pointer to the destination unmanaged memory + Specify the number of bytes to copy. If this is -1, the number of bytes equals the number of bytes in the array + The number of bytes copied + + + + Copy a jagged two dimensional array to the unmanaged memory + + The data type of the jagged two dimensional + The source array + Pointer to the destination unmanaged memory + + + + Copy a jagged two dimensional array from the unmanaged memory + + The data type of the jagged two dimensional + The src array + Pointer to the destination unmanaged memory + + + + memcpy function + + the destination of memory copy + the source of memory copy + the number of bytes to be copied + + + + Given the source and destination color type, compute the color conversion code for CvInvoke.cvCvtColor function + + The source color type. Must be a type inherited from IColor + The dest color type. Must be a type inherited from IColor + The color conversion code for CvInvoke.cvCvtColor function + + + + A DataLogger for unmanaged code to log data back to managed code, using callback. + + + + + Create a MessageLogger and register the callback function + + The log level. + + + + The event that will be raised when the unmanaged code send over data + + + + + Log some data + + Pointer to some unmanaged data + The logLevel. The Log function only logs when the is greater or equals to the DataLogger's logLevel + + + + Release the DataLogger and all the unmanaged memory associated with it. + + + + + A generic version of the DataLogger + + The supported type includes System.String and System.ValueType + + + + Create a new DataLogger + + The log level. + + + + The event that will be raised when the unmanaged code send over data + + + + + Log some data + + The data to be logged + The logLevel. The Log function only logs when the is greater or equals to the DataLogger's logLevel + + + + Pointer to the unmanaged object + + + + + Implicit operator for IntPtr + + The DataLogger + The unmanaged pointer for this DataLogger + + + + Release the unmanaged memory associated with this DataLogger + + + + + The event that will be raised when the unmanaged code send over data + + + + + An Unmanaged Object is a disposable object with a Ptr property pointing to the unmanaged object + + + + + A pointer to the shared pointer to the unmanaged object + + + + + Pointer to the shared pointer to the unmanaged object + + + + + Cache the size of various header in bytes + + + + + The size of PointF + + + + + The size of RangF + + + + + The size of PointF + + + + + The size of MCvMat + + + + + The size of IplImage + + + + + The size of MCvPoint3D32f + + + + + The size of MCvMatND + + + + + This class canbe used to initiate TBB. Only usefull if it is compiled with TBB support + + + + + Initialize the TBB task scheduler + + + + + Release the TBB task scheduler + + + + + Wrapped class of the C++ standard vector of Byte. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Byte + + + + + Create an standard vector of Byte of the specific size + + The size of the vector + + + + Create an standard vector of Byte with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Byte + + An array of Byte + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of ColorPoint. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of ColorPoint + + + + + Create an standard vector of ColorPoint of the specific size + + The size of the vector + + + + Create an standard vector of ColorPoint with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of ColorPoint + + An array of ColorPoint + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of CvString. + + + Wrapped class of the C++ standard vector of CvString. + + + + + Create an empty standard vector of CvString + + + + + Create an standard vector of CvString of the specific size + + The size of the vector + + + + Create an standard vector of CvString with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Convert the standard vector to an array of String + + An array of String + + + + Create a VectorOfCvString object from an array of String + + The strings to be placed in this VectorOfCvString + + + + Wrapped class of the C++ standard vector of DMatch. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of DMatch + + + + + Create an standard vector of DMatch of the specific size + + The size of the vector + + + + Create an standard vector of DMatch with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of DMatch + + An array of DMatch + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Double. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Double + + + + + Create an standard vector of Double of the specific size + + The size of the vector + + + + Create an standard vector of Double with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Double + + An array of Double + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Float. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Float + + + + + Create an standard vector of Float of the specific size + + The size of the vector + + + + Create an standard vector of Float with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Float + + An array of Float + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Int. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Int + + + + + Create an standard vector of Int of the specific size + + The size of the vector + + + + Create an standard vector of Int with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Int + + An array of Int + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of KeyPoint. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of KeyPoint + + + + + Create an standard vector of KeyPoint of the specific size + + The size of the vector + + + + Create an standard vector of KeyPoint with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of KeyPoint + + An array of KeyPoint + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Remove keypoints within borderPixels of an image edge. + + Image size + Border size in pixel + + + + Remove keypoints of sizes out of range. + + Minimum size + Maximum size + + + + Remove keypoints from some image by mask for pixels of this image. + + The mask + + + + Wrapped class of the C++ standard vector of Mat. + + + + + Create an empty standard vector of Mat + + + + + Create an standard vector of Mat of the specific size + + The size of the vector + + + + Create an standard vector of Mat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Convert a CvArray to cv::Mat and push it into the vector + + The type of depth of the cvArray + The cvArray to be pushed into the vector + + + + Convert a group of CvArray to cv::Mat and push them into the vector + + The type of depth of the cvArray + The values to be pushed to the vector + + + + Wrapped class of the C++ standard vector of OclPlatformInfo. + + + + + Create an empty standard vector of OclPlatformInfo + + + + + Create an standard vector of OclPlatformInfo of the specific size + + The size of the vector + + + + Create an standard vector of OclPlatformInfo with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Point. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Point + + + + + Create an standard vector of Point of the specific size + + The size of the vector + + + + Create an standard vector of Point with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Point + + An array of Point + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Point3D32F. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Point3D32F + + + + + Create an standard vector of Point3D32F of the specific size + + The size of the vector + + + + Create an standard vector of Point3D32F with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Point3D32F + + An array of Point3D32F + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of PointF. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of PointF + + + + + Create an standard vector of PointF of the specific size + + The size of the vector + + + + Create an standard vector of PointF with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of PointF + + An array of PointF + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Rect. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Rect + + + + + Create an standard vector of Rect of the specific size + + The size of the vector + + + + Create an standard vector of Rect with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Rect + + An array of Rect + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Triangle2DF. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Triangle2DF + + + + + Create an standard vector of Triangle2DF of the specific size + + The size of the vector + + + + Create an standard vector of Triangle2DF with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Triangle2DF + + An array of Triangle2DF + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of UMat. + + + + + Create an empty standard vector of UMat + + + + + Create an standard vector of UMat of the specific size + + The size of the vector + + + + Create an standard vector of UMat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of VectorOfDMatch. + + + + + Create an empty standard vector of VectorOfDMatch + + + + + Create an standard vector of VectorOfDMatch of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfDMatch with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfDMatch + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfInt. + + + + + Create an empty standard vector of VectorOfInt + + + + + Create an standard vector of VectorOfInt of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfInt with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfInt + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfPoint. + + + + + Create an empty standard vector of VectorOfPoint + + + + + Create an standard vector of VectorOfPoint of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfPoint with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfPoint + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfPoint3D32F. + + + + + Create an empty standard vector of VectorOfPoint3D32F + + + + + Create an standard vector of VectorOfPoint3D32F of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfPoint3D32F with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfPoint3D32F + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfPointF. + + + + + Create an empty standard vector of VectorOfPointF + + + + + Create an standard vector of VectorOfPointF of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfPointF with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfPointF + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfRect. + + + + + Create an empty standard vector of VectorOfRect + + + + + Create an standard vector of VectorOfRect of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfRect with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfRect + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Use zlib included in OpenCV to perform in-memory binary compression and decompression + + + + + Compress the data using the specific compression level + + The data to be compressed + The compression level, 0-9 where 0 mean no compression at all + The compressed bytes + + + + Uncompress the data + + The compressed data + The estimated size fo the uncompress data. Must be large enough to hold the decompressed data. + The decompressed data + + + + CvBlob + + + + + Blob Moments + + + + + Moment 00 + + + + + Moment 10 + + + + + Moment 01 + + + + + Moment 11 + + + + + Moment 20 + + + + + Moment 02 + + + + + Central moment 11 + + + + + Central moment 20 + + + + + Central moment 02 + + + + + Normalized central moment 11 + + + + + Normalized central moment 20 + + + + + Normalized central moment 02 + + + + + Hu moment 1 + + + + + Hu moment 2 + + + + + Get the contour that defines the blob + + The contour of the blob + + + + Get the blob label + + + + + The minimum bounding box of the blob + + + + + Get the Blob Moments + + + + + The centroid of the blob + + + + + The number of pixels in this blob + + + + + Pointer to the blob + + + + + Implicit operator for IntPtr + + The CvBlob + The unmanaged pointer for this object + + + + Wrapper for the CvBlob detection functions. + The Ptr property points to the label image of the cvb::cvLabel function. + + Algorithm based on paper "A linear-time component-labeling algorithm using contour tracing technique" of Fu Chang, Chun-Jen Chen and Chi-Jen Lu. + + + + Detect blobs from input image. + + The input image + The storage for the detected blobs + Number of pixels that has been labeled. + + + + Calculates mean color of a blob in an image. + + The blob. + The original image + Average color + + + + Blob rendering type + + + + + Render each blog with a different color. + + + + + Render centroid. + + + + + Render bounding box. + + + + + Render angle. + + + + + Print blob data to log out. + + + + + Print blob data to std out. + + + + + The default rendering type + + + + + Draw the blobs on the image + + The binary mask. + The blobs. + Drawing type. + The alpha value. 1.0 for solid color and 0.0 for transparent + The images with the blobs drawn + + + + Get the binary mask for the blobs listed in the CvBlobs + + The blobs + The binary mask for the specific blobs + + + + Release all the unmanaged memory associated with this Blob detector + + + + + CvBlobs + + + + + Create a new CvBlobs + + + + + Release all the unmanaged resources used by this CvBlobs + + + + + Filter blobs by area. Those blobs whose areas are not in range will be erased from the input list of blobs. + + Minimun area + Maximun area + + + + Adds the specified label and blob to the dictionary. + + The label of the blob + The blob + + + + Determines whether the CvBlobs contains the specified label. + + The label (key) to be located + True if the CvBlobs contains an element with the specific label + + + + Get a collection containing the labels in the CvBlobs + + + + + Removes the blob with the specific label + + The label of the blob + True if the element is successfully found and removed; otherwise, false. + + + + Gets the blob associated with the specified label. + + The blob label + When this method returns, contains the blob associated with the specified labe, if the label is found; otherwise, null. This parameter is passed uninitialized. + True if the blobs contains a blob with the specific label; otherwise, false + + + + Get a collection containing the blobs in the CvBlobs. + + + + + Get the blob with the speicific label. Set function is not implemented + + The label for the blob + + + + Adds the specified label and blob to the CvBlobs. + + The structure representing the label and blob to add to the CvBlobs + + + + Removes all keys and values + + + + + Determines whether the CvBlobs contains a specific label and CvBlob. + + The label and blob to be located + True if the specific label and blob is found in the CvBlobs; otherwise, false. + + + + Copies the elements to the , starting at the specific arrayIndex. + + The one-dimensional array that is the defination of the elements copied from the CvBlobs. The array must have zero-base indexing. + The zero-based index in at which copying begins. + + + + Gets the number of label/Blob pairs contained in the collection + + + + + Always false + + + + + Removes a key and value from the dictionary. + + The structure representing the key and value to be removed + True if the key are value is sucessfully found and removed; otherwise false. + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection + + + + Returns a pointer to CvBlobs + + Pointer to CvBlobs + + + + CvTrack + + + + + Track identification number + + + + + Label assigned to the blob related to this track + + + + + X min + + + + + X max + + + + + Y min + + + + + y max + + + + + Get the minimun bounding rectanble for this track + + + + + Centroid + + + + + Indicates how much frames the object has been in scene + + + + + Indicates number of frames that has been active from last inactive period. + + + + + Indicates number of frames that has been missing. + + + + + Compares CvTrack for equality + + The other track to compares with + True if the two CvTrack are equal; otherwise false. + + + + Blobs tracking + + + Tracking based on: + A. Senior, A. Hampapur, Y-L Tian, L. Brown, S. Pankanti, R. Bolle. Appearance Models for + Occlusion Handling. Second International workshop on Performance Evaluation of Tracking and + Surveillance Systems & CVPR'01. December, 2001. + (http://www.research.ibm.com/peoplevision/PETS2001.pdf) + + + + + Create a new CvTracks + + + + + Release all the unmanaged resources used by this CvBlobs + + + + + Updates list of tracks based on current blobs. + + List of blobs + Distance Max distance to determine when a track and a blob match + Inactive Max number of frames a track can be inactive + Active If a track becomes inactive but it has been active less than thActive frames, the track will be deleted. + + + + Adds the specified id and track to the dictionary. + + The id of the track + The track + + + + Determines whether the CvTracks contains the specified id. + + The id (key) to be located + True if the CvTracks contains an element with the specific id + + + + Get a collection containing the ids in the CvTracks. + + + + + Removes the track with the specific id + + The id of the track + True if the element is successfully found and removed; otherwise, false. + + + + Gets the track associated with the specified id. + + The track id + When this method returns, contains the track associated with the specified id, if the id is found; otherwise, an empty track. This parameter is passed uninitialized. + True if the tracks contains a track with the specific id; otherwise, false + + + + Get a collection containing the tracks in the CvTracks. + + + + + Get or Set the Track with the specific id. + + The id of the Track + + + + Adds the specified id and track to the CvTracks. + + The structure representing the id and track to add to the CvTracks + + + + Removes all keys and values + + + + + Determines whether the CvTracks contains a specific id and CvTrack. + + The id and CvTrack to be located + True if the is found in the CvTracks; otherwise, false. + + + + Copies the elements to the , starting at the specific arrayIndex. + + The one-dimensional array that is the defination of the elements copied from the CvTracks. The array must have zero-base indexing. + The zero-based index in at which copying begins. + + + + Gets the number of id/track pairs contained in the collection. + + + + + Always false. + + + + + Removes a key and value from the dictionary. + + The structure representing the key and value to be removed + True if the key are value is sucessfully found and removed; otherwise false. + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection + + + + Returns a pointer to CvBlobs + + Pointer to CvBlobs + + + + Defines a Bgr (Blue Green Red) color + + + + + The MCvScalar representation of the color intensity + + + + Create a BGR color using the specific values + The blue value for this color + The green value for this color + The red value for this color + + + + Create a Bgr color using the System.Drawing.Color + + System.Drawing.Color + + + Get or set the intensity of the blue color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the red color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Bgra (Blue Green Red Alpha) color + + + + + The MCvScalar representation of the color intensity + + + + Create a BGRA color using the specific values + The blue value for this color + The green value for this color + The red value for this color + The alpha value for this color + + + Get or set the intensity of the blue color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the alpha color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + Defines a Gray color + + + + The MCvScalar representation of the color intensity + + + + Create a Gray color with the given intensity + The intensity for this color + + + The intensity of the gray color + The intensity of the gray color + + + + Returns the hash code for this color + + the hash code + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Hls (Hue Lightness Satuation) color + + + + + The MCvScalar representation of the color intensity + + + + Create a Hls color using the specific values + The hue value for this color ( 0 < hue < 180 ) + The satuation for this color + The lightness for this color + + + Get or set the intensity of the hue color channel ( 0 < hue < 180 ) + + + Get or set the intensity of the lightness color channel + + + Get or set the intensity of the satuation color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a HSV (Hue Satuation Value) color + + + + + The MCvScalar representation of the color intensity + + + + Create a HSV color using the specific values + The hue value for this color ( 0 < hue < 180 ) + The satuation value for this color + The value for this color + + + Get or set the intensity of the hue color channel ( 0 < hue < 180 ) + + + Get or set the intensity of the satuation color channel + + + Get or set the intensity of the value color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a CIE Lab color + + + + + The MCvScalar representation of the color intensity + + + + Create a CIE Lab color using the specific values + The z value for this color + The y value for this color + The x value for this color + + + Get or set the intensity of the x color channel + + + Get or set the intensity of the y color channel + + + Get or set the intensity of the z color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a CIE Luv color + + + + + The MCvScalar representation of the color intensity + + + + Create a CIE Lab color using the specific values + The z value for this color + The y value for this color + The x value for this color + + + + The intensity of the x color channel + + + + + The intensity of the y color channel + + + + + The intensity of the z color channel + + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Rgb (Red Green Blue) color + + + + + The MCvScalar representation of the color intensity + + + + Create a RGB color using the specific values + The blue value for this color + The green value for this color + The red value for this color + + + + Create a Rgb color using the system color + + color + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the blue color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Bgr565 (Blue Green Red) color + + + + + The MCvScalar representation of the color intensity + + + + Create a Bgr565 color using the specific values + The blue value for this color + The green value for this color + The red value for this color + + + + Create a Bgr565 color using the System.Drawing.Color + + System.Drawing.Color + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the blue color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Rgba (Red Green Blue Alpha) color + + + + + The MCvScalar representation of the color intensity + + + + Create a RGBA color using the specific values + The blue value for this color + The green value for this color + The red value for this color + The alpha value for this color + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the blue color channel + + + Get or set the intensity of the alpha color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Xyz color (CIE XYZ.Rec 709 with D65 white point) + + + + + The MCvScalar representation of the color intensity + + + + Create a Xyz color using the specific values + The z value for this color + The y value for this color + The x value for this color + + + + Get or set the intensity of the x color channel + + + + + Get or set the intensity of the y color channel + + + + + Get or set the intensity of the z color channel + + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Ycc color (YCrCb JPEG) + + + + + The MCvScalar representation of the color intensity + + + + Create a Ycc color using the specific values + The Y value for this color + The Cr value for this color + The Cb value for this color + + + + Get or set the intensity of the Y color channel + + + + + Get or set the intensity of the Cr color channel + + + + + Get or set the intensity of the Cb color channel + + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + A line segment + + + + A point on the line + + + An other point on the line + + + A point on the line + + + An other point on the line + + + + Create a line segment with the specific starting point and end point + + The first point on the line segment + The second point on the line segment + + + The direction of the line, the norm of which is 1 + + + + Determine which side of the line the 2D point is at + + the point + + 1 if on the right hand side; + 0 if on the line; + -1 if on the left hand side; + + + + + Get the exterior angle between this line and + + The other line + The exterior angle between this line and + + + + Get the length of the line segment + + + + + A line segment + + + + A point on the line + + + An other point on the line + + + A point on the line + + + An other point on the line + + + + Create a line segment with the specific start point and end point + + The first point on the line segment + The second point on the line segment + + + + Get the length of the line segment + + + + + The direction of the line, the norm of which is 1 + + + + Obtain the Y value from the X value using first degree interpolation + The X value + The Y value + + + + Determin which side of the line the 2D point is at + + the point + + 1 if on the right hand side; + 0 if on the line; + -1 if on the left hand side; + + + + + Get the exterior angle between this line and + + The other line + The exterior angle between this line and + + + + A 3D line segment + + + + A point on the line + + + An other point on the line + + + A point on the line + + + An other point on the line + + + + Create a line segment with the specific start point and end point + + The first point on the line segment + The second point on the line segment + + + + Get the length of the line segment + + + + A circle + + + Create a circle with the specific center and radius + The center of this circle + The radius of this circle + + + Get or Set the center of the circle + + + The radius of the circle + + + The area of the circle + + + + Compare this circle with + + The other box to be compared + true if the two boxes equals + + + + A point with Bgr color information + + + + + The position in meters + + + + + The blue color + + + + + The green color + + + + + The red color + + + + + A 2D cross + + + + + The center of this cross + + + + + The size of this cross + + + + + Construct a cross + + The center of the cross + the width of the cross + the height of the cross + + + + Get the horizonal linesegment of this cross + + + + + Get the vertical linesegment of this cross + + + + + A solid resembling a cube, with the rectangular faces not all equal; a rectangular parallelepiped. + + + + + The coordinate of the upper corner + + + + + The coordinate of the lower corner + + + + + Check if the specific point is in the Cuboid + + The point to be checked + True if the point is in the cuboid + + + + Get the centroid of this cuboid + + + + + This is used to hold the sizes of the Open CV structures + + + + + The size of CvPoint + + + + + The size of CvPoint2D32f + + + + + The size of CvPoint3D32f + + + + + The size of CvSize + + + + + The size of CvSize2D32f + + + + + The size of CvScalar + + + + + The size of CvRect + + + + + The size of CvBox2D + + + + + The size of CvMat + + + + + The size of CvMatND + + + + + The size of CvTermCriteria + + + + + The size of IplImage + + + + + An ellipse + + + + + The RotatedRect representation of this ellipse + + + + + Create an ellipse with specific parameters + + The center of the ellipse + The width and height of the ellipse + The rotation angle in radian for the ellipse + + + + Create an ellipse from the specific RotatedRect + + The RotatedRect representation of this ellipse + + + + Result of cvHaarDetectObjects + + + + + Bounding rectangle for the object (average rectangle of a group) + + + + + Number of neighbor rectangles in the group + + + + + Managed structure equivalent to CvMat + + + + + CvMat signature (CV_MAT_MAGIC_VAL), element type and flags + + + + + full row length in bytes + + + + + underlying data reference counter + + + + + Header reference count + + + + + data pointers + + + + + number of rows + + + + + number of columns + + + + + Width + + + + + Height + + + + + Get the number of channels + + + + + Constants used by the MCvMat structure + + + + + Offset of roi + + + + + Managed structure equivalent to CvMatND + + + + + CvMatND signature (CV_MATND_MAGIC_VAL), element type and flags + + + + + number of array dimensions + + + + + underlying data reference counter + + + + + Header reference count + + + + + data pointers + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) for every dimension + + + + + The MatND Dimension + + + + + Number of elements in this dimension + + + + + distance between elements in bytes for this dimension + + + + + Structure contains the bounding box and confidence level for detected object + + + + + Bounding box for a detected object + + + + + Confidence level + + + + + The class identifier + + + + + Managed Structure equivalent to CvPoint2D64f + + + + + x-coordinate + + + + + y-coordinate + + + + + Create a MCvPoint2D64f structure with the specific x and y coordinates + + x-coordinate + y-coordinate + + + + Compute the sum of two 3D points + + The first point to be added + The second point to be added + The sum of two points + + + + Subtract from + + The first point + The point to be added + The sum of two points + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Returns true if the two points equals. + + The other point to compare with + True if the two points equals + + + + + + + + + + Managed Structure equivalent to CvPoint3D32f + + + + + x-coordinate + + + + + y-coordinate + + + + + z-coordinate + + + + + Create a MCvPoint3D32f structure with the specific x and y coordinates + + x-coordinate + y-coordinate + z-coordinate + + + + Return the cross product of two 3D point + + the other 3D point + The cross product of the two 3D point + + + + Return the dot product of two 3D point + + the other 3D point + The dot product of the two 3D point + + + + return the norm of this 3D point + + + + + Get the normalized point + + The normalized point + + + + The implicit operator to convert MCvPoint3D32f to MCvPoint3D64f + + The point to be converted + The converted point + + + + Subtract one point from the other + + The point to subtract from + The value to be subtracted + The subtraction of one point from the other + + + + Compute the sum of two 3D points + + The first point to be added + The second point to be added + The sum of two points + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Return true if the location of the two points are equal + + The other point to compare with + True if the location of the two points are equal + + + + Managed Structure equivalent to CvPoint3D64f + + + + + x-coordinate + + + + + y-coordinate + + + + + z-coordinate + + + + + Create a MCvPoint3D64f structure with the specific x and y coordinates + + x-coordinate + y-coordinate + z-coordinate + + + + Return the cross product of two 3D point + + the other 3D point + The cross product of the two 3D point + + + + Return the dot product of two 3D point + + the other 3D point + The dot product of the two 3D point + + + + Compute the sum of two 3D points + + The first point to be added + The second point to be added + The sum of two points + + + + Subtract from + + The first point + The point to be added + The sum of two points + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Check if the other point equals to this point + + The point to be compared + True if the two points are equal + + + + Managed structure equivalent to CvScalar + + + + + The scalar value + + + + + The scalar value + + + + + The scalar value + + + + + The scalar value + + + + + The scalar values as a vector (of size 4) + + The scalar values as an array + + + + Create a new MCvScalar structure using the specific values + + v0 + + + + Create a new MCvScalar structure using the specific values + + v0 + v1 + + + + Create a new MCvScalar structure using the specific values + + v0 + v1 + v2 + + + + Create a new MCvScalar structure using the specific values + + v0 + v1 + v2 + v3 + + + + Return the code to generate this MCvScalar from specific language + + The programming language to generate code from + The code to generate this MCvScalar from specific language + + + + Return true if the two MCvScalar equals + + The other MCvScalar to compare with + true if the two MCvScalar equals + + + + Managed structure equivalent to CvSlice + + + + + Start index + + + + + End index + + + + + Create a new MCvSlice using the specific start and end index + + start index + end index + + + + Get the equivalent of CV_WHOLE_SEQ + + + + + Managed structure equivalent to CvTermCriteria + + + + + CV_TERMCRIT value + + + + + Maximum iteration + + + + + Epsilon + + + + + Create the termination criteria using the constrain of maximum iteration + + The maximum number of iteration allowed + + + + Create the termination Criteria using only the constrain of epsilon + + The epsilon value + + + + Create the termination criteria using the constrain of maximum iteration as well as epsilon + + The maximum number of iteration allowed + The epsilon value + + + + OpenCV's DMatch structure + + + + + Query descriptor index + + + + + Train descriptor index + + + + + Train image index + + + + + Distance + + + + + Managed structure equivalent to IplImage + + + + + sizeof(IplImage) + + + + + version (=0) + + + + + Most of OpenCV functions support 1,2,3 or 4 channels + + + + + ignored by OpenCV + + + + + pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + 0 - interleaved color channels, 1 - separate color channels. + cvCreateImage can only create interleaved images + + + + + 0 - top-left origin, + 1 - bottom-left origin (Windows bitmaps style) + + + + + Alignment of image rows (4 or 8). + OpenCV ignores it and uses widthStep instead + + + + + image width in pixels + + + + + image height in pixels + + + + + image ROI. when it is not NULL, this specifies image region to process + + + + + must be NULL in OpenCV + + + + + ditto + + + + + ditto + + + + + image data size in bytes + (=image->height*image->widthStep in case of interleaved data) + + + + + pointer to aligned image data + + + + + size of aligned image row in bytes + + + + + border completion mode, ignored by OpenCV + + + + + border completion mode, ignored by OpenCV + + + + + border completion mode, ignored by OpenCV + + + + + border completion mode, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + pointer to a very origin of image data (not necessarily aligned) - it is needed for correct image deallocation + + + + + OpenCV's KeyPoint class + + + + + The location of the keypoint + + + + + Size of the keypoint + + + + + Orientation of the keypoint + + + + + Response of the keypoint + + + + + octave + + + + + class id + + + + + The range use to setup the histogram + + + + + return the full range. + + + + + Create a range of the specific min/max value + + The start value of this range + The max value of this range + + + + The start value of this range + + + + + The end value of this range + + + + + Return true if the two Range equals + + The other Range to compare with + True if the two Range equals + + + + The range use to setup the histogram + + + + + Create a range of the specific min/max value + + The min value of this range + The max value of this range + + + + The minimum value of this range + + + + + The Maximum value of this range + + + + + Return true if the two RangeF equals + + The other RangeF to compare with + True if the two RangeF equals + + + + Managed structure equivalent to CvBox2D + + + + + The center of the box + + + + + The size of the box + + + + + The angle between the horizontal axis and the first side (i.e. width) in degrees + + Possitive value means counter-clock wise rotation + + + + Create a RotatedRect structure with the specific parameters + + The center of the box + The size of the box + The angle of the box in degrees. Possitive value means counter-clock wise rotation + + + + Shift the box by the specific amount + + The x value to be offseted + The y value to be offseted + + + + Represent an uninitialized RotatedRect + + + + + Get the 4 verticies of this Box. + + The vertives of this RotatedRect + + + + Get the minimum enclosing rectangle for this Box + + The minimum enclosing rectangle for this Box + + + + Returns true if the two box are equal + + The other box to compare with + True if two boxes are equal + + + + Convert a RectangleF to RotatedRect + + The rectangle + The equivalent RotatedRect + + + + A 2D triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + Create a triangle using the specific vertices + + The first vertex + The second vertex + The third vertex + + + + Get the area of this triangle + + + + + Returns the centroid of this triangle + + + + + Compare two triangles and return true if equal + + the other triangles to compare with + true if the two triangles equals, false otherwise + + + + Get the vertices of this triangle + + The vertices of this triangle + + + + A 3D triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + Get the area of this triangle + + + + + Get the normal of this triangle + + + + + Returns the centroid of this triangle + + + + + Create a triangle using the specific vertices + + The first vertex + The second vertex + The third vertex + + + + Compare two triangles and return true if equal + + the other triangles to compare with + true if the two triangles equals, false otherwise + + + + Attribute used to specify color information + + + + + The code which is used for color conversion + + + + + The code which is used for color conversion + + + + + The code which is used for color conversion + + + + + The display color + + blue + green + red + + + + Get or set the display color + + + + + A color type + + + + + The equivalent MCvScalar value + + + + + Get the dimension of the color type + + + + + The base class for algorithms that align images of the same scene with different exposures + + + + + The pointer to the native AlignExposures object + + + + + Aligns images. + + vector of input images + vector of aligned images + vector of exposure time values for each image + 256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images. + + + + Reset the pointer that points to the CalibrateCRF object. + + + + + This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations. + + + + + Create an AlignMTB object + + logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). + range for exclusion bitmap that is constructed to suppress noise around the median value. + if true cuts images, otherwise fills the new regions with zeros. + + + + Release the unmanaged memory associated with this AlignMTB object + + + + + The base class for camera response calibration algorithms. + + + + + The pointer to the calibrateCRF object + + + + + Recovers inverse camera response. + + Vector of input images + 256x1 matrix with inverse camera response function + Vector of exposure time values for each image + + + + Reset the pointer that points to the CalibrateCRF object. + + + + + Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. Objective function is constructed using pixel values on the same position in all images, extra term is added to make the result smoother. + + + + + Creates CalibrateDebevec object. + + Number of pixel locations to use + Smoothness term weight. Greater values produce smoother results, but can alter the response. + If true sample pixel locations are chosen at random, otherwise the form a rectangular grid. + + + + Release the unmanaged memory associated with this CalibrateCRF object + + + + + Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. This algorithm uses all image pixels. + + + + + Creates CalibrateRobertson object. + + maximal number of Gauss-Seidel solver iterations. + get difference between results of two successive steps of the minimization. + + + + Release the unmanaged memory associated with this CalibrateCRF object + + + + + The base class algorithms that can merge exposure sequence to a single image. + + + + + The pointer to the unmanaged MergeExposure object + + + + + Merges images. + + Vector of input images + Result image + Vector of exposure time values for each image + 256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images. + + + + Reset the native pointer to the MergeExposure object + + + + + The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response. + + + + + Creates MergeDebevec object. + + + + + Release the MergeDebevec object + + + + + Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combined using laplacian pyramids. + The resulting image weight is constructed as weighted average of contrast, saturation and well-exposedness measures. + The resulting image doesn't require tonemapping and can be converted to 8-bit image by multiplying by 255, but it's recommended to apply gamma correction and/or linear tonemapping. + + + + + Creates MergeMertens object. + + contrast measure weight. + saturation measure weight + well-exposedness measure weight + + + + Merges images. + + Vector of input images + Result image + + + + Release the unmanaged memory associated with this MergeMertens object + + + + + The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response + + + + + Creates MergeRobertson object. + + + + + Release the unmanaged memory associated with this MergeRobertson object + + + + + Base class for tonemapping algorithms - tools that are used to map HDR image to 8-bit range. + + + + + The pointer to the unmanaged Tonemap object + + + + + The pointer to the unmanaged Algorithm object + + + + + The pointer to the unamanged Algorith object + + + + + Default constructor that creates empty Tonemap + + The pointer to the unmanaged object + The pointer to the tonemap object + + + + Creates simple linear mapper with gamma correction. + + positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays. Generally gamma > 1 brightens the image and gamma < 1 darkens it. + + + + Tonemaps image. + + Source image - 32-bit 3-channel Mat + destination image - 32-bit 3-channel Mat with values in [0, 1] range + + + + Release the unmanaged memory associated with this Tonemap + + + + + Positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays. + + + + + Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarithmic domain. + Since it's a global operator the same function is applied to all the pixels, it is controlled by the bias parameter. + + + + + Creates TonemapDrago object. + + gamma value for gamma correction. + positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. + value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best results, default value is 0.85. + + + + Release the unmanaged memory associated with this TonemapDrago + + + + + Positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. + + + + + Value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best results, default value is 0.85. + + + + + This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid, transforms contrast values to HVS response and scales the response. After this the image is reconstructed from new contrast values. + + + + + Creates TonemapMantiuk object + + gamma value for gamma correction. + contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results. + saturation enhancement value. + + + + Release the unmanaged memory associated with this TonemapMantiuk + + + + + Saturation enhancement value. + + + + + Contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results. + + + + + This is a global tonemapping operator that models human visual system. + Mapping function is controlled by adaptation parameter, that is computed using light adaptation and color adaptation. + + + + + Creates TonemapReinhard object. + + gamma value for gamma correction + result intensity in [-8, 8] range. Greater intensity produces brighter results. + light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it's global, otherwise it's a weighted mean of this two cases. + chromatic adaptation in [0, 1] range. If 1 channels are treated independently, if 0 adaptation level is the same for each channel. + + + + Release the unmanaged memory associated with this TonemapReinhard + + + + + Result intensity in [-8, 8] range. Greater intensity produces brighter results. + + + + + Light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it is global, otherwise it is a weighted mean of this two cases. + + + + + chromatic adaptation in [0, 1] range. If 1 channels are treated independently, if 0 adaptation level is the same for each channel. + + + + + Interface for all widgets + + + + + Get the pointer to the widget object + + + + + Interface for all widget3D + + + + + Get the pointer to the widget3D object + + + + + Interface for all widget2D + + + + + Get the pointer to the widget2D object + + + + + Represents a 3D visualizer window. + + + + + Create a new 3D visualizer windows + + The name of the windows + + + + Show a widget in the window + + A unique id for the widget. + The widget to be displayed in the window. + Pose of the widget. + + + + Removes a widget from the window. + + The id of the widget that will be removed. + + + + Sets pose of a widget in the window. + + The id of the widget whose pose will be set. + The new pose of the widget. + + + + The window renders and starts the event loop. + + + + + Starts the event loop for a given time. + + Amount of time in milliseconds for the event loop to keep running. + If true, window renders. + + + + Returns whether the event loop has been stopped. + + + + + Set the background color + + + + + Release the unmanaged memory associated with this Viz3d object + + + + + This 3D Widget defines an arrow. + + + + + Constructs an WArrow. + + Start point of the arrow. + End point of the arrow. + Thickness of the arrow. Thickness of arrow head is also adjusted accordingly. + Color of the arrow. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WArrow object + + + + + This 3D Widget defines a circle. + + + + + Constructs default planar circle centred at origin with plane normal along z-axis. + + Radius of the circle. + Thickness of the circle. + Color of the circle. + + + + Constructs repositioned planar circle. + + Radius of the circle. + Center of the circle. + Normal of the plane in which the circle lies. + Thickness of the circle. + Color of the circle. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCircle object + + + + + This 3D Widget defines a point cloud. + + + + + Constructs a WCloud. + + Set of points which can be of type: CV_32FC3, CV_32FC4, CV_64FC3, CV_64FC4. + Set of colors. It has to be of the same size with cloud. + + + + Constructs a WCloud. + + Set of points which can be of type: CV_32FC3, CV_32FC4, CV_64FC3, CV_64FC4. + A single Color for the whole cloud. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCloud + + + + + This 3D Widget defines a cone. + + + + + Constructs default cone oriented along x-axis with center of its base located at origin. + + Length of the cone. + Radius of the cone. + Resolution of the cone. + Color of the cone. + + + + Constructs repositioned planar cone. + + Radius of the cone. + Center of the cone base. + Tip of the cone. + Resolution of the cone. + Color of the cone. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCone object + + + + + This 3D Widget represents a coordinate system. + + + + + Constructs a WCoordinateSystem. + + Determines the size of the axes. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCoordinateSysyem object + + + + + This 3D Widget defines a cube. + + + + + Constructs a WCube. + + Specifies minimum point of the bounding box. + Specifies maximum point of the bounding box. + If true, cube is represented as wireframe. + Color of the cube. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCube object + + + + + This 3D Widget defines a cylinder. + + + + + Constructs a WCylinder. + + A point1 on the axis of the cylinder. + A point2 on the axis of the cylinder. + Radius of the cylinder. + Resolution of the cylinder. + Color of the cylinder. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCylinder object + + + + + This 2D Widget represents text overlay. + + + + + Constructs a WText. + + Text content of the widget. + Position of the text. + Font size. + Color of the text. + + + + Get the pointer to the widget2D object + + + + + Get the pointer to the widget object. + + + + + Release the unmanaged memory associated with this Viz3d object + + + + + A collection of points + + + + + Fit an ellipse to the points collection + + The points to be fitted + An ellipse + + + + convert a series of points to LineSegment2D + + the array of points + if true, the last line segment is defined by the last point of the array and the first point of the array + array of LineSegment2D + + + + convert a series of System.Drawing.Point to LineSegment2D + + the array of points + if true, the last line segment is defined by the last point of the array and the first point of the array + array of LineSegment2D + + + + Find the bounding rectangle for the specific array of points + + The collection of points + The bounding rectangle for the array of points + + + + Re-project pixels on a 1-channel disparity map to array of 3D points. + + Disparity map + The re-projection 4x4 matrix, can be arbitrary, e.g. the one, computed by cvStereoRectify + The reprojected 3D points + + + + Generate a random point cloud around the ellipse. + + The region where the point cloud will be generated. The axes of e corresponds to std of the random point cloud. + The number of points to be generated + A random point cloud around the ellipse + + + + Interface to the BackgroundSubtractor class + + + + + Pointer to the native BackgroundSubstractor object + + + + + A static class that provide extension methods to backgroundSubtractor + + + + + Update the background model + + The image that is used to update the background model + Use -1 for default + The background subtractor + The output foreground mask + + + + Computes a background image. + + The output background image + The background subtractor + Sometimes the background image can be very blurry, as it contain the average background statistics. + + + + K-nearest neighbors - based Background/Foreground Segmentation Algorithm. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a K-nearest neighbors - based Background/Foreground Segmentation Algorithm. + + Length of the history. + Threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to that sample. This parameter does not affect the background update. + If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false. + + + + Release all the unmanaged memory associated with this background model. + + + + + The number of last frames that affect the background model + + + + + The number of data samples in the background model + + + + + The threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to a data sample. + + + + + The number of neighbours, the k in the kNN. K is the number of samples that need to be within dist2Threshold in order to decide that pixel is matching the kNN background model. + + + + + If true, the algorithm detects shadows and marks them. + + + + + Shadow value is the value used to mark shadows in the foreground mask. Default value is 127. Value 0 in the mask always means background, 255 means foreground. + + + + + A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel is more than twice darker then it is not shadow. + + + + + The class implements the following algorithm: + "Improved adaptive Gaussian mixture model for background subtraction" + Z.Zivkovic + International Conference Pattern Recognition, UK, August, 2004. + http://www.zoranz.net/Publications/zivkovic2004ICPR.pdf + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create an "Improved adaptive Gaussian mixture model for background subtraction". + + The length of the history. + The maximum allowed number of mixture components. Actual number is determined dynamically per pixel. + If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false. + + + + Release all the unmanaged memory associated with this background model. + + + + + The number of last frames that affect the background model + + + + + If true, the algorithm detects shadows and marks them. + + + + + Shadow value is the value used to mark shadows in the foreground mask. Default value is 127. Value 0 in the mask always means background, 255 means foreground. + + + + + A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel is more than twice darker then it is not shadow. + + + + + The number of gaussian components in the background model + + + + + If a foreground pixel keeps semi-constant value for about backgroundRatio * history frames, it's considered background and added to the model as a center of a new component. It corresponds to TB parameter in the paper. + + + + + The main threshold on the squared Mahalanobis distance to decide if the sample is well described by the background model or not. Related to Cthr from the paper. + + + + + The variance threshold for the pixel-model match used for new mixture component generation. Threshold for the squared Mahalanobis distance that helps decide when a sample is close to the existing components (corresponds to Tg in the paper). If a pixel is not close to any component, it is considered foreground or added as a new component. 3 sigma =%gt + + + + + Tg=3*3=9 is default. A smaller Tg value generates more components. A higher Tg value may result in a small number of components but they can grow too large. + + + + + The initial variance of each gaussian component + + + + + The minimum variance + + + + + The maximum variance + + + + + Dense Optical flow + + + + + Gets the dense optical flow pointer. + + + The dense optical flow . + + + + + Extension methods for IDenseOpticalFlow + + + + + Calculates an optical flow. + + First 8-bit single-channel input image. + Second input image of the same size and the same type as prev. + Computed flow image that has the same size as prev and type CV_32FC2 + The dense optical flow object + + + + DIS optical flow algorithm. + This class implements the Dense Inverse Search(DIS) optical flow algorithm.Includes three presets with preselected parameters to provide reasonable trade-off between speed and quality.However, even the slowest preset is still relatively fast, use DeepFlow if you need better quality and don't care about speed. + More details about the algorithm can be found at: + Till Kroeger, Radu Timofte, Dengxin Dai, and Luc Van Gool. Fast optical flow using dense inverse search. In Proceedings of the European Conference on Computer Vision (ECCV), 2016. + + + + + Preset + + + + + Ultra fast + + + + + Fast + + + + + Medium + + + + + Create an instance of DIS optical flow algorithm. + + Algorithm preset + + + + Release the unmanaged memory associated with this Optical flow algorithm. + + + + + Pointer to cv::Algorithm + + + + + Pointer to native cv::DenseOpticalFlow + + + + + Finest level of the Gaussian pyramid on which the flow is computed (zero level corresponds to the original image resolution). The final flow is obtained by bilinear upscaling. + + + + + Size of an image patch for matching (in pixels). Normally, default 8x8 patches work well enough in most cases. + + + + + Stride between neighbor patches. Must be less than patch size. Lower values correspond to higher flow quality. + + + + + Maximum number of gradient descent iterations in the patch inverse search stage. Higher values may improve quality in some cases. + + + + + Number of fixed point iterations of variational refinement per scale. Set to zero to disable variational refinement completely. Higher values will typically result in more smooth and high-quality flow. + + + + + Weight of the smoothness term + + + + + Weight of the color constancy term + + + + + Weight of the gradient constancy term + + + + + Whether to use mean-normalization of patches when computing patch distance. It is turned on by default as it typically provides a noticeable quality boost because of increased robustness to illumination variations. Turn it off if you are certain that your sequence doesn't contain any changes in illumination. + + + + + Whether to use spatial propagation of good optical flow vectors. This option is turned on by default, as it tends to work better on average and can sometimes help recover from major errors introduced by the coarse-to-fine scheme employed by the DIS optical flow algorithm. Turning this option off can make the output flow field a bit smoother, however. + + + + + Class computing a dense optical flow using the Gunnar Farneback's algorithm. + + + + + Create a FarnebackOpticalFlow object + + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + Fast Pyramids + + + + Release the unmanaged resources + + + + + Gets the dense optical flow pointer. + + + The pointer to the dense optical flow object. + + + + + Return the pointer to the algorithm object + + + + + The class implements a standard Kalman filter. However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get + an extended Kalman filter functionality. + + + + + Initializes a new instance of the class. + + Dimensionality of the state. + Dimensionality of the measurement. + Dimensionality of the control vector. + Type of the created matrices that should be Cv32F or Cv64F + + + + Perform the predict operation using the option control input + + The control. + The predicted state. + + + + Updates the predicted state from the measurement. + + The measured system parameters + + + + + Release the unmanaged resources + + + + + Predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k) + + The result + + + + Corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) + + The result + + + + State transition matrix (A) + + The result + + + + Control matrix (B) (not used if there is no control) + + The result + + + + Measurement matrix (H) + + The result + + + + Process noise covariance matrix (Q) + + The result + + + + Measurement noise covariance matrix (R) + + The result + + + + priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q) + + The result + + + + Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R) + + The result + + + + posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k) + + The result + + + + Sparse Optical flow + + + + + Gets the sparse optical flow pointer. + + + The sparse optical flow . + + + + + Extension methods for ISparseOpticalFlow + + + + + Calculates a sparse optical flow. + + The sparse optical flow + First input image. + Second input image of the same size and the same type as prevImg. + Vector of 2D points for which the flow needs to be found. + Output vector of 2D points containing the calculated new positions of input features in the second image. + Output status vector. Each element of the vector is set to 1 if the flow for the corresponding features has been found.Otherwise, it is set to 0. + Optional output vector that contains error response for each point (inverse confidence). + + + + The class can calculate an optical flow for a sparse feature set using the iterative Lucas-Kanade method with pyramids. + + + + + Create a SparsePyrLKOpticalFlow object + + size of the search window at each pyramid level. + 0-based maximal pyramid level number; if set to 0, pyramids are not used (single level), if set to 1, two levels are used, and so on; if pyramids are passed to input then algorithm will use as many levels as pyramids have but no more than maxLevel. + specifying the termination criteria of the iterative search algorithm (after the specified maximum number of iterations criteria.maxCount or when the search window moves by less than criteria.epsilon. + operation flags + the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations, divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost. + + + + Release the unmanaged resources + + + + + Pointer to the unmanaged SparseOpticalFlow object + + + + + Return the pointer to the algorithm object + + + + + This class implements variational refinement of the input flow field. + + See: Thomas Brox, Andres Bruhn, Nils Papenberg, and Joachim Weickert. High accuracy optical flow estimation based on a theory for warping. In Computer Vision-ECCV 2004, pages 25-36. Springer, 2004. + + + + Create an instance of Variational Refinement. + + + + + Release the unmanaged memory associated with this Optical flow algorithm. + + + + + Pointer to the unmanaged cv::Algorithm + + + + + Pointer to the unmanaged cv::DenseOpticalFlow + + + + + Number of outer (fixed-point) iterations in the minimization procedure. + + + + + Number of inner successive over-relaxation (SOR) iterations in the minimization procedure to solve the respective linear system. + + + + + Relaxation factor in SOR + + + + + Weight of the smoothness term + + + + + Weight of the color constancy term + + + + + Weight of the gradient constancy term + + + + + Fast dense optical flow computation based on robust local optical flow (RLOF) algorithms and sparse-to-dense interpolation scheme. + + + + + Interpolation type used to compute the dense optical flow. + + + + + Fast geodesic interpolation + + + + + Edge-preserving interpolation + + + + + Creates instance of DenseRLOFOpticalFlow + + The RLOF optical flow parameters + Threshold for the forward backward confidence check. Use 1.0f for default + Size of the grid to spawn the motion vectors. Use (6, 6) for default + Interpolation used to compute the dense optical flow. + See Ximgproc.EdgeAwareInterpolator() K value. + See Ximgproc.EdgeAwareInterpolator() sigma value. + See Ximgproc.EdgeAwareInterpolator() lambda value. + Enables Ximgproc.fastGlobalSmootherFilter + See Ximgproc.EdgeAwareInterpolator(). + See Ximgproc.EdgeAwareInterpolator(). + + + + Release the unmanaged resources + + + + + Gets the dense optical flow pointer. + + + The pointer to the dense optical flow object. + + + + + Return the pointer to the algorithm object + + + + + Dual TV L1 Optical Flow Algorithm. + + + + + Create Dual TV L1 Optical Flow. + + + + + Release the unmanaged resources + + + + + Gets the dense optical flow pointer. + + + The pointer to the dense optical flow object. + + + + + Return the pointer to the algorithm object + + + + + Time step of the numerical scheme + + + + + Weight parameter for the data term, attachment parameter + + + + + Weight parameter for (u - v)^2, tightness parameter + + + + + Coefficient for additional illumination variation term + + + + + Number of scales used to create the pyramid of images + + + + + Number of warpings per scale + + + + + Stopping criterion threshold used in the numerical scheme, which is a trade-off between precision and running time + + + + + Inner iterations (between outlier filtering) used in the numerical scheme + + + + + Outer iterations (number of inner loops) used in the numerical scheme + + + + + Use initial flow + + + + + Step between scales (less than 1) + + + + + Median filter kernel size (1 = no filter) (3 or 5) + + + + + The motion history class + + + For help on using this class, take a look at the Motion Detection example + + + + + The motion mask. + Do not dispose this image. + + + + + Create a motion history object + + In second, the duration of motion history you wants to keep + In second. Any change happens between a time interval greater than this will not be considered + In second. Any change happens between a time interval smaller than this will not be considered. + + + + Create a motion history object + + In second, the duration of motion history you wants to keep + In second. Any change happens between a time interval larger than this will not be considered + In second. Any change happens between a time interval smaller than this will not be considered. + The start time of the motion history + + + + Update the motion history with the specific image and current timestamp + + The image to be added to history + + + + Update the motion history with the specific image and the specific timestamp + + The foreground of the image to be added to history + The time when the image is captured + + + + Get a sequence of motion component + + The output mask of motion components + The bounding rectangles of the motion components + + + + Given a rectangle area of the motion, output the angle of the motion and the number of pixels that are considered to be motion pixel + + The rectangle area of the motion + The orientation of the motion + Number of motion pixels within silhouette ROI + The foreground mask used to calculate the motion info. + + + + Release unmanaged resources + + + + + Release any images associated with this object + + + + + DeepFlow optical flow algorithm implementation. + + + + + Create an instance of DeepFlow optical flow algorithm. + + + + + Release the unmanaged memory associated with this Object + + + + + Pointer to the unmanaged cv::Algorithm + + + + + Pointer to the unmanaged cv::DenseOpticalFlow + + + + + PCAFlow algorithm. + + + + + Creates an instance of PCAFlow + + + + + Release the memory associated with this PCA Flow algorithm + + + + + Pointer to cv::Algorithm + + + + + Pointer to native cv::DenseOpticalFlow + + + + + This is used store and set up the parameters of the robust local optical flow (RLOF) algorithm. + + + + + The solver type + + + + + Apply standard iterative refinement + + + + + Apply optimized iterative refinement based bilinear equation solutions + + + + + The support region type + + + + + Apply a constant support region + + + + + Apply a adaptive support region obtained by cross-based segmentation + + + + + Create a RLOF Optical Flow Parameter with default parameters. + + + + + Release the unmanaged memory associated with this Object + + + + + parameter of the shrinked Hampel norm + + + + + parameter of the shrinked Hampel norm + + + + + Variable specifies the iterative refinement strategy + + + + + Variable specifies the support region shape extraction or shrinking strategy + + + + + Minimal window size of the support region. This parameter is only used if supportRegionType is Cross + + + + + Maximal window size of the support region. If supportRegionType is Fixed this gives the exact support region size. The speed of the RLOF is related to the applied win sizes. The smaller the window size the lower is the runtime, but the more sensitive to noise is the method. + + + + + Color similarity threshold used by cross-based segmentation. Only used if supportRegionType is Cross. With the cross-bassed segmentation motion boundaries can be computed more accurately + + + + + Maximal number of pyramid level used. The large this value is the more likely it is to obtain accurate solutions for long-range motions. The runtime is linear related to this parameter + + + + + Use next point list as initial values. A good initialization can improve the algorithm accuracy and reduce the runtime by a faster convergence of the iteration refinement + + + + + Use the Gennert and Negahdaripour illumination model instead of the intensity brightness constraint. + + + + + Use global motion prior initialisation. It allows to be more accurate for long-range motion. The computational complexity is slightly increased by enabling the global motion prior initialisation. + + + + + Number of maximal iterations used for the iterative refinement. Lower values can reduce the runtime but also the accuracy. + + + + + Threshold for the minimal eigenvalue of the gradient matrix defines when to abort the iterative refinement. + + + + + To apply the global motion prior motion vectors will be computed on a regularly sampled which are the basis for Homography estimation using RANSAC. The reprojection threshold is based on n-th percentil (given by this value [0 ... 100]) of the motion vectors magnitude. + + + + + Class used for calculation sparse optical flow and feature tracking with robust local optical flow (RLOF) algorithms. + + + + + Creates instance of SparseRLOFOpticalFlow + + The RLOF optical flow parameters + Threshold for the forward backward confidence check. Use 1.0f for default + + + + Release the unmanaged resources + + + + + Gets the sparse optical flow pointer. + + + The pointer to the sparse optical flow object. + + + + + Return the pointer to the algorithm object + + + + + Abstract base class for histogram cost algorithms. + + + + + Pointer native cv::Ptr object. + + + + + Release the histogram cost extractor + + + + + A norm based cost extraction. + + + + + Create a norm based cost extraction. + + Distance type + Number of dummies + Default cost + + + + An EMD based cost extraction. + + + + + Create an EMD based cost extraction. + + Distance type + Number of dummies + Default cost + + + + An Chi based cost extraction. + + + + + Create an Chi based cost extraction. + + Number of dummies + Default cost + + + + An EMD-L1 based cost extraction. + + + + + Create an EMD-L1 based cost extraction. + + Number of dummies + Default cost + + + + Library to invoke functions that belongs to the shape module + + + + + Implementation of the Shape Context descriptor and matching algorithm proposed by Belongie et al. in “Shape Matching and Object Recognition Using Shape Contexts” (PAMI 2002). + + + + + The number of iterations + + + + + The number of angular bins in the shape context descriptor. + + + + + The number of radial bins in the shape context descriptor. + + + + + The value of the inner radius. + + + + + The value of the outer radius. + + + + + Rotation Invariant + + + + + The weight of the shape context distance in the final distance value. + + + + + The weight of the appearance cost in the final distance value. + + + + + The weight of the Bending Energy in the final distance value. + + + + + Standard Deviation. + + + + + Create a shape context distance extractor + + The histogram cost extractor, use ChiHistogramCostExtractor as default + The shape transformer, use ThinPlateSplineSphapeTransformer as default + Establish the number of angular bins for the Shape Context Descriptor used in the shape matching pipeline. + Establish the number of radial bins for the Shape Context Descriptor used in the shape matching pipeline. + Set the inner radius of the shape context descriptor. + Set the outer radius of the shape context descriptor. + Iterations + + + + Release the memory associated with this shape context distance extractor + + + + + Abstract base class for shape distance algorithms. + + + + + Pointer to the unmanaged ShapeDistanceExtractor + + + + + Compute the shape distance between two shapes defined by its contours. + + Contour defining first shape + Contour defining second shape + The shape distance between two shapes defined by its contours. + + + + Compute the shape distance between two shapes defined by its contours. + + Contour defining first shape + Contour defining second shape + The shape distance between two shapes defined by its contours. + + + + Release all memory associated with this ShapeDistanceExtractor + + + + + A simple Hausdorff distance measure between shapes defined by contours, according to the paper “Comparing Images using the Hausdorff distance.” by D.P. Huttenlocher, G.A. Klanderman, and W.J. Rucklidge. (PAMI 1993). + + + + + Create Hausdorff distance extractor + + Rhe norm used to compute the Hausdorff value between two shapes. It can be L1 or L2 norm. + The rank proportion (or fractional value) that establish the Kth ranked value of the partial Hausdorff distance. Experimentally had been shown that 0.6 is a good value to compare shapes. + + + + Release the memory associated with this Hausdorff distance extrator + + + + + Abstract base class for shape transformation algorithms. + + + + + Get the pointer to the unmanaged shape transformer + + + + + Definition of the transformation ocupied in the paper “Principal Warps: Thin-Plate Splines and Decomposition of Deformations”, by F.L. Bookstein (PAMI 1989). + + + + + Create a thin plate spline shape transformer + + The regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. + + + + Get the pointer the the native ShapeTransformer + + + + + Release the unmanaged memory associated with this ShapeTransformer object + + + + + Wrapper class for the OpenCV Affine Transformation algorithm. + + + + + Create an affine transformer + + Full affine + + + + Release the unmanaged memory associated with this ShapeTransformer object + + + + + Get the pointer to the native ShapeTransformer + + + + + Blender for Image Stitching + + + + + Pointer to the native Blender object. + + + + + Pointer to the native Blender object. + + + + + Reset the unmanaged pointer associated to this object + + + + + Simple blender which mixes images at its borders. + + + + + Create a simple blender which mixes images at its borders + + Sharpness + + + + Release all the unmanaged memory associated with this blender + + + + + Blender which uses multi-band blending algorithm + + + + + Create a multiBandBlender + + If true, will try to use GPU + Number of bands + The weight type + + + + Release all unmanaged resources associated with this blender + + + + + Entry points to the Open CV Stitching module. + + + + + Image Stitching. + + + + + The stitcher statis + + + + + Ok. + + + + + Error, need more images. + + + + + Error, homography estimateion failed. + + + + + Error, camera parameters adjustment failed. + + + + + Wave correction kind + + + + + horizontal + + + + + Vertical + + + + + Stitch mode + + + + + Mode for creating photo panoramas. Expects images under perspective transformation and projects resulting pano to sphere. + + + + + Mode for composing scans. Expects images under affine transformation does not compensate exposure by default. + + + + + Creates a Stitcher configured in one of the stitching modes. + + Scenario for stitcher operation. This is usually determined by source of images to stitch and their transformation. + + + + Compute the panoramic images given the images + + The input images. This can be, for example, a VectorOfMat + The panoramic image + The stitching status + + + + These functions try to match the given images and to estimate rotations of each camera. + + Input images. + Masks for each input image specifying where to look for keypoints (optional). + Status code. + + + + These functions try to match the given images and to estimate rotations of each camera. + + Final pano. + Status code. + + + + These functions try to compose the given images (or images stored internally from the other function calls) into the final pano under the assumption that the image transformations were estimated before. + + Input images + Final pano. + Status code. + + + + Set the features finder for this stitcher. + + The features finder + + + + Set the warper creator for this stitcher. + + The warper creator + + + + Set the blender for this stitcher + + The blender + + + + Get or Set a flag to indicate if the stitcher should apply wave correction + + + + + The wave correction type. + + + + + Get or set the pano confidence threshold + + + + + Get or Set the compositing resolution + + + + + Get or Set the seam estimation resolution + + + + + Get or set the registration resolution + + + + + Release memory associated with this stitcher + + + + + The work scale + + + + + Finds features in the given image. + + + + + Pointer to the unmanaged WarperCreator object + + + + + Pointer to the unmanaged RotationWarper object + + + + + Get a pointer to the unmanaged WarperCreator object + + + + + Reset the unmanaged pointer associated to this object + + + + + Builds the projection maps according to the given camera data. + + Source image size + Camera intrinsic parameters + Camera rotation matrix + Projection map for the x axis + Projection map for the y axis + Projected image minimum bounding box + + + + Projects the image. + + Source image + Camera intrinsic parameters + Camera rotation matrix + Interpolation mode + Border extrapolation mode + Projected image + Project image top-left corner + + + + Warper that maps an image onto the z = 1 plane. + + + + + Construct an instance of the plane warper class. + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Warper that maps an image onto the unit sphere located at the origin. + + + + + Construct an instance of the spherical warper class. + + Radius of the projected sphere, in pixels. An image spanning the whole sphere will have a width of 2 * scale * PI pixels. + + + + Release the unmanaged memory associated with this wraper + + + + + Fisheye Warper + + + + + Create a fisheye warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Stereographic Warper + + + + + Create a stereographic warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Compressed rectilinear warper + + + + + Create a compressed rectilinear warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Panini warper + + + + + Create a Panini warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Panini portrait warper + + + + + Create a panini portrait warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Mercator warper + + + + + Create a Mercator Warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Transverse mercator warper + + + + + Create a transverse mercator warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Create a video frame source + + + + + The pointer to the frame source + + + + + Create video frame source from video file + + The name of the file + If true, it will try to create video frame source using gpu + + + Create a framesource using the specific camera + The index of the camera to create capture from, starting from 0 + + + + Get the next frame + + + + + Release all the unmanaged memory associated with this framesource + + + + + Supper resolution + + + + + The type of optical flow algorithms used for super resolution + + + + + BTVL + + + + + BTVL using gpu + + + + + Create a super resolution solver for the given frameSource + + The type of optical flow algorithm to use + The frameSource + + + + Release all the unmanaged memory associated to this object + + + + + Use the Capture class as a FrameSource + + + + + Create a Capture frame source + + The capture object that will be converted to a FrameSource + + + + Release the unmanaged memory associated with this CaptureFrameSource + + + + + A FrameSource that can be used by the Video Stabilizer + + + + + Get or Set the capture type + + + + + The unmanaged pointer the the frameSource + + + + + Retrieve the next frame from the FrameSoure + + The next frame + + + + Release the unmanaged memory associated with this FrameSource + + + + + Gaussian motion filter + + + + + Create a Gaussian motion filter + + The radius, use 15 for default. + The standard deviation, use -1.0f for default + + + + Release all the unmanaged memory associated with this object + + + + + A one pass video stabilizer + + + + + Create a one pass stabilizer + + The capture object to be stabalized + + + + Set the Motion Filter + + The motion filter + + + + Release the unmanaged memory associated with the stabilizer + + + + + A two pass video stabilizer + + + + + Create a two pass video stabilizer. + + The capture object to be stabilized. Should not be a camera stream. + + + + Release the unmanaged memory + + + + + The flags for the neural network training function + + + + + Default + + + + + Update weights + + + + + No input scale + + + + + No output scale + + + + + Splitting criteria, used to choose optimal splits during a weak tree construction + + + + + Use the default criteria for the particular boosting method + + + + + Use Gini index. This is default option for Real AdaBoost; may be also used for Discrete AdaBoost + + + + + Use misclassification rate. This is default option for Discrete AdaBoost; may be also used for Real AdaBoost + + + + + Use least squares criteria. This is default and the only option for LogitBoost and Gentle AdaBoost + + + + + Boosting type + + + + + Discrete AdaBoost + + + + + Real AdaBoost + + + + + LogitBoost + + + + + Gentle AdaBoost + + + + + The data layout type + + + + + Feature vectors are stored as cols + + + + + Feature vectors are stored as rows + + + + + Variable type + + + + + Numerical or Ordered + + + + + Categorical + + + + + Neural network + + + + + Possible activation functions + + + + + Identity function: f(x)=x + + + + + Symmetrical sigmoid: f(x)=beta*(1-e^{-alpha x})/(1+e^{-alpha x}) + + If you are using the default sigmoid activation function with the default parameter values + fparam1 = 0 and fparam2 = 0 then the function used is y = 1.7159 * tanh(2/3 * x), so the output + will range from[-1.7159, 1.7159], instead of[0, 1]. + + + + + Gaussian function: f(x)=beta e^{-alpha x*x} + + + + + ReLU function: f(x)=max(0,x) + + + + + Leaky ReLU function: + for x>0, $f(x)=x; + and x<=0, f(x)=alpha x + + + + + Training method for ANN_MLP + + + + + Back-propagation algorithm + + + + + Batch RPROP algorithm + + + + + The simulated annealing algorithm. + + + + + Create a neural network using the specific parameters + + + + + Release the memory associated with this neural network + + + + + Sets the layer sizes. + + Integer vector specifying the number of neurons in each layer including the input and output layers. The very first element specifies the number of elements in the input layer. The last element - number of elements in the output layer. + + + + Initialize the activation function for each neuron. + + Currently the default and the only fully supported activation function is SigmoidSym + The first parameter of the activation function. + The second parameter of the activation function. + + + + Sets training method and common parameters. + + The training method. + param1 passed to setRpropDW0 for ANN_MLP::RPROP and to setBackpropWeightScale for ANN_MLP::BACKPROP and to initialT for ANN_MLP::ANNEAL. + param2 passed to setRpropDWMin for ANN_MLP::RPROP and to setBackpropMomentumScale for ANN_MLP::BACKPROP and to finalT for ANN_MLP::ANNEAL. + + + + Termination criteria of the training algorithm + + + + + BPROP: Strength of the weight gradient term + + + + + BPROP: Strength of the momentum term (the difference between weights on the 2 previous iterations) + + + + + RPROP: Initial value Delta_0 of update-values Delta_{ij} + + + + + RPROP: Increase factor + + + + + RPROP: Decrease factor + + + + + RPROP: Update-values lower limit + + + + + RPROP: Update-values upper limit + + + + + ANNEAL: Update initial temperature. + + + + + ANNEAL: Update final temperature. + + + + + ANNEAL: Update cooling ratio. + + + + + ANNEAL: Update iteration per step. + + + + + This class contains functions to call into machine learning library + + + + + Create a default EM model + + Pointer to the EM model + + + + Release the EM model + + + + + Given the EM , predict the probability of the + + The EM model + The input samples + The prediction results, should have the same # of rows as the + The result. + + + + Create a default random tree + + Pointer to the random tree + + + + Boost Tree + + + + + Boost Type + + + + + Discrete AdaBoost. + + + + + Real AdaBoost. It is a technique that utilizes confidence-rated predictions and works well with categorical data. + + + + + LogitBoost. It can produce good regression fits. + + + + + Gentle AdaBoost. It puts less weight on outlier data points and for that reason is often good with regression data. + + + + + Create a default Boost classifier + + + + + Release the Boost classifier and all memory associate with it + + + + + Cluster possible values of a categorical variable into K less than or equals maxCategories clusters to find a suboptimal split + + + + + The maximum possible depth of the tree + + + + + If the number of samples in a node is less than this parameter then the node will not be split + + + + + If CVFolds greater than 1 then algorithms prunes the built decision tree using K-fold + + + + + If true then surrogate splits will be built + + + + + If true then a pruning will be harsher + + + + + If true then pruned branches are physically removed from the tree + + + + + Termination criteria for regression trees + + + + + Decision Trees + + + + + Predict options + + + + + Predict auto + + + + + Predict sum + + + + + Predict max vote + + + + + Predict mask + + + + + Create a default decision tree + + + + + Release the decision tree and all the memory associate with it + + + + + Cluster possible values of a categorical variable into K less than or equals maxCategories clusters to find a suboptimal split + + + + + The maximum possible depth of the tree + + + + + If the number of samples in a node is less than this parameter then the node will not be split + + + + + If CVFolds greater than 1 then algorithms prunes the built decision tree using K-fold + + + + + If true then surrogate splits will be built + + + + + If true then a pruning will be harsher + + + + + If true then pruned branches are physically removed from the tree + + + + + Termination criteria for regression trees + + + + + Expectation Maximization model + + + + + The type of the mixture covariation matrices + + + + + A covariation matrix of each mixture is a scaled identity matrix, ?k*I, so the only parameter to be estimated is ?k. The option may be used in special cases, when the constraint is relevant, or as a first step in the optimization (e.g. in case when the data is preprocessed with PCA). The results of such preliminary estimation may be passed again to the optimization procedure, this time with cov_mat_type=COV_MAT_DIAGONAL + + + + + A covariation matrix of each mixture may be arbitrary diagonal matrix with positive diagonal elements, that is, non-diagonal elements are forced to be 0's, so the number of free parameters is d for each matrix. This is most commonly used option yielding good estimation results + + + + + A covariation matrix of each mixture may be arbitrary symmetrical positively defined matrix, so the number of free parameters in each matrix is about d2/2. It is not recommended to use this option, unless there is pretty accurate initial estimation of the parameters and/or a huge number of training samples + + + + + The default + + + + + Create an Expectation Maximization model + + + + + Estimate the Gaussian mixture parameters from a samples set. This variation starts with Expectation step. You need to provide initial means of mixture components. Optionally you can pass initial weights and covariance matrices of mixture components. + + Samples from which the Gaussian mixture model will be estimated. It should be a one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type it will be converted to the inner matrix of such type for the further computing. + Initial means of mixture components. It is a one-channel matrix of nclusters x dims size. If the matrix does not have CV_64F type it will be converted to the inner matrix of such type for the further computing. + The vector of initial covariance matrices of mixture components. Each of covariance matrices is a one-channel matrix of dims x dims size. If the matrices do not have CV_64F type they will be converted to the inner matrices of such type for the further computing. + Initial weights of mixture components. It should be a one-channel floating-point matrix with 1 x nclusters or nclusters x 1 size. + The optional output matrix that contains a likelihood logarithm value for each sample. It has nsamples x 1 size and CV_64FC1 type. + The optional output "class label" (indices of the most probable mixture component for each sample). It has nsamples x 1 size and CV_32SC1 type. + The optional output matrix that contains posterior probabilities of each Gaussian mixture component given the each sample. It has nsamples x nclusters size and CV_64FC1 type. + + + + Estimate the Gaussian mixture parameters from a samples set. + This variation starts with Expectation step. Initial values of the model parameters will be estimated by the k-means algorithm. + Unlike many of the ML models, EM is an unsupervised learning algorithm and it does not take responses (class labels or function values) as input. Instead, it computes the Maximum Likelihood Estimate of the Gaussian mixture parameters from an input sample set, stores all the parameters inside the structure, and optionally computes the output "class label" for each sample. + The trained model can be used further for prediction, just like any other classifier. + + Samples from which the Gaussian mixture model will be estimated. It should be a one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type it will be converted to the inner matrix of such type for the further computing. + The probs0. + The optional output matrix that contains a likelihood logarithm value for each sample. It has nsamples x 1 size and CV_64FC1 type. + The optional output "class label" for each sample(indices of the most probable mixture component for each sample). It has nsamples x 1 size and CV_32SC1 type. + The optional output matrix that contains posterior probabilities of each Gaussian mixture component given the each sample. It has nsamples x nclusters size and CV_64FC1 type. + + + + Predict the probability of the + + The input samples + The prediction results, should have the same # of rows as the + The results + + + + Release the memory associated with this EM model + + + + + The number of mixtures + + + + + The type of the mixture covariation matrices + + + + + Termination criteria of the procedure. EM algorithm stops either after a certain number of iterations (term_crit.num_iter), or when the parameters change too little (no more than term_crit.epsilon) from iteration to iteration + + + + + The KNearest classifier + + + + + The type of KNearest search + + + + + Using brute force + + + + + Using kd tree + + + + + Create a default KNearest classifier + + + + + Release the classifier and all the memory associated with it + + + + + Finds the neighbors and predicts responses for input vectors. + + Input samples stored by rows. It is a single-precision floating-point matrix of <number_of_samples> * k size. + Number of used nearest neighbors. Should be greater than 1. + Vector with results of prediction (regression or classification) for each input sample. It is a single-precision floating-point vector with <number_of_samples> elements. + Optional output values for corresponding neighbors. It is a single- precision floating-point matrix of <number_of_samples> * k size. + Optional output distances from the input vectors to the corresponding neighbors. It is a single-precision floating-point matrix of <number_of_samples> * k size. + If only a single input vector is passed, the predicted value is returned by the method. + + + + Default number of neighbors to use in predict method + + + + + Whether classification or regression model should be trained + + + + + Parameter for KDTree implementation + + + + + Algorithm type + + + + + ML implements logistic regression, which is a probabilistic classification technique. + + + + + Specifies the kind of training method used. + + + + + Batch method + + + + + Set MiniBatchSize to a positive integer when using this method. + + + + + Specifies the kind of regularization to be applied. + + + + + Regularization disabled. + + + + + L1 norm + + + + + L2 norm + + + + + Initializes a new instance of the class. + + + + + Return the pointer to the StatModel object + + + + + Return the pointer to the algorithm object + + + + + Release the unmanaged resources + + + + + Learning rate + + + + + Number of iterations + + + + + Kind of regularization to be applied + + + + + Kind of training method to be applied + + + + + Specifies the number of training samples taken in each step of Mini-Batch Gradient Descent + + + + + Termination criteria of the algorithm + + + + + A Normal Bayes Classifier + + + + + Create a normal Bayes classifier + + + + + Release the memory associated with this classifier + + + + + Random trees + + + + + Create a random tree + + + + + Returns the result of each individual tree in the forest. + In case the model is a regression problem, the method will return each of the trees' + results for each of the sample cases.If the model is a classifier, it will return + a Mat with samples + 1 rows, where the first row gives the class number and the + following rows return the votes each class had for each sample. + + Array containing the samples for which votes will be calculated. + Array where the result of the calculation will be written. + Flags for defining the type of RTrees. + + + + Release the random tree and all memory associate with it + + + + + Cluster possible values of a categorical variable into K less than or equals maxCategories clusters to find a suboptimal split + + + + + The maximum possible depth of the tree + + + + + If the number of samples in a node is less than this parameter then the node will not be split + + + + + If CVFolds greater than 1 then algorithms prunes the built decision tree using K-fold + + + + + If true then surrogate splits will be built + + + + + If true then a pruning will be harsher + + + + + If true then pruned branches are physically removed from the tree + + + + + Termination criteria for regression trees + + + + + If true then variable importance will be calculated + + + + + The size of the randomly selected subset of features at each tree node and that are used to find the best split(s) + + + + + The termination criteria that specifies when the training algorithm stops + + + + + Interface for statistical models in OpenCV ML. + + + + + Return the pointer to the StatModel object + + The pointer to the StatModel object + + + + A statistic model + + + + + Trains the statistical model. + + The stat model. + The training samples. + Type of the layout. + Vector of responses associated with the training samples. + True if the training is successful. + + + + Trains the statistical model. + + The model. + The train data. + The flags. + True if the training is successful. + + + + Predicts response(s) for the provided sample(s) + + The model. + The input samples, floating-point matrix. + The optional output matrix of results. + The optional flags, model-dependent. + Response for the provided sample + + + + Wrapped CvParamGrid structure used by SVM + + + + + Minimum value + + + + + Maximum value + + + + + step + + + + + Support Vector Machine + + + + + Type of SVM + + + + + n-class classification (n>=2), allows imperfect separation of classes with penalty multiplier C for outliers + + + + + n-class classification with possible imperfect separation. Parameter nu (in the range 0..1, the larger the value, the smoother the decision boundary) is used instead of C + + + + + one-class SVM. All the training data are from the same class, SVM builds a boundary that separates the class from the rest of the feature space + + + + + Regression. The distance between feature vectors from the training set and the fitting hyper-plane must be less than p. For outliers the penalty multiplier C is used + + + + + Regression; nu is used instead of p. + + + + + SVM kernel type + + + + + Custom svm kernel type + + + + + No mapping is done, linear discrimination (or regression) is done in the original feature space. It is the fastest option. d(x,y) = x y == (x,y) + + + + + polynomial kernel: d(x,y) = (gamma*(xy)+coef0)^degree + + + + + Radial-basis-function kernel; a good choice in most cases: d(x,y) = exp(-gamma*|x-y|^2) + + + + + sigmoid function is used as a kernel: d(x,y) = tanh(gamma*(xy)+coef0) + + + + + Exponential Chi2 kernel, similar to the RBF kernel + + + + + Histogram intersection kernel. A fast kernel. K(xi,xj)=min(xi,xj). + + + + + The type of SVM parameters + + + + + C + + + + + Gamma + + + + + P + + + + + NU + + + + + COEF + + + + + DEGREE + + + + + Create a support Vector Machine + + + + + Release all the memory associated with the SVM + + + + + Get the default parameter grid for the specific SVM type + + The SVM type + The default parameter grid for the specific SVM type + + + + The method trains the SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree from CvSVMParams. By the optimality one mean that the cross-validation estimate of the test set error is minimal. + + The training data. + Cross-validation parameter. The training set is divided into k_fold subsets, one subset being used to train the model, the others forming the test set. So, the SVM algorithm is executed k_fold times + True if training is successful. + + + + The method trains the SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree from CvSVMParams. By the optimality one mean that the cross-validation estimate of the test set error is minimal. + + The training data. + Cross-validation parameter. The training set is divided into k_fold subsets, one subset being used to train the model, the others forming the test set. So, the SVM algorithm is executed k_fold times + cGrid + grid for gamma + grid for p + grid for nu + grid for coeff + grid for degree + If true and the problem is 2-class classification then the method creates more balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. + True if training is successful. + + + + Retrieves all the support vectors. + + All the support vector as floating-point matrix, where support vectors are stored as matrix rows. + + + + Type of a SVM formulation + + + + + Parameter gamma of a kernel function + + + + + Parameter coef0 of a kernel function + + + + + Parameter degree of a kernel function + + + + + Parameter C of a SVM optimization problem + + + + + Parameter nu of a SVM optimization problem + + + + + Parameter epsilon of a SVM optimization problem + + + + + Initialize with one of predefined kernels + + The value + + + + Termination criteria of the iterative SVM training procedure which solves a partial case of constrained quadratic optimization problem + + + + + Type of a SVM kernel + + + + + Support Vector Machine + + + + + SVMSGD type. + ASGD is often the preferable choice. + + + + + Stochastic Gradient Descent + + + + + Average Stochastic Gradient Descent + + + + + Margin type + + + + + General case, suits to the case of non-linearly separable sets, allows outliers. + + + + + More accurate for the case of linearly separable sets. + + + + + Create a support Vector Machine + + + + + Set the optimal parameters for the given model type + + SVMSGD type + Margin type + + + + Release all the memory associated with the SVMSGD model + + + + + Algorithm type + + + + + Margin type + + + + + marginRegularization of a SVMSGD optimization problem + + + + + initialStepSize of a SVMSGD optimization problem + + + + + stepDecreasingPower of a SVMSGD optimization problem + + + + + Termination criteria of the training algorithm. + + + + + Train data + + + + + Creates training data from in-memory arrays. + + Matrix of samples. It should have CV_32F type. + Type of the layout. + Matrix of responses. If the responses are scalar, they should be stored as a single row or as a single column. The matrix should have type CV_32F or CV_32S (in the former case the responses are considered as ordered by default; in the latter case - as categorical) + Vector specifying which variables to use for training. It can be an integer vector (CV_32S) containing 0-based variable indices or byte vector (CV_8U) containing a mask of active variables. + Vector specifying which samples to use for training. It can be an integer vector (CV_32S) containing 0-based sample indices or byte vector (CV_8U) containing a mask of training samples. + Optional vector with weights for each sample. It should have CV_32F type. + Optional vector of type CV_8U and size <number_of_variables_in_samples> + <number_of_variables_in_responses>, containing types of each input and output variable. + + + + Release the unmanaged resources + + + + + Dnn backend. + + + + + Default equals to InferenceEngine if + OpenCV is built with Intel's Inference Engine library or + Opencv otherwise. + + + + + Halide backend + + + + + Intel's Inference Engine library + + + + + OpenCV's implementation + + + + + DNN Backend and Target pair + + + + + Dnn Backend and Target pair + + The backend + The target + + + + The backend + + + + + The target + + + + + Entry points to the Open CV Dnn module + + + + + Creates 4-dimensional blob from image. Optionally resizes and crops image from center, subtract mean values, scales values by scalefactor, swap Blue and Red channels. + + Input image (with 1- or 3-channels). + Multiplier for image values. + Spatial size for output image + Scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + Flag which indicates that swap first and last channels in 3-channel image is necessary. + Flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + 4-dimensional Mat with NCHW dimensions order. + + + + Creates 4-dimensional blob from image. Optionally resizes and crops image from center, subtract mean values, scales values by scalefactor, swap Blue and Red channels. + + Input image (with 1- or 3-channels). + 4-dimensional output array with NCHW dimensions order. + Multiplier for image values. + Spatial size for output image + Scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + Flag which indicates that swap first and last channels in 3-channel image is necessary. + Flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + + + + Creates 4-dimensional blob from series of images. Optionally resizes and crops images from center, subtract mean values, scales values by scalefactor, swap Blue and Red channels. + + Input images (all with 1- or 3-channels). + Multiplier for images values. + Spatial size for output image + Scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + Flag which indicates that swap first and last channels in 3-channel image is necessary. + Flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + Input image is resized so one side after resize is equal to corresponding dimension in size and another one is equal or larger. Then, crop from the center is performed. + + + + Creates 4-dimensional blob from series of images. Optionally resizes and crops images from center, subtract mean values, scales values by scale factor, swap Blue and Red channels. + + input images (all with 1-, 3- or 4-channels). + 4-dimensional OutputArray with NCHW dimensions order. + multiplier for images values. + spatial size for output image + scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + flag which indicates that swap first and last channels in 3-channel image is necessary. + flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + + + + Parse a 4D blob and output the images it contains as 2D arrays through a simpler data structure (std::vector<cv::Mat>). + + 4 dimensional array (images, channels, height, width) in floating point precision (CV_32F) from which you would like to extract the images. + Array of 2D Mat containing the images extracted from the blob in floating point precision (CV_32F). They are non normalized neither mean added. The number of returned images equals the first dimension of the blob (batch size). Every image has a number of channels equals to the second dimension of the blob (depth). + + + + Reads a network model stored in Darknet model files. + + path to the .cfg file with text description of the network architecture. + path to the .weights file with learned network. + Network object that ready to do forward, throw an exception in failure cases. + + + + Reads a network model stored in Darknet model files. + + Buffer containing the content of the .cfg file with text description of the network architecture. + Buffer containing the content of the the .weights file with learned network. + Net object. + + + + Reads a network model stored in Caffe framework's format. + + Buffer containing the content of the .prototxt file + Buffer containing the content of the .caffemodel file + Net object. + + + + Reads a network model stored in Caffe framework's format. + + path to the .prototxt file with text description of the network architecture. + path to the .caffemodel file with learned network. + Net object. + + + + Reads a network model stored in TensorFlow framework's format. + + path to the .pb file with binary protobuf description of the network architecture + path to the .pbtxt file that contains text graph definition in protobuf format. Resulting Net object is built by text graph using weights from a binary one that let us make it more flexible. + Net object. + + + + Reads a network model stored in TensorFlow framework's format. + + buffer containing the content of the pb file + buffer containing the content of the pbtxt file + Net object. + + + + Reads a network model ONNX. + + Path to the .onnx file with text description of the network architecture. + Network object that ready to do forward, throw an exception in failure cases. + + + + Creates blob from .pb file. + + Path to the .pb file with input tensor. + The blob + + + + Read deep learning network represented in one of the supported formats. + + + Binary file contains trained weights. The following file extensions are expected for models from different frameworks: + *.caffemodel(Caffe, http://caffe.berkeleyvision.org/) + *.pb (TensorFlow, https://www.tensorflow.org/) + *.t7 | *.net (Torch, http://torch.ch/) + *.weights (Darknet, https://pjreddie.com/darknet/) + *.bin (DLDT, https://software.intel.com/openvino-toolkit) + + Text file contains network configuration. It could be a file with the following extensions: + *.prototxt(Caffe, http://caffe.berkeleyvision.org/) + *.pbtxt (TensorFlow, https://www.tensorflow.org/) + *.cfg (Darknet, https://pjreddie.com/darknet/) + *.xml (DLDT, https://software.intel.com/openvino-toolkit) + + Explicit framework name tag to determine a format. + Net object. + + + + Load a network from Intel's Model Optimizer intermediate representation. + + XML configuration file with network's topology. + Binary file with trained weights. + Net object. Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine backend. + + + + Convert all weights of Caffe network to half precision floating point + + Path to origin model from Caffe framework contains single precision floating point weights (usually has .caffemodel extension). + Path to destination model with updated weights. + + + + Create a text representation for a binary network stored in protocol buffer format. + + A path to binary network. + A path to output text file to be created. + + + + Performs non maximum suppression given boxes and corresponding scores. + + A set of bounding boxes to apply NMS. + A set of corresponding confidences. + A threshold used to filter boxes by score. + A threshold used in non maximum suppression. + The kept indices of bboxes after NMS. + A coefficient in adaptive threshold + If >0, keep at most top_k picked indices. + + + + Get the list of available DNN Backends + + The available backend and target pair + + + + This interface class allows to build new Layers - are building blocks of networks. + + + + + List of learned parameters must be stored here to allow read them by using Net::getParam(). + + + + + Release the unmanaged memory associated with this Layer. + + + + + The name of the layer + + + + + The layer type + + + + + The preferable target + + + + + This class allows to create and manipulate comprehensive artificial neural networks. + + + + + Default constructor. + + + + + Sets the new value for the layer output blob. + + Descriptor of the updating layer output blob. + Input blob + An optional normalization scale. + An optional mean subtraction values. + + + + Runs forward pass for the whole network. + + name for layer which output is needed to get + blob for first output of specified layer + + + + Runs forward pass to compute output of layer with name outputName. + + Contains all output blobs for specified layer. + Name for layer which output is needed to get + + + + Runs forward pass to compute outputs of layers listed in outBlobNames. + + Contains blobs for first outputs of specified layers. + Names for layers which outputs are needed to get + + + + Release the memory associated with this network. + + + + + Return the LayerNames + + + + + Converts string name of the layer to the integer identifier. + + The name of the layer + The id of the layer + + + + Returns layer with specified name which the network use. + + The name of the layer + Layer with specified name which the network use. + + + + Returns layer with specified id which the network use. + + The id of the layer + Layer with specified id which the network use. + + + + Returns indexes of layers with unconnected outputs. + + + + + Returns names of layers with unconnected outputs. + + + + + Dump net to String + + + String with structure, hyperparameters, backend, target and fusion + Call method after setInput(). + To see correct backend, target and fusion run after forward(). + + + + + Dump net structure, hyperparameters, backend, target and fusion to dot file + + Path to output file with .dot extension + + + + Returns overall time for inference and timings (in ticks) for layers. Indexes in returned vector correspond to layers ids. Some layers can be fused with others, in this case zero ticks count will be return for that skipped layers. + + Vector for tick timings for all layers. + Overall ticks for model inference. + + + + Ask network to use specific computation backend where it supported. + + The value + + + + Ask network to make computations on specific target device. + + The value + + + + Enables or disables layer fusion in the network. + + The value + + + + Returns true if there are no layers in the network. + + + + + Schedule layers that support Halide backend. Then compile them for specific target. For layers that not represented in scheduling file or if no manual scheduling used at all, automatic scheduling will be applied. + + The value + + + + Target devices for computations. + + + + + CPU + + + + + OpenCL + + + + + Will fall back to OPENCL if the hardware does not support FP16 + + + + + Myraid + + + + + The Cascade Classifier + + + + + Create a cascade classifier + + + + Create a CascadeClassifier from the specific file + The name of the file that contains the CascadeClassifier + + + + Load the cascade classifier from a file node + + The file node, The file may contain a new cascade classifier only. + True if the classifier can be imported. + + + + Finds rectangular regions in the given image that are likely to contain objects the cascade has been trained for and returns those regions as a sequence of rectangles. + The function scans the image several times at different scales. Each time it considers overlapping regions in the image. + It may also apply some heuristics to reduce number of analyzed regions, such as Canny prunning. + After it has proceeded and collected the candidate rectangles (regions that passed the classifier cascade), it groups them and returns a sequence of average rectangles for each large enough group. + + The image where the objects are to be detected from + The factor by which the search window is scaled between the subsequent scans, for example, 1.1 means increasing window by 10% + Minimum number (minus 1) of neighbor rectangles that makes up an object. All the groups of a smaller number of rectangles than min_neighbors-1 are rejected. If min_neighbors is 0, the function does not any grouping at all and returns all the detected candidate rectangles, which may be useful if the user wants to apply a customized grouping procedure. Use 3 for default. + Minimum window size. Use Size.Empty for default, where it is set to the size of samples the classifier has been trained on (~20x20 for face detection) + Maximum window size. Use Size.Empty for default, where the parameter will be ignored. + The objects detected, one array per channel + + + + Get if the cascade is old format + + + + + Get the original window size + + + + + Release the CascadeClassifier Object and all the memory associate with it + + + + + A HOG descriptor + + + + + Create a new HOGDescriptor + + + + + Create a new HOGDescriptor using the specific parameters. + + Block size in cells. Use (16, 16) for default. + Cell size. Use (8, 8) for default. + Block stride. Must be a multiple of cell size. Use (8,8) for default. + Do gamma correction preprocessing or not. + L2-Hys normalization method shrinkage. + Number of bins. + Gaussian smoothing window parameter. + Detection window size. Must be aligned to block size and block stride. Must match the size of the training image. Use (64, 128) for default. + Deriv Aperture + + + + Return the default people detector + + The default people detector + + + + Set the SVM detector + + The SVM detector + + + + Performs object detection with increasing detection window. + + The image to search in + Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. + Window stride. Must be a multiple of block stride. + Padding + Coefficient of the detection window increase. + After detection some objects could be covered by many rectangles. This coefficient regulates similarity threshold. 0 means don't perform grouping. Should be an integer if not using meanshift grouping. + If true, it will use meanshift grouping. + The regions where positives are found + + + + Computes HOG descriptors of given image. + + The image + Window stride. Must be a multiple of block stride. Use Size.Empty for default + Padding. Use Size.Empty for default + Locations for the computation. Can be null if not needed + The descriptor vector + + + + Release the unmanaged memory associated with this HOGDescriptor + + + + + Get the size of the descriptor + + + + + A QR code detector + + + + + Create a new QR code detector + + + + + Release the unmanaged memory associated with this HOGDescriptor + + + + + Detector the location of the QR code + + The input image + The location of the QR code in the image + True if a QRCode is found. + + + + Decodes QR code in image once it's found by the detect() method. + + grayscale or color (BGR) image containing QR code. + Quadrangle vertices found by detect() method (or some other algorithm). + The optional output image containing rectified and binarized QR code + UTF8-encoded output string or empty string if the code cannot be decoded. + + + + EpsX + + The value + + + + EpsY + + The value + + + + A convolution kernel + + + + + The center of the convolution kernel + + + + + Create a convolution kernel with the specific number of and + + The number of raws for the convolution kernel + The number of columns for the convolution kernel + + + + Create a convolution kernel using the specific matrix and center + + The values for the convolution kernel + The center of the kernel + + + + Create a convolution kernel using the specific floating point matrix + + The values for the convolution kernel + + + + Create a convolution kernel using the specific floating point matrix and center + + The values for the convolution kernel + The center for the convolution kernel + + + Get a flipped copy of the convolution kernel + The type of the flipping + The flipped copy of this image + + + + The center of the convolution kernel + + + + + Obtain the transpose of the convolution kernel + + A transposed convolution kernel + + + + The class is used to iterate over all the pixels on the raster line segment connecting two specified points. + + + + + Create a LineIterator that can be used to get each pixel of a raster line. The line will be clipped on the image boundaries + + The image + The first point + The second point + 8-connected or 4-connected + If true, then the iteration is always done from the left-most point to the right most, not to depend on the ordering of pt1 and pt2 parameters + + + + Native pointer to the pixel data at the current position + + + + + Get or set the pixel data in the current position + + + + + returns the current position in the image + + + + + Move to the next point + + + + + Release unmanaged resources + + + + + Copy the pixel data in the line to a new Mat that is of the same type. + + The image to sample from + The first point + The second point + 8-connected or 4-connected + If true, then the iteration is always done from the left-most point to the right most, not to depend on the ordering of pt1 and pt2 parameters + A new single column Mat of the same data type. The number of rows equals to the number of points on the sample line. + + + + The total number of pixels in the line + + + + + Planar Subdivision, can be use to compute Delaunnay's triangulation or Voroni diagram. + + + + + Start the Delaunay's triangulation in the specific region of interest. + + The region of interest of the triangulation + + + + Create a planar subdivision from the given points. The ROI is computed as the minimum bounding Rectangle for the input points + + If true, any exception during insert will be ignored + The points to be inserted to this planar subdivision + + + + Insert a collection of points to this planar subdivision + + The points to be inserted to this planar subdivision + If true, any exception during insert will be ignored + + + + Insert a point to the triangulation. + + The point to be inserted + + + + Locates input point within subdivision + + The point to locate + The output edge the point falls onto or right to + Optional output vertex double pointer the input point coincides with + The type of location for the point + + + + Finds subdivision vertex that is the closest to the input point. It is not necessarily one of vertices of the facet containing the input point, though the facet (located using cvSubdiv2DLocate) is used as a starting point. + + Input point + The nearest subdivision vertex + The location type of the point + + + + Obtains the list of Voronoi Facets + + Vector of vertices IDs to consider. For all vertices you can pass empty vector. + The list of Voronoi Facets + + + + Returns the triangles subdivision of the current planar subdivision. + + If true, will include the virtual points in the resulting triangles + The triangles might contains virtual points that do not belongs to the inserted points, if you do not want those points, set to false + The triangles subdivision in the current planar subdivision + + + + Release unmanaged resources + + + + + A Voronoi Facet + + + + + Create a Voronoi facet using the specific and + + The point this facet associate with + The points that defines the contour of this facet + + + + The point this facet associates to + + + + + Get or set the vertices of this facet + + + + + The stereo matcher interface + + + + + Pointer to the stereo matcher + + + + + Class for computing stereo correspondence using the block matching algorithm, introduced and contributed to OpenCV by K. Konolige. + + + + + Create a stereoBM object + + the linear size of the blocks compared by the algorithm. The size should be odd (as the block is centered at the current pixel). Larger block size implies smoother, though less accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher chance for algorithm to find a wrong correspondence. + the disparity search range. For each pixel algorithm will find the best disparity from 0 (default minimum disparity) to . The search range can then be shifted by changing the minimum disparity. + + + + Release the stereo state and all the memory associate with it + + + + + Pointer to the stereo matcher + + + + + This is a variation of + "Stereo Processing by Semiglobal Matching and Mutual Information" + by Heiko Hirschmuller. + We match blocks rather than individual pixels, thus the algorithm is called + SGBM (Semi-global block matching) + + + + + The SGBM mode + + + + + This is the default mode, the algorithm is single-pass, which means that you consider only 5 directions instead of 8 + + + + + Run the full-scale two-pass dynamic programming algorithm. It will consume O(W*H*numDisparities) bytes, which is large for 640x480 stereo and huge for HD-size pictures. + + + + + Create a stereo disparity solver using StereoSGBM algorithm (combination of H. Hirschmuller + K. Konolige approaches) + + Minimum possible disparity value. Normally, it is zero but sometimes rectification algorithms can shift images, so this parameter needs to be adjusted accordingly. + Maximum disparity minus minimum disparity. The value is always greater than zero. In the current implementation, this parameter must be divisible by 16. + Matched block size. It must be an odd number >=1 . Normally, it should be somewhere in the 3..11 range. Use 0 for default. + The first parameter controlling the disparity smoothness. It is the penalty on the disparity change by plus or minus 1 between neighbor pixels. Reasonably good value is 8*number_of_image_channels*SADWindowSize*SADWindowSize. Use 0 for default + The second parameter controlling the disparity smoothness. It is the penalty on the disparity change by more than 1 between neighbor pixels. The algorithm requires > . Reasonably good value is 32*number_of_image_channels*SADWindowSize*SADWindowSize. Use 0 for default + Maximum allowed difference (in integer pixel units) in the left-right disparity check. Set it to a non-positive value to disable the check. + Truncation value for the prefiltered image pixels. The algorithm first computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval. The result values are passed to the Birchfield-Tomasi pixel cost function. + Margin in percentage by which the best (minimum) computed cost function value should “win” the second best value to consider the found match correct. Normally, a value within the 5-15 range is good enough. + Maximum size of smooth disparity regions to consider their noise speckles and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the 50-200 range + Maximum disparity variation within each connected component. If you do speckle filtering, set the parameter to a positive value, it will be implicitly multiplied by 16. Normally, 1 or 2 is good enough. + Set it to HH to run the full-scale two-pass dynamic programming algorithm. It will consume O(W*H*numDisparities) bytes, which is large for 640x480 stereo and huge for HD-size pictures. By default, it is set to false. + + + + Release the unmanaged memory associated with this stereo solver + + + + + Pointer to the StereoMatcher + + + + + An interface for the convex polygon + + + + + Get the vertices of this convex polygon + + The vertices of this convex polygon + + + + An interface for the convex polygon + + + + + Get the vertices of this convex polygon + + The vertices of this convex polygon + + + + A unit quaternions that defines rotation in 3D + + + + + Create a quaternion with the specific values + + The W component of the quaternion: the value for cos(rotation angle / 2) + The X component of the vector: rotation axis * sin(rotation angle / 2) + The Y component of the vector: rotation axis * sin(rotation angle / 2) + The Z component of the vector: rotation axis * sin(rotation angle / 2) + + + + The W component of the quaternion: the value for cos(rotation angle / 2) + + + + + The X component of the vector: rotation axis * sin(rotation angle / 2) + + + + + The Y component of the vector: rotation axis * sin(rotation angle / 2) + + + + + The Z component of the vector: rotation axis * sin(rotation angle / 2) + + + + + Set the value of the quaternions using euler angle + + Rotation around x-axis (roll) in radian + Rotation around y-axis (pitch) in radian + rotation around z-axis (yaw) in radian + + + + Get the equivalent euler angle + + Rotation around x-axis (roll) in radian + Rotation around y-axis (pitch) in radian + rotation around z-axis (yaw) in radian + + + + Get or set the equivalent axis angle representation. (x,y,z) is the rotation axis and |(x,y,z)| is the rotation angle in radians + + + + + Fill the (3x3) rotation matrix with the value such that it represent the quaternions + + The (3x3) rotation matrix which values will be set to represent this quaternions + + + + Rotate the points in and save the result in . In-place operation is supported ( == ). + + The points to be rotated + The result of the rotation, should be the same size as , can be as well for inplace rotation + + + + Rotate the specific point and return the result + + The point to be rotated + The rotated point + + + + Get the rotation axis of the quaternion + + + + + Get the rotation angle in radian + + + + + Multiply the current Quaternions with + + The other rotation + A composition of the two rotations + + + + Perform quaternions linear interpolation + + The other quaternions to interpolate with + If 0.0, the result is the same as this quaternions. If 1.0 the result is the same as + The linear interpolated quaternions + + + + Computes the multiplication of two quaternions + + The quaternions to be multiplied + The quaternions to be multiplied + The multiplication of two quaternions + + + + Get the quaternions that represent a rotation of 0 degrees. + + + + + Compute the conjugate of the quaternions + + + + + Check if this quaternions equals to + + The quaternions to be compared + True if two quaternions equals, false otherwise + + + + Get the string representation of the Quaternions + + The string representation + + + + A (2x3) 2D rotation matrix. This Matrix defines an Affine Transform + + + + + Create an empty (2x3) 2D rotation matrix + + + + + Create a (2x3) 2D rotation matrix + + Center of the rotation in the source image + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at top-left corner). + Isotropic scale factor. + + + + Set the values of the rotation matrix + + Center of the rotation in the source image + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at top-left corner). + Isotropic scale factor. + + + + Rotate the , the value of the input will be changed. + + The points to be rotated, its value will be modified + + + + Rotate the , the value of the input will be changed. + + The points to be rotated, its value will be modified + + + + Rotate the , the value of the input will be changed. + + The line segments to be rotated + + + + Rotate the single channel Nx2 matrix where N is the number of 2D points. The value of the matrix is changed after rotation. + + The depth of the points, must be double or float + The N 2D-points to be rotated + + + + Return a clone of the Matrix + + A clone of the Matrix + + + + Create a rotation matrix for rotating an image + + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at image centre). + The rotation center + The source image size + The minimun size of the destination image + The rotation matrix that rotate the source image to the destination image. + + + + A (3x1) Rodrigues rotation vector. Rotation vector is a compact representation of rotation matrix. Direction of the rotation vector is the rotation axis and the length of the vector is the rotation angle around the axis. + + + + + Constructor used to deserialize 3D rotation vector + + The serialization info + The streaming context + + + + Create a 3D rotation vector (3x1 Matrix). + + + + + Create a rotation vector using the specific values + + The values of the (3 x 1) Rodrigues rotation vector + + + + Get or Set the (3x3) rotation matrix represented by this rotation vector. + + + + + Access type + + + + + Read + + + + + Write + + + + + Read and write + + + + + Mask + + + + + Fast + + + + + Types of Adaptive Threshold + + + + + Indicates that Mean minus C should be used for adaptive threshold. + + + + + Indicates that Gaussian minus C should be used for adaptive threshold. + + + + + Specific if it is back or front + + + + + Back + + + + + Front + + + + + The type for CopyMakeBorder function + + + + + Used by some cuda methods, will pass the value -1 to the function + + + + + Border is filled with the fixed value, passed as last parameter of the function + + + + + The pixels from the top and bottom rows, the left-most and right-most columns are replicated to fill the border + + + + + Reflect + + + + + Wrap + + + + + Reflect 101 + + + + + Transparent + + + + + The default border interpolation type. + + + + + Do not look outside of ROI + + + + + Type of chessboard calibration + + + + + Default type + + + + + Use adaptive thresholding to convert the image to black-n-white, rather than a fixed threshold level (computed from the average image brightness) + + + + + Normalize the image using cvNormalizeHist before applying fixed or adaptive thresholding. + + + + + Use additional criteria (like contour area, perimeter, square-like shape) to filter out false quads that are extracted at the contour retrieval stage + + + + + If it is on, then this check is performed before the main algorithm and if a chessboard is not found, the function returns 0 instead of wasting 0.3-1s on doing the full search. + + + + + Run an exhaustive search to improve detection rate. + + + + + Up sample input image to improve sub-pixel accuracy due to aliasing effects. This should be used if an accurate camera calibration is required. + + + + + Type of circles grid calibration + + + + + Symmetric grid + + + + + Asymmetric grid + + + + + Clustering + + + + + Various camera calibration flags + + + + + The default value + + + + + intrinsic_matrix contains valid initial values of fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image center (image_size is used here), and focal distances are computed in some least-squares fashion + + + + + The optimization procedure consider only one of fx and fy as independent variable and keeps the aspect ratio fx/fy the same as it was set initially in intrinsic_matrix. In this case the actual initial values of (fx, fy) are either taken from the matrix (when CV_CALIB_USE_INTRINSIC_GUESS is set) or estimated somehow (in the latter case fx, fy may be set to arbitrary values, only their ratio is used) + + + + + The principal point is not changed during the global optimization, it stays at the center and at the other location specified (when CV_CALIB_FIX_FOCAL_LENGTH - Both fx and fy are fixed. + CV_CALIB_USE_INTRINSIC_GUESS is set as well) + + + + + Tangential distortion coefficients are set to zeros and do not change during the optimization + + + + + The focal length is fixed + + + + + The 1st distortion coefficient (k1) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 2nd distortion coefficient (k2) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 3rd distortion coefficient (k3) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 4th distortion coefficient (k4) is fixed (see above) + + + + + The 5th distortion coefficient (k5) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 6th distortion coefficient (k6) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + Rational model + + + + + Thin prism model + + + + + Fix S1, S2, S3, S4 + + + + + Tilted model + + + + + Fix Taux Tauy + + + + + Use QR instead of SVD decomposition for solving. Faster but potentially less precise + + + + + Only for stereo: Fix intrinsic + + + + + Only for stereo: Same focal length + + + + + For stereo rectification: Zero disparity + + + + + For stereo rectification: use LU instead of SVD decomposition for solving. much faster but potentially less precise + + + + + CV Capture property identifier + + + + + Turn the feature off (not controlled manually nor automatically) + + + + + Set automatically when a value of the feature is set by the user + + + + + DC1394 mode auto + + + + + DC1394 mode one push auto + + + + + Film current position in milliseconds or video capture timestamp + + + + + 0-based index of the frame to be decoded/captured next + + + + + Relative position of the video file: 0=start of the film, 1=end of the film. + + + + + Width of frames in the video stream + + + + + Height of frames in the video stream + + + + + Frame rate + + + + + 4-character code of codec + + + + + Number of frames in video file + + + + + Format of the %Mat objects returned by VideoCapture::retrieve(). + + + + + Backend-specific value indicating the current capture mode. + + + + + Brightness of the image (only for those cameras that support). + + + + + Contrast of the image (only for cameras). + + + + + Saturation of the image (only for cameras). + + + + + Hue of the image (only for cameras). + + + + + Gain of the image (only for those cameras that support). + + + + + Exposure (only for those cameras that support). + + + + + Boolean flags indicating whether images should be converted to RGB. + + + + + Currently unsupported. + + + + + Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently). + + + + + Monochrome + + + + + Sharpness + + + + + Exposure control done by camera, user can adjust reference level using this feature + + + + + Gamma + + + + + Temperature + + + + + Trigger + + + + + Trigger delay + + + + + White balance red v + + + + + Zoom + + + + + Focus + + + + + GUID + + + + + ISO SPEED + + + + + MAX DC1394 + + + + + Backlight + + + + + Pan + + + + + Tilt + + + + + Roll + + + + + Iris + + + + + Pop up video/camera filter dialog (note: only supported by DSHOW backend currently. The property value is ignored) + + + + + Buffer size + + + + + Auto focus + + + + + Sample aspect ratio: num/den (num) + + + + + Sample aspect ratio: num/den (den) + + + + + Current backend (enum VideoCaptureAPIs). Read-only property + + + + + Video input or Channel Number (only for those cameras that support) + + + + + Enable/ disable auto white-balance + + + + + White-balance color temperature + + + + + property for highgui class CvCapture_Android only + + + + + readonly, tricky property, returns cpnst char* indeed + + + + + readonly, tricky property, returns cpnst char* indeed + + + + + OpenNI depth generator + + + + + OpenNI image generator + + + + + OpenNI IR generator + + + + + OpenNI map generators + + + + + Properties of cameras available through OpenNI interfaces + + + + + Properties of cameras available through OpenNI interfaces, in mm. + + + + + Properties of cameras available through OpenNI interfaces, in mm. + + + + + Properties of cameras available through OpenNI interfaces, in pixels. + + + + + Flag that synchronizes the remapping depth map to image map + by changing depth generator's view point (if the flag is "on") or + sets this view point to its normal one (if the flag is "off"). + + + + + Flag that synchronizes the remapping depth map to image map + by changing depth generator's view point (if the flag is "on") or + sets this view point to its normal one (if the flag is "off"). + + + + + Approx frame sync + + + + + Max buffer size + + + + + Circle buffer + + + + + Max time duration + + + + + Generator present + + + + + OpenNI2 Sync + + + + + OpenNI2 Mirror + + + + + Openni image generator present + + + + + Image generator output mode + + + + + Depth generator present + + + + + Depth generator baseline, in mm. + + + + + Depth generator focal length, in pixels. + + + + + Openni generator registration + + + + + Openni generator registration on + + + + + Openni IR generator present + + + + + Properties of cameras available through GStreamer interface. Default is 1 + + + + + Ip for enable multicast master mode. 0 for disable multicast + + + + + FrameStartTriggerMode: Determines how a frame is initiated + + + + + Horizontal sub-sampling of the image + + + + + Vertical sub-sampling of the image + + + + + Horizontal binning factor + + + + + Vertical binning factor + + + + + Pixel format + + + + + Change image resolution by binning or skipping. + + + + + Output data format + + + + + Horizontal offset from the origin to the area of interest (in pixels). + + + + + Vertical offset from the origin to the area of interest (in pixels). + + + + + Defines source of trigger. + + + + + Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE. + + + + + Selects general purpose input + + + + + Set general purpose input mode + + + + + Get general purpose level + + + + + Selects general purpose output + + + + + Set general purpose output mode + + + + + Selects camera signaling LED + + + + + Define camera signaling LED functionality + + + + + Calculates White Balance(must be called during acquisition) + + + + + Automatic white balance + + + + + Automatic exposure/gain + + + + + Exposure priority (0.5 - exposure 50%, gain 50%). + + + + + Maximum limit of exposure in AEAG procedure + + + + + Maximum limit of gain in AEAG procedure + + + + + Average intensity of output signal AEAG should achieve(in %) + + + + + Image capture timeout in milliseconds + + + + + Exposure time in microseconds + + + + + Sets the number of times of exposure in one frame. + + + + + Gain selector for parameter Gain allows to select different type of gains. + + + + + Gain in dB + + + + + Change image downsampling type. + + + + + Binning engine selector. + + + + + Vertical Binning - number of vertical photo-sensitive cells to combine together. + + + + + Horizontal Binning - number of horizontal photo-sensitive cells to combine together. + + + + + Binning pattern type. + + + + + Decimation engine selector. + + + + + Vertical Decimation - vertical sub-sampling of the image - reduces the vertical resolution of the image by the specified vertical decimation factor. + + + + + Horizontal Decimation - horizontal sub-sampling of the image - reduces the horizontal resolution of the image by the specified vertical decimation factor. + + + + + Decimation pattern type. + + + + + Selects which test pattern generator is controlled by the TestPattern feature. + + + + + Selects which test pattern type is generated by the selected generator. + + + + + Output data format. + + + + + Change sensor shutter type(CMOS sensor). + + + + + Number of taps + + + + + Automatic exposure/gain ROI offset X + + + + + Automatic exposure/gain ROI offset Y + + + + + Automatic exposure/gain ROI Width + + + + + Automatic exposure/gain ROI Height + + + + + Correction of bad pixels + + + + + White balance red coefficient + + + + + White balance green coefficient + + + + + White balance blue coefficient + + + + + Width of the Image provided by the device (in pixels). + + + + + Height of the Image provided by the device (in pixels). + + + + + Selects Region in Multiple ROI which parameters are set by width, height, ... ,region mode + + + + + Activates/deactivates Region selected by Region Selector + + + + + Set/get bandwidth(datarate)(in Megabits) + + + + + Sensor output data bit depth. + + + + + Device output data bit depth. + + + + + bitdepth of data returned by function xiGetImage + + + + + Device output data packing (or grouping) enabled. Packing could be enabled if output_data_bit_depth > 8 and packing capability is available. + + + + + Data packing type. Some cameras supports only specific packing type. + + + + + Returns 1 for cameras that support cooling. + + + + + Start camera cooling. + + + + + Set sensor target temperature for cooling. + + + + + Camera sensor temperature + + + + + Camera housing temperature + + + + + Camera housing back side temperature + + + + + Camera sensor board temperature + + + + + Mode of color management system. + + + + + Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE). + + + + + Returns 1 for color cameras. + + + + + Returns color filter array type of RAW data. + + + + + Luminosity gamma + + + + + Chromaticity gamma + + + + + Sharpness Strength + + + + + Color Correction Matrix element [0][0] + + + + + Color Correction Matrix element [0][1] + + + + + Color Correction Matrix element [0][2] + + + + + Color Correction Matrix element [0][3] + + + + + Color Correction Matrix element [1][0] + + + + + Color Correction Matrix element [1][1] + + + + + Color Correction Matrix element [1][2] + + + + + Color Correction Matrix element [1][3] + + + + + Color Correction Matrix element [2][0] + + + + + Color Correction Matrix element [2][1] + + + + + Color Correction Matrix element [2][2] + + + + + Color Correction Matrix element [2][3] + + + + + Color Correction Matrix element [3][0] + + + + + Color Correction Matrix element [3][1] + + + + + Color Correction Matrix element [3][2] + + + + + Color Correction Matrix element [3][3] + + + + + Set default Color Correction Matrix + + + + + Selects the type of trigger. + + + + + Sets number of frames acquired by burst. This burst is used only if trigger is set to FrameBurstStart + + + + + Enable/Disable debounce to selected GPI + + + + + Debounce time (x * 10us) + + + + + Debounce time (x * 10us) + + + + + Debounce polarity (pol = 1 t0 - falling edge, t1 - rising edge) + + + + + Status of lens control interface. This shall be set to XI_ON before any Lens operations. + + + + + Current lens aperture value in stops. Examples: 2.8, 4, 5.6, 8, 11 + + + + + Lens current focus movement value to be used by XI_PRM_LENS_FOCUS_MOVE in motor steps. + + + + + Moves lens focus motor by steps set in XI_PRM_LENS_FOCUS_MOVEMENT_VALUE. + + + + + Lens focus distance in cm. + + + + + Lens focal distance in mm. + + + + + Selects the current feature which is accessible by XI_PRM_LENS_FEATURE. + + + + + Allows access to lens feature value currently selected by XI_PRM_LENS_FEATURE_SELECTOR. + + + + + Return device model id + + + + + Return device serial number + + + + + The alpha channel of RGB32 output image format. + + + + + Buffer size in bytes sufficient for output image returned by xiGetImage + + + + + Current format of pixels on transport layer. + + + + + Sensor clock frequency in Hz. + + + + + Sensor clock frequency index. Sensor with selected frequencies have possibility to set the frequency only by this index. + + + + + Number of output channels from sensor used for data transfer. + + + + + Define framerate in Hz + + + + + Select counter + + + + + Counter status + + + + + Type of sensor frames timing. + + + + + Calculate and return available interface bandwidth(int Megabits) + + + + + Data move policy + + + + + Activates LUT. + + + + + Control the index (offset) of the coefficient to access in the LUT. + + + + + Value at entry LUTIndex of the LUT + + + + + Specifies the delay in microseconds (us) to apply after the trigger reception before activating it. + + + + + Defines how time stamp reset engine will be armed + + + + + Defines which source will be used for timestamp reset. Writing this parameter will trigger settings of engine (arming) + + + + + Returns 1 if camera connected and works properly. + + + + + Acquisition buffer size in buffer_size_unit. Default bytes. + + + + + Acquisition buffer size unit in bytes. Default 1. E.g. Value 1024 means that buffer_size is in KiBytes + + + + + Acquisition transport buffer size in bytes + + + + + Queue of field/frame buffers + + + + + Number of buffers to commit to low level + + + + + GetImage returns most recent frame + + + + + Resets the camera to default state. + + + + + Correction of column FPN + + + + + Correction of row FPN + + + + + Current sensor mode. Allows to select sensor mode by one integer. Setting of this parameter affects: image dimensions and downsampling. + + + + + Enable High Dynamic Range feature. + + + + + The number of kneepoints in the PWLR. + + + + + position of first kneepoint(in % of XI_PRM_EXPOSURE) + + + + + position of second kneepoint (in % of XI_PRM_EXPOSURE) + + + + + value of first kneepoint (% of sensor saturation) + + + + + value of second kneepoint (% of sensor saturation) + + + + + Last image black level counts. Can be used for Offline processing to recall it. + + + + + Returns hardware revision number. + + + + + Set debug level + + + + + Automatic bandwidth calculation, + + + + + File number. + + + + + Size of file. + + + + + Size of free camera FFS. + + + + + Size of used camera FFS. + + + + + Setting of key enables file operations on some cameras. + + + + + Selects the current feature which is accessible by XI_PRM_SENSOR_FEATURE_VALUE. + + + + + Allows access to sensor feature value currently selected by XI_PRM_SENSOR_FEATURE_SELECTOR. + + + + + Android flash mode + + + + + Android focus mode + + + + + Android white balance + + + + + Android anti banding + + + + + Android focal length + + + + + Android focus distance near + + + + + Android focus distance optimal + + + + + Android focus distance far + + + + + Android expose lock + + + + + Android white balance lock + + + + + iOS device focus + + + + + iOS device exposure + + + + + iOS device flash + + + + + iOS device white-balance + + + + + iOS device torch + + + + + Smartek Giganetix Ethernet Vision: frame offset X + + + + + Smartek Giganetix Ethernet Vision: frame offset Y + + + + + Smartek Giganetix Ethernet Vision: frame width max + + + + + Smartek Giganetix Ethernet Vision: frame height max + + + + + Smartek Giganetix Ethernet Vision: frame sens width + + + + + Smartek Giganetix Ethernet Vision: frame sens height + + + + + Intelperc Profile Count + + + + + Intelperc Profile Idx + + + + + Intelperc Depth Low Confidence Value + + + + + Intelperc Depth Saturation Value + + + + + Intelperc Depth Confidence Threshold + + + + + Intelperc Depth Focal Length Horz + + + + + Intelperc Depth Focal Length Vert + + + + + Intelperc Depth Generator + + + + + Intelperc Image Generator + + + + + Intelperc Generators Mask + + + + + contour approximation method + + + + + output contours in the Freeman chain code. All other methods output polygons (sequences of vertices). + + + + + translate all the points from the chain code into points; + + + + + compress horizontal, vertical, and diagonal segments, that is, the function leaves only their ending points; + + + + + + + + + + apply one of the flavors of Teh-Chin chain approximation algorithm + + + + + use completely different contour retrieval algorithm via linking of horizontal segments of 1s. Only LIST retrieval mode can be used with this method + + + + + Enumeration used by cvCheckArr + + + + + Checks that every element is neither NaN nor Infinity + + + + + If set, the function checks that every value of array is within [minVal,maxVal) range, otherwise it just checks that every element is neither NaN nor Infinity + + + + + If set, the function does not raises an error if an element is invalid or out of range + + + + + Seamless clone method + + + + + The power of the method is fully expressed when inserting objects with complex outlines into a new background + + + + + The classic method, color-based selection and alpha masking might be time consuming and often leaves an undesirable halo. Seamless cloning, even averaged with the original image, is not effective. Mixed seamless cloning based on a loose selection proves effective. + + + + + Monochrome transfer + + + + + Type used for cvCmp function + + + + + src1(I) "equal to" src2(I) + + + + + src1(I) "greater than" src2(I) + + + + + src1(I) "greater or equal" src2(I) + + + + + src1(I) "less than" src2(I) + + + + + src1(I) "less or equal" src2(I) + + + + + src1(I) "not equal to" src2(I) + + + + + Color Conversion code + + + + + Convert BGR color to BGRA color + + + + + Convert RGB color to RGBA color + + + + + Convert BGRA color to BGR color + + + + + Convert RGBA color to RGB color + + + + + Convert BGR color to RGBA color + + + + + Convert RGB color to BGRA color + + + + + Convert RGBA color to BGR color + + + + + Convert BGRA color to RGB color + + + + + Convert BGR color to RGB color + + + + + Convert RGB color to BGR color + + + + + Convert BGRA color to RGBA color + + + + + Convert RGBA color to BGRA color + + + + + Convert BGR color to GRAY color + + + + + Convert RGB color to GRAY color + + + + + Convert GRAY color to BGR color + + + + + Convert GRAY color to RGB color + + + + + Convert GRAY color to BGRA color + + + + + Convert GRAY color to RGBA color + + + + + Convert BGRA color to GRAY color + + + + + Convert RGBA color to GRAY color + + + + + Convert BGR color to BGR565 color + + + + + Convert RGB color to BGR565 color + + + + + Convert BGR565 color to BGR color + + + + + Convert BGR565 color to RGB color + + + + + Convert BGRA color to BGR565 color + + + + + Convert RGBA color to BGR565 color + + + + + Convert BGR565 color to BGRA color + + + + + Convert BGR565 color to RGBA color + + + + + Convert GRAY color to BGR565 color + + + + + Convert BGR565 color to GRAY color + + + + + Convert BGR color to BGR555 color + + + + + Convert RGB color to BGR555 color + + + + + Convert BGR555 color to BGR color + + + + + Convert BGR555 color to RGB color + + + + + Convert BGRA color to BGR555 color + + + + + Convert RGBA color to BGR555 color + + + + + Convert BGR555 color to BGRA color + + + + + Convert BGR555 color to RGBA color + + + + + Convert GRAY color to BGR555 color + + + + + Convert BGR555 color to GRAY color + + + + + Convert BGR color to XYZ color + + + + + Convert RGB color to XYZ color + + + + + Convert XYZ color to BGR color + + + + + Convert XYZ color to RGB color + + + + + Convert BGR color to YCrCb color + + + + + Convert RGB color to YCrCb color + + + + + Convert YCrCb color to BGR color + + + + + Convert YCrCb color to RGB color + + + + + Convert BGR color to HSV color + + + + + Convert RGB colot to HSV color + + + + + Convert BGR color to Lab color + + + + + Convert RGB color to Lab color + + + + + Convert BayerBG color to BGR color + + + + + Convert BayerGB color to BGR color + + + + + Convert BayerRG color to BGR color + + + + + Convert BayerGR color to BGR color + + + + + Convert BayerBG color to BGR color + + + + + Convert BayerRG color to BGR color + + + + + Convert BayerRG color to RGB color + + + + + Convert BayerGR color to RGB color + + + + + Convert BGR color to Luv color + + + + + Convert RGB color to Luv color + + + + + Convert BGR color to HLS color + + + + + Convert RGB color to HLS color + + + + + Convert HSV color to BGR color + + + + + Convert HSV color to RGB color + + + + + Convert Lab color to BGR color + + + + + Convert Lab color to RGB color + + + + + Convert Luv color to BGR color + + + + + Convert Luv color to RGB color + + + + + Convert HLS color to BGR color + + + + + Convert HLS color to RGB color + + + + + Convert BayerBG pattern to BGR color using VNG + + + + + Convert BayerGB pattern to BGR color using VNG + + + + + Convert BayerRG pattern to BGR color using VNG + + + + + Convert BayerGR pattern to BGR color using VNG + + + + + Convert BayerBG pattern to RGB color using VNG + + + + + Convert BayerGB pattern to RGB color using VNG + + + + + Convert BayerRG pattern to RGB color using VNG + + + + + Convert BayerGR pattern to RGB color using VNG + + + + + Convert BGR to HSV + + + + + Convert RGB to HSV + + + + + Convert BGR to HLS + + + + + Convert RGB to HLS + + + + + Convert HSV color to BGR color + + + + + Convert HSV color to RGB color + + + + + Convert HLS color to BGR color + + + + + Convert HLS color to RGB color + + + + + Convert sBGR color to Lab color + + + + + Convert sRGB color to Lab color + + + + + Convert sBGR color to Luv color + + + + + Convert sRGB color to Luv color + + + + + Convert Lab color to sBGR color + + + + + Convert Lab color to sRGB color + + + + + Convert Luv color to sBGR color + + + + + Convert Luv color to sRGB color + + + + + Convert BGR color to YUV + + + + + Convert RGB color to YUV + + + + + Convert YUV color to BGR + + + + + Convert YUV color to RGB + + + + + Convert BayerBG to GRAY + + + + + Convert BayerGB to GRAY + + + + + Convert BayerRG to GRAY + + + + + Convert BayerGR to GRAY + + + + + Convert YUV420i to RGB + + + + + Convert YUV420i to BGR + + + + + Convert YUV420sp to RGB + + + + + Convert YUV320sp to BGR + + + + + Convert YUV320i to RGBA + + + + + Convert YUV420i to BGRA + + + + + Convert YUV420sp to RGBA + + + + + Convert YUV420sp to BGRA + + + + + Convert YUV (YV12) to RGB + + + + + Convert YUV (YV12) to BGR + + + + + Convert YUV (iYUV) to RGB + + + + + Convert YUV (iYUV) to BGR + + + + + Convert YUV (i420) to RGB + + + + + Convert YUV (i420) to BGR + + + + + Convert YUV (420p) to RGB + + + + + Convert YUV (420p) to BGR + + + + + Convert YUV (YV12) to RGBA + + + + + Convert YUV (YV12) to BGRA + + + + + Convert YUV (iYUV) to RGBA + + + + + Convert YUV (iYUV) to BGRA + + + + + Convert YUV (i420) to RGBA + + + + + Convert YUV (i420) to BGRA + + + + + Convert YUV (420p) to RGBA + + + + + Convert YUV (420p) to BGRA + + + + + Convert YUV 420 to Gray + + + + + Convert YUV NV21 to Gray + + + + + Convert YUV NV12 to Gray + + + + + Convert YUV YV12 to Gray + + + + + Convert YUV (iYUV) to Gray + + + + + Convert YUV (i420) to Gray + + + + + Convert YUV (420sp) to Gray + + + + + Convert YUV (420p) to Gray + + + + + Convert YUV (UYVY) to RGB + + + + + Convert YUV (UYVY) to BGR + + + + + Convert YUV (Y422) to RGB + + + + + Convert YUV (Y422) to BGR + + + + + Convert YUV (UYNY) to RGB + + + + + Convert YUV (UYNV) to BGR + + + + + Convert YUV (UYVY) to RGBA + + + + + Convert YUV (VYUY) to BGRA + + + + + Convert YUV (Y422) to RGBA + + + + + Convert YUV (Y422) to BGRA + + + + + Convert YUV (UYNV) to RGBA + + + + + Convert YUV (UYNV) to BGRA + + + + + Convert YUV (YUY2) to RGB + + + + + Convert YUV (YUY2) to BGR + + + + + Convert YUV (YVYU) to RGB + + + + + Convert YUV (YVYU) to BGR + + + + + Convert YUV (YUYV) to RGB + + + + + Convert YUV (YUYV) to BGR + + + + + Convert YUV (YUNV) to RGB + + + + + Convert YUV (YUNV) to BGR + + + + + Convert YUV (YUY2) to RGBA + + + + + Convert YUV (YUY2) to BGRA + + + + + Convert YUV (YVYU) to RGBA + + + + + Convert YUV (YVYU) to BGRA + + + + + Convert YUV (YUYV) to RGBA + + + + + Convert YUV (YUYV) to BGRA + + + + + Convert YUV (YUNV) to RGBA + + + + + Convert YUV (YUNV) to BGRA + + + + + Convert YUV (UYVY) to Gray + + + + + Convert YUV (YUY2) to Gray + + + + + Convert YUV (Y422) to Gray + + + + + Convert YUV (UYNV) to Gray + + + + + Convert YUV (YVYU) to Gray + + + + + Convert YUV (YUYV) to Gray + + + + + Convert YUV (YUNV) to Gray + + + + + Alpha premultiplication + + + + + Alpha premultiplication + + + + + Convert RGB to YUV_I420 + + + + + Convert BGR to YUV_I420 + + + + + Convert RGB to YUV_IYUV + + + + + Convert BGR to YUV_IYUV + + + + + Convert RGBA to YUV_I420 + + + + + Convert BGRA to YUV_I420 + + + + + Convert RGBA to YUV_IYUV + + + + + Convert BGRA to YUV_IYUV + + + + + Convert RGB to YUV_YV12 + + + + + Convert BGR to YUV_YV12 + + + + + Convert RGBA to YUV_YV12 + + + + + Convert BGRA to YUV_YV12 + + + + + Convert BayerBG to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerGB to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerRG to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerGR to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerBG to RGB (Edge-Aware Demosaicing) + + + + + Convert BayerGB to RGB (Edge-Aware Demosaicing) + + + + + Convert BayerRG to RGB (Edge-Aware Demosaicing) + + + + + Convert BayerGR to RGB (Edge-Aware Demosaicing) + + + + + The max number, do not use + + + + + The type of color map + + + + + Autumn + + + + + Bone + + + + + Jet + + + + + Winter + + + + + Rainbow + + + + + Ocean + + + + + Summer + + + + + Spring + + + + + Cool + + + + + Hsv + + + + + Pink + + + + + Hot + + + + + Parula + + + + + Magma + + + + + Inferno + + + + + Plasma + + + + + Viridis + + + + + Cividis + + + + + Twilight + + + + + TwilightShifted + + + + + Connected components algorithm output formats + + + + + The leftmost (x) coordinate which is the inclusive start of the bounding box in the horizontal direction. + + + + + The topmost (y) coordinate which is the inclusive start of the bounding box in the vertical direction. + + + + + The horizontal size of the bounding box. + + + + + The vertical size of the bounding box. + + + + + The total area (in pixels) of the connected component. + + + + + Max + + + + + The type for cvSampleLine + + + + + 8-connected + + + + + 4-connected + + + + + Type used by cvMatchShapes + + + + + I_1(A,B)=sum_{i=1..7} abs(1/m^A_i - 1/m^B_i) where m^A_i=sign(h^A_i) log(h^A_i), m^B_i=sign(h^B_i) log(h^B_i), h^A_i, h^B_i - Hu moments of A and B, respectively + + + + + I_2(A,B)=sum_{i=1..7} abs(m^A_i - m^B_i) where m^A_i=sign(h^A_i) log(h^A_i), m^B_i=sign(h^B_i) log(h^B_i), h^A_i, h^B_i - Hu moments of A and B, respectively + + + + + I_3(A,B)=sum_{i=1..7} abs(m^A_i - m^B_i)/abs(m^A_i) where m^A_i=sign(h^A_i) log(h^A_i), m^B_i=sign(h^B_i) log(h^B_i), h^A_i, h^B_i - Hu moments of A and B, respectively + + + + + cvCalcCovarMatrix method types + + + + + Calculates covariation matrix for a set of vectors + transpose([v1-avg, v2-avg,...]) * [v1-avg,v2-avg,...] + + + + + [v1-avg, v2-avg,...] * transpose([v1-avg,v2-avg,...]) + + + + + Do not calc average (i.e. mean vector) - use the input vector instead + (useful for calculating covariance matrix by parts) + + + + + Scale the covariance matrix coefficients by number of the vectors + + + + + All the input vectors are stored in a single matrix, as its rows + + + + + All the input vectors are stored in a single matrix, as its columns + + + + + Flag used for cvDCT + + + + + Do forward 1D or 2D transform. The result is not scaled + + + + + Do inverse 1D or 2D transform. The result is not scaled. CV_DXT_FORWARD and CV_DXT_INVERSE are mutually exclusive, of course + + + + + Do forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc + + + + + cvInvert method + + + + + Gaussian elimination with optimal pivot element chose + In case of LU method the function returns src1 determinant (src1 must be square). If it is 0, the matrix is not inverted and src2 is filled with zeros. + + + + + Singular value decomposition (SVD) method + In case of SVD methods the function returns the inversed condition number of src1 (ratio of the smallest singular value to the largest singular value) and 0 if src1 is all zeros. The SVD methods calculate a pseudo-inverse matrix if src1 is singular + + + + + Eig + + + + + method for a symmetric positively-defined matrix + + + + + QR decomposition + + + + + Normal + + + + + OpenCV depth type + + + + + Default + + + + + Byte + + + + + SByte + + + + + UInt16 + + + + + Int16 + + + + + Int32 + + + + + float + + + + + double + + + + + Distance transform algorithm flags + + + + + Connected component + + + + + The pixel + + + + + Defines for Distance Transform + + + + + User defined distance + + + + + distance = |x1-x2| + |y1-y2| + + + + + Simple euclidean distance + + + + + distance = max(|x1-x2|,|y1-y2|) + + + + + L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) + + + + + distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 + + + + + distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 + + + + + distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345 + + + + + Flag used for cvDFT + + + + + Do forward 1D or 2D transform. The result is not scaled + + + + + Do inverse 1D or 2D transform. The result is not scaled. CV_DXT_FORWARD and CV_DXT_INVERSE are mutually exclusive, of course + + + + + Scale the result: divide it by the number of array elements. Usually, it is combined with CV_DXT_INVERSE, and one may use a shortcut + + + + + Do forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc + + + + + Inverse and scale + + + + + Edge preserving filter flag + + + + + Recurs filter + + + + + Norm conv filter + + + + + IO type for eigen object related functions + + + + + No callback + + + + + Input callback + + + + + Output callback + + + + + Both callback + + + + + Shape of the Structuring Element + + + + + A rectangular element. + + + + + A cross-shaped element. + + + + + An elliptic element. + + + + + A user-defined element. + + + + + Error codes + + + + + Ok + + + + + Back trace + + + + + Error + + + + + Internal + + + + + No memory + + + + + Bad argument + + + + + Bad function + + + + + No Conv + + + + + Auto trace + + + + + Header is Null + + + + + Bad image size + + + + + Bad Offset + + + + + Bad Data pointer + + + + + Bad step + + + + + Bad model or chseq + + + + + Bad number of channels + + + + + Bad number of channels 1U + + + + + Bad depth + + + + + Bad Alpha channel + + + + + Bad Order + + + + + Bad origin + + + + + Bad Align + + + + + Bad callback + + + + + Bad tile size + + + + + Bad COI + + + + + Bad ROI size + + + + + Mask is tiled + + + + + Null Pointer + + + + + Vec length error + + + + + Filter Structure Content Error + + + + + Kernel Structure Content Error + + + + + Filter Offset Error + + + + + Bad Size + + + + + Division by zero + + + + + Inplace not supported + + + + + Object Not Found + + + + + Unmatched formats + + + + + Bad flag + + + + + Bad point + + + + + Bad mask + + + + + Unmatched sizes + + + + + Unsupported format + + + + + Out of range + + + + + Parse Error + + + + + Not Implemented + + + + + Bad memory block + + + + + Enumeration used by cvFlip + + + + + No flipping + + + + + Flip horizontally + + + + + Flip vertically + + + + + Type of floodfill operation + + + + + The default type + + + + + If set the difference between the current pixel and seed pixel is considered, + otherwise difference between neighbor pixels is considered (the range is floating). + + + + + If set, the function does not fill the image (new_val is ignored), + but the fills mask (that must be non-NULL in this case). + + + + + Calculates fundamental matrix given a set of corresponding points + + + + + for 7-point algorithm. N == 7 + + + + + for 8-point algorithm. N >= 8 + + + + + for LMedS algorithm. N >= 8 + + + + + for RANSAC algorithm. N >= 8 + + + + + CV_FM_LMEDS_ONLY | CV_FM_8POINT + + + + + CV_FM_RANSAC_ONLY | CV_FM_8POINT + + + + + Fonts + + + + + Hershey simplex + + + + + Hershey plain + + + + + Hershey duplex + + + + + Hershey complex + + + + + Hershey triplex + + + + + Hershey complex small + + + + + Hershey script simplex + + + + + Hershey script complex + + + + + Flags used for GEMM function + + + + + Do not apply transpose to neither matrices + + + + + transpose src1 + + + + + transpose src2 + + + + + transpose src3 + + + + + General enumeration + + + + + Max dim + + + + + Seq magic val + + + + + Set magic val + + + + + Grabcut initialization type + + + + + Initialize with rectangle + + + + + Initialize with mask + + + + + Eval + + + + + The types for haar detection + + + + + The default type where no optimization is done. + + + + + If it is set, the function uses Canny edge detector to reject some image regions that contain too few or too much edges and thus can not contain the searched object. The particular threshold values are tuned for face detection and in this case the pruning speeds up the processing + + + + + For each scale factor used the function will downscale the image rather than "zoom" the feature coordinates in the classifier cascade. Currently, the option can only be used alone, i.e. the flag can not be set together with the others + + + + + If it is set, the function finds the largest object (if any) in the image. That is, the output sequence will contain one (or zero) element(s) + + + + + It should be used only when CV_HAAR_FIND_BIGGEST_OBJECT is set and min_neighbors > 0. If the flag is set, the function does not look for candidates of a smaller size as soon as it has found the object (with enough neighbor candidates) at the current scale. Typically, when min_neighbors is fixed, the mode yields less accurate (a bit larger) object rectangle than the regular single-object mode (flags=CV_HAAR_FIND_BIGGEST_OBJECT), but it is much faster, up to an order of magnitude. A greater value of min_neighbors may be specified to improve the accuracy + + + + + HandEyeCalibration Method + + + + + A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibration + + + + + Robot Sensor Calibration: Solving AX = XB on the Euclidean Group + + + + + Hand-eye Calibration + + + + + On-line Hand-Eye Calibration + + + + + Hand-Eye Calibration Using Dual Quaternions + + + + + Histogram comparison method + + + + + Correlation + + + + + Chi-Square + + + + + Intersection + + + + + Bhattacharyya distance + + + + + Synonym for Bhattacharyya + + + + + Alternative Chi-Square + + + + + Hough detection type + + + + + Gradient + + + + + cvLoadImage type + + + + + If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). + + + + + If set, always convert image to the single channel grayscale image. + + + + + If set, always convert image to the 3 channel BGR color image. + + + + + If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit. + + + + + If set, the image is read in any possible color format. + + + + + If set, use the gdal driver for loading the image. + + + + + If set, always convert image to the single channel grayscale image and the image size reduced 1/2. + + + + + If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2. + + + + + If set, always convert image to the single channel grayscale image and the image size reduced 1/4. + + + + + If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4. + + + + + If set, always convert image to the single channel grayscale image and the image size reduced 1/8. + + + + + If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8. + + + + + Flags for Imwrite function + + + + + For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95. + + + + + Enable JPEG features, 0 or 1, default is False. + + + + + Enable JPEG features, 0 or 1, default is False. + + + + + JPEG restart interval, 0 - 65535, default is 0 - no restart. + + + + + Separate luma quality level, 0 - 100, default is 0 - don't use. + + + + + Separate chroma quality level, 0 - 100, default is 0 - don't use. + + + + + For PNG, it can be the compression level from 0 to 9. A higher value means a smaller size and longer compression time. Default value is 3. + + + + + One of cv::ImwritePNGFlags, default is IMWRITE_PNG_STRATEGY_DEFAULT. + + + + + Binary level PNG, 0 or 1, default is 0. + + + + + For PPM, PGM, or PBM, it can be a binary format flag, 0 or 1. Default value is 1. + + + + + For WEBP, it can be a quality from 1 to 100 (the higher is the better). By default (without any parameter) and for quality above 100 the lossless compression is used. + + + + + Inpaint type + + + + + Navier-Stokes based method. + + + + + The method by Alexandru Telea + + + + + Interpolation types + + + + + Nearest-neighbor interpolation + + + + + Bilinear interpolation + + + + + Resampling using pixel area relation. It is the preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method + + + + + Bicubic interpolation + + + + + Lanczos interpolation over 8x8 neighborhood + + + + + Bit exact bilinear interpolation + + + + + IPL_DEPTH + + + + + Indicates if the value is signed + + + + + 1bit unsigned + + + + + 8bit unsigned (Byte) + + + + + 16bit unsigned + + + + + 32bit float (Single) + + + + + 8bit signed + + + + + 16bit signed + + + + + 32bit signed + + + + + double + + + + + KMeans initialization type + + + + + Chooses random centers for k-Means initialization + + + + + Uses the user-provided labels for K-Means initialization + + + + + Uses k-Means++ algorithm for initialization + + + + + The type of line for drawing + + + + + Filled + + + + + 8-connected + + + + + 4-connected + + + + + Anti-alias + + + + + Type for cvCalcOpticalFlowPyrLK + + + + + The default type + + + + + Uses initial estimations, stored in nextPts; if the flag is not set, then prevPts is copied to nextPts and is considered the initial estimate. + + + + + use minimum eigen values as an error measure (see minEigThreshold description); if the flag is not set, then L1 distance between patches around the original and a moved point, divided by number of pixels in a window, is used as a error measure. + + + + + Morphology operation type + + + + + Erode + + + + + Dilate + + + + + Open + + + + + Close + + + + + Gradient + + + + + Top hat + + + + + Black hat + + + + + Hit or miss. Only supported for CV_8UC1 binary images. + + + + + Motion type for the FindTransformECC function + + + + + Sets a translational motion model; warpMatrix is 2x3 with the first 2x2 part being the unity matrix and the rest two parameters being estimated. + + + + + Sets a Euclidean (rigid) transformation as motion model; three parameters are estimated; warpMatrix is 2x3. + + + + + Sets an affine motion model (DEFAULT); six parameters are estimated; warpMatrix is 2x3. + + + + + Sets a homography as a motion model; eight parameters are estimated; warpMatrix is 3x3. + + + + + The types for MulSpectrums + + + + + The default type + + + + + Do forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc + + + + + Conjugate the second argument of cvMulSpectrums + + + + + The named window type + + + + + The user can resize the window (no constraint) / also use to switch a fullscreen window to a normal size + + + + + The user cannot resize the window, the size is constrainted by the image displayed + + + + + Window with opengl support + + + + + Change the window to fullscreen + + + + + The image expends as much as it can (no ratio constraint) + + + + + the ratio of the image is respected + + + + + Type for Norm + + + + + if arr2 is NULL, norm = ||arr1||_C = max_I abs(arr1(I)); + if arr2 is not NULL, norm = ||arr1-arr2||_C = max_I abs(arr1(I)-arr2(I)) + + + + + if arr2 is NULL, norm = ||arr1||_L1 = sum_I abs(arr1(I)); + if arr2 is not NULL, norm = ||arr1-arr2||_L1 = sum_I abs(arr1(I)-arr2(I)) + + + + + if arr2 is NULL, norm = ||arr1||_L2 = sqrt( sum_I arr1(I)^2); + if arr2 is not NULL, norm = ||arr1-arr2||_L2 = sqrt( sum_I (arr1(I)-arr2(I))^2 ) + + + + + Norm mask + + + + + It is used in combination with either CV_C, CV_L1 or CV_L2 + + + + + It is used in combination with either CV_C, CV_L1 or CV_L2 + + + + + Min Max + + + + + Diff C + + + + + Diff L1 + + + + + Diff L2 + + + + + norm = ||arr1-arr2||_C/||arr2||_C + + + + + norm = ||arr1-arr2||_L1/||arr2||_L1 + + + + + norm = ||arr1-arr2||_L2/||arr2||_L2 + + + + + The available flags for Farneback optical flow computation + + + + + Default + + + + + Use the input flow as the initial flow approximation + + + + + Use a Gaussian winsize x winsizefilter instead of box + filter of the same size for optical flow estimation. Usually, this option gives more accurate + flow than with a box filter, at the cost of lower speed (and normally winsize for a + Gaussian window should be set to a larger value to achieve the same level of robustness) + + + + + Orientation + + + + + Clockwise + + + + + Counter clockwise + + + + + PCA Type + + + + + the vectors are stored as rows (i.e. all the components of a certain vector are stored continously) + + + + + the vectors are stored as columns (i.e. values of a certain vector component are stored continuously) + + + + + use pre-computed average vector + + + + + Rectangle intersect type + + + + + No intersection + + + + + There is a partial intersection + + + + + One of the rectangle is fully enclosed in the other + + + + + Type used for Reduce function + + + + + The matrix is reduced to a single row + + + + + The matrix is reduced to a single column + + + + + The dimension is chosen automatically by analysing the dst size + + + + + Type used for Reduce function + + + + + The output is the sum of all the matrix rows/columns + + + + + The output is the mean vector of all the matrix rows/columns + + + + + The output is the maximum (column/row-wise) of all the matrix rows/columns + + + + + The output is the minimum (column/row-wise) of all the matrix rows/columns + + + + + Contour retrieval mode + + + + + Retrieve only the extreme outer contours + + + + + Retrieve all the contours and puts them in the list + + + + + Retrieve all the contours and organizes them into two-level hierarchy: top level are external boundaries of the components, second level are bounda boundaries of the holes + + + + + Retrieve all the contours and reconstructs the full hierarchy of nested contours + + + + + Type of Robust Estimation Algorithm + + + + + regular method using all the point pairs + + + + + Least-Median robust method + + + + + RANSAC-based robust method + + + + + RHO algorithm + + + + + The rotation type + + + + + Rotate 90 degrees clockwise + + + + + Rotate 180 degrees clockwise + + + + + Rotate 270 degrees clockwise + + + + + Sequence constants + + + + + The bit to shift for SEQ_ELTYPE + + + + + The mask of CV_SEQ_ELTYPE + + + + + The bits to shift for SEQ_KIND + + + + + The bits to shift for SEQ_FLAG + + + + + Sequence element type + + + + + (x,y) + + + + + freeman code: 0..7 + + + + + unspecified type of sequence elements + + + + + =6 + + + + + pointer to element of other sequence + + + + + index of element of some other sequence + + + + + next_o, next_d, vtx_o, vtx_d + + + + + first_edge, (x,y) + + + + + vertex of the binary tree + + + + + connected component + + + + + (x,y,z) + + + + + Sequence flag + + + + + Close sequence + + + + + Simple sequence + + + + + Convex sequence + + + + + Hole + + + + + The kind of sequence available + + + + + Generic (unspecified) kind of sequence + + + + + Dense sequence subtypes + + + + + Dense sequence subtypes + + + + + Sparse sequence (or set) subtypes + + + + + Sparse sequence (or set) subtypes + + + + + Sequence type for point sets + + + + + Point set + + + + + Point 3D set + + + + + Polyline + + + + + Polygon + + + + + Simple Polygon + + + + + Interpolation type + + + + + (simple blur with no scaling) - summation over a pixel param1 x param2 neighborhood. If the neighborhood size may vary, one may precompute integral image with cvIntegral function + + + + + (simple blur) - summation over a pixel param1 x param2 neighborhood with subsequent scaling by 1/(param1 x param2). + + + + + (Gaussian blur) - convolving image with param1 x param2 Gaussian kernel. + + + + + (median blur) - finding median of param1 x param1 neighborhood (i.e. the neighborhood is square). + + + + + (bilateral filter) - applying bilateral 3x3 filtering with color sigma=param1 and space sigma=param2. Information about bilateral filtering can be found + + + + + The return value for solveLP function + + + + + Problem is unbounded (target function can achieve arbitrary high values) + + + + + Problem is unfeasible (there are no points that satisfy all the constraints imposed) + + + + + There is only one maximum for target function + + + + + there are multiple maxima for target function - the arbitrary one is returned + + + + + Method for solving a PnP problem + + + + + Iterative + + + + + EPnP: Efficient Perspective-n-Point Camera Pose Estimation + F.Moreno-Noguer, V.Lepetit and P.Fua "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" + + + + + Complete Solution Classification for the Perspective-Three-Point Problem + X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang; "Complete Solution Classification for the Perspective-Three-Point Problem" + + + + + A Direct Least-Squares (DLS) Method for PnP + + + + + Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation + + + + + An Efficient Algebraic Solution to the Perspective-Three-Point Problem + + + + + Infinitesimal Plane-Based Pose Estimation. Object points must be coplanar. + + + + + Infinitesimal Plane-Based Pose Estimation. This is a special case suitable for marker pose estimation. + 4 coplanar object points must be defined in the following order: + - point 0: [-squareLength / 2, squareLength / 2, 0] + - point 1: [ squareLength / 2, squareLength / 2, 0] + - point 2: [ squareLength / 2, -squareLength / 2, 0] + - point 3: [-squareLength / 2, -squareLength / 2, 0] + + + + + Flags for sorting + + + + + Each matrix row is sorted independently + + + + + Each matrix column is sorted + independently; this flag and SortEveryRow are + mutually exclusive. + + + + + Each matrix row is sorted in the ascending order. + + + + + Each matrix row is sorted in the + descending order; this flag and SortAscending are also + mutually exclusive. + + + + + Stereo Block Matching Prefilter type + + + + + No prefilter + + + + + XSobel + + + + + Type used in cvStereoRectify + + + + + Shift one of the image in horizontal or vertical direction (depending on the orientation of epipolar lines) in order to maximise the useful image area + + + + + Makes the principal points of each camera have the same pixel coordinates in the rectified views + + + + + The file storage operation type + + + + + The storage is open for reading + + + + + The storage is open for writing + + + + + The storage is open for append + + + + + The result type of cvSubdiv2DLocate. + + + + + One of input arguments is invalid. + + + + + Point is outside the subdivision reference rectangle + + + + + Point falls into some facet + + + + + Point coincides with one of subdivision vertices + + + + + Point falls onto the edge + + + + + Type for cvSVD + + + + + The default type + + + + + Enables modification of matrix src1 during the operation. It speeds up the processing. + + + + + indicates that only a vector of singular values 'w' is to be processed, while u and vt will be set to empty matrices + + + + + when the matrix is not square, by default the algorithm produces u and vt matrices of + sufficiently large size for the further A reconstruction; if, however, FULL_UV flag is + specified, u and vt will be full-size square orthogonal matrices. + + + + + Methods for comparing two array + + + + + R(x,y)=sumx',y'[T(x',y')-I(x+x',y+y')]2 + + + + + R(x,y)=sumx',y'[T(x',y')-I(x+x',y+y')]2/sqrt[sumx',y'T(x',y')2 sumx',y'I(x+x',y+y')2] + + + + + R(x,y)=sumx',y'[T(x',y') I(x+x',y+y')] + + + + + R(x,y)=sumx',y'[T(x',y') I(x+x',y+y')]/sqrt[sumx',y'T(x',y')2 sumx',y'I(x+x',y+y')2] + + + + + R(x,y)=sumx',y'[T'(x',y') I'(x+x',y+y')], + where T'(x',y')=T(x',y') - 1/(wxh) sumx",y"T(x",y") + I'(x+x',y+y')=I(x+x',y+y') - 1/(wxh) sumx",y"I(x+x",y+y") + + + + + R(x,y)=sumx',y'[T'(x',y') I'(x+x',y+y')]/sqrt[sumx',y'T'(x',y')2 sumx',y'I'(x+x',y+y')2] + + + + + CV TERMCRIT type + + + + + Iteration + + + + + Epsilon + + + + + Types of thresholding + + + + + value = value > threshold ? max_value : 0 + + + + + value = value > threshold ? 0 : max_value + + + + + value = value > threshold ? threshold : value + + + + + value = value > threshold ? value : 0 + + + + + value = value > threshold ? 0 : value + + + + + Mask + + + + + use Otsu algorithm to choose the optimal threshold value; + combine the flag with one of the above CV_THRESH_* values + + + + + Use Triangle algorithm to choose the optimal threshold value + + + + + Types for WarpAffine + + + + + Neither FILL_OUTLIERS nor CV_WRAP_INVERSE_MAP + + + + + Fill all the destination image pixels. If some of them correspond to outliers in the source image, they are set to fillval. + + + + + Indicates that matrix is inverse transform from destination image to source and, thus, can be used directly for pixel interpolation. Otherwise, the function finds the inverse transform from map_matrix. + + + + + A deformable parts model detector + + + + + Create a new dpm detector with the specified files and classes + + A set of file names storing the trained detectors (models). Each file contains one model. + A set of trained models names. If it's empty then the name of each model will be constructed from the name of file containing the model. E.g. the model stored in "/home/user/cat.xml" will get the name "cat". + + + + Return true if the detector is empty + + + + + Get the class names + + + + + get the number of classes + + + + + Perform detection on the image + + The image for detection. + The detection result + + + + Dispose the unmanaged memory associated with this DPM + + + + + Provide interfaces to the Open CV DPM functions + + + + + A DPM detection + + + + + rectangle + + + + + detection score + + + + + class of the detection + + + + + create a detection + + The rectangle + The score + The class id + + + + Provide interfaces to the Open CV Saliency functions + + + + + Compute the saliency. + + The Saliency object + The image. + The computed saliency map. + true if the saliency map is computed, false otherwise + + + + Perform a binary map of given saliency map + + the saliency map obtained through one of the specialized algorithms + the binary map + The StatucSaliency object + True if the binary map is sucessfully computed + + + + A Fast Self-tuning Background Subtraction Algorithm. + + This background subtraction algorithm is inspired to the work of B. Wang and P. Dudek [2] [2] B. Wang and P. Dudek "A Fast Self-tuning Background Subtraction Algorithm", in proc of IEEE Workshop on Change Detection, 2014 + + + + Image width + + + + + Image height + + + + + This function allows the correct initialization of all data structures that will be used by the algorithm. + + The result + + + + constructor + + + + + Pointer to the unmanaged MotionSaliency object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + Objectness algorithms based on [3] [3] Cheng, Ming-Ming, et al. "BING: Binarized normed gradients for objectness estimation at 300fps." IEEE CVPR. 2014 + + + + + W + + + + + NSS + + + + + constructor + + + + + Pointer to the unmanaged Objectness object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + Return the list of the rectangles' objectness value. + + The list of the rectangles' objectness value. + + + + set the correct path from which the algorithm will load the trained model. + + The training path + + + + Base interface for Saliency algorithms + + + + + Pointer to the unmanaged Saliency object + + + + + Base interface for StaticSaliency algorithms + + + + + Pointer to the unmanaged StaticSaliency object + + + + + Base interface for MotionSaliency algorithms + + + + + Pointer to the unmanaged MotionSaliency object + + + + + Base interface for Objectness algorithms + + + + + Pointer to the unmanaged Objectness object + + + + + simulate the behavior of pre-attentive visual search + + + + + constructor + + + + + Pointer to the unmanaged StaticSaliency object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + The Fine Grained Saliency approach from + Sebastian Montabone and Alvaro Soto. Human detection using a mobile platform and novel features derived from a visual saliency mechanism. In Image and Vision Computing, Vol. 28 Issue 3, pages 391–402. Elsevier, 2010. + + This method calculates saliency based on center-surround differences. High resolution saliency maps are generated in real time by using integral images. + + + + constructor + + + + + Pointer to the unmanaged StaticSaliency object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + Class implementing BoostDesc (Learning Image Descriptors with Boosting). + + + See: + V. Lepetit T. Trzcinski, M. Christoudias and P. Fua. Boosting Binary Keypoint Descriptors. In Computer Vision and Pattern Recognition, 2013. + M. Christoudias T. Trzcinski and V. Lepetit. Learning Image Descriptors with Boosting. submitted to IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2013. + + + + + The type of descriptor + + + + + BGM is the base descriptor where each binary dimension is computed as the output of a single weak learner. + + + + + BGM_HARD refers to same BGM but use different type of gradient binning. In the BGM_HARD that use ASSIGN_HARD binning type the gradient is assigned to the nearest orientation bin. + + + + + BGM_BILINEAR refers to same BGM but use different type of gradient binning. In the BGM_BILINEAR that use ASSIGN_BILINEAR binning type the gradient is assigned to the two neighbouring bins. + + + + + LBGM (alias FP-Boost) is the floating point extension where each dimension is computed as a linear combination of the weak learner responses. + + + + + BINBOOST and subvariants are the binary extensions of LBGM where each bit is computed as a thresholded linear combination of a set of weak learners. + + + + + BINBOOST and subvariants are the binary extensions of LBGM where each bit is computed as a thresholded linear combination of a set of weak learners. + + + + + BINBOOST and subvariants are the binary extensions of LBGM where each bit is computed as a thresholded linear combination of a set of weak learners. + + + + + Create an instance of Boost Descriptor + + type of descriptor to use + sample patterns using keypoints orientation + adjust the sampling window of detected keypoints 6.25f is default and fits for KAZE, SURF detected keypoints window ratio 6.75f should be the scale for SIFT detected keypoints window ratio 5.00f should be the scale for AKAZE, MSD, AGAST, FAST, BRISK keypoints window ratio 0.75f should be the scale for ORB keypoints ratio 1.50f was the default in original implementation + + + + Release all the unmanaged resource associated with BRIEF + + + + + This class wraps the functional calls to the OpenCV XFeatures2D modules + + + + + GMS (Grid-based Motion Statistics) feature matching strategy + + Input size of image1. + Input size of image2. + Input keypoints of image1. + Input keypoints of image2. + Input 1-nearest neighbor matches. + Matches returned by the GMS matching strategy. + Take rotation transformation into account. + Take scale transformation into account. + The higher, the less matches. + + + + BRIEF Descriptor + + + + + Create a BRIEF descriptor extractor. + + The size of descriptor. It can be equal 16, 32 or 64 bytes. + + + + Release all the unmanaged resource associated with BRIEF + + + + + Daisy descriptor. + + + + + Create DAISY descriptor extractor + + Radius of the descriptor at the initial scale. + Amount of radial range division quantity. + Amount of angular range division quantity. + Amount of gradient orientations range division quantity. + Descriptors normalization type. + optional 3x3 homography matrix used to warp the grid of daisy but sampling keypoints remains unwarped on image + Switch to disable interpolation for speed improvement at minor quality loss + Sample patterns using keypoints orientation, disabled by default. + + + + Normalization type + + + + + Will not do any normalization (default) + + + + + Histograms are normalized independently for L2 norm equal to 1.0 + + + + + Descriptors are normalized for L2 norm equal to 1.0 + + + + + Descriptors are normalized for L2 norm equal to 1.0 but no individual one is bigger than 0.154 as in SIFT + + + + + Release all the unmanaged resource associated with BRIEF + + + + + The FREAK (Fast Retina Keypoint) keypoint descriptor: + Alahi, R. Ortiz, and P. Vandergheynst. FREAK: Fast Retina Keypoint. In IEEE Conference on Computer + Vision and Pattern Recognition, 2012. CVPR 2012 Open Source Award Winner. + The algorithm + propose a novel keypoint descriptor inspired by the human visual system and more precisely the retina, coined Fast + Retina Key- point (FREAK). A cascade of binary strings is computed by efficiently comparing image intensities over a + retinal sampling pattern. FREAKs are in general faster to compute with lower memory load and also more robust than + SIFT, SURF or BRISK. They are competitive alternatives to existing keypoints in particular for embedded applications. + + + + + Create a Freak descriptor extractor. + + Enable orientation normalization + Enable scale normalization + Scaling of the description pattern + Number of octaves covered by the detected keypoints. + + + + Release all the unmanaged resource associated with FREAK + + + + + Class implementing the Harris-Laplace feature detector + + + + + Create a HarrisLaplaceFeatureDetector + + the number of octaves in the scale-space pyramid + the threshold for the Harris cornerness measure + the threshold for the Difference-of-Gaussians scale selection + the maximum number of corners to consider + the number of intermediate scales per octave + + + + Release all the unmanaged resource associated with FREAK + + + + + latch Class for computing the LATCH descriptor. + If you find this code useful, please add a reference to the following paper in your work: + Gil Levi and Tal Hassner, "LATCH: Learned Arrangements of Three Patch Codes", arXiv preprint arXiv:1501.03719, 15 Jan. 2015 + LATCH is a binary descriptor based on learned comparisons of triplets of image patches. + + + + + Create LATCH descriptor extractor + + The size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1 + Whether or not the descriptor should compensate for orientation changes. + the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x + then the half_ssd_size should be (7-1)/2 = 3. + + + + Release all the unmanaged resource associated with BRIEF + + + + + The locally uniform comparison image descriptor: + An image descriptor that can be computed very fast, while being + about as robust as, for example, SURF or BRIEF. + + + + + Create a locally uniform comparison image descriptor. + + Kernel for descriptor construction, where 1=3x3, 2=5x5, 3=7x7 and so forth + kernel for blurring image prior to descriptor construction, where 1=3x3, 2=5x5, 3=7x7 and so forth + + + + Release all the unmanaged resource associated with BRIEF + + + + + Class implementing the MSD (Maximal Self-Dissimilarity) keypoint detector, described in "Federico Tombari and Luigi Di Stefano. Interest points via maximal self-dissimilarities. In Asian Conference on Computer Vision - ACCV 2014, 2014". + + The algorithm implements a novel interest point detector stemming from the intuition that image patches which are highly dissimilar over a relatively large extent of their surroundings hold the property of being repeatable and distinctive. This concept of "contextual self-dissimilarity" reverses the key paradigm of recent successful techniques such as the Local Self-Similarity descriptor and the Non-Local Means filter, which build upon the presence of similar - rather than dissimilar - patches. Moreover, it extends to contextual information the local self-dissimilarity notion embedded in established detectors of corner-like interest points, thereby achieving enhanced repeatability, distinctiveness and localization accuracy. + + + + Create a MSD (Maximal Self-Dissimilarity) keypoint detector. + + Patch radius + Search area raduis + Nms radius + Nms scale radius + Th saliency + Knn + Scale factor + N scales + Compute orientation + + + + Release all the unmanaged resource associated with MSDDetector + + + + + Class implementing PCT (position-color-texture) signature extraction as described in: + Martin Krulis, Jakub Lokoc, and Tomas Skopal. Efficient extraction of clustering-based feature signatures using GPU architectures. Multimedia Tools Appl., 75(13):8071–8103, 2016. + The algorithm is divided to a feature sampler and a clusterizer. Feature sampler produces samples at given set of coordinates. Clusterizer then produces clusters of these samples using k-means algorithm. Resulting set of clusters is the signature of the input image. + A signature is an array of SIGNATURE_DIMENSION-dimensional points.Used dimensions are: weight, x, y position; lab color, contrast, entropy. + + + + + Color resolution of the greyscale bitmap represented in allocated bits (i.e., value 4 means that 16 shades of grey are used). The greyscale bitmap is used for computing contrast and entropy values. + + + + + Size of the texture sampling window used to compute contrast and entropy. (center of the window is always in the pixel selected by x,y coordinates of the corresponding feature sample). + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Number of iterations of the k-means clustering. We use fixed number of iterations, since the modified clustering is pruning clusters (not iteratively refining k clusters). + + + + + Maximal number of generated clusters. If the number is exceeded, the clusters are sorted by their weights and the smallest clusters are cropped. + + + + + This parameter multiplied by the index of iteration gives lower limit for cluster size. Clusters containing fewer points than specified by the limit have their centroid dismissed and points are reassigned. + + + + + Threshold euclidean distance between two centroids. If two cluster centers are closer than this distance, one of the centroid is dismissed and points are reassigned. + + + + + Remove centroids in k-means whose weight is lesser or equal to given threshold. + + + + + Distance function selector used for measuring distance between two points in k-means. + + + + + Point distributions supported by random point generator. + + + + + Generate numbers uniformly. + + + + + Generate points in a regular grid. + + + + Generate points with normal (gaussian) distribution. + + + + Creates PCTSignatures algorithm using sample and seed count. It generates its own sets of sampling points and clusterization seed indexes. + + Number of points used for image sampling. + Number of initial clusterization seeds. Must be lower or equal to initSampleCount + Distribution of generated points. + + + + Creates PCTSignatures algorithm using pre-generated sampling points and number of clusterization seeds. It uses the provided sampling points and generates its own clusterization seed indexes. + + Sampling points used in image sampling. + Number of initial clusterization seeds. Must be lower or equal to initSamplingPoints.size(). + + + + Creates PCTSignatures algorithm using pre-generated sampling points and clusterization seeds indexes. + + Sampling points used in image sampling. + Indexes of initial clusterization seeds. Its size must be lower or equal to initSamplingPoints.size(). + + + + Release the unmanaged memory associated with this PCTSignatures object + + + + + Computes signature of given image. + + Input image of CV_8U type. + Output computed signature. + + + + Draws signature in the source image and outputs the result. Signatures are visualized as a circle with radius based on signature weight and color based on signature color. Contrast and entropy are not visualized. + + Source image. + Image signature. + Output result. + Determines maximal radius of signature in the output image. + Border thickness of the visualized signature. + + + + Class implementing Signature Quadratic Form Distance (SQFD). + + See also: Christian Beecks, Merih Seran Uysal, Thomas Seidl. Signature quadratic form distance. In Proceedings of the ACM International Conference on Image and Video Retrieval, pages 438-445. ACM, 2010. + + + + Lp distance function selector. + + + + + L0_25 + + + + + L0_5 + + + + + L1 + + + + + L2 + + + + + L2 squared + + + + + L5 + + + + + L infinity + + + + + Similarity function selector. + + + + + -d(c_i, c_j) + + + + + e^{ -alpha * d^2(c_i, c_j)} + + + + + 1 / (alpha + d(c_i, c_j)) + + + + + Creates the algorithm instance using selected distance function, similarity function and similarity function parameter. + + Distance function selector. + Similarity function selector. + Parameter of the similarity function. + + + + Computes Signature Quadratic Form Distance of two signatures. + + The first signature. + The second signature. + The Signature Quadratic Form Distance of two signatures + + + + Computes Signature Quadratic Form Distance between the reference signature and each of the other image signatures. + + The signature to measure distance of other signatures from. + Vector of signatures to measure distance from the source signature. + Output vector of measured distances. + + + + Release the unmanaged memory associated with this PCTSignaturesSQFD object + + + + + StarDetector + + + + + Create a star detector with the specific parameters + + + Maximum size of the features. The following + values of the parameter are supported: + 4, 6, 8, 11, 12, 16, 22, 23, 32, 45, 46, 64, 90, 128 + + Threshold for the approximated laplacian, + used to eliminate weak features. The larger it is, + the less features will be retrieved + + + Another threshold for the laplacian to eliminate edges. + The larger the threshold, the more points you get. + + + Another threshold for the feature size to eliminate edges. + The larger the threshold, the more points you get. + + Suppress Nonmax Size + + + + + Release the unmanaged memory associated with this detector. + + + + + Class implementing VGG (Oxford Visual Geometry Group) descriptor trained end to end using "Descriptor Learning Using Convex Optimisation" (DLCO) aparatus + + See: K. Simonyan, A. Vedaldi, and A. Zisserman. Learning local feature descriptors using convex optimisation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014. + + + + The VGG descriptor type + + + + + 120 dimension float + + + + + 80 dimension float + + + + + 64 dimension float + + + + + 48 dimension float + + + + + Create an instance of VGG + + Type of descriptor to use + gaussian kernel value for image blur + use image sample intensity normalization + sample patterns using keypoints orientation + adjust the sampling window of detected keypoints to 64.0f (VGG sampling window) 6.25f is default and fits for KAZE, SURF detected keypoints window ratio 6.75f should be the scale for SIFT detected keypoints window ratio 5.00f should be the scale for AKAZE, MSD, AGAST, FAST, BRISK keypoints window ratio 0.75f should be the scale for ORB keypoints ratio + clamp descriptors to 255 and convert to uchar CV_8UC1 + + + + Release all the unmanaged resource associated with VGG + + + + + Basic Face Recognizer + + + + + The native pointer to the BasicFaceRecognizer object + + + + + Implementation of bio-inspired features (BIF) from the paper: Guo, Guodong, et al. "Human age estimation using bio-inspired features." Computer Vision and Pattern Recognition, 2009. CVPR 2009. + + + + + Create an instance of bio-inspired features + + The number of filter bands used for computing BIF. + The number of image rotations. + + + + Computes features by input image. + + Input image (CV_32FC1) + Feature vector (CV_32FC1) + + + + Release the unmanaged memory associated with this BIF + + + + + Class that contains entry points for the Face module. + + + Class that contains entry points for the Face module. + + + Class that contains entry points for the Face module. + + + Class that contains entry points for the Face module. + + + + + A function to load the trained model before the fitting process. + + The facemark object + A string represent the filename of a trained model. + + + + Trains a Facemark algorithm using the given dataset. + + The facemark object + Input image. + Represent region of interest of the detected faces. Each face is stored in cv::Rect container. + The detected landmark points for each faces. + True if successful + + + + Utility to draw the detected facial landmark points. + + The input image to be processed. + Contains the data of points which will be drawn. + The color of points in BGR format + + + + Eigen face recognizer + + + + + Create an EigenFaceRecognizer + + The number of components + The distance threshold + + + + Release the unmanaged memory associated with this EigenFaceRecognizer + + + + + Parameters for the FacemarkAAM model + + + + + Create the paramaters with the default values. + + + + + Release the unmanaged memory associated with this object. + + + + + filename where the trained model will be saved + + + + + M + + + + + N + + + + + Number of iteration + + + + + show the training print-out + + + + + flag to save the trained model or not + + + + + The maximum value of M + + + + + The maximum value of N + + + + + The Facemark AMM model + + + + + Pointer to the unmanaged Facemark object + + + + + Pointer to the unmanaged Algorithm object + + + + + Create an instance of FacemarkAAM model + + The model parameters + + + + Release all the unmanaged memory associated with this Facemark + + + + + Parameters for the FacemarkLBF model + + + + + Create the paramaters with the default values. + + + + + Release the unmanaged memory associated with this object. + + + + + offset for the loaded face landmark points + + + + + show the training print-out + + + + + number of landmark points + + + + + multiplier for augment the training data + + + + + number of refinement stages + + + + + number of tree in the model for each landmark point refinement + + + + + the depth of decision tree, defines the size of feature + + + + + overlap ratio for training the LBF feature + + + + + flag to save the trained model or not + + + + + filename of the face detector model + + + + + filename where the trained model will be saved + + + + + The FacemarkLBF model + + + + + Pointer to the unmanaged Facemark object + + + + + Pointer to the unmanaged Algorithm object + + + + + Create an instance of the FacemarkLBF model + + The model parameters + + + + Release all the unmanaged memory associated with this Facemark + + + + + Face Recognizer + + + + + The native pointer to the FaceRecognizer object + + + + + Train the face recognizer with the specific images and labels + + The images used in the training. This can be a VectorOfMat + The labels of the images. This can be a VectorOfInt + + + + Train the face recognizer with the specific images and labels + + The images used in the training. + The labels of the images. + + + + Predict the label of the image + + The image where prediction will be based on + The prediction label + + + + The prediction result + + + + + The label + + + + + The distance + + + + + Save the FaceRecognizer to a file + + The file name to be saved to + + + + Load the FaceRecognizer from the file + + The file where the FaceRecognizer will be loaded from + + + + Release the unmanaged memory associated with this FaceRecognizer + + + + + Fisher face recognizer + + + + + Create a FisherFaceRecognizer + + The number of components + The distance threshold + + + + Release the unmanaged memory associated with this FisherFaceRecognizer + + + + + Interface to the Facemark class + + + + + Return the pointer to the Facemark object + + The pointer to the Facemark object + + + + LBPH face recognizer + + + + + Create a LBPH face recognizer + + Radius + Neighbors + Grid X + Grid Y + The distance threshold + + + + Updates a FaceRecognizer with given data and associated labels. + + The training images, that means the faces you want to learn. The data has to be given as a VectorOfMat. + The labels corresponding to the images + + + + Update the face recognizer with the specific images and labels + + The images used for updating the face recognizer + The labels of the images + + + + Release the unmanaged memory associated with this FisherFaceRecognizer + + + + + Minimum Average Correlation Energy Filter useful for authentication with (cancellable) biometrical features. (does not need many positives to train (10-50), and no negatives at all, also robust to noise/salting) + + + + + Create a new MACE object + + images will get resized to this (should be an even number) + + + + optionally encrypt images with random convolution + + a crc64 random seed will get generated from this + + + + train it on positive features compute the mace filter: h = D(-1) * X * (X(+) * D(-1) * X)(-1) * C also calculate a minimal threshold for this class, the smallest self-similarity from the train images + + A VectorOfMat with the train images + + + + correlate query img and threshold to min class value + + a Mat with query image + True if the query is the same + + + + Release the unmanaged memory associated with this BIF + + + + + Base class for 1st and 2nd stages of Neumann and Matas scene text detection algorithm + + + + + The native pointer to the shared object. + + + + + Release all the unmanaged memory associate with this ERFilter + + + + + Takes image on input and returns the selected regions in a vector of ERStat only distinctive ERs which correspond to characters are selected by a sequential classifier + + Single channel image CV_8UC1 + Output for the 1st stage and Input/Output for the 2nd. The selected Extremal Regions are stored here. + + + + The grouping method + + + + + Only perform grouping horizontally. + + + + + Perform grouping in any orientation. + + + + + Find groups of Extremal Regions that are organized as text blocks. + + The image where ER grouping is to be perform on + Array of single channel images from which the regions were extracted + Vector of ER’s retrieved from the ERFilter algorithm from each channel + The XML or YAML file with the classifier model (e.g. trained_classifier_erGrouping.xml) + The minimum probability for accepting a group. + The grouping methods + The output of the algorithm that indicates the text regions + + + + Extremal Region Filter for the 1st stage classifier of N&M algorithm + + + + + Create an Extremal Region Filter for the 1st stage classifier of N&M algorithm + + The file name of the classifier + Threshold step in subsequent thresholds when extracting the component tree. + The minimum area (% of image size) allowed for retreived ER’s. + The maximum area (% of image size) allowed for retreived ER’s. + The minimum probability P(er|character) allowed for retreived ER’s. + Whenever non-maximum suppression is done over the branch probabilities. + The minimum probability difference between local maxima and local minima ERs. + + + + Extremal Region Filter for the 2nd stage classifier of N&M algorithm + + + + + Create an Extremal Region Filter for the 2nd stage classifier of N&M algorithm + + The file name of the classifier + The minimum probability P(er|character) allowed for retreived ER’s. + + + + computeNMChannels operation modes + + + + + A combination of red (R), green (G), blue (B), lightness (L), and gradient + magnitude (Grad). + + + + + In N&M algorithm, the combination of intensity (I), hue (H), saturation (S), and gradient magnitude + channels (Grad) are used in order to obtain high localization recall. + + + + + This class wraps the functional calls to the OpenCV Text modules + + + + + Converts MSER contours (vector of point) to ERStat regions. + + Source image CV_8UC1 from which the MSERs where extracted. + Input vector with all the contours (vector of Point). + Output where the ERStat regions are stored. + + + + Compute the different channels to be processed independently in the N&M algorithm. + + Source image. Must be RGB CV_8UC3. + Output vector of Mat where computed channels are stored. + Mode of operation + + + + The ERStat structure represents a class-specific Extremal Region (ER). + An ER is a 4-connected set of pixels with all its grey-level values smaller than the values in its outer boundary. + A class-specific ER is selected (using a classifier) from all the ER’s in the component tree of the image. + + + + + Seed point + + + + + Threshold (max grey-level value) + + + + + Area + + + + + Perimeter + + + + + Euler number + + + + + Bounding box + + + + + Order 1 raw moments to derive the centroid + + + + + Order 1 raw moments to derive the centroid + + + + + Order 2 central moments to construct the covariance matrix + + + + + Order 2 central moments to construct the covariance matrix + + + + + Order 2 central moments to construct the covariance matrix + + + + + Pointer owner to horizontal crossings + + + + + Pointer to horizontal crossings + + + + + Median of the crossings at three different height levels + + + + + Hole area ratio + + + + + Convex hull ratio + + + + + Number of inflexion points + + + + + Get the pixels list. + + + + + Probability that the ER belongs to the class we are looking for + + + + + Pointer to the parent ERStat + + + + + Pointer to the child ERStat + + + + + Pointer to the next ERStat + + + + + Pointer to the previous ERStat + + + + + If or not the regions is a local maxima of the probability + + + + + Pointer to the ERStat that is the max probability ancestor + + + + + Pointer to the ERStat that is the min probability ancestor + + + + + Get the center of the region + + The source image width + The center of the region + + + + Wrapped class of the C++ standard vector of ERStat. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of ERStat + + + + + Create an standard vector of ERStat of the specific size + + The size of the vector + + + + Create an standard vector of ERStat with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of ERStat + + An array of ERStat + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of VectorOfERStat. + + + + + Create an empty standard vector of VectorOfERStat + + + + + Create an standard vector of VectorOfERStat of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfERStat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfERStat + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Draw UTF-8 strings with freetype/harfbuzz. + + + + + Create instance to draw UTF-8 strings. + + + + + Native algorithm pointer + + + + + Load font data. + + FontFile Name + Face index to select a font faces in a single file. + + + + Set the number of split points from bezier-curve to line. If you want to draw large glyph, large is better. If you want to draw small glyph, small is better. + + Number of split points from bezier-curve to line + + + + Renders the specified text string in the image. Symbols that cannot be rendered using the specified font are replaced by "Tofu" or non-drawn. + + Image. + Text string to be drawn. + Bottom-left/Top-left corner of the text string in the image. + Drawing font size by pixel unit. + Text color. + Thickness of the lines used to draw a text when negative, the glyph is filled. Otherwise, the glyph is drawn with this thickness. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Calculates the width and height of a text string. + + Input text string. + Drawing font size by pixel unit. + Thickness of lines used to render the text. + y-coordinate of the baseline relative to the bottom-most text point. + The approximate size of a box that contains the specified text + + + + Release all the unmanaged memory associate with this object + + + + + This class wraps the functional calls to the OpenCV Freetype modules + + + + + Background subtraction based on counting. + + About as fast as MOG2 on a high end system. More than twice faster than MOG2 on cheap hardware (benchmarked on Raspberry Pi3). + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Creates a CNT Background Subtractor. + + number of frames with same pixel color to consider stable + determines if we're giving a pixel credit for being stable for a long time + maximum allowed credit for a pixel in history + determines if we're parallelizing the algorithm + + + + Release all the unmanaged memory associated with this background model. + + + + + Background Subtractor module based on the algorithm given in: + Andrew B. Godbehere, Akihiro Matsukawa, Ken Goldberg, + "Visual Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive Audio Art Installation", + American Control Conference, Montreal, June 2012. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a background subtractor module based on GMG + + Number of frames used to initialize the background models. + Threshold value, above which it is marked foreground, else background. + + + + Release all the unmanaged memory associated with this background model. + + + + + Implementation of the different yet better algorithm which is called GSOC, as it was implemented during GSOC and was not originated from any paper. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Creates an instance of BackgroundSubtractorGSOC algorithm. + + Whether to use camera motion compensation. + Number of samples to maintain at each point of the frame. + Probability of replacing the old sample - how fast the model will update itself. + Probability of propagating to neighbors. + How many positives the sample must get before it will be considered as a possible replacement. + Scale coefficient for threshold. + Bias coefficient for threshold. + Blinking supression decay factor. + Blinking supression multiplier. + Strength of the noise removal for background points. + Strength of the noise removal for foreground points. + + + + Release all the unmanaged memory associated with this background model. + + + + + Background Subtraction using Local SVD Binary Pattern. + + More details about the algorithm can be found at: L. Guo, D. Xu, and Z. Qiang. Background subtraction using local svd binary pattern. In 2016 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), pages 1159–1167, June 2016. + + + + Camera Motion compensation mode + + + + + None + + + + + Use LK camera compensation + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Creates an instance of BackgroundSubtractorLSBP algorithm. + + Whether to use camera motion compensation. + Number of samples to maintain at each point of the frame. + LSBP descriptor radius. + Lower bound for T-values. + Upper bound for T-values. + Increase step for T-values. + Decrease step for T-values. + Scale coefficient for threshold values. + Increase/Decrease step for threshold values. + Strength of the noise removal for background points. + Strength of the noise removal for foreground points. + Threshold for LSBP binary string. + Minimal number of matches for sample to be considered as foreground. + + + + Release all the unmanaged memory associated with this background model. + + + + + Gaussian Mixture-based Background/Foreground Segmentation Algorithm. + The class implements the following algorithm: + "An improved adaptive background mixture model for real-time tracking with shadow detection" + P. KadewTraKuPong and R. Bowden, + Proc. 2nd European Workshp on Advanced Video-Based Surveillance Systems, 2001." + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create an "Improved adaptive Gaussian mixture model for background subtraction". + + The length of the history. + The maximum number of gaussian mixtures. + Background ratio + Noise strength (standard deviation of the brightness or each color channel). 0 means some automatic value. + + + + Release all the unmanaged memory associated with this background model. + + + + + Class that contains entry points for the Contrib module. + + + + + Disparity map filter based on Weighted Least Squares filter (in form of Fast Global Smoother that is a lot faster than traditional Weighted Least Squares filter implementations) and optional use of left-right-consistency-based confidence to refine the results in half-occlusions and uniform areas. + + + + + Pointer to cv::Algorithm + + + + + Pointer to the native DisparityFilter + + + + + Creates an instance of DisparityWLSFilter and sets up all the relevant filter parameters automatically based on the matcher instance. Currently supports only StereoBM and StereoSGBM. + + stereo matcher instance that will be used with the filter + + + + Create instance of DisparityWLSFilter and execute basic initialization routines. When using this method you will need to set-up the ROI, matchers and other parameters by yourself. + + Filtering with confidence requires two disparity maps (for the left and right views) and is approximately two times slower. However, quality is typically significantly better. + + + + Release the unmanaged memory associated with this DisparityWLSFilter + + + + + The matcher for computing the right-view disparity map that is required in case of filtering with confidence. + + + + + Pointer to the stereo matcher + + + + + Set up the matcher for computing the right-view disparity map that is required in case of filtering with confidence. + + Main stereo matcher instance that will be used with the filter + + + + Release the unmanaged memory associated with the RightMatcher + + + + + Library to invoke XImgproc functions + + + Extended Image Processing + + + + + Apply filtering to the disparity map. + + The disparity filter + Disparity map of the left view, 1 channel, CV_16S type. Implicitly assumes that disparity values are scaled by 16 (one-pixel disparity corresponds to the value of 16 in the disparity map). Disparity map can have any resolution, it will be automatically resized to fit left_view resolution. + Left view of the original stereo-pair to guide the filtering process, 8-bit single-channel or three-channel image. + Output disparity map. + Optional argument, some implementations might also use the disparity map of the right view to compute confidence maps, for instance. + Region of the disparity map to filter. Optional, usually it should be set automatically. + Optional argument, some implementations might also use the right view of the original stereo-pair. + + + + Applies the joint bilateral filter to an image. + + Joint 8-bit or floating-point, 1-channel or 3-channel image. + Source 8-bit or floating-point, 1-channel or 3-channel image with the same depth as joint image. + Destination image of the same size and type as src . + Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace . + Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace ) will be mixed together, resulting in larger areas of semi-equal color. + Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0 , it specifies the neighborhood size regardless of sigmaSpace . Otherwise, d is proportional to sigmaSpace . + Border type + + + + Applies the bilateral texture filter to an image. It performs structure-preserving texture filter. + + Source image whose depth is 8-bit UINT or 32-bit FLOAT + Destination image of the same size and type as src. + Radius of kernel to be used for filtering. It should be positive integer + Number of iterations of algorithm, It should be positive integer + Controls the sharpness of the weight transition from edges to smooth/texture regions, where a bigger value means sharper transition. When the value is negative, it is automatically calculated. + Range blur parameter for texture blurring. Larger value makes result to be more blurred. When the value is negative, it is automatically calculated as described in the paper. + For more details about this filter see: Hojin Cho, Hyunjoon Lee, Henry Kang, and Seungyong Lee. Bilateral texture filtering. ACM Transactions on Graphics, 33(4):128:1–128:8, July 2014. + + + + Applies the rolling guidance filter to an image + + Source 8-bit or floating-point, 1-channel or 3-channel image. + Destination image of the same size and type as src. + Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace . + Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace ) will be mixed together, resulting in larger areas of semi-equal color. + Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0 , it specifies the neighborhood size regardless of sigmaSpace . Otherwise, d is proportional to sigmaSpace . + Number of iterations of joint edge-preserving filtering applied on the source image. + Border type + + + + Simple one-line Fast Global Smoother filter call. + + image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels. + source image for filtering with unsigned 8-bit or signed 16-bit or floating-point 32-bit depth and up to 4 channels. + destination image. + parameter defining the amount of regularization + parameter, that is similar to color space sigma in bilateralFilter. + internal parameter, defining how much lambda decreases after each iteration. Normally, it should be 0.25. Setting it to 1.0 may lead to streaking artifacts. + number of iterations used for filtering, 3 is usually enough. + + + + Global image smoothing via L0 gradient minimization. + + Source image for filtering with unsigned 8-bit or signed 16-bit or floating-point depth. + Destination image. + Parameter defining the smooth term weight. + Parameter defining the increasing factor of the weight of the gradient data term. + + + + Simple one-line Adaptive Manifold Filter call. + + joint (also called as guided) image or array of images with any numbers of channels. + filtering image with any numbers of channels. + output image. + spatial standard deviation. + color space standard deviation, it is similar to the sigma in the color space into bilateralFilter. + optional, specify perform outliers adjust operation or not, (Eq. 9) in the original paper. + + + + Simple one-line Guided Filter call. + + guided image (or array of images) with up to 3 channels, if it have more then 3 channels then only first 3 channels will be used. + filtering image with any numbers of channels. + output image. + radius of Guided Filter. + regularization term of Guided Filter. eps^2 is similar to the sigma in the color space into bilateralFilter. + optional depth of the output image. + + + + Simple one-line Domain Transform filter call. + + guided image (also called as joint image) with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels. + filtering image with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels. + output image + parameter in the original article, it's similar to the sigma in the coordinate space into bilateralFilter. + parameter in the original article, it's similar to the sigma in the color space into bilateralFilter. + Dt filter mode + optional number of iterations used for filtering, 3 is quite enough. + + + + Niblack threshold + + The source image + The output result + Value that defines which local binarization algorithm should be used. + Block size + delta + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + + + + Computes the estimated covariance matrix of an image using the sliding window forumlation. + + The source image. Input image must be of a complex type. + The destination estimated covariance matrix. Output matrix will be size (windowRows*windowCols, windowRows*windowCols). + The number of rows in the window. + The number of cols in the window. The window size parameters control the accuracy of the estimation. The sliding window moves over the entire image from the top-left corner to the bottom right corner. Each location of the window represents a sample. If the window is the size of the image, then this gives the exact covariance matrix. For all other cases, the sizes of the window will impact the number of samples and the number of elements in the estimated covariance matrix. + + + + Applies weighted median filter to an image. + + Joint 8-bit, 1-channel or 3-channel image. + Source 8-bit or floating-point, 1-channel or 3-channel image. + Destination image. + Radius of filtering kernel, should be a positive integer. + Filter range standard deviation for the joint image. + The type of weight definition + A 0-1 mask that has the same size with I. This mask is used to ignore the effect of some pixels. If the pixel value on mask is 0, the pixel will be ignored when maintaining the joint-histogram. This is useful for applications like optical flow occlusion handling. + For more details about this implementation, please see: Qi Zhang, Li Xu, and Jiaya Jia. 100+ times faster weighted median filter (wmf). In Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, pages 2830–2837. IEEE, 2014. + + + + Applies Paillou filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32F image with same number of channel than op. + see paper + see paper + For more details about this implementation, please see: Philippe Paillou. Detecting step edges in noisy sar images: a new linear operator. IEEE transactions on geoscience and remote sensing, 35(1):191–196, 1997. + + + + Applies Paillou filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32F image with same number of channel than op. + see paper + see paper + For more details about this implementation, please see: Philippe Paillou. Detecting step edges in noisy sar images: a new linear operator. IEEE transactions on geoscience and remote sensing, 35(1):191–196, 1997. + + + + Applies Y Deriche filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32FC image with same number of channel than _op. + see paper + see paper + For more details about this implementation, please see here + + + + Applies X Deriche filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32FC image with same number of channel than _op. + see paper + see paper + For more details about this implementation, please see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.476.5736&rep=rep1&type=pdf + + + + Applies a binary blob thinning operation, to achieve a skeletization of the input image. + The function transforms a binary blob image into a skeletized form using the technique of Zhang-Suen. + + Source 8-bit single-channel image, containing binary blobs, with blobs having 255 pixel values. + Destination image of the same size and the same type as src. The function can work in-place. + Value that defines which thinning algorithm should be used. + + + + Performs anisotropic diffusion on an image. + + Grayscale Source image. + Destination image of the same size and the same number of channels as src . + The amount of time to step forward by on each iteration (normally, it's between 0 and 1). + sensitivity to the edges + The number of iterations + + + + Brighten the edges of the image + + The source image + The result + Contrast + Short Range + Long Range + + + + Interface for realizations of Domain Transform filter. + + + + + The three modes for filtering 2D signals in the article. + + + + + NC + + + + + IC + + + + + RF + + + + + Create instance of DTFilter and produce initialization routines. + + Guided image (used to build transformed distance, which describes edge structure of guided image). + Parameter in the original article, it's similar to the sigma in the coordinate space into bilateralFilter. + Parameter in the original article, it's similar to the sigma in the color space into bilateralFilter. + One form three modes DTF_NC, DTF_RF and DTF_IC which corresponds to three modes for filtering 2D signals in the article. + Optional number of iterations used for filtering, 3 is quite enough. + + + + Produce domain transform filtering operation on source image. + + Filtering image with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels. + Destination image. + Optional depth of the output image. dDepth can be set to Default, which will be equivalent to src.depth(). + + + + Release the unmanaged memory associated with this object + + + + + Domain Transform filter type + + + + + NC + + + + + IC + + + + + RF + + + + + Class implementing EdgeBoxes algorithm from C. Lawrence Zitnick and Piotr Dollár. Edge boxes: Locating object proposals from edges. In ECCV, 2014. + + + + + Pointer to cv::Algorithm + + + + + Create an EdgeBox + + Step size of sliding window search. + Nms threshold for object proposals. + Adaptation rate for nms threshold. + Min score of boxes to detect. + Max number of boxes to detect. + Edge min magnitude. Increase to trade off accuracy for speed. + Edge merge threshold. Increase to trade off accuracy for speed. + Cluster min magnitude. Increase to trade off accuracy for speed. + Max aspect ratio of boxes. + Minimum area of boxes. + Affinity sensitivity. + Scale sensitivity. + + + + Returns array containing proposal boxes. + + edge image. + orientation map. + Proposal boxes. + + + + + + + Class implementing the FLD (Fast Line Detector) algorithm + + + + + Initializes a new instance of the FastLineDetector object. + + Segment shorter than this will be discarded. + A point placed from a hypothesis line segment farther than this will be regarded as an outlier. + First threshold for hysteresis procedure in Canny(). + Second threshold for hysteresis procedure in Canny(). + Aperture size for the Sobel operator in Canny(). + If true, incremental merging of segments will be performed + + + + Finds lines in the input image. + + Image to detect lines in. + The detected line segments + + + + Draws the line segments on a given image. + + The image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found. + A vector of the lines that needed to be drawn. + If true, arrow heads will be drawn. + + + + + + + Graph Based Segmentation Algorithm. The class implements the algorithm described in Pedro F Felzenszwalb and Daniel P Huttenlocher. Efficient graph-based image segmentation. volume 59, pages 167 - 181. Springer, 2004. + + + + + Creates a graph based segmentor. + + The sigma parameter, used to smooth image + The k parameter of the algorithm + The minimum size of segments + + + + Segment an image and store output in dst. + + The input image. Any number of channel (1 (Eg: Gray), 3 (Eg: RGB), 4 (Eg: RGB-D)) can be provided + The output segmentation. It's a CV_32SC1 Mat with the same number of cols and rows as input image, with an unique, sequential, id for each pixel. + + + + Release the unmanaged memory associated with this object. + + + + + Main interface for all disparity map filters. + + + + + Pointer to the native diaprty filter object + + + + + LocalBinarizationMethods type + + + + + Classic Niblack binarization. + + + + + Sauvola's technique. + + + + + Wolf's technique. + + + + + NICK's technique. + + + + + Applies Ridge Detection Filter to an input image. + Implements Ridge detection similar to the one in [Mathematica] (http://reference.wolfram.com/language/ref/RidgeFilter.html) + using the eigen values from the Hessian Matrix of the input image using Sobel Derivatives. + Additional refinement can be done using Skeletonization and Binarization. + + + + + Pointer to cv::Algorithm + + + + + Create a Ridge detection filter. + + Specifies output image depth. + Specifies output image channel. + Order of derivative x + Order of derivative y + Sobel kernel size + Converted format for output + Converted format for output + Optional scale value for derivative values + Optional bias added to output + Pixel extrapolation method + + + + Apply Ridge detection filter on input image. + + InputArray as supported by Sobel. img can be 1-Channel or 3-Channels. + Output image with ridges. + + + + + + + Selective search segmentation algorithm The class implements the algorithm described in: + Jasper RR Uijlings, Koen EA van de Sande, Theo Gevers, and Arnold WM Smeulders. Selective search for object recognition. International journal of computer vision, 104(2):154–171, 2013. + + + + + Selective search segmentation algorithm + + + + + Set a image used by switch* functions to initialize the class. + + The image + + + + Initialize the class with the 'Single stragegy' parameters + + The k parameter for the graph segmentation + The sigma parameter for the graph segmentation + + + + Initialize the class with the 'Selective search fast' parameters + + The k parameter for the first graph segmentation + The increment of the k parameter for all graph segmentations + The sigma parameter for the graph segmentation + + + + Initialize the class with the 'Selective search quality' parameters + + The k parameter for the first graph segmentation + The increment of the k parameter for all graph segmentations + The sigma parameter for the graph segmentation + + + + Add a new image in the list of images to process. + + The image + + + + Based on all images, graph segmentations and stragies, computes all possible rects and return them. + + The list of rects. The first ones are more relevents than the lasts ones. + + + + Release the unmanaged memory associated with this object. + + + + + Class implementing edge detection algorithm from Piotr Dollar and C Lawrence Zitnick. Structured forests for fast edge detection. In Computer Vision (ICCV), 2013 IEEE International Conference on, pages 1841-1848. IEEE, 2013. + + + + + Create an edge detection algorithm. + + name of the file where the model is stored + optional object inheriting from RFFeatureGetter. You need it only if you would like to train your own forest, pass NULL otherwise + + + + The function detects edges in src and draw them to dst. The algorithm underlies this function is much more robust to texture presence, than common approaches, e.g. Sobel + + source image (RGB, float, in [0;1]) to detect edges + destination image (grayscale, float, in [0;1]) where edges are drawn + + + + The function computes orientation from edge image. + + Edge image. + Orientation image. + + + + The function edgenms in edge image and suppress edges where edge is stronger in orthogonal direction. + + edge image from DetectEdges function. + orientation image from ComputeOrientation function. + Suppressed image (grayscale, float, in [0;1]) + Radius for NMS suppression. + Radius for boundary suppression. + Multiplier for conservative suppression. + Enables/disables parallel computing. + + + + Release the unmanaged memory associated with this object. + + + + + Helper class for training part of [P. Dollar and C. L. Zitnick. Structured Forests for Fast Edge Detection, 2013]. + + + + + Create a default RFFeatureGetter + + + + + Release the unmanaged memory associated with this RFFeatureGetter. + + + + + Class implementing the LSC (Linear Spectral Clustering) superpixels algorithm described in "Zhengqin Li and Jiansheng Chen. Superpixel segmentation using linear spectral clustering. June 2015." + + LSC (Linear Spectral Clustering) produces compact and uniform superpixels with low computational costs. Basically, a normalized cuts formulation of the superpixel segmentation is adopted based on a similarity metric that measures the color similarity and space proximity between image pixels. LSC is of linear computational complexity and high memory efficiency and is able to preserve global properties of images + + + + The function initializes a SuperpixelLSC object for the input image. + + Image to segment + Chooses an average superpixel size measured in pixels + Chooses the enforcement of superpixel compactness factor of superpixel + + + + Calculates the actual amount of superpixels on a given segmentation computed and stored in SuperpixelLSC object + + + + + Returns the segmentation labeling of the image. + Each label represents a superpixel, and each pixel is assigned to one superpixel label. + + A CV_32SC1 integer array containing the labels of the superpixel segmentation. The labels are in the range [0, NumberOfSuperpixels]. + + + + Returns the mask of the superpixel segmentation stored in SuperpixelLSC object. + + Return: CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise. + If false, the border is only one pixel wide, otherwise all pixels at the border are masked. + + + + Calculates the superpixel segmentation on a given image with the initialized parameters in the SuperpixelLSC object. + This function can be called again without the need of initializing the algorithm with createSuperpixelLSC(). This save the computational cost of allocating memory for all the structures of the algorithm. + + Number of iterations. Higher number improves the result. + + + + Release the unmanaged memory associated with this object. + + + + + Class implementing the SEEDS (Superpixels Extracted via Energy-Driven Sampling) superpixels algorithm described in Michael Van den Bergh, Xavier Boix, Gemma Roig, Benjamin de Capitani, and Luc Van Gool. Seeds: Superpixels extracted via energy-driven sampling. In Computer Vision-ECCV 2012, pages 13-26. Springer, 2012. + + + + + The function initializes a SuperpixelSEEDS object for the input image. + + Image width + Image height + Number of channels of the image. + Desired number of superpixels. Note that the actual number may be smaller due to restrictions (depending on the image size and num_levels). Use getNumberOfSuperpixels() to get the actual number. + Number of block levels. The more levels, the more accurate is the segmentation, but needs more memory and CPU time. + Enable 3x3 shape smoothing term if >0. A larger value leads to smoother shapes. prior must be in the range [0, 5]. + Number of histogram bins. + If true, iterate each block level twice for higher accuracy. + + + + The function computes the superpixels segmentation of an image with the parameters initialized with the function createSuperpixelSEEDS(). + + + + + Returns the segmentation labeling of the image. + Each label represents a superpixel, and each pixel is assigned to one superpixel label. + + Return: A CV_32UC1 integer array containing the labels of the superpixel segmentation. The labels are in the range [0, NumberOfSuperpixels]. + + + + Returns the mask of the superpixel segmentation stored in SuperpixelSEEDS object. + + Return: CV_8UC1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise. + If false, the border is only one pixel wide, otherwise all pixels at the border are masked. + + + + Calculates the superpixel segmentation on a given image with the initialized parameters in the SuperpixelSEEDS object. + + This function can be called again for other images without the need of initializing the algorithm with createSuperpixelSEEDS(). This save the computational cost of allocating memory for all the structures of the algorithm. + Input image. Supported formats: CV_8U, CV_16U, CV_32F. Image size & number of channels must match with the initialized image size & channels with the function createSuperpixelSEEDS(). It should be in HSV or Lab color space. Lab is a bit better, but also slower. + Number of pixel level iterations. Higher number improves the result. + + + + Release the unmanaged memory associated with this object. + + + + + Class implementing the SLIC (Simple Linear Iterative Clustering) superpixels algorithm described in Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Susstrunk. Slic superpixels compared to state-of-the-art superpixel methods. IEEE Trans. Pattern Anal. Mach. Intell., 34(11):2274-2282, nov 2012. + + + + + The algorithm to use + + + + + SLIC segments image using a desired region_size + + + + + SLICO will choose an adaptive compactness factor. + + + + + The function initializes a SuperpixelSLIC object for the input image. It sets the parameters of choosed superpixel algorithm, which are: region_size and ruler. It preallocate some buffers for future computing iterations over the given image. + + Image to segment + Chooses the algorithm variant to use + Chooses an average superpixel size measured in pixels + Chooses the enforcement of superpixel smoothness factor of superpixel + + + + Calculates the actual amount of superpixels on a given segmentation computed and stored in SuperpixelSLIC object. + + + + + Returns the segmentation labeling of the image. Each label represents a superpixel, and each pixel is assigned to one superpixel label. + + A CV_32SC1 integer array containing the labels of the superpixel segmentation. The labels are in the range [0, NumberOfSuperpixels]. + + + + Returns the mask of the superpixel segmentation stored in SuperpixelSLIC object. + + CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise. + If false, the border is only one pixel wide, otherwise all pixels at the border are masked. + + + + Calculates the superpixel segmentation on a given image with the initialized parameters in the SuperpixelSLIC object. + This function can be called again without the need of initializing the algorithm with createSuperpixelSLIC(). This save the computational cost of allocating memory for all the structures of the algorithm. + + Number of iterations. Higher number improves the result. + + + + The function merge component that is too small, assigning the previously found adjacent label + to this component.Calling this function may change the final number of superpixels. + + + The minimum element size in percents that should be absorbed into a bigger + superpixel.Given resulted average superpixel size valid value should be in 0-100 range, 25 means + that less then a quarter sized superpixel should be absorbed, this is default. + + + + + Release the unmanaged memory associated with this object. + + + + + Thinning type + + + + + Thinning technique of Zhang-Suen + + + + + Thinning technique of Guo-Hall + + + + + Weight type + + + + + exp(-|I1-I2|^2/(2*sigma^2)) + + + + + (|I1-I2|+sigma)^-1 + + + + + (|I1-I2|^2+sigma^2)^-1 + + + + + dot(I1,I2)/(|I1|*|I2|) + + + + + (min(r1,r2)+min(g1,g2)+min(b1,b2))/(max(r1,r2)+max(g1,g2)+max(b1,b2)) + + + + + unweighted + + + + + Gray-world white balance algorithm. + This algorithm scales the values of pixels based on a gray-world assumption which states that the average of all channels should result in a gray image. + It adds a modification which thresholds pixels based on their saturation value and only uses pixels below the provided threshold in finding average pixel values. + Saturation is calculated using the following for a 3-channel RGB image per pixel I and is in the range [0, 1]: + Saturation[I]= max(R,G,B)-min(R,G,B) / max(R,G,B) + A threshold of 1 means that all pixels are used to white-balance, while a threshold of 0 means no pixels are used. Lower thresholds are useful in white-balancing saturated images. + Currently supports images of type CV_8UC3 and CV_16UC3. + + + + + Creates a gray-world white balancer + + + + + Release all the unmanaged memory associated with this white balancer + + + + + Maximum saturation for a pixel to be included in the gray-world assumption + + + + + Class that contains entry points for the XPhoto module. + + + + + The function implements simple dct-based denoising, link: http://www.ipol.im/pub/art/2011/ys-dct/. + + Source image + Destination image + Expected noise standard deviation + Size of block side where dct is computed + + + + Inpaint type + + + + + Shift map + + + + + The function implements different single-image inpainting algorithms + + source image, it could be of any type and any number of channels from 1 to 4. In case of 3- and 4-channels images the function expect them in CIELab colorspace or similar one, where first color component shows intensity, while second and third shows colors. Nonetheless you can try any colorspaces. + mask (CV_8UC1), where non-zero pixels indicate valid image area, while zero pixels indicate area to be inpainted + destination image + algorithm type + + + + Implements an efficient fixed-point approximation for applying channel gains, which is the last step of multiple white balance algorithms. + + Input three-channel image in the BGR color space (either CV_8UC3 or CV_16UC3) + Output image of the same size and type as src. + Gain for the B channel + Gain for the G channel + Gain for the R channel + + + + Performs image denoising using the Block-Matching and 3D-filtering algorithm with several computational optimizations. Noise expected to be a gaussian white noise. + + Input 8-bit or 16-bit 1-channel image. + Output image of the first step of BM3D with the same size and type as src. + Output image of the second step of BM3D with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + Size in pixels of the template patch that is used for block-matching. Should be power of 2. + Size in pixels of the window that is used to perform block-matching. Affect performance linearly: greater searchWindowsSize - greater denoising time. Must be larger than templateWindowSize. + Block matching threshold for the first step of BM3D (hard thresholding), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Block matching threshold for the second step of BM3D (Wiener filtering), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Maximum size of the 3D group for collaborative filtering. + Sliding step to process every next reference block. + Kaiser window parameter that affects the sidelobe attenuation of the transform of the window. Kaiser window is used in order to reduce border effects. To prevent usage of the window, set beta to zero. + Norm used to calculate distance between blocks. L2 is slower than L1 but yields more accurate results. + Step of BM3D to be executed. Possible variants are: step 1, step 2, both steps. + Type of the orthogonal transform used in collaborative filtering step. Currently only Haar transform is supported. + + + + + Performs image denoising using the Block-Matching and 3D-filtering algorithm with several computational optimizations. Noise expected to be a gaussian white noise. + + Input 8-bit or 16-bit 1-channel image. + Output image with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + Size in pixels of the template patch that is used for block-matching. Should be power of 2. + Size in pixels of the window that is used to perform block-matching. Affect performance linearly: greater searchWindowsSize - greater denoising time. Must be larger than templateWindowSize. + Block matching threshold for the first step of BM3D (hard thresholding), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Block matching threshold for the second step of BM3D (Wiener filtering), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Maximum size of the 3D group for collaborative filtering. + Sliding step to process every next reference block. + Kaiser window parameter that affects the sidelobe attenuation of the transform of the window. Kaiser window is used in order to reduce border effects. To prevent usage of the window, set beta to zero. + Norm used to calculate distance between blocks. L2 is slower than L1 but yields more accurate results. + Step of BM3D to be executed. Allowed are only BM3D_STEP1 and BM3D_STEPALL. BM3D_STEP2 is not allowed as it requires basic estimate to be present. + Type of the orthogonal transform used in collaborative filtering step. Currently only Haar transform is supported. + + + + + Oil Painting effect + + Input three-channel or one channel image (either CV_8UC3 or CV_8UC1) + Output image of the same size and type as src. + Neighbouring size is 2-size+1 + Image is divided by dynRatio before histogram processing + Color space conversion code(see ColorConversionCodes). Histogram will used only first plane + + + + More sophisticated learning-based automatic white balance algorithm. + As GrayworldWB, this algorithm works by applying different gains to the input image channels, but their computation is a bit more involved compared to the simple gray-world assumption. + More details about the algorithm can be found in: Dongliang Cheng, Brian Price, Scott Cohen, and Michael S Brown. Effective learning-based illuminant estimation using simple features. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1000-1008, 2015. + To mask out saturated pixels this function uses only pixels that satisfy the following condition: + max(R,G,B) / range_max_val < saturation_thresh + Currently supports images of type CV_8UC3 and CV_16UC3. + + + + + Create a learning based white balancer. + + + + + Release all the unmanaged memory associated with this white balancer + + + + + Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images) + + + + + Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds saturation_threshold x range_max_val are ignored. + + + + + Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image). + + + + + A simple white balance algorithm that works by independently stretching each of the input image channels to the specified range. For increased robustness it ignores the top and bottom p% of pixel values. + + + + + Creates a simple white balancer + + + + + Release all the unmanaged memory associated with this white balancer + + + + + Input image range minimum value + + + + + Input image range maximum value + + + + + Output image range minimum value + + + + + Output image range maximum value + + + + + Percent of top/bottom values to ignore + + + + + This algorithm decomposes image into two layers: base layer and detail layer using bilateral filter and compresses contrast of the base layer thus preserving all the details. + This implementation uses regular bilateral filter from opencv. + + + + + Creates TonemapDurand object. + + gamma value for gamma correction. + resulting contrast on logarithmic scale, i. e. log(max / min), where max and min are maximum and minimum luminance values of the resulting image. + saturation enhancement value. + bilateral filter sigma in color space + bilateral filter sigma in coordinate space + + + + Release the unmanaged memory associated with this TonemapDurand + + + + + Positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. + + + + + Resulting contrast on logarithmic scale, i. e. log(max / min), where max and min are maximum and minimum luminance values of the resulting image. + + + + + Bilateral filter sigma in color space + + + + + bilateral filter sigma in coordinate space + + + + + The base class for auto white balance algorithms. + + + + + Pointer to the native white balancer object + + + + + Applies white balancing to the input image. + + Input image + White balancing result + + + + Reset the pointer to the native white balancer object + + + + + BM3D denoising transform types + + + + + Un-normalized Haar transform + + + + + BM3D steps + + + + + Execute all steps of the algorithm + + + + + Execute only first step of the algorithm + + + + + Execute only second step of the algorithm + + + + + This class is used to track multiple objects using the specified tracker algorithm. The MultiTracker is naive implementation of multiple object tracking. It process the tracked objects independently without any optimization accross the tracked objects. + + + + + Constructor. In the case of trackerType is given, it will be set as the default algorithm for all trackers. + + + + + Add a new object to be tracked. The defaultAlgorithm will be used the newly added tracker. + + The tracker to use for tracking the image + Input image + A rectangle represents ROI of the tracked object + True if successfully added + + + + Update the current tracking status. The result will be saved in the internal storage. + + Input image + the tracking result, represent a list of ROIs of the tracked objects. + True id update success + + + + Returns the tracked objects, each object corresponds to one tracker algorithm. + + The tracked objects, each object corresponds to one tracker algorithm. + + + + Release the unmanaged memory associated with this multi-tracker. + + + + + Long-term tracker + + + + + The native pointer to the tracker + + + + + Initialize the tracker with a know bounding box that surrounding the target. + + The initial frame + The initial bounding box + True if successful. + + + + Update the tracker, find the new most likely bounding box for the target. + + The current frame + The bounding box that represent the new target location, if true was returned, not modified otherwise + True means that target was located and false means that tracker cannot locate target in current frame. Note, that latter does not imply that tracker has failed, maybe target is indeed missing from the frame (say, out of sight) + + + + Release the unmanaged memory associated with this tracker + + + + + This is a real-time object tracking based on a novel on-line version of the AdaBoost algorithm. + The classifier uses the surrounding background as negative examples in update step to avoid the drifting problem. + + + + + Create a Boosting Tracker + + The number of classifiers to use in a OnlineBoosting algorithm + Search region parameters to use in a OnlineBoosting algorithm + search region parameters to use in a OnlineBoosting algorithm + The initial iterations + Number of features, a good value would be 10*numClassifiers + iterationInit + + + + Release all the unmanaged memory associated with this Boosting Tracker + + + + + Discriminative Correlation Filter Tracker with Channel and Spatial Reliability + + + + + Creates a CSRT tracker + + Use hog + Use color names + Use Gray + Use RGB + Use channel weights + Use segmentation + Windows function + Kaiser alpha + Cheb attenuation + Template size + Gsl Sigma + Hog orientations + Hog clip + padding + filter Lr + weights Lr + Number of hog channels used + Admm iterations + Histogram bins + Histogram Lr + Background ratio + Number of scales + Scale Sigma factor + Scale Model Max Area + Scale Lr + Scale step + + + + Release the unmanaged resources associated with this tracker + + + + + GOTURN is kind of trackers based on Convolutional Neural Networks (CNN). While taking all advantages of CNN trackers, GOTURN is much faster due to offline training without online fine-tuning nature. GOTURN tracker addresses the problem of single target tracking: given a bounding box label of an object in the first frame of the video, we track that object through the rest of the video. NOTE: Current method of GOTURN does not handle occlusions; however, it is fairly robust to viewpoint changes, lighting changes, and deformations. Inputs of GOTURN are two RGB patches representing Target and Search patches resized to 227x227. Outputs of GOTURN are predicted bounding box coordinates, relative to Search patch coordinate system, in format X1,Y1,X2,Y2. + + Original paper is here: http://davheld.github.io/GOTURN/GOTURN.pdf As long as original authors implementation: https://github.com/davheld/GOTURN#train-the-tracker Implementation of training algorithm is placed in separately here due to 3d-party dependencies: https://github.com/Auron-X/GOTURN_Training_Toolkit GOTURN architecture goturn.prototxt and trained model goturn.caffemodel are accessible on opencv_extra GitHub repository. + + + + Create a GOTURN tracker + + + + + Release the unmanaged resources associated with this tracker + + + + + KCF is a novel tracking framework that utilizes properties of circulant matrix to enhance the processing speed. + The original paper of KCF is available at http://home.isr.uc.pt/~henriques/circulant/index.html + as well as the matlab implementation. + + + + + Feature type to be used in the tracking grayscale, colornames, compressed color-names + The modes available now: + - "GRAY" -- Use grayscale values as the feature + - "CN" -- Color-names feature + + + + + Grayscale + + + + + Color + + + + + Custom + + + + + Creates a KCF Tracker + + detection confidence threshold + gaussian kernel bandwidth + regularization + linear interpolation factor for adaptation + spatial bandwidth (proportional to target) + compression learning rate + activate the resize feature to improve the processing speed + split the training coefficients into two matrices + wrap around the kernel values + activate the pca method to compress the features + threshold for the ROI size + feature size after compression + compressed descriptors of TrackerKCF::MODE + non-compressed descriptors of TrackerKCF::MODE + + + + Release the unmanaged resources associated with this tracker + + + + + Median Flow tracker implementation. + The tracker is suitable for very smooth and predictable movements when object is visible throughout + the whole sequence.It's quite and accurate for this type of problems (in particular, it was shown + by authors to outperform MIL). During the implementation period the code at + http://www.aonsquared.co.uk/node/5, the courtesy of the author Arthur Amarra, was used for the + reference purpose. + + + + Create a median flow tracker + Points in grid, use 10 for default. + Win size, use (3, 3) for default + Max level, use 5 for default. + Termination criteria, use count = 20 and eps = 0.3 for default + win size NCC, use (30, 30) for default + Max median length of displacement difference + + + + Release the unmanaged resources associated with this tracker + + + + + The MIL algorithm trains a classifier in an online manner to separate the object from the background. + Multiple Instance Learning avoids the drift problem for a robust tracking. + Original code can be found here http://vision.ucsd.edu/~bbabenko/project_miltrack.shtml + + + + + Creates a MIL Tracker + + radius for gathering positive instances during init + negative samples to use during init + size of search window + radius for gathering positive instances during tracking + positive samples to use during tracking + negative samples to use during tracking + features + + + + Release all the unmanaged memory associated with this tracker + + + + + MOSSE Visual Object Tracking using Adaptive Correlation Filters + + note, that this tracker works with grayscale images, if passed bgr ones, they will get converted internally. + + + + Create a MOSSE tracker + + + + + Release the unmanaged resources associated with this tracker + + + + + TLD is a novel tracking framework that explicitly decomposes the long-term tracking task into tracking, learning and detection. + + The tracker follows the object from frame to frame. The detector localizes all appearances that have been observed so far and corrects the tracker if necessary. The learning estimates detector's errors and updates it to avoid these errors in the future. + + + + Creates a TLD tracker + + + + + Release the unmanaged resources associated with this tracker + + + + + A 2D plot + + + + + Create 2D plot from data + + The data to be plotted + + + + Create 2D plot for data + + The data for the X-axis + The data for the Y-axis + + + + Render the plot to the resulting Mat + + The output plot + + + + Set the line color + + The plot line color + + + + Set the background color + + The background color + + + + Set the axis color + + the axis color + + + + Set the plot grid color + + The plot grid color + + + + Set the plot text color + + The plot text color + + + + Set the plot size + + The width + The height + + + + Release unmanaged memory associated with this plot2d. + + + + + Min X + + The value + + + + Min Y + + The value + + + + Max X + + The value + + + + Max Y + + The value + + + + Plot line width + + The value + + + + Entry points for the cv::plot functions + + + + + Entry points for the Aruco module. + + + + + Draw a canonical marker image. + + dictionary of markers indicating the type of markers + identifier of the marker that will be returned. It has to be a valid id in the specified dictionary. + size of the image in pixels + output image with the marker + width of the marker border. + + + + Performs marker detection in the input image. Only markers included in the specific dictionary are searched. For each detected marker, it returns the 2D position of its corner in the image and its corresponding identifier. Note that this function does not perform pose estimation. + + input image + indicates the type of markers that will be searched + Vector of detected marker corners. For each marker, its four corners are provided, (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array is Nx4. The order of the corners is clockwise. + vector of identifiers of the detected markers. The identifier is of type int (e.g. VectorOfInt). For N detected markers, the size of ids is also N. The identifiers have the same order than the markers in the imgPoints array. + marker detection parameters + contains the imgPoints of those squares whose inner code has not a correct codification. Useful for debugging purposes. + + + + Given the pose estimation of a marker or board, this function draws the axis of the world coordinate system, i.e. the system centered on the marker/board. Useful for debugging purposes. + + input/output image. It must have 1 or 3 channels. The number of channels is not altered. + input 3x3 floating-point camera matrix + vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + rotation vector of the coordinate system that will be drawn. + translation vector of the coordinate system that will be drawn. + length of the painted axis in the same unit than tvec (usually in meters) + + + + This function receives the detected markers and returns their pose estimation respect to the camera individually. So for each marker, one rotation and translation vector is returned. The returned transformation is the one that transforms points from each marker coordinate system to the camera coordinate system. The marker corrdinate system is centered on the middle of the marker, with the Z axis perpendicular to the marker plane. The coordinates of the four corners of the marker in its own coordinate system are: (-markerLength/2, markerLength/2, 0), (markerLength/2, markerLength/2, 0), (markerLength/2, -markerLength/2, 0), (-markerLength/2, -markerLength/2, 0) + + vector of already detected markers corners. For each marker, its four corners are provided, (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + the length of the markers' side. The returning translation vectors will be in the same unit. Normally, unit is meters. + input 3x3 floating-point camera matrix + vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + array of output rotation vectors. Each element in rvecs corresponds to the specific marker in imgPoints. + array of output translation vectors (e.g. VectorOfPoint3D32F ). Each element in tvecs corresponds to the specific marker in imgPoints. + + + + Refine not detected markers based on the already detected and the board layout. + + Input image + Layout of markers in the board. + Vector of already detected marker corners. + Vector of already detected marker identifiers. + Vector of rejected candidates during the marker detection process + Optional input 3x3 floating-point camera matrix + Optional vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Minimum distance between the corners of the rejected candidate and the reprojected marker in order to consider it as a correspondence. (default 10) + Rate of allowed erroneous bits respect to the error correction capability of the used dictionary. -1 ignores the error correction step. (default 3) + Consider the four posible corner orders in the rejectedCorners array. If it set to false, only the provided corner order is considered (default true). + Optional array to returns the indexes of the recovered candidates in the original rejectedCorners array. + marker detection parameters + + + + Draw detected markers in image. + + Input/output image. It must have 1 or 3 channels. The number of channels is not altered. + Positions of marker corners on input image. (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + Vector of identifiers for markers in markersCorners . Optional, if not provided, ids are not painted. + Color of marker borders. Rest of colors (text color and first corner color) are calculated based on this one to improve visualization. + + + + Calibrate a camera using aruco markers. + + Vector of detected marker corners in all frames. The corners should have the same format returned by detectMarkers + List of identifiers for each marker in corners + Number of markers in each frame so that corners and ids can be split + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Calibrate a camera using aruco markers. + + Vector of detected marker corners in all frames. The corners should have the same format returned by detectMarkers + List of identifiers for each marker in corners + Number of markers in each frame so that corners and ids can be split + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Output vector of standard deviations estimated for intrinsic parameters. Order of deviations values: (fx,fy,cx,cy,k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4,τx,τy) If one of parameters is not estimated, it's deviation is equals to zero. + Output vector of standard deviations estimated for extrinsic parameters. Order of deviations values: (R1,T1,…,RM,TM) where M is number of pattern views, Ri,Ti are concatenated 1x3 vectors. + Output vector of average re-projection errors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Calibrate a camera using Charuco corners. + + Vector of detected charuco corners per frame + List of identifiers for each corner in charucoCorners per frame + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Calibrate a camera using Charuco corners. + + Vector of detected charuco corners per frame + List of identifiers for each corner in charucoCorners per frame + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Output vector of standard deviations estimated for intrinsic parameters. Order of deviations values: (fx,fy,cx,cy,k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4,τx,τy) If one of parameters is not estimated, it's deviation is equals to zero. + Output vector of standard deviations estimated for extrinsic parameters. Order of deviations values: (R1,T1,…,RM,TM) where M is number of pattern views, Ri,Ti are concatenated 1x3 vectors. + Output vector of average re-projection errors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Interpolate position of ChArUco board corners + + vector of already detected markers corners. For each marker, its four corners are provided, (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array should be Nx4.The order of the corners should be clockwise. + list of identifiers for each marker in corners + input image necesary for corner refinement. Note that markers are not detected and should be sent in corners and ids parameters. + layout of ChArUco board. + interpolated chessboard corners + interpolated chessboard corners identifiers + optional 3x3 floating-point camera matrix + optional vector of distortion coefficients, (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]]) of 4, 5, 8 or 12 elements + number of adjacent markers that must be detected to return a charuco corner + The number of interpolated corners. + + + + Draws a set of Charuco corners + + image input/output image. It must have 1 or 3 channels. The number of channels is not altered. + vector of detected charuco corners + list of identifiers for each corner in charucoCorners + color of the square surrounding each corner + + + + Pose estimation for a ChArUco board given some of their corners + + vector of detected charuco corners + list of identifiers for each corner in charucoCorners + layout of ChArUco board. + input 3x3 floating-point camera matrix + vector of distortion coefficients, 4, 5, 8 or 12 elements + Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board + Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. + defines whether initial guess for rvec and tvec will be used or not. + If pose estimation is valid, returns true, else returns false. + + + + Detect ChArUco Diamond markers + + input image necessary for corner subpixel. + list of detected marker corners from detectMarkers function. + list of marker ids in markerCorners. + rate between square and marker length: squareMarkerLengthRate = squareLength / markerLength.The real units are not necessary. + output list of detected diamond corners (4 corners per diamond). The order is the same than in marker corners: top left, top right, bottom right and bottom left. Similar format than the corners returned by detectMarkers(e.g VectorOfVectorOfPointF ). + ids of the diamonds in diamondCorners. The id of each diamond is in fact of type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the diamond. + Optional camera calibration matrix. + Optional camera distortion coefficients. + + + + Draw a set of detected ChArUco Diamond markers + + input/output image. It must have 1 or 3 channels. The number of channels is not altered. + positions of diamond corners in the same format returned by detectCharucoDiamond(). (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + vector of identifiers for diamonds in diamondCorners, in the same format returned by detectCharucoDiamond() (e.g. VectorOfMat ). Optional, if not provided, ids are not painted. + color of marker borders. Rest of colors (text color and first corner color) are calculated based on this one. + + + + Draw a ChArUco Diamond marker + + dictionary of markers indicating the type of markers. + list of 4 ids for each ArUco marker in the ChArUco marker. + size of the chessboard squares in pixels. + size of the markers in pixels. + output image with the marker. The size of this image will be 3*squareLength + 2*marginSize. + minimum margins (in pixels) of the marker in the output image + width of the marker borders. + + + + Draw a planar board. + + Layout of the board that will be drawn. The board should be planar, z coordinate is ignored + Size of the output image in pixels. + Output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. + Minimum margins (in pixels) of the board in the output image + Width of the marker borders. + + + + Pose estimation for a board of markers. + + Vector of already detected markers corners. For each marker, its four corners are provided, (e.g std::vector>std::vector>cv::Point2f< < ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + List of identifiers for each marker in corners + Layout of markers in the board. The layout is composed by the marker identifiers and the positions of each marker corner in the board reference system. + Input 3x3 floating-point camera matrix + Vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board (see cv::Rodrigues). Used as initial guess if not empty. + Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. + Defines whether initial guess for rvec and tvec will be used or not. Used as initial guess if not empty. + The function returns the number of markers from the input employed for the board pose estimation. Note that returning a 0 means the pose has not been estimated. + + + + Given a board configuration and a set of detected markers, returns the corresponding image points and object points to call solvePnP. + + Marker board layout. + List of detected marker corners of the board. + List of identifiers for each marker. + Vector of vectors of board marker points in the board coordinate space. + Vector of vectors of the projections of board marker corner points. + + + + Parameters for the detectMarker process + + + + + Type of corner refinement method + + + + + Default corners + + + + + Refine the corners using subpix + + + + + Refine the corners using the contour-points + + + + + minimum window size for adaptive thresholding before finding contours (default 3) + + + + + maximum window size for adaptive thresholding before finding contours (default 23). + + + + + increments from adaptiveThreshWinSizeMin to adaptiveThreshWinSizeMax during the thresholding (default 10). + + + + + constant for adaptive thresholding before finding contours (default 7) + + + + + determine minimum perimeter for marker contour to be detected. This is defined as a rate respect to the maximum dimension of the input image (default 0.03). + + + + + determine maximum perimeter for marker contour to be detected. This is defined as a rate respect to the maximum dimension of the input image (default 4.0). + + + + + minimum accuracy during the polygonal approximation process to determine which contours are squares. + + + + + minimum distance between corners for detected markers relative to its perimeter (default 0.05) + + + + + minimum distance of any corner to the image border for detected markers (in pixels) (default 3) + + + + + minimum mean distance beetween two marker corners to be considered similar, so that the smaller one is removed. The rate is relative to the smaller perimeter of the two markers (default 0.05). + + + + + Corner refinement method + + + + + window size for the corner refinement process (in pixels) (default 5). + + + + + maximum number of iterations for stop criteria of the corner refinement process (default 30). + + + + + minimum error for the stop criteria of the corner refinement process (default: 0.1) + + + + + number of bits of the marker border, i.e. marker border width (default 1). + + + + + number of bits (per dimension) for each cell of the marker when removing the perspective (default 8). + + + + + width of the margin of pixels on each cell not considered for the determination of the cell bit. Represents the rate respect to the total size of the cell, i.e. perpectiveRemovePixelPerCell (default 0.13) + + + + + maximum number of accepted erroneous bits in the border (i.e. number of allowed white bits in the border). Represented as a rate respect to the total number of bits per marker (default 0.35). + + + + + minimun standard deviation in pixels values during the decodification step to apply Otsu thresholding (otherwise, all the bits are set to 0 or 1 depending on mean higher than 128 or not) (default 5.0) + + + + + error correction rate respect to the maximun error correction capability for each dictionary. (default 0.6). + + + + + Detection of quads can be done on a lower-resolution image, improving speed at a + cost of pose accuracy and a slight decrease in detection rate.Decoding the binary payload is still + done at full resolution. + + + + + What Gaussian blur should be applied to the segmented image (used for quad detection?) + Parameter is the standard deviation in pixels.Very noisy images benefit from non-zero values(e.g. 0.8). + + + + + reject quads containing too few pixels. + + + + + how many corner candidates to consider when segmenting a group of pixels into a quad. + + + + + Reject quads where pairs of edges have angles that are close to straight or close to + 180 degrees.Zero means that no quads are rejected. (In radians). + + + + + When fitting lines to the contours, what is the maximum mean squared error + allowed? This is useful in rejecting contours that are far from being quad shaped; rejecting + these quads "early" saves expensive decoding processing. + + + + + When we build our model of black & white pixels, we add an extra check that + the white model must be(overall) brighter than the black model.How much brighter? (in pixel values, [0, 255]). + + + + + should the thresholded image be deglitched? Only useful for very noisy images + + + + + Get the detector parameters with default values + + The default detector parameters + + + + Dictionary/Set of markers. It contains the inner codification. + + + + + Create a Dictionary using predefined values + + The name of the predefined dictionary + + + + Generates a new customizable marker dictionary. + + number of markers in the dictionary + number of bits per dimension of each markers + + + + Generates a new customizable marker dictionary. + + number of markers in the dictionary + number of bits per dimension of each markers + Include the markers in this dictionary at the beginning (optional) + + + + The name of the predefined dictionary + + + + + Dict4X4_50 + + + + + Dict4X4_100 + + + + + Dict4X4_250 + + + + + Dict4X4_1000 + + + + + Dict5X5_50 + + + + + Dict5X5_100 + + + + + Dict5X5_250 + + + + + Dict5X5_1000 + + + + + Dict6X6_50 + + + + + Dict6X6_100 + + + + + Dict6X6_250 + + + + + Dict6X6_1000 + + + + + Dict7X7_50 + + + + + Dict7X7_100 + + + + + Dict7X7_250 + + + + + Dict7X7_1000 + + + + + standard ArUco Library Markers. 1024 markers, 5x5 bits, 0 minimum distance + + + + + Release the unmanaged resource + + + + + Board of markers + + + + + Pointer to native IBoard + + + + + Planar board with grid arrangement of markers More common type of board. All markers are placed in the same plane in a grid arrangment. + + + + + Create a GridBoard object. + + number of markers in X direction + number of markers in Y direction + marker side length (normally in meters) + separation between two markers (same unit than markerLenght) + dictionary of markers indicating the type of markers. The first markersX*markersY markers in the dictionary are used. + id of first marker in dictionary to use on board. + + + + Draw a GridBoard. + + size of the output image in pixels. + output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. + minimum margins (in pixels) of the board in the output image + width of the marker borders. + + + + Release the unmanaged resource associated with this GridBoard + + + + + Pointer to native IBoard + + + + + A ChArUco board is a planar board where the markers are placed + inside the white squares of a chessboard.The benefits of ChArUco boards is that they provide + both, ArUco markers versatility and chessboard corner precision, which is important for + calibration and pose estimation. + + + + + ChArUco board + + number of chessboard squares in X direction + number of chessboard squares in Y direction + chessboard square side length (normally in meters) + marker side length (same unit than squareLength) + dictionary of markers indicating the type of markers. + + + + Draw a ChArUco board + + size of the output image in pixels. + output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. + minimum margins (in pixels) of the board in the output image + width of the marker borders. + + + + Release the unmanaged resource associated with this ChArUco board + + + + + Pointer to native IBoard + + + + + The module brings implementation of the image processing algorithms based on fuzzy mathematics. + + + + + Function type + + + + + Linear + + + + + Sinus + + + + + Inpaint algorithm + + + + + One step algorithm. + + + + + Algorithm automaticaly increasing radius of the basic function. + + + + + Iterative algorithm running in more steps using partial computations. + + + + + Creates kernel from basic functions. + + Basic function used in axis x. + Basic function used in axis y. + Final 32-b kernel derived from A and B. + Number of kernel channels. + + + + Creates kernel from general functions. + + Function type + Radius of the basic function. + Final 32-b kernel. + Number of kernel channels. + + + + Image inpainting. + + Input image. + Mask used for unwanted area marking. + Output 32-bit image. + Radius of the basic function. + Function type + Algorithm type + + + + Image filtering. + + Input image. + Final 32-b kernel. + Output 32-bit image. + + + + Entry points to the Open CV HFS module + + + + + Hierarchical Feature Selection for Efficient Image Segmentation + + + + + Create a hfs object + + The height of the input image + The width of the input image + segEgbThresholdI + minRegionSizeI + segEgbThresholdII + minRegionSizeII + spatialWeight + slicSpixelSize + numSlicIter + + + + Native algorithm pointer + + + + + Release all the unmanaged memory associate with this object + + + + + Segmentation with gpu + + The input image + if draw the image in the returned Mat. if this parameter is false, then the content of the returned Mat is a matrix of index, describing the region each pixel belongs to. And it's data type is CV_16U. If this parameter is true, then the returned Mat is a segmented picture, and color of each region is the average color of all pixels in that region. And it's data type is the same as the input image + Segmentation result + + + + Segmentation with cpu. This method is only implemented for reference. It is highly NOT recommended to use it. + + The input image + if draw the image in the returned Mat. if this parameter is false, then the content of the returned Mat is a matrix of index, describing the region each pixel belongs to. And it's data type is CV_16U. If this parameter is true, then the returned Mat is a segmented picture, and color of each region is the average color of all pixels in that region. And it's data type is the same as the input image + Segmentation result + + + + WaldBoost detector. + + + + + Create instance of WBDetector. + + + + + Read detector from FileNode. + + FileNode for input + + + + Write detector to FileStorage. + + FileStorage for output + + + + Train WaldBoost detector. + + Path to directory with cropped positive samples + Path to directory with negative (background) images + + + + Detect objects on image using WaldBoost detector. + + Input image for detection + Bounding boxes coordinates output vector + Confidence values for bounding boxes output vector + + + + Release all the unmanaged memory associated with this WBDetector. + + + + + Class that contains entry points for the XObjdetect module. + + + + + Entry points to the Open CV bioinspired module + + + + + A wrapper class which allows the Gipsa/Listic Labs model to be used. + This retina model allows spatio-temporal image processing (applied on still images, video sequences). + As a summary, these are the retina model properties: + 1. It applies a spectral whithening (mid-frequency details enhancement); + 2. high frequency spatio-temporal noise reduction; + 3. low frequency luminance to be reduced (luminance range compression); + 4. local logarithmic luminance compression allows details to be enhanced in low light conditions. + USE : this model can be used basically for spatio-temporal video effects but also for : + _using the getParvo method output matrix : texture analysiswith enhanced signal to noise ratio and enhanced details robust against input images luminance ranges + _using the getMagno method output matrix : motion analysis also with the previously cited properties + + For more information, reer to the following papers : + Benoit A., Caplier A., Durette B., Herault, J., "USING HUMAN VISUAL SYSTEM MODELING FOR BIO-INSPIRED LOW LEVEL IMAGE PROCESSING", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773, DOI: http://dx.doi.org/10.1016/j.cviu.2010.01.011 + Vision: Images, Signals and Neural Networks: Models of Neural Processing in Visual Perception (Progress in Neural Processing),By: Jeanny Herault, ISBN: 9814273686. WAPI (Tower ID): 113266891. + + The retina filter includes the research contributions of phd/research collegues from which code has been redrawn by the author : + _take a look at the retinacolor.hpp module to discover Brice Chaix de Lavarene color mosaicing/demosaicing and the reference paper: + B. Chaix de Lavarene, D. Alleysson, B. Durette, J. Herault (2007). "Efficient demosaicing through recursive filtering", IEEE International Conference on Image Processing ICIP 2007 + _take a look at imagelogpolprojection.hpp to discover retina spatial log sampling which originates from Barthelemy Durette phd with Jeanny Herault. A Retina / V1 cortex projection is also proposed and originates from Jeanny's discussions. + more informations in the above cited Jeanny Heraults's book. + + + + + Create a retina model + + The input frame size + + + + Create a retina model + + The input frame size + Specifies if (true) color is processed of not (false) to then processing gray level image + Specifies which kind of color sampling will be used + Activate retina log sampling, if true, the 2 following parameters can be used + Only useful if param useRetinaLogSampling=true, specifies the reduction factor of the output frame (as the center (fovea) is high resolution and corners can be underscaled, then a reduction of the output is allowed without precision leak + Only useful if param useRetinaLogSampling=true, specifies the strength of the log scale that is applied + + + + Get or Set the Retina parameters. + + + + + Method which allows retina to be applied on an input image, after run, encapsulated retina module is ready to deliver its outputs using dedicated acccessors. and + + The input image to be processed + + + + Accessors of the details channel of the retina (models foveal vision) + + The details channel of the retina. + + + + Accessors of the motion channel of the retina (models peripheral vision) + + The motion channel of the retina. + + + + Clear all retina buffers (equivalent to opening the eyes after a long period of eye close. + + + + + Release all unmanaged memory associated with the retina model. + + + + + The retina color sampling method. + + + + + Each pixel position is either R, G or B in a random choice + + + + + Color sampling is RGBRGBRGB..., line 2 BRGBRGBRG..., line 3, GBRGBRGBR... + + + + + Standard bayer sampling + + + + + Outer Plexiform Layer (OPL) and Inner Plexiform Layer Parvocellular (IplParvo) parameters + + + + + Specifies if (true) color is processed of not (false) to then processing gray level image + + + + + Normalise output. Use true for default + + + + + Photoreceptors local adaptation sensitivity. Use 0.7 for default + + + + + Photoreceptors temporal constant. Use 0.5 for default + + + + + Photoreceptors spatial constant. Use 0.53 for default + + + + + Horizontal cells gain. Use 0.0 for default + + + + + Hcells temporal constant. Use 1.0 for default + + + + + Hcells spatial constant. Use 7.0 for default + + + + + Ganglion cells sensitivity. Use 0.7 for default + + + + + Inner Plexiform Layer Magnocellular channel (IplMagno) + + + + + Normalise output + + + + + ParasolCells_beta. Use 0.0 for default + + + + + ParasolCells_tau. Use 0.0 for default + + + + + ParasolCells_k. Use 7.0 for default + + + + + Amacrin cells temporal cut frequency. Use 1.2 for default + + + + + V0 compression parameter. Use 0.95 for default + + + + + LocalAdaptintegration_tau. Use 0.0 for default + + + + + LocalAdaptintegration_k. Use 7.0 for default + + + + + Retina parameters + + + + + Outer Plexiform Layer (OPL) and Inner Plexiform Layer Parvocellular (IplParvo) parameters + + + + + Inner Plexiform Layer Magnocellular channel (IplMagno) + + + + + A wrapper class which allows the tone mapping algorithm of Meylan & al(2007) to be used with OpenCV. + + + + + Create a wrapper class which allows the tone mapping algorithm of Meylan & al(2007) to be used with OpenCV. + + The size of the images to process + + + + Applies a luminance correction (initially High Dynamic Range (HDR) tone mapping) + + The input image to process RGB or gray levels + The output tone mapped image + + + + Updates tone mapping behaviors by adjusting the local luminance computation area + + The first stage local adaptation area + The second stage local adaptation area + The factor applied to modulate the meanLuminance information (default is 1, see reference paper) + + + + Release all unmanaged memory associated with the RetinaFastToneMapping model. + + + + + Computes average hash value of the input image. + + This is a fast image hashing algorithm, but only work on simple case. + + + + Create an average hash object. + + + + + Release all the unmanaged resource associated with AverageHash + + + + + The module brings implementation of the image processing algorithms based on fuzzy mathematics. + + + + + Image hash based on block mean. + + + + + Block Mean Hash mode + + + + + use fewer block and generate 16*16/8 uchar hash value + + + + + use block blocks(step sizes/2), generate 31*31/8 + 1 uchar hash value + + + + + Create a Block Mean Hash object + + The hash mode + + + + Release all the unmanaged resource associated with BlockMeanHash + + + + + Image hash based on color moments. + + + + + Create a Color Moment Hash object + + + + + Release all the unmanaged resource associated with ColorMomentHash + + + + + The Image Hash base class + + + + + The pointer to the ImgHashBase object + + + + + Get the pointer to the ImgHashBase object + + The pointer to the ImgHashBase object + + + + Reset the pointers + + + + + Computes hash of the input image + + input image to compute hash value + hash of the image + + + + Compare the hash value between inOne and inTwo + + Hash value one + Hash value two + indicate similarity between inOne and inTwo, the meaning of the value vary from algorithms to algorithms + + + + Marr-Hildreth Operator Based Hash, slowest but more discriminative. + + + + + Create a Marr-Hildreth operator based hash. + + Scale factor for marr wavelet. + Level of scale factor + + + + Release all the unmanaged resource associated with MarrHildrethHash + + + + + Slower than average hash, but tolerant of minor modifications + + + + + Create a PHash object + + + + + Release all the unmanaged resource associated with AverageHash + + + + + Image hash based on Radon transform + + + + + Create an image hash based on Radon transform + + Sigma + Number of angle line + + + + Release all the unmanaged resource associated with RadialVarianceHash + + + + + Class implementing two-dimensional phase unwrapping. + + This algorithm belongs to the quality-guided phase unwrapping methods. First, it computes a reliability map from second differences between a pixel and its eight neighbours. Reliability values lie between 0 and 16*pi*pi. Then, this reliability map is used to compute the reliabilities of "edges". An edge is an entity defined by two pixels that are connected horizontally or vertically. Its reliability is found by adding the reliabilities of the two pixels connected through it. Edges are sorted in a histogram based on their reliability values. This histogram is then used to unwrap pixels, starting from the highest quality pixel. + + + + Create a HistogramPhaseUnwrapping instance + + Phase map width. + Phase map height. + Bins in the histogram are not of equal size. Default value is 3*pi*pi. The one before "histThresh" value are smaller. + Number of bins between 0 and "histThresh". Default value is 10. + Number of bins between "histThresh" and 32*pi*pi (highest edge reliability value). Default value is 5. + + + + Release the unmanaged resources associated with the HistogramPhaseUnwrapping + + + + + Get the reliability map computed from the wrapped phase map. + + Image where the reliability map is stored. + + + + Unwraps a 2D phase map. + + The wrapped phase map that needs to be unwrapped. + The unwrapped phase map. + Optional parameter used when some pixels do not hold any phase information in the wrapped phase map. + + + + Provide interfaces to the Open CV PhaseUnwrapping functions + + + + + Main interface for all quality filters. + + + + + Pointer to the native QualityBase object + + + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + + + Compute quality score per channel with the per-channel score in each element of the result + + The quality base object + Comparison image(s), or image(s) to evaluate for no-reference quality algorithms + Quality score per channel + + + + Returns output quality map images that were generated during computation, if supported by the algorithm. + + The quality base object + Output quality map images that were generated during computation, if supported by the algorithm. + + + + BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator) is a No Reference Image Quality Assessment (NR-IQA) algorithm. + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create an object which calculates quality. + + Contains a path to the BRISQUE model data. If empty, attempts to load from ${OPENCV_DIR}/testdata/contrib/quality/brisque_model_live.yml + contains a path to the BRISQUE range data. If empty, attempts to load from ${OPENCV_DIR}/testdata/contrib/quality/brisque_range_live.yml + + + + Release the unmanaged memory associated with this object + + + + + Implementation to Gradient Magnitude Similarity Deviation: A Highly Efficient Perceptual Image Quality Index + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create a new instance of GMSD quality measurement. + + vector of reference images, converted to internal type + + + + Release the unmanaged memory associated with this object + + + + + Mean square error algorithm + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create a new instance of MSE quality measurement. + + vector of reference images, converted to internal type + + + + Release the unmanaged memory associated with this object + + + + + Peak signal to noise ratio (PSNR) algorithm + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create an instance of peak signal to noise ratio (PSNR) algorithm + + Input image(s) to use as the source for comparison + maximum per-channel value for any individual pixel; eg 255 for uint8 image + + + + Release the unmanaged memory associated with this object + + + + + Structural similarity algorithm + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create an object which calculates quality via mean square error. + + input image(s) to use as the source for comparison + + + + Release the unmanaged memory associated with this object + + + + + Class containing the methods needed for Quasi Dense Stereo computation. + + + + + Create a new instance containing the methods needed for Quasi Dense Stereo computation. + + Image size + The path for the parameters + + + + Release the unmanaged memory associated with this object + + + + + Main process of the algorithm. This method computes the sparse seeds and then densifies them. + Initially input images are converted to gray-scale and then the sparseMatching method is called to obtain the sparse stereo. Finally quasiDenseMatching is called to densify the corresponding points. + + The left Channel of a stereo image pair. + The right Channel of a stereo image pair. + If input images are in color, the method assumes that are BGR and converts them to grayscale. + + + + Compute and return the disparity map based on the correspondences found in the "process" method. + + The level of detail in output disparity image. + Mat containing a the disparity image in grayscale. + + + + The propagation parameters + + + + + similarity window + + + + + similarity window + + + + + border to ignore + + + + + border to ignore + + + + + correlation threshold + + + + + texture threshold + + + + + neighborhood size + + + + + disparity gradient threshold + + + + + Parameters for LK flow algorithm + + + + + Parameters for LK flow algorithm + + + + + Parameters for LK flow algorithm + + + + + Parameters for LK flow algorithm + + + + + Parameters for GFT algorithm. + + + + + Parameters for GFT algorithm. + + + + + Parameters for GFT algorithm. + + + + + Parameters for the QuasiDenseStereo class + + + + + Class that contains entry points for the Stereo module. + + + + + This class implements a very efficient and robust variant of the iterative closest point (ICP) algorithm. The task is to register a 3D model (or point cloud) against a set of noisy target data. The variants are put together by myself after certain tests. The task is to be able to match partial, noisy point clouds in cluttered scenes, quickly. You will find that my emphasis is on the performance, while retaining the accuracy. + + + + + The sampling type + + + + + Uniform + + + + + Gelfand + + + + + Constructor to a very efficient and robust variant of the iterative closest point (ICP) algorithm. + + number of iterations + Controls the accuracy of registration at each iteration of ICP. + Robust outlier rejection is applied for robustness. This value actually corresponds to the standard deviation coefficient. Points with rejectionScale * sigma are ignored during registration. + Number of pyramid levels to proceed. Deep pyramids increase speed but decrease accuracy. Too coarse pyramids might have computational overhead on top of the inaccurate registrtaion. This parameter should be chosen to optimize a balance. Typical values range from 4 to 10. + Currently this parameter is ignored and only uniform sampling is applied. + Currently this parameter is ignored and only PickyICP is applied. Leave it as 1. + + + + Release the unmanaged resources associated with the ICP + + + + + Perform registration. + + The input point cloud for the model. Expected to have the normals (Nx6). Currently, CV_32F is the only supported data type. + The input point cloud for the scene. It is assumed that the model is registered on the scene. Scene remains static. Expected to have the normals (Nx6). Currently, CV_32F is the only supported data type. + The output registration error. + Transformation between srcPC and dstPC. + On successful termination, the function returns 0. + + + + Entry points to the Open CV Surface Matching module + + + + + Base class for convolution (or cross-correlation) operator. + + + + + Create a Cuda Convolution object. + + Block size. If you leave default value Size(0,0) then automatic estimation of block size will be used (which is optimized for speed). By varying user_block_size you can reduce memory requirements at the cost of speed. + + + + Computes a convolution (or cross-correlation) of two images. + + Source image. Only CV_32FC1 images are supported for now. + Template image. The size is not greater than the image size. The type is the same as image . + Result image. If image is W x H and templ is w x h, then result must be W-w+1 x H-h+1. + Flags to evaluate cross-correlation instead of convolution. + Stream for the asynchronous version + + + + Release all the unmanaged memory associated with this object + + + + + This class wraps the functional calls to the opencv_gpu module + + + + + Get the compute capability of the device + + The device + The major version of the compute capability + The minor version of the compute capability + + + + Get the number of multiprocessors on device + + The device + The number of multiprocessors on device + + + + Get the device name + + + + + Return true if Cuda is found on the system + + + + + Get the opencl platform summary as a string + + An opencl platfor summary + + + + Get the number of Cuda enabled devices + + The number of Cuda enabled devices + + + + Set the current Gpu Device + + The id of the device to be setted as current + + + + Get the current Cuda device id + + The current Cuda device id + + + + Create a GpuMat from the specific region of . The data is shared between the two GpuMat. + + The gpuMat to extract regions from. + The column range. Use MCvSlice.WholeSeq for all columns. + The row range. Use MCvSlice.WholeSeq for all rows. + Pointer to the GpuMat + + + + Resize the GpuMat + + The input GpuMat + The resulting GpuMat + The interpolation type + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + gpuMatReshape the src GpuMat + + The source GpuMat + The resulting GpuMat, as input it should be an empty GpuMat. + The new number of channels + The new number of rows + + + + Returns header, corresponding to a specified rectangle of the input GpuMat. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. + + Input GpuMat + Zero-based coordinates of the rectangle of interest. + Pointer to the resultant sub-array header. + + + + Shifts a matrix to the left (c = a << scalar) + + The matrix to be shifted. + The scalar to shift by. + The result of the shift + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Shifts a matrix to the right (c = a >> scalar) + + The matrix to be shifted. + The scalar to shift by. + The result of the shift + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Adds one matrix to another (c = a + b). + + The first matrix to be added. + The second matrix to be added. + The sum of the two matrix + The optional mask that is used to select a subarray. Use null if not needed + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Subtracts one matrix from another (c = a - b). + + The matrix where subtraction take place + The matrix to be substracted + The result of a - b + The optional mask that is used to select a subarray. Use null if not needed + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes element-wise product of the two GpuMat: c = scale * a * b. + + The first GpuMat to be element-wise multiplied. + The second GpuMat to be element-wise multiplied. + The element-wise multiplication of the two GpuMat + The scale + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes element-wise quotient of the two GpuMat (c = scale * a / b). + + The first GpuMat + The second GpuMat + The element-wise quotient of the two GpuMat + The scale + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes the weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma) + + The first source GpuMat + The weight for + The second source GpuMat + The weight for + The constant to be added + The result + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes element-wise absolute difference of two GpuMats (c = abs(a - b)). + + The first GpuMat + The second GpuMat + The result of the element-wise absolute difference. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes absolute value of each pixel in an image + + The source GpuMat, support depth of Int16 and float. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes square of each pixel in an image + + The source GpuMat, support depth of byte, UInt16, Int16 and float. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes square root of each pixel in an image + + The source GpuMat, support depth of byte, UInt16, Int16 and float. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Transposes a matrix. + + Source matrix. 1-, 4-, 8-byte element sizes are supported for now. + Destination matrix. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Compares elements of two GpuMats (c = a <cmpop> b). + Supports CV_8UC4, CV_32FC1 types + + The first GpuMat + The second GpuMat + The result of the comparison. + The type of comparison + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Resizes the image. + + The source image. Has to be GpuMat<Byte>. If stream is used, the GpuMat has to be either single channel or 4 channels. + The destination image. + The interpolation type. Supports INTER_NEAREST, INTER_LINEAR. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Scale factor along the horizontal axis. If it is zero, it is computed as: (double)dsize.width/src.cols + Scale factor along the vertical axis. If it is zero, it is computed as: (double)dsize.height/src.rows + Destination image size. If it is zero, it is computed as: dsize = Size(round(fx* src.cols), round(fy* src.rows)). Either dsize or both fx and fy must be non-zero. + + + + Copies each plane of a multi-channel GpuMat to a dedicated GpuMat + + The multi-channel gpuMat + Pointer to an array of single channel GpuMat pointers + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Makes multi-channel GpuMat out of several single-channel GpuMats + + Pointer to an array of single channel GpuMat pointers + The multi-channel gpuMat + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Computes exponent of each matrix element (b = exp(a)) + + The source GpuMat. Supports Byte, UInt16, Int16 and float type. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes power of each matrix element: + (dst(i,j) = pow( src(i,j) , power), if src.type() is integer; + (dst(i,j) = pow(fabs(src(i,j)), power), otherwise. + supports all, except depth == CV_64F + + The source GpuMat + The power + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes natural logarithm of absolute value of each matrix element: b = log(abs(a)) + + The source GpuMat. Supports Byte, UInt16, Int16 and float type. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes magnitude of each (x(i), y(i)) vector + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes squared magnitude of each (x(i), y(i)) vector + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes angle (angle(i)) of each (x(i), y(i)) vector + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + If true, the output angle is in degrees, otherwise in radian + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts Cartesian coordinates to polar + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + If true, the output angle is in degrees, otherwise in radian + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts polar coordinates to Cartesian + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + If true, the input angle is in degrees, otherwise in radian + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Finds minimum and maximum element values and their positions. The extremums are searched over the whole GpuMat or, if mask is not IntPtr.Zero, in the specified GpuMat region. + + The source GpuMat, single-channel + Pointer to returned minimum value + Pointer to returned maximum value + Pointer to returned minimum location + Pointer to returned maximum location + The optional mask that is used to select a subarray. Use null if not needed + + + + Finds global minimum and maximum matrix elements and returns their values with locations. + + Single-channel source image. + The output min and max values + The ouput min and max locations + Optional mask to select a sub-matrix. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs downsampling step of Gaussian pyramid decomposition. + + The source CudaImage. + The destination CudaImage, should have 2x smaller width and height than the source. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs up-sampling step of Gaussian pyramid decomposition. + + The source CudaImage. + The destination image, should have 2x smaller width and height than the source. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes mean value and standard deviation + + The GpuMat. Supports only CV_8UC1 type + The mean value + The standard deviation + + + + Computes norm of the difference between two GpuMats + + The GpuMat. Supports only CV_8UC1 type + If IntPtr.Zero, norm operation is apply to only. Otherwise, this is the GpuMat of type CV_8UC1 + The norm type. Supports NORM_INF, NORM_L1, NORM_L2. + The norm of the if is IntPtr.Zero. Otherwise the norm of the difference between two GpuMats. + + + + Returns the norm of a matrix. + + Source matrix. Any matrices except 64F are supported. + Norm type. NORM_L1 , NORM_L2 , and NORM_INF are supported for now. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + The norm of a matrix + + + + Returns the norm of a matrix. + + Source matrix. Any matrices except 64F are supported. + The GpuMat to store the result + Norm type. NORM_L1 , NORM_L2 , and NORM_INF are supported for now. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Returns the difference of two matrices. + + Source matrix. Any matrices except 64F are supported. + Second source matrix (if any) with the same size and type as src1. + The GpuMat where the result will be stored in + Norm type. NORM_L1 , NORM_L2 , and NORM_INF are supported for now. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Returns the sum of absolute values for matrix elements. + + Source image of any depth except for CV_64F. + optional operation mask; it must have the same size as src and CV_8UC1 type. + The sum of absolute values for matrix elements. + + + + Returns the sum of absolute values for matrix elements. + + Source image of any depth except for CV_64F. + The GpuMat where the result will be stored. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Returns the squared sum of matrix elements. + + Source image of any depth except for CV_64F. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + The squared sum of matrix elements. + + + + Returns the squared sum of matrix elements. + + Source image of any depth except for CV_64F. + The GpuMat where the result will be stored + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Counts non-zero array elements + + Single-channel source image. + The number of non-zero GpuMat elements + + + + Counts non-zero array elements + + Single-channel source image. + A Gpu mat to hold the result + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Normalizes the norm or value range of an array. + + Input array. + Output array of the same size as src . + Norm value to normalize to or the lower range boundary in case of the range normalization. + Upper range boundary in case of the range normalization; it is not used for the norm normalization. + Normalization type ( NORM_MINMAX , NORM_L2 , NORM_L1 or NORM_INF ). + Optional depth of the output array. + Optional operation mask. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Reduces GpuMat to a vector by treating the GpuMat rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained. + + The input GpuMat + Destination vector. Its size and type is defined by dim and dtype parameters + Dimension index along which the matrix is reduced. 0 means that the matrix is reduced to a single row. 1 means that the matrix is reduced to a single column. + The reduction operation type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Flips the GpuMat<Byte> in one of different 3 ways (row and column indices are 0-based). + + The source GpuMat. supports 1, 3 and 4 channels GpuMat with Byte, UInt16, int or float depth + Destination GpuMat. The same source and type as + Specifies how to flip the GpuMat. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical conjunction of two GpuMats: + dst(I)=src1(I)^src2(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The first source GpuMat + The second source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical or of two GpuMats: + dst(I)=src1(I) | src2(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The first source GpuMat + The second source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical and of two GpuMats: + dst(I)=src1(I) & src2(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The first source GpuMat + The second source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical not + dst(I)=~src(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes per-element minimum of two GpuMats (dst = min(src1, src2)) + + The first GpuMat + The second GpuMat + The result GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes per-element maximum of two GpuMats (dst = max(src1, src2)) + + The first GpuMat + The second GpuMat + The result GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Applies fixed-level thresholding to single-channel array. The function is typically used to get bi-level (binary) image out of grayscale image or for removing a noise, i.e. filtering out pixels with too small or too large values. There are several types of thresholding the function supports that are determined by thresholdType + + Source array (single-channel, 8-bit of 32-bit floating point). + Destination array; must be either the same type as src or 8-bit. + Threshold value + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Thresholding type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs generalized matrix multiplication: + dst = alpha*op(src1)*op(src2) + beta*op(src3), where op(X) is X or XT + + The first source array. + The second source array. + The scalar + The third source array (shift). Can be IntPtr.Zero, if there is no shift. + The scalar + The destination array. + The gemm operation type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Warps the image using affine transformation + + The source GpuMat + The destination GpuMat + The 2x3 transformation matrix (pointer to CvArr) + Supports NN, LINEAR, CUBIC + The border mode, use BORDER_TYPE.CONSTANT for default. + The border value, use new MCvScalar() for default. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + The size of the destination image + + + + Warps the image using perspective transformation + + The source GpuMat + The destination GpuMat + The 2x3 transformation matrix (pointer to CvArr) + Supports NN, LINEAR, CUBIC + The border mode, use BORDER_TYPE.CONSTANT for default. + The border value, use new MCvScalar() for default. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + The size of the destination image + + + + DST[x,y] = SRC[xmap[x,y],ymap[x,y]] with bilinear interpolation. + + The source GpuMat. Supports CV_8UC1, CV_8UC3 source types. + The dstination GpuMat. Supports CV_8UC1, CV_8UC3 source types. + The xmap. Supports CV_32FC1 map type. + The ymap. Supports CV_32FC1 map type. + Interpolation type. + Border mode. Use BORDER_CONSTANT for default. + The value of the border. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Rotates an image around the origin (0,0) and then shifts it. + + Source image. Supports 1, 3 or 4 channels images with Byte, UInt16 or float depth + Destination image with the same type as src. Must be pre-allocated + Angle of rotation in degrees + Shift along the horizontal axis + Shift along the verticle axis + The size of the destination image + Interpolation method. Only INTER_NEAREST, INTER_LINEAR, and INTER_CUBIC are supported. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Copies a 2D array to a larger destination array and pads borders with the given constant. + + Source image. + Destination image with the same type as src. The size is Size(src.cols+left+right, src.rows+top+bottom). + Number of pixels in each direction from the source image rectangle to extrapolate. + Number of pixels in each direction from the source image rectangle to extrapolate. + Number of pixels in each direction from the source image rectangle to extrapolate. + Number of pixels in each direction from the source image rectangle to extrapolate. + Border Type + Border value. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes the integral image and integral for the squared image + + The source GpuMat, supports only CV_8UC1 source type + The sum GpuMat, supports only CV_32S source type, but will contain unsigned int values + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes squared integral image + + The source GpuMat, supports only CV_8UC1 source type + The sqsum GpuMat, supports only CV32F source type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs a forward or inverse discrete Fourier transform (1D or 2D) of floating point matrix. + Param dft_size is the size of DFT transform. + + If the source matrix is not continous, then additional copy will be done, + so to avoid copying ensure the source matrix is continous one. If you want to use + preallocated output ensure it is continuous too, otherwise it will be reallocated. + + Being implemented via CUFFT real-to-complex transform result contains only non-redundant values + in CUFFT's format. Result as full complex matrix for such kind of transform cannot be retrieved. + + For complex-to-real transform it is assumed that the source matrix is packed in CUFFT's format. + + The source GpuMat + The resulting GpuMat of the DST, must be pre-allocated and continious. If single channel, the result is real. If double channel, the result is complex + Size of a discrete Fourier transform. + DFT flags + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs a per-element multiplication of two Fourier spectrums and scales the result. + + First spectrum. + Second spectrum with the same size and type. + Destination spectrum. + Mock parameter used for CPU/CUDA interfaces similarity, simply add a 0 value. + Scale constant. + Optional flag to specify if the second spectrum needs to be conjugated before the multiplication. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs a per-element multiplication of two Fourier spectrums. + + First spectrum. + Second spectrum with the same size and type. + Destination spectrum. + Mock parameter used for CPU/CUDA interfaces similarity. + Optional flag to specify if the second spectrum needs to be conjugated before the multiplication. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Sets a CUDA device and initializes it for the current thread with OpenGL interoperability. + This function should be explicitly called after OpenGL context creation and before any CUDA calls. + + System index of a CUDA device starting with 0. + + + + Colors a disparity image. + + Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit floating-point disparity image. If 16-bit signed format is used, the values are assumed to have no fractional bits. + Output disparity image. It has the same size as src_disp. The type is CV_8UC4 in BGRA format (alpha = 255). + Number of disparities. + Stream for the asynchronous version. + + + + Release the GpuMat + + Pointer to the GpuMat + + + + Create an empty GpuMat + + Pointer to an empty GpuMat + + + + Convert a CvArr to a GpuMat + + Pointer to a CvArr + Pointer to the GpuMat + + + + Get the GpuMat size: + width == number of columns, height == number of rows + + The GpuMat + The size of the matrix + + + + Get the GpuMat type + + The GpuMat + The GpuMat type + + + + Create a GpuMat of the specified size + + Pointer to the native cv::Mat + The number of rows (height) + The number of columns (width) + The type of GpuMat + Pointer to the GpuMat + + + + Create a GpuMat of the specified size. The allocated data is continuous within this GpuMat. + + The number of rows (height) + The number of columns (width) + The type of GpuMat + Pointer to the GpuMat + + + + Performs blocking upload data to GpuMat. + + The destination gpuMat + The CvArray to be uploaded to GPU + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Downloads data from device to host memory. Blocking calls. + + The source GpuMat + The CvArray where data will be downloaded to + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Copy the source GpuMat to destination GpuMat, using an optional mask. + + The GpuMat to be copied from + The GpuMat to be copied to + The optional mask, use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + This function has several different purposes and thus has several synonyms. It copies one GpuMat to another with optional scaling, which is performed first, and/or optional type conversion, performed after: + dst(I)=src(I)*scale + (shift,shift,...) + All the channels of multi-channel GpuMats are processed independently. + The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination GpuMat element type, it is set to the nearest representable value on the real axis. + In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate convertTo synonym. + + Source GpuMat + Destination GpuMat + The depth type of the destination GpuMat + Scale factor + Value added to the scaled source GpuMat elements + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Changes shape of GpuMat without copying data. + + The GpuMat to be reshaped. + The result GpuMat. + New number of channels. newCn = 0 means that the number of channels remains unchanged. + New number of rows. newRows = 0 means that the number of rows remains unchanged unless it needs to be changed according to newCn value. + A GpuMat of different shape + + + + Converts image from one color space to another + + The source GpuMat + The destination GpuMat + The color conversion code + Number of channels in the destination image. If the parameter is 0, the number of the channels is derived automatically from src and the code . + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts an image from Bayer pattern to RGB or grayscale. + + Source image (8-bit or 16-bit single channel). + Destination image. + Color space conversion code (see the description below). + Number of channels in the destination image. If the parameter is 0, the number of the channels is derived automatically from src and the code . + Stream for the asynchronous version. + + + + Swap channels. + + The image where the channels will be swapped + + Integer array describing how channel values are permutated. The n-th entry + of the array contains the number of the channel that is stored in the n-th channel of + the output image. E.g. Given an RGBA image, aDstOrder = [3,2,1,0] converts this to ABGR + channel order. + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Routines for correcting image color gamma + + Source image (3- or 4-channel 8 bit). + Destination image. + True for forward gamma correction or false for inverse gamma correction. + Stream for the asynchronous version. + + + + Composites two images using alpha opacity values contained in each image. + + First image. Supports CV_8UC4 , CV_16UC4 , CV_32SC4 and CV_32FC4 types. + Second image. Must have the same size and the same type as img1 . + Destination image + Flag specifying the alpha-blending operation + Stream for the asynchronous version + + + + Calculates histogram for one channel 8-bit image. + + Source image with CV_8UC1 type. + Destination histogram with one row, 256 columns, and the CV_32SC1 type. + tream for the asynchronous version. + + + + Equalizes the histogram of a grayscale image. + + Source image with CV_8UC1 type. + Destination image. + Stream for the asynchronous version. + + + + Calculates histogram with evenly distributed bins for single channel source. + + The source GpuMat. Supports CV_8UC1, CV_16UC1 and CV_16SC1 types. + Histogram with evenly distributed bins. A GpuMat<int> type. + The size of histogram (number of levels) + The lower level + The upper level + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Histogram with evenly distributed bins + + + + Calculates a histogram with bins determined by the levels array + + Source image. CV_8U , CV_16U , or CV_16S depth and 1 or 4 channels are supported. For a four-channel image, all channels are processed separately. + Destination histogram with one row, (levels.cols-1) columns, and the CV_32SC1 type. + Number of levels in the histogram. + Stream for the asynchronous version. + + + + Performs linear blending of two images. + + First image. Supports only CV_8U and CV_32F depth. + Second image. Must have the same size and the same type as img1 . + Weights for first image. Must have tha same size as img1. Supports only CV_32F type. + Weights for second image. Must have tha same size as img2. Supports only CV_32F type. + Destination image. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Applies bilateral filter to the image. + + The source image + The destination image; should have the same size and the same type as src + The diameter of each pixel neighborhood, that is used during filtering. + Filter sigma in the color space. Larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting in larger areas of semi-equal color + Filter sigma in the coordinate space. Larger value of the parameter means that farther pixels will influence each other (as long as their colors are close enough; see sigmaColor). Then d>0, it specifies the neighborhood size regardless of sigmaSpace, otherwise d is proportional to sigmaSpace. + Pixel extrapolation method, use DEFAULT for default + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs mean-shift filtering for each point of the source image. It maps each point of the source + image into another point, and as the result we have new color and new position of each point. + + Source CudaImage. Only CV 8UC4 images are supported for now. + Destination CudaImage, containing color of mapped points. Will have the same size and type as src. + Spatial window radius. + Color window radius. + Termination criteria. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs mean-shift procedure and stores information about processed points (i.e. their colors + and positions) into two images. + + Source CudaImage. Only CV 8UC4 images are supported for now. + Destination CudaImage, containing color of mapped points. Will have the same size and type as src. + Destination CudaImage, containing position of mapped points. Will have the same size as src and CV 16SC2 type. + Spatial window radius. + Color window radius. + Termination criteria. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs mean-shift segmentation of the source image and eleminates small segments. + + Source CudaImage. Only CV 8UC4 images are supported for now. + Segmented Image. Will have the same size and type as src. Note that this is an Image type and not CudaImage type + Spatial window radius. + Color window radius. + Minimum segment size. Smaller segements will be merged. + Termination criteria. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result + + Image where the search is running. It should be 8-bit or 32-bit floating-point + Searched template; must be not greater than the source image and the same data type as the image + A map of comparison results; single-channel 32-bit floating-point. If image is WxH and templ is wxh then result must be W-w+1xH-h+1. + Pointer to cv::gpu::TemplateMatching + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Calculates a dense optical flow. + + The dense optical flow object + first input image. + second input image of the same size and the same type as . + computed flow image that has the same size as I0 and type CV_32FC2. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates a sparse optical flow. + + The sparse optical flow + First input image. + Second input image of the same size and the same type as . + Vector of 2D points for which the flow needs to be found. + Output vector of 2D points containing the calculated new positions of input features in the second image. + Output status vector. Each element of the vector is set to 1 if the flow for the corresponding features has been found. Otherwise, it is set to 0. + Optional output vector that contains error response for each point (inverse confidence). + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + The Cuda device information + + + + + Query the information of the gpu device that is currently in use. + + + + + Query the information of the cuda device with the specific id. + + The device id + + + + The id of the device + + + + + The name of the device + + + + + The compute capability + + + + + The number of single multi processors + + + + + Get the amount of free memory at the moment + + + + + Get the amount of total memory + + + + + Indicates if the device has the specific feature + + The device feature + True if the feature is supported + + + + Checks whether the Cuda module can be run on the given device + + + + + GPU feature + + + + + Cuda compute 1.0 + + + + + Cuda compute 1.1 + + + + + Cuda compute 1.2 + + + + + Cuda compute 1.3 + + + + + Cuda compute 2.0 + + + + + Cuda compute 2.1 + + + + + Global Atomic + + + + + Shared Atomic + + + + + Native double + + + + + Release the unmanaged resource related to the GpuDevice + + + + + An CudaImage is very similar to the Emgu.CV.Image except that it is being used for GPU processing + + Color type of this image (either Gray, Bgr, Bgra, Hsv, Hls, Lab, Luv, Xyz, Ycc, Rgb or Rbga) + Depth of this image (either Byte, SByte, Single, double, UInt16, Int16 or Int32) + + + + Create an empty CudaImage + + + + + Create the CudaImage from the unmanaged pointer. + + The unmanaged pointer to the GpuMat. It is the user's responsibility that the Color type and depth matches between the managed class and unmanaged pointer. + if true, unpon object disposal, we will cann the release function on the unmanaged + + + + Create a GPU image from a regular image + + The image to be converted to GPU image + + + + Create a CudaImage of the specific size + + The number of rows (height) + The number of columns (width) + Indicates if the data should be continuous + + + + Create a CudaImage of the specific size + + The number of rows (height) + The number of columns (width) + + + + Create a CudaImage of the specific size + + The size of the image + + + + Create a CudaImage from the specific region of . The data is shared between the two CudaImage + + The CudaImage where the region is extracted from + The column range. Use MCvSlice.WholeSeq for all columns. + The row range. Use MCvSlice.WholeSeq for all rows. + + + + Convert the current CudaImage to a regular Image. + + A regular image + + + Convert the current CudaImage to the specific color and depth + The type of color to be converted to + The type of pixel depth to be converted to + CudaImage of the specific color and depth + + + + Convert the source image to the current image, if the size are different, the current image will be a resized version of the srcImage. + + The color type of the source image + The color depth of the source image + The sourceImage + + + + Create a clone of this CudaImage + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + A clone of this CudaImage + + + + Resize the CudaImage. The calling GpuMat be GpuMat%lt;Byte>. If stream is specified, it has to be either 1 or 4 channels. + + The new size + The interpolation type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + A CudaImage of the new size + + + + Returns a CudaImage corresponding to a specified rectangle of the current CudaImage. The data is shared with the current matrix. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. + + Zero-based coordinates of the rectangle of interest. + A CudaImage that represent the region of the current CudaImage. + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the ith row of the CudaImage. The data is shared with the current Image. + + The row to be extracted + The ith row of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the [ ) rows of the CudaImage. The data is shared with the current Image. + + The inclusive stating row to be extracted + The exclusive ending row to be extracted + The [ ) rows of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the ith column of the CudaImage. The data is shared with the current Image. + + The column to be extracted + The ith column of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the [ ) columns of the CudaImage. The data is shared with the current Image. + + The inclusive stating column to be extracted + The exclusive ending column to be extracted + The [ ) columns of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + convert the current CudaImage to its equivalent Bitmap representation + + + + + Gpu look up table + + + + + Create the look up table + + It should be either 1 or 3 channel matrix of 1x256 + + + + Transform the image using the lookup table + + The image to be transformed + The transformation result + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associated with this look up table + + + + + A GpuMat, use the generic version if possible. The non generic version is good for use as buffer in stream calls. + + + + + Create an empty GpuMat + + + + + Create a GpuMat of the specified size + + The number of rows (height) + The number of columns (width) + The number of channels + The type of depth + Indicates if the data should be continuous + + + + allocates new GpuMat data unless the GpuMat already has specified size and type + + The number of rows + The number of cols + The depth type + The number of channels. + + + + Create a GpuMat from the specific pointer + + Pointer to the unmanaged gpuMat + True if we need to call Release function to during object disposal + + + + Create a GpuMat from an CvArray of the same depth type + + The CvArray to be converted to GpuMat + + + + Create a GpuMat from the specific region of . The data is shared between the two GpuMat + + The matrix where the region is extracted from + The column range. + The row range. + + + + Release the unmanaged memory associated with this GpuMat + + + + + Get the GpuMat size: + width == number of columns, height == number of rows + + + + + Get the type of the GpuMat + + + + + Pointer to the InputArray + + The input array + + + + Pointer to the OutputArray + + The output array + + + + Pointer to the InputOutputArray + + The input output array + + + + Upload data to GpuMat + + The CvArray to be uploaded to GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Downloads data from device to host memory. + + The destination CvArray where the GpuMat data will be downloaded to. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Convert the GpuMat to Mat + + The Mat that contains the same data as this GpuMat + + + + Get a copy of the data values as an array + + If true, a jagged array will returned. Otherwise it will return a regular array. + a copy of the data values as an array + + + + Copies scalar value to every selected element of the destination GpuMat: + arr(I)=value if mask(I)!=0 + + Fill value + Operation mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Can be IntPtr.Zero if not used + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Copy the source GpuMat to destination GpuMat, using an optional mask. + + The output array to be copied to + The optional mask, use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + This function has several different purposes and thus has several synonyms. It copies one GpuMat to another with optional scaling, which is performed first, and/or optional type conversion, performed after: + dst(I)=src(I)*scale + (shift,shift,...) + All the channels of multi-channel GpuMats are processed independently. + The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination GpuMat element type, it is set to the nearest representable value on the real axis. + In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate convertTo synonym. + + Destination GpuMat + Result type + Scale factor + Value added to the scaled source GpuMat elements + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Changes shape of GpuMat without copying data. + + New number of channels. newCn = 0 means that the number of channels remains unchanged. + New number of rows. newRows = 0 means that the number of rows remains unchanged unless it needs to be changed according to newCn value. + A GpuMat of different shape + + + + Returns a GpuMat corresponding to the ith row of the GpuMat. The data is shared with the current GpuMat. + + The row to be extracted + The ith row of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns a GpuMat corresponding to the [ ) rows of the GpuMat. The data is shared with the current GpuMat. + + The inclusive stating row to be extracted + The exclusive ending row to be extracted + The [ ) rows of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns a GpuMat corresponding to the ith column of the GpuMat. The data is shared with the current GpuMat. + + The column to be extracted + The ith column of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns a GpuMat corresponding to the [ ) columns of the GpuMat. The data is shared with the current GpuMat. + + The inclusive stating column to be extracted + The exclusive ending column to be extracted + The [ ) columns of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns true if the two GpuMat equals + + The other GpuMat to be compares with + True if the two GpuMat equals + + + + Makes multi-channel array out of several single-channel arrays + + + An array of single channel GpuMat where each item + in the array represent a single channel of the GpuMat + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of single channel GpuMat where each item + in the array represent a single channel of the original GpuMat + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Split current GpuMat into an array of single channel GpuMat where each element + in the array represent a single channel of the original GpuMat + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + An array of single channel GpuMat where each element + in the array represent a single channel of the original GpuMat + + + + + Get the Bitmap from this GpuMat + + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + + Save the GpuMat to a file + + The file name + + + + Make a clone of the GpuMat + + A clone of the GPU Mat + + + + True if the data is continues + + + + + Depth type + + + + + True if the matrix is empty + + + + + Number of channels + + + + + Similar to CvArray but use GPU for processing + + The type of element in the matrix + + + + Create a GpuMat from the unmanaged pointer + + The unmanaged pointer to the GpuMat + If true, will call the release function on the + + + + Create an empty GpuMat + + + + + Create a GpuMat from an CvArray of the same depth type + + The CvArry to be converted to GpuMat + + + + Create a GpuMat of the specified size + + The number of rows (height) + The number of columns (width) + The number of channels + Indicates if the data should be continuous + + + + Create a GpuMat of the specified size + + The size of the GpuMat + The number of channels + + + + Convert this GpuMat to a Matrix + + The matrix that contains the same values as this GpuMat + + + + Returns a GpuMat corresponding to a specified rectangle of the current GpuMat. The data is shared with the current matrix. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. + + Zero-based coordinates of the rectangle of interest. + A GpuMat that represent the region of the current matrix. + The parent GpuMat should never be released before the returned GpuMat the represent the subregion + + + + Encapculates Cuda Stream. Provides interface for async coping. + Passed to each function that supports async kernel execution. + Reference counting is enabled + + + + + Create a new Cuda Stream + + + + + Wait for the completion + + + + + Check if the stream is completed + + + + + Release the stream + + + + + Gives information about what GPU archs this OpenCV GPU module was compiled for + + + + + Check if the GPU module is build with the specific feature set. + + The feature set to be checked. + True if the GPU module is build with the specific feature set. + + + + Check if the GPU module is targeted for the specific device version + + The major version + The minor version + True if the GPU module is targeted for the specific device version. + + + + Check if the GPU module is targeted for the specific PTX version + + The major version + The minor version + True if the GPU module is targeted for the specific PTX version. + + + + Check if the GPU module is targeted for the specific BIN version + + The major version + The minor version + True if the GPU module is targeted for the specific BIN version. + + + + Check if the GPU module is targeted for equal or less PTX version + + The major version + The minor version + True if the GPU module is targeted for equal or less PTX version. + + + + Check if the GPU module is targeted for equal or greater device version + + The major version + The minor version + True if the GPU module is targeted for equal or greater device version. + + + + Check if the GPU module is targeted for equal or greater PTX version + + The major version + The minor version + True if the GPU module is targeted for equal or greater PTX version. + + + + Check if the GPU module is targeted for equal or greater BIN version + + The major version + The minor version + True if the GPU module is targeted for equal or greater BIN version. + + + + Wrapped class of the C++ standard vector of GpuMat. + + + + + Create an empty standard vector of GpuMat + + + + + Create an standard vector of GpuMat of the specific size + + The size of the vector + + + + Create an standard vector of GpuMat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Gaussian Mixture-based Background/Foreground Segmentation Algorithm. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a Gaussian Mixture-based Background/Foreground Segmentation model + + Length of the history. + Number of Gaussian mixtures. + Background ratio. + Noise strength (standard deviation of the brightness or each color channel). 0 means some automatic value. + + + + Updates the background model + + Next video frame. + The learning rate, use -1.0f for default value. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + The foregroundMask + + + + Release all the unmanaged resource associated with this object + + + + + Gaussian Mixture-based Background/Foreground Segmentation Algorithm. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a Gaussian Mixture-based Background/Foreground Segmentation model + + Length of the history. + Threshold on the squared Mahalanobis distance between the pixel and the model to decide whether a pixel is well described by the background model. This parameter does not affect the background update. + If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false. + + + + Updates the background model + + Next video frame. + The output forground mask + The learning rate, use -1.0f for default value. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged resource associated with this object + + + + + Box filter + + + + + Create a BoxMax filter. + + Size of the kernel + The center of the kernel. User (-1, -1) for the default kernel center. + The border type. + The border value. + The source image depth type + The number of channels in the source image + The destination image depth type + The number of channels in the destination image + + + + BoxMax filter + + + + + Create a BoxMax filter. + + Size of the kernel + The center of the kernel. User (-1, -1) for the default kernel center. + The border type. + The border value. + The depth type of the source image + The number of channels of the source image + + + + BoxMin filter + + + + + Create a BoxMin filter. + + Size of the kernel + The center of the kernel. User (-1, -1) for the default kernel center. + The border type. + The border value. + The depth of the source image + The number of channels in the source image + + + + A vertical 1D box filter. + + + + + Creates a vertical 1D box filter. + + Input image depth. + Input image channel. + Output image depth. + Output image channel. + Kernel size. + Anchor point. The default value (-1) means that the anchor is at the kernel center. + Pixel extrapolation method. + Default border value. + + + + A generalized Deriv operator. + + + + + Creates a generalized Deriv operator. + + Source image depth. + Source image channels. + Destination array depth. + Destination array channels. + Derivative order in respect of x. + Derivative order in respect of y. + Aperture size. + Flag indicating whether to normalize (scale down) the filter coefficients or not. + Optional scale factor for the computed derivative values. By default, no scaling is applied. + Pixel extrapolation method in the vertical direction. + Pixel extrapolation method in the horizontal direction. + + + + Base Cuda filter class + + + + + Release all the unmanaged memory associated with this gpu filter + + + + + Apply the cuda filter + + The source CudaImage where the filter will be applied to + The destination CudaImage + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Gaussian filter + + + + + Create a Gaussian filter. + + The size of the kernel + This parameter may specify Gaussian sigma (standard deviation). If it is zero, it is calculated from the kernel size. + In case of non-square Gaussian kernel the parameter may be used to specify a different (from param3) sigma in the vertical direction. Use 0 for default + The row border type. + The column border type. + The depth type of the source image + The number of channels in the source image + The depth type of the destination image + The number of channels in the destination image + + + + Laplacian filter + + + + + Create a Laplacian filter. + + Either 1 or 3 + Optional scale. Use 1.0 for default + The border type. + The border value. + The depth type of the source image + The number of channels in the source image + The depth type of the destination image + The number of channels in the destination image + + + + Applies arbitrary linear filter to the image. In-place operation is supported. When the aperture is partially outside the image, the function interpolates outlier pixel values from the nearest pixels that is inside the image + + + + + Create a Gpu LinearFilter + + Convolution kernel, single-channel floating point matrix (e.g. Emgu.CV.Matrix). If you want to apply different kernels to different channels, split the gpu image into separate color planes and process them individually + The anchor of the kernel that indicates the relative position of a filtered point within the kernel. The anchor shoud lie within the kernel. The special default value (-1,-1) means that it is at the kernel center + Border type. Use REFLECT101 as default. + The border value + The depth type of the source image + The number of channels in the source image + The depth type of the dest image + The number of channels in the dest image + + + + median filtering for each point of the source image. + + + + + Create a median filter + + Type of of source image. Only 8U images are supported for now. + Type of of source image. Only single channel images are supported for now. + Size of the kernerl used for the filtering. Uses a (windowSize x windowSize) filter. + Specifies the parallel granularity of the workload. This parameter should be used GPU experts when optimizing performance. + + + + Morphology filter + + + + + Create a Morphology filter. + + Type of morphological operation + 2D 8-bit structuring element for the morphological operation. + Anchor position within the structuring element. Negative values mean that the anchor is at the center. + Number of times erosion and dilation to be applied. + The depth type of the source image + The number of channels in the source image + + + + A horizontal 1D box filter. + + + + + Creates a horizontal 1D box filter. + + Input image depth. Only 8U type is supported for now. + Input image channel. Only single channel type is supported for now. + Output image depth. Only 32F type is supported for now. + Output image channel. Only single channel type is supported for now. + Kernel size. + Anchor point. The default value (-1) means that the anchor is at the kernel center. + Pixel extrapolation method. + Default border value. + + + + A vertical or horizontal Scharr operator. + + + + + Creates a vertical or horizontal Scharr operator. + + Source image depth. + Source image channels. + Destination array depth. + Destination array channels. + Order of the derivative x. + Order of the derivative y. + Optional scale factor for the computed derivative values. By default, no scaling is applied. + Pixel extrapolation method in the vertical direction. For details, see borderInterpolate. + Pixel extrapolation method in the horizontal direction. + + + + SeparableLinearFilter + + + + + Create a SeparableLinearFilter + + Source array depth + Source array channels + Destination array depth + Destination array channels + Horizontal filter coefficients. Support kernels with size <= 32 . + Vertical filter coefficients. Support kernels with size <= 32 . + Anchor position within the kernel. Negative values mean that anchor is positioned at the aperture center. + Pixel extrapolation method in the vertical direction + Pixel extrapolation method in the horizontal direction + + + + Sobel filter + + + + + Create a Sobel filter. + + The depth of the source image + The number of channels of the source image + The depth of the destination image + The number of channels of the the destination image + Order of the derivative x + Order of the derivative y + Size of the extended Sobel kernel + Optional scale, use 1 for default. + The row border type. + The column border type. + + + + Cascade Classifier for object detection using Cuda + + + + + Canny edge detector using Cuda. + + The first threshold, used for edge linking + The second threshold, used to find initial segments of strong edges + Aperture parameter for Sobel operator, use 3 for default + Use false for default + + + + Finds the edges on the input and marks them in the output image edges using the Canny algorithm. + + Input image + Image to store the edges found by the function + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associate with this Canny edge detector. + + + + + Contrast Limited Adaptive Histogram Equalization + + + + + Create the Contrast Limited Adaptive Histogram Equalization + + Threshold for contrast limiting. Use 40.0 for default + Size of grid for histogram equalization. Input image will be divided into equally sized rectangular tiles. This parameter defines the number of tiles in row and column. Use (8, 8) for default + + + + Equalizes the histogram of a grayscale image using Contrast Limited Adaptive Histogram Equalization. + + Source image + Destination image + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associated with this object + + + + + Base CornernessCriteria class + + + + + Release all the unmanaged memory associated with this gpu filter + + + + + Apply the cuda filter + + The source CudaImage where the filter will be applied to + The destination CudaImage + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Cuda implementation of GoodFeaturesToTrackDetector + + + + + Create the Cuda implementation of GoodFeaturesToTrackDetector + + The depth of the src image + The number of channels in the src image + The maximum number of channels + The quality level + The minimum distance + The block size + If true, use Harris detector + Harris K + + + + Find the good features to track + + The input image + The output corners + Optional mask + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associated with this detector + + + + + Runs the Harris edge detector on image. Similarly to cvCornerMinEigenVal and cvCornerEigenValsAndVecs, for each pixel it calculates 2x2 gradient covariation matrix M over block_size x block_size neighborhood. Then, it stores + det(M) - k*trace(M)^2 + to the destination image. Corners in the image can be found as local maxima of the destination image. + + + + + Create a Cuda Harris Corner detector + + The depth of the source image + The number of channels in the source image + Neighborhood size + + Harris detector free parameter. + Boreder type, use REFLECT101 for default + + + + Base class for circles detector algorithm. + + + + + Create hough circles detector + + Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height. + Minimum distance between the centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed. + The higher threshold of the two passed to Canny edge detector (the lower one is twice smaller). + The accumulator threshold for the circle centers at the detection stage. The smaller it is, the more false circles may be detected. + Minimum circle radius. + Maximum circle radius. + Maximum number of output circles. + + + + Finds circles in a grayscale image using the Hough transform. + + 8-bit, single-channel grayscale input image. + Output vector of found circles. Each vector is encoded as a 3-element floating-point vector. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Finds circles in a grayscale image using the Hough transform. + + 8-bit, single-channel grayscale input image. + Circles detected + + + + Release the unmanaged memory associated with this circle detector. + + + + + Base class for lines detector algorithm. + + + + + Create a hough lines detector + + Distance resolution of the accumulator in pixels. + Angle resolution of the accumulator in radians. + Accumulator threshold parameter. Only those lines are returned that get enough votes (> threshold). + Performs lines sort by votes. + Maximum number of output lines. + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image + Output vector of lines.Output vector of lines. Each line is represented by a two-element vector. + The first element is the distance from the coordinate origin (top-left corner of the image). + The second element is the line rotation angle in radians. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged memory associated to this line detector. + + + + + Base class for line segments detector algorithm. + + + + + Create a hough segment detector + + Distance resolution of the accumulator in pixels. + Angle resolution of the accumulator in radians. + Minimum line length. Line segments shorter than that are rejected. + Maximum allowed gap between points on the same line to link them. + Maximum number of output lines. + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image + Output vector of lines. Each line is represented by a 4-element vector (x1, y1, x2, y2) , where (x1, y1) and (x2, y2) are the ending points of each detected line segment. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged memory associated with this segment detector + + + + + Bayer Demosaicing (Malvar, He, and Cutler) + + + + + BayerBG2BGR_MHT + + + + + BayerGB2BGR_MHT + + + + + BayerRG2BGR_MHT + + + + + BayerGR2BGR_MHT + + + + + BayerBG2RGB_MHT + + + + + BayerGB2RGB_MHT + + + + + BayerRG2RGB_MHT + + + + + BayerGR2RGB_MHT + + + + + BayerBG2GRAY_MHT + + + + + BayerGB2GRAY_MHT + + + + + BayerRG2GRAY_MHT + + + + + BayerGR2GRAY_MHT + + + + + Alpha composite types + + + + + Over + + + + + In + + + + + Out + + + + + Atop + + + + + Xor + + + + + Plus + + + + + Over Premul + + + + + In Premul + + + + + Out Premul + + + + + Atop Premul + + + + + Xor Premul + + + + + Plus Premul + + + + + Premul + + + + + Implementation for the minimum eigen value of a 2x2 derivative covariation matrix (the cornerness criteria). + + + + + Creates implementation for the minimum eigen value of a 2x2 derivative covariation matrix (the cornerness criteria). + + Input source depth. Only 8U and 32F are supported for now. + Input source type. Only single channel are supported for now. + Neighborhood size. + Aperture parameter for the Sobel operator. + Pixel extrapolation method. Only BORDER_REFLECT101 and BORDER_REPLICATE are supported for now. + + + + Cuda template matching filter. + + + + + Create a Cuda template matching filter + + Specifies the way the template must be compared with image regions + The block size + The depth type of the image that will be used in the template matching + The number of channels of the image that will be used in the template matching + + + + This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result + + Image where the search is running. It should be 8-bit or 32-bit floating-point + Searched template; must be not greater than the source image and the same data type as the image + A map of comparison results; single-channel 32-bit floating-point. If image is WxH and templ is wxh then result must be W-w+1xH-h+1. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the buffer + + + + + Brox optical flow + + + + + Create the Brox optical flow solver + + Flow smoothness + Gradient constancy importance + Pyramid scale factor + Number of lagged non-linearity iterations (inner loop) + Number of warping iterations (number of pyramid levels) + Number of linear system solver iterations + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged DenseOpticalFlow object + + + + + Pointer to the unmanaged Algorithm object + + + + + PyrLK optical flow + + + + + Create the PyrLK optical flow solver + + Windows size. Use 21x21 for default + The maximum number of pyramid levels. + The number of iterations. + Weather or not use the initial flow in the input matrix. + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged DenseOpticalFlow object + + + + + Pointer to the unmanaged Algorithm object + + + + + Farneback optical flow + + + + + Create a CudaFarnebackOpticalFlow object + + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + Fast Pyramids + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged DenseOpticalFlow object + + + + + Pointer to the unamanged Algorithm object + + + + + DualTvl1 optical flow + + + + + Initializes a new instance of the CudaOpticalFlowDualTvl1 class. + + Time step of the numerical scheme. + Weight parameter for the data term, attachment parameter. This is the most relevant parameter, which determines the smoothness of the output. The smaller this parameter is, the smoother the solutions we obtain. It depends on the range of motions of the images, so its value should be adapted to each image sequence. + Parameter used for motion estimation. It adds a variable allowing for illumination variations Set this parameter to 1. if you have varying illumination. + Number of scales used to create the pyramid of images. + Number of warpings per scale. Represents the number of times that I1(x+u0) and grad( I1(x+u0) ) are computed per scale. This is a parameter that assures the stability of the method. It also affects the running time, so it is a compromise between speed and accuracy. + Stopping criterion threshold used in the numerical scheme, which is a trade-off between precision and running time. A small value will yield more accurate solutions at the expense of a slower convergence. + Stopping criterion iterations number used in the numerical scheme. + Scale step + Weight parameter for (u - v)^2, tightness parameter. It serves as a link between the attachment and the regularization terms. In theory, it should have a small value in order to maintain both parts in correspondence. The method is stable for a large range of values of this parameter. + If true, use initial flow. + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the DenseOpticalFlow object + + + + + Pointer to the algorithm object + + + + + Sparse PyrLK optical flow + + + + + Create the PyrLK optical flow solver + + Windows size. Use 21x21 for default + The maximum number of pyramid levels. + The number of iterations. + Weather or not use the initial flow in the input matrix. + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged SparseOpticalFlow object + + + + + Pointer to the unmanaged Algorithm object + + + + + Cuda Dense Optical flow + + + + + Pointer to cv::cuda::denseOpticalFlow + + + + + Interface to provide access to the cuda::SparseOpticalFlow class. + + + + + Pointer the the native cuda::sparseOpticalFlow object. + + + + + Descriptor matcher + + + + + Pointer to the native cv::Algorithm + + + + + Find the k-nearest match + + An n x m matrix of descriptors to be query for nearest neighbors. n is the number of descriptor and m is the size of the descriptor + Number of nearest neighbors to search for + Can be null if not needed. An n x 1 matrix. If 0, the query descriptor in the corresponding row will be ignored. + Matches. Each matches[i] is k or less matches for the same query descriptor. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + + + + Find the k-nearest match + + An n x m matrix of descriptors to be query for nearest neighbors. n is the number of descriptor and m is the size of the descriptor + Number of nearest neighbors to search for + Can be null if not needed. An n x 1 matrix. If 0, the query descriptor in the corresponding row will be ignored. + Matches. Each matches[i] is k or less matches for the same query descriptor. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Finds the k best matches for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::knnMatchConvert method to retrieve results in standard representation. + Count of best matches found per each query descriptor or less if a query descriptor has less than k possible matches in total. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Finds the k best matches for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::knnMatchConvert method to retrieve results in standard representation. + Count of best matches found per each query descriptor or less if a query descriptor has less than k possible matches in total. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Converts matches array from internal representation to standard matches vector. + + Matches + Vector of DMatch objects. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Finds the best match for each descriptor from a query set (blocking version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches. If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + Finds the best match for each descriptor from a query set (blocking version). + + Query set of descriptors. + Matches. If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + Finds the best match for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::matchConvert method to retrieve results in standard representation. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Finds the best match for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::matchConvert method to retrieve results in standard representation. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Converts matches array from internal representation to standard matches vector. + + Matches, returned from MatchAsync. + Vector of DMatch objects. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (blocking version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (blocking version). + + Query set of descriptors. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (asynchronous version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches array stored in GPU memory. Internal representation is not defined. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (asynchronous version). + + Query set of descriptors. + Matches array stored in GPU memory. Internal representation is not defined. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Converts matches array from internal representation to standard matches vector. + + Matches, returned from DescriptorMatcher.RadiusMatchAsync. + Vector of DMatch objects. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Add the model descriptors + + The model descriptors + + + + Return True if mask is supported + + + + + Clear the matcher + + + + + Return True if the matcher is empty + + + + + Trains a descriptor matcher. + + + + + Release all the unmanaged memory associated with this matcher + + + + + A Brute force matcher using Cuda + + + + + Create a CudaBruteForceMatcher using the specific distance type + + The distance type + + + + A FAST detector using Cuda + + + + + Create a fast detector with the specific parameters + + Threshold on difference between intensity of center pixel and pixels on circle around + this pixel. Use 10 for default. + Specifiy if non-maximum supression should be used. + The maximum number of keypoints to be extracted. + The detector type + + + + Release the unmanaged resource associate to the Detector + + + + + An ORB detector using Cuda + + + + + Create a ORBDetector using the specific values + + The number of desired features. + Coefficient by which we divide the dimensions from one scale pyramid level to the next. + The number of levels in the scale pyramid. + The level at which the image is given. If 1, that means we will also look at the image. times bigger + How far from the boundary the points should be. + How many random points are used to produce each cell of the descriptor (2, 3, 4 ...). + Type of the score to use. + Patch size. + Blur for descriptor + Fast threshold + + + + Release the unmanaged resource associate to the Detector + + + + + The feature 2D base class + + + + + Get the pointer to the Feature2DAsync object + + The pointer to the Feature2DAsync object + + + + Class that contains extension methods for Feature2DAsync + + + + + Detect keypoints in an image and compute the descriptors on the image from the keypoint locations. + + The Feature2DAsync object + The image + The optional mask, can be null if not needed + The detected keypoints will be stored in this vector + The descriptors from the keypoints + If true, the method will skip the detection phase and will compute descriptors for the provided keypoints + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Detect the features in the image + + The Feature2DAsync object + The result vector of keypoints + The image from which the features will be detected from + The optional mask. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Compute the descriptors on the image from the given keypoint locations. + + The Feature2DAsync object + The image to compute descriptors from + The keypoints where the descriptor computation is perfromed + The descriptors from the given keypoints + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts keypoints array from internal representation to standard vector. + + The Feature2DAsync object + GpuMat representation of the keypoints. + Vector of keypoints + + + + Disparity map refinement using joint bilateral filtering given a single color image. + Qingxiong Yang, Liang Wang†, Narendra Ahuja + http://vision.ai.uiuc.edu/~qyang6/ + + + + + Create a GpuDisparityBilateralFilter + + Number of disparities. Use 64 as default + Filter radius, use 3 as default + Number of iterations, use 1 as default + + + + Apply the filter to the disparity image + + The input disparity map + The image + The output disparity map, should have the same size as the input disparity map + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged resources associated with the filter. + + + + + Use Block Matching algorithm to find stereo correspondence + + + + + Create a stereoBM + + The number of disparities. Must be multiple of 8. Use 64 for default + The SAD window size. Use 19 for default + + + + Computes disparity map for the input rectified stereo pair. + + The left single-channel, 8-bit image + The right image of the same size and the same type + The disparity map + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the stereo state and all the memory associate with it + + + + + A Constant-Space Belief Propagation Algorithm for Stereo Matching. + Qingxiong Yang, Liang Wang, Narendra Ahuja. + http://vision.ai.uiuc.edu/~qyang6/ + + + + + A Constant-Space Belief Propagation Algorithm for Stereo Matching + + The number of disparities. Use 128 as default + The number of BP iterations on each level. Use 8 as default. + The number of levels. Use 4 as default + The number of active disparity on the first level. Use 4 as default. + + + + Computes disparity map for the input rectified stereo pair. + + The left single-channel, 8-bit image + The right image of the same size and the same type + The disparity map + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged memory + + + + + Cascade Classifier for object detection using Cuda + + + + + Create a Cuda cascade classifier using the specific file + + The file to create the classifier from + + + + Create a Cuda cascade classifier using the specific file storage + + The file storage to create the classifier from + + + + Detects objects of different sizes in the input image. + + Matrix of type CV_8U containing an image where objects should be detected. + Buffer to store detected objects (rectangles). + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts objects array from internal representation to standard vector. + + Objects array in internal representation. + Resulting array. + + + + Release all unmanaged resources associated with this object + + + + + Parameter specifying how much the image size is reduced at each image scale + + + + + Parameter specifying how many neighbors each candidate rectangle should have to retain it + + + + + The maximum number of objects + + + + + If true, only return the largest object + + + + + The maximum object size + + + + + The minimum object size + + + + + The classifier size + + + + + A HOG descriptor + + + + + The descriptor format + + + + + Row by row + + + + + Col by col + + + + + Create a new HOGDescriptor using the specific parameters + + Block size in cells. Use (16, 16) for default. + Cell size. Use (8, 8) for default. + Block stride. Must be a multiple of cell size. Use (8,8) for default. + Number of bins. + Detection window size. Must be aligned to block size and block stride. Must match the size of the training image. Use (64, 128) for default. + + + + Returns coefficients of the classifier trained for people detection (for default window size). + + The default people detector + + + + Set the SVM detector + + The SVM detector + + + + Performs object detection with increasing detection window. + + The CudaImage to search in + The regions where positives are found + + + + Performs object detection with a multi-scale window. + + Source image. + Detected objects boundaries. + Optional output array for confidences. + + + + Release the unmanaged memory associated with this HOGDescriptor + + + + + Flag to specify whether the gamma correction preprocessing is required or not + + + + + Gaussian smoothing window parameter + + + + + Maximum number of detection window increases + + + + + Coefficient to regulate the similarity threshold. When detected, some objects can be covered by many rectangles. 0 means not to perform grouping. See groupRectangles. + + + + + Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. + + + + + Coefficient of the detection window increase. + + + + + L2-Hys normalization method shrinkage. + + + + + The descriptor format + + + + + Returns the number of coefficients required for the classification. + + + + + Window stride. It must be a multiple of block stride. + + + + + Returns the block histogram size. + + + + + Background/Foreground Segmentation Algorithm. + + + + + Create a Background/Foreground Segmentation model + + Quantized levels per 'color' component. Power of two, typically 32, 64 or 128. + Number of color vectors used to model normal background color variation at a given pixel. + Used to allow the first N1c vectors to adapt over time to changing background. + Quantized levels per 'color co-occurrence' component. Power of two, typically 16, 32 or 64. + Number of color co-occurrence vectors used to model normal background color variation at a given pixel. + Used to allow the first N1cc vectors to adapt over time to changing background. + If TRUE we ignore holes within foreground blobs. Defaults to TRUE. + These erase one-pixel junk blobs and merge almost-touching blobs. Default value is 1. + Background reference image update parameter + Stat model update parameter. 0.002f ~ 1K frame(~45sec), 0.005 ~ 18sec (if 25fps and absolutely static BG) + start value for alpha parameter (to fast initiate statistic model) + Affects color and color co-occurrence quantization, typically set to 2. + T + Discard foreground blobs whose bounding box is smaller than this threshold. + + + + Updates the background model + + Next video frame. + The learning rate, use -1.0f for default value. + Output the current forground mask + + + + Release all the unmanaged resource associated with this object + + + + + Background/Foreground Segmentation Algorithm. + + + + + Create a Background/Foreground Segmentation model + + The number of frames used for initialization + The decision threshold + + + + Updates the background model + + Next video frame. + The learning rate, use -1.0f for default value. + The output foreground mask as an 8-bit binary image. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged resource associated with this object + + + + + Interface to the TesseractResultRender + + + + + Pointer to the unmanaged TessResultRendered + + + + + This class set the locale to specific values and revert it back to the old values when the object is disposed. + + + + + The locale category + + + + + All + + + + + Collate + + + + + Ctype + + + + + Monetary + + + + + Numeric + + + + + Time + + + + + Create a locale guard to set the locale to specific value. Will revert locale back to previous value when the object is disposed. + + The locale category + The locale + + + + Revert back to the old locale + + + + + Library to invoke Tesseract OCR functions + + + + + The setlocale function installs the specified system locale or its portion as the new C locale. The modifications remain in effect and influences the execution of all locale-sensitive C library functions until the next call to setlocale. If locale is a null pointer, setlocale queries the current C locale without modifying it. + + Locale category identifier + System-specific locale identifier. Can be "" for the user-preferred locale or "C" for the minimal locale + String identifying the C locale after applying the changes, if any, or null pointer on failure. A copy of the returned string along with the category used in this call to std::setlocale may be used later in the program to restore the locale back to the state at the end of this call. + + + + When Tesseract/LSTM is initialized we can choose to instantiate/load/run + only the Tesseract part, only the Cube part or both along with the combiner. + The preference of which engine to use is stored in tessedit_ocr_engine_mode. + + + + + Run Tesseract only - fastest + + + + + Run just the LSTM line recognizer. + + + + + Run the LSTM recognizer, but allow fallback to Tesseract when things get difficult. + + + + + Specify this mode when calling init_*(), + to indicate that any of the above modes + should be automatically inferred from the + variables in the language-specific config, + command-line configs, or if not specified + in any of the above should be set to the + default OEM_TESSERACT_ONLY. + + + + + The tesseract page iterator + + + + + Returns orientation for the block the iterator points to. + + + + + Returns the baseline of the current object at the given level. The baseline is the line that passes through (x1, y1) and (x2, y2). WARNING: with vertical text, baselines may be vertical! Returns null if there is no baseline at the current position. + + Page iterator level + The baseline of the current object at the given level + + + + Release the page iterator + + + + + The orientation + + + + + Page orientation + + + + + Writing direction + + + + + Textline order + + + + + after rotating the block so the text orientation is upright, how many radians does one have to rotate the block anti-clockwise for it to be level? -Pi/4 <= deskew_angle <= Pi/4 + + + + + Page orientation + + + + + Up + + + + + Right + + + + + Down + + + + + Left + + + + + Writing direction + + + + + Left to right + + + + + Right to left + + + + + Top to bottom + + + + + Textline order + + + + + Left to right + + + + + Right to left + + + + + Top to bottom + + + + + Page iterator level + + + + + Block of text/image/separator line. + + + + + Paragraph within a block. + + + + + Line within a paragraph. + + + + + Word within a textline. + + + + + Symbol/character within a word. + + + + + Tesseract page segmentation mode + + + + + PageOrientation and script detection only. + + + + + Automatic page segmentation with orientation and script detection. (OSD) + + + + + Automatic page segmentation, but no OSD, or OCR. + + + + + Fully automatic page segmentation, but no OSD. + + + + + Assume a single column of text of variable sizes. + + + + + Assume a single uniform block of vertically aligned text. + + + + + Assume a single uniform block of text. (Default.) + + + + + Treat the image as a single text line. + + + + + Treat the image as a single word. + + + + + Treat the image as a single word in a circle. + + + + + Treat the image as a single character. + + + + + Find as much text as possible in no particular order. + + + + + Sparse text with orientation and script det. + + + + + Treat the image as a single text line, bypassing hacks that are Tesseract-specific. + + + + + Number of enum entries. + + + + + Leptonica Pix image structure + + + + + Create a Pix object by coping data from Mat + + The Mat to create the Pix object from + + + + Release all the unmanaged memory associated with this Pix + + + + + The tesseract OCR engine + + + + + Get the tesseract version as String + + + + + Get the tesseract version + + + + + Create a default tesseract engine. Needed to Call Init function to load language files in a later stage. + + If true, it will enforce "C" locale during the initialization. + + + + If compiled with OpenCL AND an available OpenCL + device is deemed faster than serial code, then + "device" is populated with the cl_device_id + and returns sizeof(cl_device_id) + otherwise *device=nullptr and returns 0. + + Pointer to the opencl device + 0 if no device found. sizeof(cl_device_id) if device is found. + + + + Create a Tesseract OCR engine. + + + The datapath must be the name of the directory of tessdata and + must end in / . Any name after the last / will be stripped. + + + The language is (usually) an ISO 639-3 string or NULL will default to eng. + It is entirely safe (and eventually will be efficient too) to call + Init multiple times on the same instance to change language, or just + to reset the classifier. + The language may be a string of the form [~]%lt;lang>[+[~]<lang>]* indicating + that multiple languages are to be loaded. Eg hin+eng will load Hindi and + English. Languages may specify internally that they want to be loaded + with one or more other languages, so the ~ sign is available to override + that. Eg if hin were set to load eng by default, then hin+~eng would force + loading only hin. The number of loaded languages is limited only by + memory, with the caveat that loading additional languages will impact + both speed and accuracy, as there is more work to do to decide on the + applicable language, and there is more chance of hallucinating incorrect + words. + + OCR engine mode + This can be used to specify a white list for OCR. e.g. specify "1234567890" to recognize digits only. Note that the white list currently seems to only work with OcrEngineMode.OEM_TESSERACT_ONLY + If true, we will change the locale to "C" before initializing the tesseract engine and reverting it back once the tesseract initialiation is completer. If false, it will be the user's responsibility to set the locale to "C", otherwise an exception will be thrown. See https://github.com/tesseract-ocr/tesseract/issues/1670 + + + + Check whether a word is valid according to Tesseract's language model + + The word to be checked. + 0 if the word is invalid, non-zero if valid + + + + Gets or sets the page seg mode. + + + The page seg mode. + + + + + Get the default tesseract ocr directory. This should return the folder of the dll in most situations. + + + + + Get the url to download the tessdata file for the specific language + + The 3 letter language identifier + the url to download the tessdata file for the specific language + + + + Initialize the OCR engine using the specific dataPath and language name. + + + The datapath must be the name of the parent directory of tessdata and + must end in / . Any name after the last / will be stripped. + + + The language is (usually) an ISO 639-3 string or NULL will default to eng. + It is entirely safe (and eventually will be efficient too) to call + Init multiple times on the same instance to change language, or just + to reset the classifier. + The language may be a string of the form [~]%lt;lang>[+[~]<lang>]* indicating + that multiple languages are to be loaded. Eg hin+eng will load Hindi and + English. Languages may specify internally that they want to be loaded + with one or more other languages, so the ~ sign is available to override + that. Eg if hin were set to load eng by default, then hin+~eng would force + loading only hin. The number of loaded languages is limited only by + memory, with the caveat that loading additional languages will impact + both speed and accuracy, as there is more work to do to decide on the + applicable language, and there is more chance of hallucinating incorrect + words. + + OCR engine mode + + + + Release the unmanaged resource associated with this class + + + + + Set the image for optical character recognition + + The image where detection took place + + + + Set the image for optical character recognition + + The image where detection took place + + + + Recognize the image from SetAndThresholdImage, generating Tesseract + internal structures. + + Returns 0 on success. + + + + Set the variable to the specific value. + + The name of the tesseract variable. e.g. use "tessedit_char_blacklist" to black list characters and "tessedit_char_whitelist" to white list characters. The full list of options can be found in the Tesseract OCR source code "tesseractclass.h" + The value to be set + + + + Get all the text in the image + + All the text in the image + + + + Make a TSV-formatted string from the internal data structures. + + pageNumber is 0-based but will appear in the output as 1-based. + A TSV-formatted string from the internal data structures. + + + + The recognized text is returned as coded in the same format as a box file used in training. + + pageNumber is 0-based but will appear in the output as 1-based. + The recognized text is returned as coded in the same format as a box file used in training. + + + + The recognized text is returned coded as UNLV format Latin-1 with specific reject and suspect codes + + pageNumber is 0-based but will appear in the output as 1-based. + The recognized text is returned coded as UNLV format Latin-1 with specific reject and suspect codes + + + + The recognized text + + pageNumber is 0-based but will appear in the output as 1-based. + The recognized text + + + + Make a HTML-formatted string with hOCR markup from the internal data structures. + + pageNumber is 0-based but will appear in the output as 1-based. + A HTML-formatted string with hOCR markup from the internal data structures. + + + + Detect all the characters in the image. + + All the characters in the image + + + + This represent a character that is detected by the OCR engine + + + + + The text + + + + + The cost. The lower it is, the more confident is the result + + + + + The region where the character is detected. + + + + + Turn a single image into symbolic text. + + The pix is the image processed. + Metadata used by side-effect processes, such as reading a box file or formatting as hOCR. + Metadata used by side-effect processes, such as reading a box file or formatting as hOCR. + retryConfig is useful for debugging. If not NULL, you can fall back to an alternate configuration if a page fails for some reason. + terminates processing if any single page takes too long. Set to 0 for unlimited time. + Responsible for creating the output. For example, use the TessTextRenderer if you want plaintext output, or the TessPDFRender to produce searchable PDF. + Returns true if successful, false on error. + + + + Runs page layout analysis in the mode set by SetPageSegMode. May optionally be called prior to Recognize to get access to just the page layout results. Returns an iterator to the results. Returns NULL on error or an empty page. The returned iterator must be deleted after use. WARNING! This class points to data held within the TessBaseAPI class, and therefore can only be used while the TessBaseAPI class still exists and has not been subjected to a call of Init, SetImage, Recognize, Clear, End DetectOS, or anything else that changes the internal PAGE_RES. + + If true merge similar words + Page iterator + + + + Get the OCR Engine Mode + + + + + This structure is primary used for PInvoke + + + + + The length + + + + + The cost + + + + + The region + + + + + Renders tesseract output into searchable PDF + + + + + Create a PDF renderer + + Output base + dataDir is the location of the TESSDATA. We need it because we load a custom PDF font from this location. + Text only + + + + Release the unmanaged memory associated with this Renderer + + + + + Pointer to the unmanaged TessResultRendered + + + + + Wrapped class of the C++ standard vector of TesseractResult. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of TesseractResult + + + + + Create an standard vector of TesseractResult of the specific size + + The size of the vector + + + + Create an standard vector of TesseractResult with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of TesseractResult + + An array of TesseractResult + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + An abstract class that wrap around a disposable object + + + + Track whether Dispose has been called. + + + + The dispose function that implements IDisposable interface + + + + + Dispose(bool disposing) executes in two distinct scenarios. + If disposing equals true, the method has been called directly + or indirectly by a user's code. Managed and unmanaged resources + can be disposed. + If disposing equals false, the method has been called by the + runtime from inside the finalizer and you should not reference + other objects. Only unmanaged resources can be disposed. + + If disposing equals false, the method has been called by the runtime from inside the finalizer and you should not reference other objects. Only unmanaged resources can be disposed. + + + + Release the managed resources. This function will be called during the disposal of the current object. + override ride this function if you need to call the Dispose() function on any managed IDisposable object created by the current object + + + + + Release the unmanaged resources + + + + + Destructor + + + + + A generic EventArgs + + The type of arguments + + + + Create a generic EventArgs with the specific value + + The value + + + + The value of the EventArgs + + + + + A generic EventArgs + + The type of the first value + The type of the second value + + + + Create a generic EventArgs with two values + + The first value + The second value + + + + The first value + + + + + The second value + + + + + Implement this interface if the object can output code to generate it self. + + + + + Return the code to generate the object itself from the specific language + + The programming language to output code + The code to generate the object from the specific language + + + + An object that can be interpolated + + The type of the object + + + + The index that will be used for interpolation + + + + + Interpolate base on this point and the other point with the given index + + The other point + The interpolation index + The interpolated point + + + + A Pinned array of the specific type + + The type of the array + + + + Create a Pinnned array of the specific type + + The size of the array + + + + Get the address of the pinned array + + A pointer to the address of the the pinned array + + + + Get the array + + + + + Release the GCHandle + + + + + Disposed the unmanaged data + + + + + Provide information for the platform which is using. + + + + + Get the type of the current operating system + + + + + Get the type of the current runtime environment + + + + + utilities functions for Emgu + + + + + Convert an object to an xml document + + The type of the object to be converted + The object to be serialized + An xml document that represents the object + + + + Convert an object to an xml document + + The type of the object to be converted + The object to be serialized + Other types that it must known ahead to serialize the object + An xml document that represents the object + + + + Convert an xml document to an object + + The type of the object to be converted to + The xml document + The object representation as a result of the deserialization of the xml document + + + + Convert an xml document to an object + + The type of the object to be converted to + The xml document + Other types that it must known ahead to deserialize the object + The object representation as a result of the deserialization of the xml document + + + + Convert an xml string to an object + + The type of the object to be converted to + The xml document as a string + The object representation as a result of the deserialization of the xml string + + + + Similar to Marshal.SizeOf function + + The type + The size of T in bytes + + + + Merges two byte vector into one + + the first byte vector to be merged + the second byte vector to be merged + The bytes that is a concatenation of a and b + + + + Call a command from command line + + The name of the executable + The arguments to the executable + The standard output + + + + Use reflection to find the base type. If such type do not exist, null is returned + + The type to search from + The name of the base class to search + The base type + + + + Convert some generic vector to vector of Bytes + + type of the input vector + array of data + the byte vector + + + + Perform first degree interpolation give the sorted data and the interpolation + + The sorted data that will be interpolated from + The indexes of the interpolate result + + + + + Get subsamples with the specific rate + + The source which the subsamples will be derived from + The subsample rate + subsampled with the specific rate + The type of the object + + + + Joining multiple index ascending IInterpolatables together as a single index ascending IInterpolatable. + + The type of objects that will be joined + The enumerables, each should be stored in index ascending order + A single enumerable sorted in index ascending order + + + + Maps the specified executable module into the address space of the calling process. + + The name of the dll + The handle to the library + + + + Decrements the reference count of the loaded dynamic-link library (DLL). When the reference count reaches zero, the module is unmapped from the address space of the calling process and the handle is no longer valid + + The handle to the library + If the function succeeds, the return value is true. If the function fails, the return value is false. + + + + Adds a directory to the search path used to locate DLLs for the application + + The directory to be searched for DLLs + True if success + + + + Type of operating system + + + + + Windows + + + + + Linux + + + + + Mac OS + + + + + iOS devices. iPhone, iPad, iPod Touch + + + + + Android devices + + + + + The windows phone + + + + + The runtime environment + + + + + .Net runtime + + + + + Windows Store app runtime + + + + + Mono runtime + + + + + The type of Programming languages + + + + + C# + + + + + C++ + + + + + An Unmanaged Object is a disposable object with a Ptr property pointing to the unmanaged object + + + + + A pointer to the unmanaged object + + + + + Pointer to the unmanaged object + + + + + Implicit operator for IntPtr + + The UnmanagedObject + The unmanaged pointer for this object + +
+
diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/IPCBridge.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/IPCBridge.dll new file mode 100644 index 0000000..b63870d Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/IPCBridge.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/IPCBridge.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/IPCBridge.pdb new file mode 100644 index 0000000..5d86290 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/IPCBridge.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList-expand.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList-expand.xml new file mode 100644 index 0000000..7d3a284 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList-expand.xml @@ -0,0 +1,31 @@ + + + + FNWNS390 + 病案室未接收病历查询_主管医生 + + + + + + FNWND390 + 小贴士 + + + + + + #32770 (Dialog) + 提示信息 + 是(&Y) + 否(&N) + + + + #32770 + 提示信息 + 是(&Y) + 否(&N) + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList.xml new file mode 100644 index 0000000..48d4d4c --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-WhiteList.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-WhiteList.xml new file mode 100644 index 0000000..01fbf15 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-WhiteList.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Newtonsoft.Json.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/Newtonsoft.Json.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Newtonsoft.Json.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/Newtonsoft.Json.xml new file mode 100644 index 0000000..008e0ca --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/OriginOperations.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/OriginOperations.dll new file mode 100644 index 0000000..12ae2fd Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/OriginOperations.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/OriginOperations.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/OriginOperations.pdb new file mode 100644 index 0000000..3ee8ab3 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/OriginOperations.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.dll new file mode 100644 index 0000000..4a86d24 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.pdb new file mode 100644 index 0000000..29e07f2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.xml new file mode 100644 index 0000000..2b2e18f --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/RabbitMQ.Client.xml @@ -0,0 +1,6929 @@ + + + + RabbitMQ.Client + + + + + Represents a TCP-addressable AMQP peer: a host name and port number. + + + Some of the constructors take, as a convenience, a System.Uri + instance representing an AMQP server address. The use of Uri + here is not standardised - Uri is simply a convenient + container for internet-address-like components. In particular, + the Uri "Scheme" property is ignored: only the "Host" and + "Port" properties are extracted. + + + + + Default Amqp ssl port. + + + + + Indicates that the default port for the protocol should be used. + + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + Ssl option. + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + + + + Construct an AmqpTcpEndpoint with "localhost" as the hostname, and using the default port. + + + + + Creates a new instance of the with the given Uri and ssl options. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Creates a new instance of the with the given Uri. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Clones the endpoint. + + A copy with the same hostname, port, and TLS settings + + + + Clones the endpoint using the provided hostname. + + Hostname to use + A copy with the provided hostname and port/TLS settings of this endpoint + + + + Retrieve or set the hostname of this . + + + + Retrieve or set the port number of this + AmqpTcpEndpoint. A port number of -1 causes the default + port number. + + + + Retrieve IProtocol of this . + + + + + Used to force the address family of the endpoint + + + + + Retrieve the SSL options for this AmqpTcpEndpoint. If not set, null is returned. + + + + + Construct an instance from a protocol and an address in "hostname:port" format. + + + If the address string passed in contains ":", it is split + into a hostname and a port-number part. Otherwise, the + entire string is used as the hostname, and the port-number + is set to -1 (meaning the default number for the protocol + variant specified). + Hostnames provided as IPv6 must appear in square brackets ([]). + + + + + Splits the passed-in string on ",", and passes the substrings to . + + + Accepts a string of the form "hostname:port, + hostname:port, ...", where the ":port" pieces are + optional, and returns a corresponding array of s. + + + + + Compares this instance by value (protocol, hostname, port) against another instance. + + + + + Implementation of hash code depending on protocol, hostname and port, + to line up with the implementation of . + + + + + Returns a URI-like string of the form amqp-PROTOCOL://HOSTNAME:PORTNUMBER. + + + This method is intended mainly for debugging and logging use. + + + + + Structure holding an AMQP timestamp, a posix 64-bit time_t. + + + When converting between an AmqpTimestamp and a System.DateTime, + be aware of the effect of your local timezone. In particular, + different versions of the .NET framework assume different + defaults. + + + We have chosen a signed 64-bit time_t here, since the AMQP + specification through versions 0-9 is silent on whether + timestamps are signed or unsigned. + + + + + + Construct an . + + Unix time. + + + + Unix time. + + + + + Provides a debugger-friendly display. + + + + Represents a version of the AMQP specification. + + + Vendor-specific variants of particular official specification + versions exist: this class simply represents the AMQP + specification version, and does not try to represent + information about any custom variations involved. + + + AMQP version 0-8 peers sometimes advertise themselves as + version 8-0: for this reason, this class's constructor + special-cases 8-0, rewriting it at construction time to be 0-8 instead. + + + + + + Construct an from major and minor version numbers. + + + Converts major=8 and minor=0 into major=0 and minor=8. Please see the class comment. + + + + + The AMQP specification major version number. + + + + + The AMQP specification minor version number. + + + + + Implement value-equality comparison. + + + + + Implement hashing as for value-equality. + + + + + Format appropriately for display. + + + The specification currently uses "MAJOR-MINOR" as a display format. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + A pluggable authentication mechanism. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + Represents Basic.GetOk responses from the server. + + Basic.Get either returns an instance of this class, or null if a Basic.GetEmpty was received. + + + + + Sets the new instance's properties from the arguments passed in. + + Delivery tag for the message. + Redelivered flag for the message + The exchange this message was published to. + Routing key with which the message was published. + The number of messages pending on the queue, excluding the message being delivered. + The Basic-class content header properties for the message. + + + + + Retrieves the Basic-class content header properties for this message. + + + + + Retrieves the body of this message. + + + + + Retrieve the delivery tag for this message. See also . + + + + + Retrieve the exchange this message was published to. + + + + + Retrieve the number of messages pending on the queue, excluding the message being delivered. + + + Note that this figure is indicative, not reliable, and can + change arbitrarily as messages are added to the queue and removed by other clients. + + + + + Retrieve the redelivered flag for this message. + + + + + Retrieve the routing key with which this message was published. + + + + Wrapper for a byte[]. May appear as values read from + and written to AMQP field tables. + + + The sole reason for the existence of this class is to permit + encoding of byte[] as 'x' in AMQP field tables, an extension + to the specification that is part of the tentative JMS mapping + implemented by QPid. + + + Instances of this object may be found as values held in + IDictionary instances returned from + RabbitMQ.Client.Impl.WireFormatting.ReadTable, e.g. as part of + IBasicProperties.Headers tables. Likewise, instances may be + set as values in an IDictionary table to be encoded by + RabbitMQ.Client.Impl.WireFormatting.WriteTable. + + + When an instance of this class is encoded/decoded, the type + tag 'x' is used in the on-the-wire representation. The AMQP + standard type tag 'S' is decoded to a raw byte[], and a raw + byte[] is encoded as 'S'. Instances of System.String are + converted to a UTF-8 binary representation, and then encoded + using tag 'S'. In order to force the use of tag 'x', instances + of this class must be used. + + + + + + Creates a new instance of the with null for its Bytes property. + + + + + Creates a new instance of the . + + The wrapped byte array, as decoded or as to be encoded. + + + + The wrapped byte array, as decoded or as to be encoded. + + + + Main entry point to the RabbitMQ .NET AMQP client + API. Constructs instances. + + + A simple example of connecting to a broker: + + + ConnectionFactory factory = new ConnectionFactory(); + // + // The next six lines are optional: + factory.UserName = ConnectionFactory.DefaultUser; + factory.Password = ConnectionFactory.DefaultPass; + factory.VirtualHost = ConnectionFactory.DefaultVHost; + factory.HostName = hostName; + factory.Port = AmqpTcpEndpoint.UseDefaultPort; + // + IConnection conn = factory.CreateConnection(); + // + IModel ch = conn.CreateModel(); + // + // ... use ch's IModel methods ... + // + ch.Close(Constants.ReplySuccess, "Closing the channel"); + conn.Close(Constants.ReplySuccess, "Closing the connection"); + + + The same example, written more compactly with AMQP URIs: + + + ConnectionFactory factory = new ConnectionFactory(); + factory.SetUri("amqp://localhost"); + IConnection conn = factory.CreateConnection(); + ... + + + Please see also the API overview and tutorial in the User Guide. + + + Note that the Uri property takes a string representation of an + AMQP URI. Omitted URI parts will take default values. The + host part of the URI cannot be omitted and URIs of the form + "amqp://foo/" (note the trailling slash) also represent the + default virtual host. The latter issue means that virtual + hosts with an empty name are not addressable. + + + + Default value for the desired maximum channel number, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for connection attempt timeout, in milliseconds. + + + + + Default value for the desired maximum frame size, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for desired heartbeat interval, in seconds, with zero meaning none (value: 60). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default password (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default user name (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default virtual host (value: "/"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + The default AMQP URI SSL protocols. + + + + + The AMQP URI SSL protocols. + + + + + Default SASL auth mechanisms to use. + + + + + SASL auth mechanisms to use. + + + + + Set to false to disable automatic connection recovery. + Defaults to true. + + + + + Set to true will enable a asynchronous consumer dispatcher which is compatible with . + Defaults to false. + + + + The host to connect to. + + + + Amount of time client will wait for before re-trying to recover connection. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + Factory function for creating the + used to generate a list of endpoints for the ConnectionFactory + to try in order. + The default value creates an instance of the + using the list of endpoints passed in. The DefaultEndpointResolver shuffles the + provided list each time it is requested. + + + + + The port to connect on. + indicates the default for the protocol should be used. + + + + + Protocol used, only AMQP 0-9-1 is supported in modern versions. + + + + + Timeout setting for connection attempts (in milliseconds). + + + + + Timeout setting for socket read operations (in milliseconds). + + + + + Timeout setting for socket write operations (in milliseconds). + + + + + Ssl options setting. + + + + + Set to false to make automatic connection recovery not recover topology (exchanges, queues, bindings, etc). + Defaults to true. + + + + + Task scheduler connections created by this factory will use when + dispatching consumer operations, such as message deliveries. + + + + + Construct a fresh instance, with all fields set to their respective defaults. + + + + + Connection endpoint. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat timeout to use when negotiating with the server (in seconds). + + + + + When set to true, background thread will be used for the I/O loop. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + The uri to use for the connection. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + When the configured hostname was not reachable. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + When the configured hostname was not reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each hostname is tried in a random order until a successful connection is + found or the list is exhausted using the DefaultEndpointResolver. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each endpoint is tried in a random order until a successful connection is + found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of endpoints. By default each endpoint will be tried + in a random order until a successful connection is found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using an IEndpointResolver. + + + The endpointResolver that returns the endpoints to use for the connection attempt. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Unescape a string, protecting '+'. + + + + + Set custom socket options by providing a SocketFactory. + + + + + Creates a new instance of the . + + Specifies the addressing scheme. + New instance of a . + + + + Useful default/base implementation of . + Subclass and override in application code. + + + Note that the "Handle*" methods run in the connection's thread! + Consider using , which exposes + events that can be subscribed to consumer messages. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + Convenience class providing compile-time names for standard exchange types. + + + Use the static members of this class as values for the + "exchangeType" arguments for IModel methods such as + ExchangeDeclare. The broker may be extended with additional + exchange types that do not appear in this class. + + + + + Exchange type used for AMQP direct exchanges. + + + + + Exchange type used for AMQP fanout exchanges. + + + + + Exchange type used for AMQP headers exchanges. + + + + + Exchange type used for AMQP topic exchanges. + + + + + Retrieve a collection containing all standard exchange types. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Convenience class providing compile-time names for standard headers. + + + Use the static members of this class as headers for the + arguments for Queue and Exchange declaration or Consumer creation. + The broker may be extended with additional + headers that do not appear in this class. + + + + + x-max-priority header + + + + + x-max-length header + + + + + x-max-length-bytes header + + + + + x-dead-letter-exchange header + + + + + x-dead-letter-routing-key header + + + + + x-message-ttl header + + + + + x-expires header + + + + + alternate-exchange header + + + + + x-priority header + + + + + x-queue-mode header. + Available modes: "default" and "lazy" + + + + + x-queue-type header. + Available types: "quorum" and "classic"(default) + + + + + x-quorum-initial-group-size header. + Use to control the number of quorum queue members + + + + + x-single-active-consumer header. + Available modes: true and false(default). + Allows to have only one consumer at a time consuming from a queue + and to fail over to another registered consumer in case the active one is cancelled or dies + + + + + x-overflow header. + Available strategies: "reject-publish" and "drop-head"(default). + Allows to configure strategy when or hits limits + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Consumer interface. Used to + receive messages from a queue by subscription. + + + See IModel.BasicConsume, IModel.BasicCancel. + + + Note that the "Handle*" methods run in the connection's + thread! Consider using QueueingBasicConsumer, which uses a + SharedQueue instance to safely pass received messages across + to user threads. + + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Common AMQP Basic content-class headers interface, + spanning the union of the functionality offered by versions + 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use . + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a + fresh instance are clear by default. + + + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + + Main interface to an AMQP connection. + + + + Instances of are used to create fresh + sessions/channels. The class is used to + construct instances. + Please see the documentation for ConnectionFactory for an example of usage. + Alternatively, an API tutorial can be found in the User Guide. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when + appropriate. + + + + + + If true, will close the whole connection as soon as there are no channels open on it; + if false, manual connection closure will be required. + + + DON'T set AutoClose to true before opening the first + channel, because the connection will be immediately closed if you do! + + + + + The maximum channel number this connection supports (0 if unlimited). + Usable channel numbers range from 1 to this number, inclusive. + + + + + A copy of the client properties that has been sent to the server. + + + + + Returns null if the connection is still in a state + where it can be used, or the cause of its closure otherwise. + + + + Applications should use the ConnectionShutdown event to + avoid race conditions. The scenario to avoid is checking + , seeing it is null (meaning the + was available for use at the time of the check), and + interpreting this mistakenly as a guarantee that the + will remain usable for a time. Instead, the + operation of interest should simply be attempted: if the + is not in a usable state, an exception will be + thrown (most likely , but may + vary depending on the particular operation being attempted). + + + + + + Retrieve the endpoint this connection is connected to. + + + + + The maximum frame size this connection supports (0 if unlimited). + + + + + The current heartbeat setting for this connection (0 for disabled), in seconds. + + + + + Returns true if the connection is still in a state where it can be used. + Identical to checking if equal null. + + + + + Returns the known hosts that came back from the + broker in the connection.open-ok method at connection + startup time. Null until the connection is completely open and ready for use. + + + + + The this connection is using to communicate with its peer. + + + + + A dictionary of the server properties sent by the server while establishing the connection. + This typically includes the product name and version of the server. + + + + + Returns the list of objects that contain information + about any errors reported while closing the connection in the order they appeared + + + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + Signalled when an exception occurs in a callback invoked by the connection. + + + This event is signalled when a ConnectionShutdown handler + throws an exception. If, in future, more events appear on + , then this event will be signalled whenever one + of those event handlers throws an exception, as well. + + + + + Raised when the connection is destroyed. + + + If the connection is already destroyed at the time an + event handler is added to this event, the event handler + will be fired immediately. + + + + + Abort this connection and all its channels. + + + Note that all active channels, sessions, and models will be closed if this method is called. + In comparison to normal method, will not throw + during closing connection. + This method waits infinitely for the in-progress close operation to complete. + + + + + Abort this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification) + + + A message indicating the reason for closing the connection + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + This method, behaves in a similar way as method with the + only difference that it explictly specifies a timeout given + for all the in-progress close operations to complete. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Close this connection and all its channels. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete. This method will not return to the caller + until the shutdown is complete. If the connection is already closed + (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + + + + + Close this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP specification). + + + A message indicating the reason for closing the connection. + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete with a timeout. If the connection is + already closed (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Create and return a fresh channel, session, and model. + + + + + Handle incoming Connection.Blocked methods. + + + + + Handle incoming Connection.Unblocked methods. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat setting to request (in seconds). + + + + + When set to true, background threads will be used for I/O and heartbeats. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + Sets or gets the AMQP Uri to be used for connections. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to the specified endpoint. + + + + + Create a connection to the specified endpoint. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Create a connection using a list of endpoints. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Advanced option. + + What task scheduler should consumer dispatcher use. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + A decoded AMQP content header frame. + + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Return all AmqpTcpEndpoints in the order they should be tried. + + + + + A decoded AMQP method frame. + + + + AMQP methods can be RPC requests, RPC responses, exceptions + (ChannelClose, ConnectionClose), or one-way asynchronous + messages. Currently this information is not recorded in their + type or interface: it is implicit in the way the method is + used, and the way it is defined in the AMQP specification. A + future revision of the RabbitMQ .NET client library may extend + the IMethod interface to represent this information + explicitly. + + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + + Common AMQP model, spanning the union of the + functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when appropriate. + + + + + Channel number, unique per connections. + + + + + Returns null if the session is still in a state where it can be used, + or the cause of its closure otherwise. + + + + Signalled when an unexpected message is delivered + + Under certain circumstances it is possible for a channel to receive a + message delivery which does not match any consumer which is currently + set up via basicConsume(). This will occur after the following sequence + of events: + + ctag = basicConsume(queue, consumer); // i.e. with explicit acks + // some deliveries take place but are not acked + basicCancel(ctag); + basicRecover(false); + + Since requeue is specified to be false in the basicRecover, the spec + states that the message must be redelivered to "the original recipient" + - i.e. the same channel / consumer-tag. But the consumer is no longer + active. + + In these circumstances, you can register a default consumer to handle + such deliveries. If no default consumer is registered an + InvalidOperationException will be thrown when such a delivery arrives. + + Most people will not need to use this. + + + + Returns true if the model is no longer in a state where it can be used. + + + + + Returns true if the model is still in a state where it can be used. + Identical to checking if equals null. + + + + When in confirm mode, return the sequence number of the next message to be published. + + + + + Signalled when a Basic.Ack command arrives from the broker. + + + + + Signalled when a Basic.Nack command arrives from the broker. + + + + + All messages received before this fires that haven't been ack'ed will be redelivered. + All messages received afterwards won't be. + + + Handlers for this event are invoked by the connection thread. + It is sometimes useful to allow that thread to know that a recover-ok + has been received, rather than the thread that invoked . + + + + + Signalled when a Basic.Return command arrives from the broker. + + + + + Signalled when an exception occurs in a callback invoked by the model. + + Examples of cases where this event will be signalled + include exceptions thrown in methods, or + exceptions thrown in delegates etc. + + + + + Notifies the destruction of the model. + + + If the model is already destroyed at the time an event + handler is added to this event, the event handler will be fired immediately. + + + + + Abort this session. + + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + In comparison to normal method, will not throw + or or any other during closing model. + + + + + Abort this session. + + + The method behaves in the same way as , with the only + difference that the model is closed with the given model close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Acknowledge one or more delivered message(s). + + + + + Delete a Basic content-class consumer. + + + + Start a Basic content-class consumer. + + + + Retrieve an individual message, if + one is available; returns null if the server answers that + no messages are currently available. See also . + + + + Reject one or more delivered message(s). + + + + Publishes a message. + + + + Routing key must be shorter than 255 bytes. + + + + + + Configures QoS parameters of the Basic content-class. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + Reject a delivered message. + + + Close this session. + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + + + + Close this session. + + The method behaves in the same way as Close(), with the only + difference that the model is closed with the given model + close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Enable publisher acknowledgements. + + + + + Creates a BasicPublishBatch instance + + + + + Construct a completely empty content header for use with the Basic content class. + + + + + Bind an exchange to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Like ExchangeBind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + Declare an exchange. + + The exchange is declared non-passive and non-internal. + The "nowait" option is not exercised. + + + + + Same as ExchangeDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + + Do a passive exchange declaration. + + + This method performs a "passive declare" on an exchange, + which verifies whether . + It will do nothing if the exchange already exists and result + in a channel-level protocol exception (channel closure) if not. + + + + + Delete an exchange. + + + + + Like ExchangeDelete but sets nowait to true. + + + + + Unbind an exchange from an exchange. + + + Routing key must be shorter than 255 bytes. + + + + + Like ExchangeUnbind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + + Bind a queue to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + Same as QueueBind but sets nowait parameter to true. + + + Routing key must be shorter than 255 bytes. + + + + + Declare a queue. + + + + Same as QueueDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + Declare a queue passively. + + The queue is declared passive, non-durable, + non-exclusive, and non-autodelete, with no arguments. + The queue is declared passively; i.e. only check if it exists. + + + + + Returns the number of messages in a queue ready to be delivered + to consumers. This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Returns the number of consumers on a queue. + This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Delete a queue. + + + Returns the number of messages purged during queue deletion. + uint.MaxValue. + + + + + Same as QueueDelete but sets nowait parameter to true + and returns void (as there will be no response from the server) + + + + + Purge a queue of messages. + + + Returns the number of messages purged. + + + + + Unbind a queue from an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Commit this session's active TX transaction. + + + + + Roll back this session's active TX transaction. + + + + + Enable TX mode for this session. + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + True if the method returned because + the timeout elapsed, not because all messages were ack'd or at least one nack'd. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received, throws an + OperationInterrupedException exception immediately. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received or the timeout + elapses, throws an OperationInterrupedException exception immediately. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false and immediate=false. + + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false + + + + + (Spec method) Convenience overload of BasicPublish. + + + + + (Spec method) Declare a queue. + + + + + (Extension method) Bind an exchange to an exchange. + + + + + (Extension method) Like exchange bind but sets nowait to true. + + + + + (Spec method) Declare an exchange. + + + + + (Extension method) Like ExchangeDeclare but sets nowait to true. + + + + + (Spec method) Unbinds an exchange. + + + + + (Spec method) Deletes an exchange. + + + + + (Extension method) Like ExchangeDelete but sets nowait to true. + + + + + (Spec method) Binds a queue. + + + + + (Spec method) Deletes a queue. + + + + + (Extension method) Like QueueDelete but sets nowait to true. + + + + + (Spec method) Unbinds a queue. + + + + + Object describing various overarching parameters + associated with a particular AMQP protocol variant. + + + + + Retrieve the protocol's API name, used for printing, + configuration properties, IDE integration, Protocols.cs etc. + + + + + Retrieve the protocol's default TCP port. + + + + + Retrieve the protocol's major version number. + + + + + Retrieve the protocol's minor version number. + + + + + Retrieve the protocol's revision (if specified). + + + + + Construct a connection from a given set of parameters, + a frame handler, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, and automatic recovery settings. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and automatic recovery settings. + + + + + Construct a protocol model atop a given session. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + This interface is provided to make creation of test doubles + for easier. + + + + + + A marker interface for entities that are recoverable (currently connection or channel). + + + + + Common AMQP Stream content-class headers interface, + spanning the union of the functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use IModel.CreateStreamProperties(). + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a fresh instance are clear by default. + + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Message header field table. + + + + + Message priority, 0 to 9. + + + + + Message timestamp. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Wrapper interface for standard TCP-client. Provides socket for socket frame handler class. + + Contains all methods that are currenty in use in rabbitmq client. + + + + Common interface for network (TCP/IP) connection classes. + + + + + Local port. + + + + + Remote port. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Provides access to the supported implementations. + + + + + Protocol version 0-9-1 as modified by Pivotal. + + + + + Retrieve the current default protocol variant (currently AMQP_0_9_1). + + + + + Container for an exchange name, exchange type and + routing key, usable as the target address of a message to be published. + + + + The syntax used for the external representation of instances + of this class is compatible with QPid's "Reply-To" field + pseudo-URI format. The pseudo-URI format is + (exchange-type)://(exchange-name)/(routing-key), where + exchange-type is one of the permitted exchange type names (see + class ExchangeType), exchange-name must be present but may be + empty, and routing-key must be present but may be empty. + + + The syntax is as it is solely for compatibility with QPid's + existing usage of the ReplyTo field; the AMQP specifications + 0-8 and 0-9 do not define the format of the field, and do not + define any format for the triple (exchange name, exchange + type, routing key) that could be used instead. + + + + + + Regular expression used to extract the exchange-type, + exchange-name and routing-key from a string. + + + + + Creates a new instance of the . + + Exchange type. + Exchange name. + Routing key. + + + + Retrieve the exchange name. + + + + + Retrieve the exchange type string. + + + + + Retrieve the routing key. + + + + + Parse a out of the given string, + using the regex. + + + + + Reconstruct the "uri" from its constituents. + + + + + Represents Queue info. + + + + + Creates a new instance of the . + + Queue name. + Message count. + Consumer count. + + + + Consumer count. + + + + + Message count. + + + + + Queue name. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + Received messages are placed in the SharedQueue as instances + of . + + + Note that messages taken from the SharedQueue may need + acknowledging with . + + + When the consumer is closed, through BasicCancel or through + the shutdown of the underlying or , + the method is called, which causes any + Enqueue() operations, and Dequeue() operations when the queue + is empty, to throw EndOfStreamException (see the comment for ). + + + The following is a simple example of the usage of this class: + + + IModel channel = ...; + QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel); + channel.BasicConsume(queueName, null, consumer); + + // At this point, messages will be being asynchronously delivered, + // and will be queueing up in consumer.Queue. + + while (true) { + try { + BasicDeliverEventArgs e = (BasicDeliverEventArgs) consumer.Queue.Dequeue(); + // ... handle the delivery ... + channel.BasicAck(e.DeliveryTag, false); + } catch (EndOfStreamException ex) { + // The consumer was cancelled, the model closed, or the + // connection went away. + break; + } + } + + + + + + Creates a fresh , + initialising the property to null + and the property to a fresh . + + + + + Creates a fresh , with + set to the argument, and set to a fresh . + + + + + Creates a fresh , + initialising the + and properties to the given values. + + + + + Retrieves the that messages arrive on. + + + + + Overrides 's implementation, + building a instance and placing it in the Queue. + + + + + Overrides 's OnCancel implementation, + extending it to call the Close() method of the . + + + + + Information about the reason why a particular model, session, or connection was destroyed. + + + The and properties should be used to determine the originator of the shutdown event. + + + + + Construct a with the given parameters and + 0 for and . + + + + + Construct a with the given parameters. + + + + + Object causing the shutdown, or null if none. + + + + + AMQP content-class ID, or 0 if none. + + + + + Returns the source of the shutdown event: either the application, the library, or the remote peer. + + + + + AMQP method ID within a content-class, or 0 if none. + + + + + One of the standardised AMQP reason codes. See RabbitMQ.Client.Framing.*.Constants. + + + + + Informative human-readable reason text. + + + + + Override ToString to be useful for debugging. + + + + + Describes the source of a shutdown event. + + + + + The shutdown event originated from the application using the RabbitMQ .NET client library. + + + + + The shutdown event originated from the RabbitMQ .NET client library itself. + + + Shutdowns with this ShutdownInitiator code may appear if, + for example, an internal error is detected by the client, + or if the server sends a syntactically invalid + frame. Another potential use is on IConnection AutoClose. + + + + + The shutdown event originated from the remote AMQP peer. + + + A valid received connection.close or channel.close event + will manifest as a shutdown with this ShutdownInitiator. + + + + + Single entry object in the shutdown report that encapsulates description + of the error which occured during shutdown. + + + + + Description provided in the error. + + + + + object that occured during shutdown, or null if unspecified. + + + + + Represents an which does the actual heavy lifting to set up an SSL connection, + using the config options in an to make things cleaner. + + + + + Upgrade a Tcp stream to an Ssl stream using the SSL options provided. + + + + + Represents a configurable SSL option, used in setting up an SSL connection. + + + + + Constructs an SslOption specifying both the server cannonical name and the client's certificate path. + + + + + Constructs an with no parameters set. + + + + + Retrieve or set the set of ssl policy errors that are deemed acceptable. + + + + + Retrieve or set the path to client certificate. + + + + + Retrieve or set the path to client certificate. + + + + + An optional client specified SSL certificate selection callback. If this is not specified, + the first valid certificate found will be used. + + + + + An optional client specified SSL certificate validation callback. If this is not specified, + the default callback will be used in conjunction with the property to + determine if the remote server certificate is valid. + + + + + Retrieve or set the X509CertificateCollection containing the client certificate. + If no collection is set, the client will attempt to load one from the specified . + + + + + Flag specifying if Ssl should indeed be used. + + + + + Retrieve or set server's Canonical Name. + This MUST match the CN on the Certificate else the SSL connection will fail. + + + + + Retrieve or set the Ssl protocol version. + + + + + Framework for constructing various types of AMQP. Basic-class application messages. + + + + + By default, new instances of BasicMessageBuilder and its subclasses will have this much initial buffer space. + + + + + Construct an instance ready for writing. + + + The is used for the initial accumulator buffer size. + + + + + Construct an instance ready for writing. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's writing to BodyStream. + + + If no instance exists, one is created, + pointing at the beginning of the accumulator. If one + already exists, the existing instance is returned. The + instance is not reset. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Framework for analyzing various types of AMQP Basic-class application messages. + + + + + Construct an instance ready for reading. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's NetworkBinaryReader reading from . + + + If no NetworkBinaryReader instance exists, one is created, + pointing at the beginning of the body. If one already + exists, the existing instance is returned. The instance is + not reset. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Interface for constructing messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Interface for constructing messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Analyzes messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Parses the message body into an instance. + + + + + Interface for constructing application messages. + + + Subinterfaces provide specialized data-writing methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Finish and retrieve the content header for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Interface for analyzing application messages. + + + Subinterfaces provide specialized data-reading methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Interface for constructing messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Finish and retrieve the content body for transmission. + + + Calling this message clears Body to null. Subsequent calls will fault. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for reading. See . + + + + + Parses the message body into an instance. + + . + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "MapMessage" wire encoding. + + + + + + Utility class for extracting typed values from strings. + + + + + Creates the protocol violation exception. + + Type of the target. + The source. + Instance of the . + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of an . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Tags used in parsing and generating StreamWireFormatting message bodies. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + + + + + + + + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + Contains all the information about a message acknowledged + from an AMQP broker within the Basic content-class. + + + The sequence number of the acknowledged message, or + the closed upper bound of acknowledged messages if multiple + is true. + + + Whether this acknoledgement applies to one message + or multiple messages. + + + Contains all the information about a message delivered + from an AMQP broker within the Basic content-class. + + + Default constructor. + + + Constructor that fills the event's properties from + its arguments. + + + The content header of the message. + + + The message body. + + + The consumer tag of the consumer that the message + was delivered to. + + + The delivery tag for this delivery. See + IModel.BasicAck. + + + The exchange the message was originally published + to. + + + The AMQP "redelivered" flag. + + + The routing key used when the message was + originally published. + + + Contains all the information about a message nack'd + from an AMQP broker within the Basic content-class. + + + The sequence number of the nack'd message, or the + closed upper bound of nack'd messages if multiple is + true. + + + Whether this nack applies to one message or + multiple messages. + + + Ignore + Clients should ignore this field. + + + Contains all the information about a message returned + from an AMQP broker within the Basic content-class. + + + The content header of the message. + + + The message body. + + + The exchange the returned message was originally + published to. + + + The AMQP reason code for the return. See + RabbitMQ.Client.Framing.*.Constants. + + + Human-readable text from the broker describing the + reason for the return. + + + The routing key used when the message was + originally published. + + + Wrap an exception thrown by a callback. + + + Access helpful information about the context in + which the wrapped exception was thrown. + + + Access the wrapped exception. + + + Describes an exception that was thrown during the + library's invocation of an application-supplied callback + handler. + + + When an exception is thrown from a callback registered with + part of the RabbitMQ .NET client library, it is caught, + packaged into a CallbackExceptionEventArgs, and passed through + the appropriate IModel's or IConnection's CallbackException + event handlers. If an exception is thrown in a + CallbackException handler, it is silently swallowed, as + CallbackException is the last chance to handle these kinds of + exception. + + + Code constructing CallbackExceptionEventArgs instances will + usually place helpful information about the context of the + call in the IDictionary available through the Detail property. + + + + + + Event relating to connection being blocked. + + + + + Access the reason why connection is blocked. + + + + Event relating to a successful consumer registration + or cancellation. + + + Construct an event containing the consumer-tag of + the consumer the event relates to. + + + Access the consumer-tag of the consumer the event + relates to. + + + + Initializes a new instance of the class. + + The tag before. + The tag after. + + + + Gets the tag before. + + + + + Gets the tag after. + + + + Experimental class exposing an IBasicConsumer's + methods as separate events. + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + + Event relating to flow control. + + + + + Access the flow control setting. + + + + + Initializes a new instance of the class. + + The name before. + The name after. + + + + Gets the name before. + + + + + Gets the name after. + + + + + Describes an exception that was thrown during + automatic connection recovery performed by the library. + + + + Thrown when the application tries to make use of a + session or connection that has already been shut + down. + + + Construct an instance containing the given + shutdown reason. + + + Thrown when the cause is an + authentication failure. + + + Thrown when no connection could be opened during a + ConnectionFactory.CreateConnection attempt. + + + Construct a BrokerUnreachableException. The inner exception is + an AggregateException holding the errors from multiple connection attempts. + + + Thrown when a SessionManager cannot allocate a new + channel number, or the requested channel number is already in + use. + + + + Indicates that there are no more free channels. + + + + + Indicates that the specified channel is in use + + The requested channel number + + + Retrieves the channel number concerned; will + return -1 in the case where "no more free channels" is + being signaled, or a non-negative integer when "channel is + in use" is being signaled. + + + Thrown when a connection to the broker fails + + + + Thrown when a session is destroyed during an RPC call to a + broker. For example, if a TCP connection dropping causes the + destruction of a session in the middle of a QueueDeclare + operation, an OperationInterruptedException will be thrown to + the caller of IModel.QueueDeclare. + + + + Construct an OperationInterruptedException with + the passed-in explanation, if any. + + + Construct an OperationInterruptedException with + the passed-in explanation and prefix, if any. + + + Retrieves the explanation for the shutdown. May + return null if no explanation is available. + + + Thrown to indicate that the peer didn't understand + the packet received from the client. Peer sent default message + describing protocol version it is using and transport parameters. + + + The peer's {'A','M','Q','P',txHi,txLo,major,minor} packet is + decoded into instances of this class. + + + + Fills the new instance's properties with the values passed in. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + The peer's high transport byte. + + + The peer's low transport byte. + + + Thrown when the likely cause is an + authentication failure. + + + Thrown to indicate that the peer does not support the + wire protocol version we requested immediately after opening + the TCP socket. + + + Fills the new instance's properties with the values passed in. + + + The client's AMQP specification major version. + + + The client's AMQP specification minor version. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Thrown when the model receives an RPC reply that it wasn't expecting. + + + + The unexpected reply method. + + + + Thrown when the model receives an RPC request it cannot satisfy. + + + + The name of the RPC request that could not be sent. + + + Thrown when the model cannot transmit a method field + because the version of the protocol the model is implementing + does not contain a definition for the field in + question. + + + The name of the unsupported field. + + + The name of the method involved. + + + Thrown when the wire-formatting code cannot encode a + particular .NET value to AMQP protocol format. + + + Construct a WireFormattingException with no + particular offender (i.e. null) + + + Construct a WireFormattingException with the given + offender + + + Object which this exception is complaining about; + may be null if no particular offender exists + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + Thrown when the server sends a frame along a channel + that we do not currently have a Session entry in our + SessionManager for. + + + The channel number concerned. + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Fill this instance from the given byte buffer stream. + + + + A type of . + + + + Returns a random item from the list. + + Element item type + Input list + + + + Subclass of ProtocolException representing problems + requiring a connection.close. + + + Socket read timeout, in milliseconds. Zero signals "infinity". + + + Socket write timeout, in milliseconds. Zero signals "infinity". + + + Read a frame from the underlying + transport. Returns null if the read operation timed out + (see Timeout property). + + + Not part of the public API. Extension of IModel to + include utilities and connection-setup routines needed by the + implementation side. + + This interface is used by the API autogeneration + process. The AMQP XML specifications are read by the spec + compilation tool, and after the basic method interface and + implementation classes are generated, this interface is + scanned, and a spec-version-specific implementation is + autogenerated. Annotations are used on certain methods, return + types, and parameters, to customise the details of the + autogeneration process. + + + + + + Sends a Connection.TuneOk. Used during connection + initialisation. + + + Handle incoming Basic.Ack methods. Signals a + BasicAckEvent. + + + Handle incoming Basic.CancelOk methods. + + + Handle incoming Basic.ConsumeOk methods. + + + Handle incoming Basic.Deliver methods. Dispatches + to waiting consumers. + + + Handle incoming Basic.GetEmpty methods. Routes the + information to a waiting Basic.Get continuation. + + Note that the clusterId field is ignored, as in the + specification it notes that it is "deprecated pending + review". + + + + Handle incoming Basic.GetOk methods. Routes the + information to a waiting Basic.Get continuation. + + + Handle incoming Basic.Nack methods. Signals a + BasicNackEvent. + + + Handle incoming Basic.RecoverOk methods + received in reply to Basic.Recover. + + + + Handle incoming Basic.Return methods. Signals a + BasicReturnEvent. + + + Handle an incoming Channel.Close. Shuts down the + session and model. + + + Handle an incoming Channel.CloseOk. + + + Handle incoming Channel.Flow methods. Either + stops or resumes sending the methods that have content. + + + Handle an incoming Connection.Blocked. + + + Handle an incoming Connection.Close. Shuts down the + connection and all sessions and models. + + + Handle an incoming Connection.OpenOk. + + + Handle incoming Connection.Secure + methods. + + + Handle an incoming Connection.Start. Used during + connection initialisation. + + + Handle incoming Connection.Tune + methods. + + + Handle an incominga Connection.Unblocked. + + + Handle incoming Queue.DeclareOk methods. Routes the + information to a waiting Queue.DeclareOk continuation. + + + Used to send a Basic.Cancel method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Consume method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Get. Basic.Get is a special + case, since it can result in a Basic.GetOk or a + Basic.GetEmpty, so this level of manual control is + required. + + + Used to send a Basic.Publish method. Called by the + public publish method after potential null-reference issues + have been rectified. + + + Used to send a Channel.Close. Called during + session shutdown. + + + Used to send a Channel.CloseOk. Called during + session shutdown. + + + Used to send a Channel.FlowOk. Confirms that + Channel.Flow from the broker was processed. + + + Used to send a Channel.Open. Called during session + initialisation. + + + Used to send a Confirm.Select method. The public + confirm API calls this while also managing internal + datastructures. + + + Used to send a Connection.Close. Called during + connection shutdown. + + + Used to send a Connection.CloseOk. Called during + connection shutdown. + + + Used to send a Connection.Open. Called during + connection startup. + + + Used to send a Connection.SecureOk. Again, this is + special, like Basic.Get. + + + Used to send a Connection.StartOk. This is + special, like Basic.Get. + + + Used to send a Exchange.Bind method. Called by the + public bind method. + + + + Used to send a Exchange.Declare method. Called by the + public declare method. + + + + Used to send a Exchange.Delete method. Called by the + public delete method. + + + + Used to send a Exchange.Unbind method. Called by the + public unbind method. + + + + Used to send a Queue.Bind method. Called by the + public bind method. + + + Used to send a Queue.Declare method. Called by the + public declare method. + + + Used to send a Queue.Delete method. Called by the + public delete method. + + + Used to send a Queue.Purge method. Called by the + public purge method. + + + Essential information from an incoming Connection.Tune + method. + + + The peer's suggested channel-max parameter. + + + The peer's suggested frame-max parameter. + + + The peer's suggested heartbeat parameter. + + + + Gets the channel number. + + + + + Gets the close reason. + + + + + Single recipient - no need for multiple handlers to be informed of arriving commands. + + + + + Gets the connection. + + + + + Gets a value indicating whether this session is open. + + + + + Multicast session shutdown event. + + + + Small ISession implementation used only for channel 0. + + + Set channel 0 as quiescing + + Method should be idempotent. Cannot use base.Close + method call because that would prevent us from + sending/receiving Close/CloseOk commands + + + + Thrown when frame parsing code detects an error in the + wire-protocol encoding of a frame. + + For example, potential MalformedFrameException conditions + include frames too short, frames missing their end marker, and + invalid protocol negotiation headers. + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + Only used to kick-start a connection open + sequence. See + + + Broadcasts notification of the final shutdown of the model. + + + Do not call anywhere other than at the end of OnSessionShutdown. + + + Must not be called when m_closeReason == null, because + otherwise there's a window when a new continuation could be + being enqueued at the same time as we're broadcasting the + shutdown event. See the definition of Enqueue() above. + + + + + Handle incoming Connection.Tune + methods. + + + Instances of subclasses of subclasses + HardProtocolException and SoftProtocolException are thrown in + situations when we detect a problem with the connection-, + channel- or wire-level parts of the AMQP protocol. + + + Retrieve the reply code to use in a + connection/channel close method. + + + Retrieve the shutdown details to use in a + connection/channel close method. Defaults to using + ShutdownInitiator.Library, and this.ReplyCode and + this.Message as the reply code and text, + respectively. + + + Small ISession implementation used during channel quiescing. + + + Manages a queue of waiting AMQP RPC requests. + + + Currently, pipelining of requests is forbidden by this + implementation. The AMQP 0-8 and 0-9 specifications themselves + forbid pipelining, but only by the skin of their teeth and + under a somewhat generous reading. + + + + + Enqueue a continuation, marking a pending RPC. + + + Continuations are retrieved in FIFO order by calling Next(). + + + In the current implementation, only one continuation can + be queued up at once. Calls to Enqueue() when a + continuation is already enqueued will result in + NotSupportedException being thrown. + + + + + Interrupt all waiting continuations. + + + There's just the one potential waiter in the current + implementation. + + + + + Retrieve the next waiting continuation. + + + It is an error to call this method when there are no + waiting continuations. In the current implementation, if + this happens, null will be returned (which will usually + result in an immediate NullPointerException in the + caller). Correct code will always arrange for a + continuation to have been Enqueue()d before calling this + method. + + + + + Normal ISession implementation used during normal channel operation. + + + Called from CheckAutoClose, in a separate thread, + when we decide to close the connection. + + + If m_autoClose and there are no active sessions + remaining, Close()s the connection with reason code + 200. + + + Replace an active session slot with a new ISession + implementation. Used during channel quiescing. + + Make sure you pass in a channelNumber that's currently in + use, as if the slot is unused, you'll get a null pointer + exception. + + + + Subclass of ProtocolException representing problems + requiring a channel.close. + + + Thrown when our peer sends a frame that contains + illegal values for one or more fields. + + + + Thrown when the connection receives a frame that it wasn't expecting. + + + + + Thrown when the protocol handlers detect an unknown class + number or method number. + + + + The AMQP content-class ID. + + + The AMQP method ID within the content-class, or 0 if none. + + + Reads an AMQP "table" definition from the reader. + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t, + x and V types and the AMQP 0-9-1 A type. + + A . + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Heartbeat frame for transmission. Reusable across connections. + + + Another overload of a Protocol property, useful + for exposing a tighter type. + + + Explicit implementation of IConnection.Protocol. + + + Try to close connection in a graceful way + + + Shutdown reason contains code and text assigned when closing the connection, + as well as the information about what initiated the close + + + Abort flag, if true, signals to close the ongoing connection immediately + and do not report any errors if it was already closed. + + + Timeout determines how much time internal close operations should be given + to complete. Negative or Timeout.Infinite value mean infinity. + + + + + + Loop only used while quiescing. Use only to cleanly close connection + + + + + We need to close the socket, otherwise attempting to unload the domain + could cause a CannotUnloadAppDomainException + + + + Broadcasts notification of the final shutdown of the connection. + + + + Sets the channel named in the SoftProtocolException into + "quiescing mode", where we issue a channel.close and + ignore everything except for subsequent channel.close + messages and the channel.close-ok reply that should + eventually arrive. + + + + Since a well-behaved peer will not wait indefinitely before + issuing the close-ok, we don't bother with a timeout here; + compare this to the case of a connection.close-ok, where a + timeout is necessary. + + + We need to send the close method and politely wait for a + reply before marking the channel as available for reuse. + + + As soon as SoftProtocolException is detected, we should stop + servicing ordinary application work, and should concentrate + on bringing down the channel as quickly and gracefully as + possible. The way this is done, as per the close-protocol, + is to signal closure up the stack *before* sending the + channel.close, by invoking ISession.Close. Once the upper + layers have been signalled, we are free to do what we need + to do to clean up and shut down the channel. + + + + + + May be called more than once. Should therefore be idempotent. + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Protocol major version (= 0) + + + Protocol minor version (= 9) + + + Protocol revision (= 1) + + + Protocol API name (= :AMQP_0_9_1) + + + Default TCP port (= 5672) + + + (= 1) + + + (= 2) + + + (= 3) + + + (= 8) + + + (= 4096) + + + (= 206) + + + (= 200) + + + (= 311) + + + (= 313) + + + (= 320) + + + (= 402) + + + (= 403) + + + (= 404) + + + (= 405) + + + (= 406) + + + (= 501) + + + (= 502) + + + (= 503) + + + (= 504) + + + (= 505) + + + (= 506) + + + (= 530) + + + (= 540) + + + (= 541) + + + Autogenerated type. AMQP specification method "connection.start". + + + Autogenerated type. AMQP specification method "connection.start-ok". + + + Autogenerated type. AMQP specification method "connection.secure". + + + Autogenerated type. AMQP specification method "connection.secure-ok". + + + Autogenerated type. AMQP specification method "connection.tune". + + + Autogenerated type. AMQP specification method "connection.tune-ok". + + + Autogenerated type. AMQP specification method "connection.open". + + + Autogenerated type. AMQP specification method "connection.open-ok". + + + Autogenerated type. AMQP specification method "connection.close". + + + Autogenerated type. AMQP specification method "connection.close-ok". + + + Autogenerated type. AMQP specification method "connection.blocked". + + + Autogenerated type. AMQP specification method "connection.unblocked". + + + Autogenerated type. AMQP specification method "channel.open". + + + Autogenerated type. AMQP specification method "channel.open-ok". + + + Autogenerated type. AMQP specification method "channel.flow". + + + Autogenerated type. AMQP specification method "channel.flow-ok". + + + Autogenerated type. AMQP specification method "channel.close". + + + Autogenerated type. AMQP specification method "channel.close-ok". + + + Autogenerated type. AMQP specification method "exchange.declare". + + + Autogenerated type. AMQP specification method "exchange.declare-ok". + + + Autogenerated type. AMQP specification method "exchange.delete". + + + Autogenerated type. AMQP specification method "exchange.delete-ok". + + + Autogenerated type. AMQP specification method "exchange.bind". + + + Autogenerated type. AMQP specification method "exchange.bind-ok". + + + Autogenerated type. AMQP specification method "exchange.unbind". + + + Autogenerated type. AMQP specification method "exchange.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.declare". + + + Autogenerated type. AMQP specification method "queue.declare-ok". + + + Autogenerated type. AMQP specification method "queue.bind". + + + Autogenerated type. AMQP specification method "queue.bind-ok". + + + Autogenerated type. AMQP specification method "queue.unbind". + + + Autogenerated type. AMQP specification method "queue.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.purge". + + + Autogenerated type. AMQP specification method "queue.purge-ok". + + + Autogenerated type. AMQP specification method "queue.delete". + + + Autogenerated type. AMQP specification method "queue.delete-ok". + + + Autogenerated type. AMQP specification method "basic.qos". + + + Autogenerated type. AMQP specification method "basic.qos-ok". + + + Autogenerated type. AMQP specification method "basic.consume". + + + Autogenerated type. AMQP specification method "basic.consume-ok". + + + Autogenerated type. AMQP specification method "basic.cancel". + + + Autogenerated type. AMQP specification method "basic.cancel-ok". + + + Autogenerated type. AMQP specification method "basic.publish". + + + Autogenerated type. AMQP specification method "basic.return". + + + Autogenerated type. AMQP specification method "basic.deliver". + + + Autogenerated type. AMQP specification method "basic.get". + + + Autogenerated type. AMQP specification method "basic.get-ok". + + + Autogenerated type. AMQP specification method "basic.get-empty". + + + Autogenerated type. AMQP specification method "basic.ack". + + + Autogenerated type. AMQP specification method "basic.reject". + + + Autogenerated type. AMQP specification method "basic.recover-async". + + + Autogenerated type. AMQP specification method "basic.recover". + + + Autogenerated type. AMQP specification method "basic.recover-ok". + + + Autogenerated type. AMQP specification method "basic.nack". + + + Autogenerated type. AMQP specification method "tx.select". + + + Autogenerated type. AMQP specification method "tx.select-ok". + + + Autogenerated type. AMQP specification method "tx.commit". + + + Autogenerated type. AMQP specification method "tx.commit-ok". + + + Autogenerated type. AMQP specification method "tx.rollback". + + + Autogenerated type. AMQP specification method "tx.rollback-ok". + + + Autogenerated type. AMQP specification method "confirm.select". + + + Autogenerated type. AMQP specification method "confirm.select-ok". + + + Autogenerated type. AMQP specification content header properties for content class "basic" + + + Base class for attributes for controlling the API + autogeneration process. + + + The specification namespace (i.e. version) that + this attribute applies to, or null for all specification + versions. + + + Causes the API generator to ignore the attributed method. + + Mostly used to declare convenience overloads of + various AMQP methods in the IModel interface. Also used + to omit an autogenerated implementation of a method which + is not required for one protocol version. The API + autogeneration process should of course not attempt to produce + an implementation of the convenience methods, as they will be + implemented by hand with sensible defaults, delegating to the + autogenerated variant of the method concerned. + + + Causes the API generator to generate asynchronous + receive code for the attributed method. + + + Causes the API generator to generate + exception-throwing code for, instead of simply ignoring, the + attributed method. + + + + + Informs the API generator which AMQP method field to + use for either a parameter in a request, or for a simple result + in a reply. + + + Informs the API generator which AMQP method to use for + either a request (if applied to an IModel method) or a reply + (if applied to an IModel method result). + + + This attribute, if placed on a parameter in an IModel + method, causes it to be interpreted as a "nowait" parameter for + the purposes of autogenerated RPC reply continuation management + and control. + + + This attribute, if placed on a method in IModel, + causes the method to be interpreted as a factory method + producing a protocol-specific implementation of a common + content header interface. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content header frame. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content body frame. + + + This attribute, placed on an IModel method, causes + what would normally be an RPC, sent with ModelRpc, to be sent + as if it were oneway, with ModelSend. The assumption that this + is for a custom continuation (e.g. for BasicConsume/BasicCancel + etc.) + + + + Simple wrapper around TcpClient. + + + + Manages a subscription to a queue. + + + This interface is provided to make creation of test doubles + for easier. + + + + + Implements a simple RPC client. + + + This class sends requests that can be processed by remote + SimpleRpcServer instances. + + + The basic pattern for accessing a remote service is to + determine the exchange name and routing key needed for + submissions of service requests, and to construct a + SimpleRpcClient instance using that address. Once constructed, + the various Call() and Cast() overloads can be used to send + requests and receive the corresponding replies. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + SimpleRpcClient client = + new SimpleRpcClient(ch, queueName); + client.TimeoutMilliseconds = 5000; // optional + + /// ... make use of the various Call() overloads + } + } + + + Instances of this class declare a queue, so it is the user's + responsibility to ensure that the exchange concerned exists + (using IModel.ExchangeDeclare) before invoking Call() or + Cast(). + + + This class implements only a few basic RPC message formats - + to extend it with support for more formats, either subclass, + or transcode the messages before transmission using the + built-in byte[] format. + + + + + + Construct an instance with no configured + Address. The Address property must be set before Call() or + Cast() are called. + + + Construct an instance that will deliver to the + default exchange (""), with routing key equal to the passed + in queueName, thereby delivering directly to a named queue + on the AMQP server. + + + Construct an instance that will deliver to the + named and typed exchange, with the given routing + key. + + + Construct an instance that will deliver to the + given address. + + + This event is fired whenever Call() detects the + disconnection of the underlying Subscription while waiting + for a reply from the service. + + See also OnDisconnected(). Note that the sending of a + request may result in OperationInterruptedException before + the request is even sent. + + + + This event is fired whenever Call() decides that a + timeout has occurred while waiting for a reply from the + service. + + See also OnTimedOut(). + + + + Retrieve or modify the address that will be used + for the next Call() or Cast(). + + This address represents the service, i.e. the destination + service requests should be published to. It can be changed + at any time before a Call() or Cast() request is sent - + the value at the time of the call is used by Call() and + Cast(). + + + + Retrieve the IModel this instance uses to communicate. + + + Retrieve the Subscription that is used to receive + RPC replies corresponding to Call() RPC requests. May be + null. + + + Upon construction, this property will be null. It is + initialised by the protected virtual method + EnsureSubscription upon the first call to Call(). Calls to + Cast() do not initialise the subscription, since no + replies are expected or possible when using Cast(). + + + + + Retrieve or modify the timeout (in milliseconds) + that will be used for the next Call(). + + + This property defaults to + System.Threading.Timeout.Infinite (i.e. -1). If it is set + to any other value, Call() will only wait for the + specified amount of time before returning indicating a + timeout. + + + See also TimedOut event and OnTimedOut(). + + + + + Sends a "jms/stream-message"-encoded RPC request, + and expects an RPC reply in the same format. + + + The arguments passed in must be of types that are + representable as JMS StreamMessage values, and so must the + results returned from the service in its reply message. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + + Sends a simple byte[] message, without any custom + headers or properties. + + + Delegates directly to Call(IBasicProperties, byte[]), and + discards the properties of the received reply, returning + only the body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[] message and IBasicProperties + header, returning both the body and headers of the received + reply. + + + Sets the "replyProperties" outbound parameter to the + properties of the received reply, and returns the byte[] + body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Both sets "replyProperties" to null and returns null when + either the request timed out or we were disconnected + before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[]/IBasicProperties RPC request, + returning full information about the delivered reply as a + BasicDeliverEventArgs. + + + This is the most general/lowest-level Call()-style method + on SimpleRpcClient. It sets CorrelationId and ReplyTo on + the request message's headers before transmitting the + request to the service via the AMQP server. If the reply's + CorrelationId does not match the request's CorrelationId, + ProtocolViolationException will be thrown. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + Sends an asynchronous/one-way message to the + service. + + + Close the reply subscription associated with this instance, if any. + + Simply delegates to calling Subscription.Close(). Clears + the Subscription property, so that subsequent Call()s, if + any, will re-initialize it to a fresh Subscription + instance. + + + + Signals that the Subscription we use for receiving + our RPC replies was disconnected while we were + waiting. + + Fires the Disconnected event. + + + + Signals that the configured timeout fired while + waiting for an RPC reply. + + Fires the TimedOut event. + + + + Implement the IDisposable interface, permitting + SimpleRpcClient instances to be used in using + statements. + + + Should initialise m_subscription to be non-null + and usable for fetching RPC replies from the service + through the AMQP server. + + + Retrieves the reply for the request with the given + correlation ID from our internal Subscription. + + Currently requires replies to arrive in the same order as + the requests were sent out. Subclasses may override this + to provide more sophisticated behaviour. + + + + Implements a simple RPC service, responding to + requests received via a Subscription. + + + This class interprets requests such as those sent by instances + of SimpleRpcClient. + + + The basic pattern for implementing a service is to subclass + SimpleRpcServer, overriding HandleCall and HandleCast as + appropriate, and then to create a Subscription object for + receiving requests from clients, and start an instance of the + SimpleRpcServer subclass with the Subscription. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + Subscription sub = new Subscription(ch, queueName); + new MySimpleRpcServerSubclass(sub).MainLoop(); + } + } + + + Note that this class itself does not declare any resources + (exchanges, queues or bindings). The Subscription we use for + receiving RPC requests should have already declared all the + resources we need. See the Subscription constructors and the + Subscription.Bind method. + + + If you are implementing a service that responds to + "jms/stream-message"-formatted requests (as implemented by + RabbitMQ.Client.Content.IStreamMessageReader), override + HandleStreamMessageCall. Otherwise, override HandleSimpleCall + or HandleCall as appropriate. Asynchronous, one-way requests + are dealt with by HandleCast etc. + + + Every time a request is successfully received and processed + within the server's MainLoop, the request message is Ack()ed + using Subscription.Ack before the next request is + retrieved. This causes the Subscription object to take care of + acknowledging receipt and processing of the request message. + + + If transactional service is enabled, via SetTransactional(), + then after every successful ProcessRequest, IModel.TxCommit is + called. Making use of transactional service has effects on all + parts of the application that share an IModel instance, + completely changing the style of interaction with the AMQP + server. For this reason, it is initially disabled, and must be + explicitly enabled with a call to SetTransactional(). Please + see the documentation for SetTransactional() for details. + + + To stop a running RPC server, call Close(). This will in turn + Close() the Subscription, which will cause MainLoop() to + return to its caller. + + + Unless overridden, ProcessRequest examines properties in the + request content header, and uses them to dispatch to one of + the Handle[...]() methods. See the documentation for + ProcessRequest and each Handle[...] method for details. + + + + + + Create, but do not start, an instance that will + receive requests via the given Subscription. + + + The instance is initially in non-transactional mode. See + SetTransactional(). + + + Call MainLoop() to start the request-processing loop. + + + + + Returns true if we are in "transactional" mode, or + false if we are not. + + + Shut down the server, causing MainLoop() to return + to its caller. + + Acts by calling Close() on the server's Subscription object. + + + + Called by ProcessRequest(), this is the most + general method that handles RPC-style requests. + + + This method should map requestProperties and body to + replyProperties and the returned byte array. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall before encoding and returning the + reply. If the ContentType is any other value, the request + is passed to HandleSimpleCall instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by ProcessRequest(), this is the most + general method that handles asynchronous, one-way + requests. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall, passing in null as the + replyWriter parameter to indicate that no reply is desired + or possible. If the ContentType is any other value, the + request is passed to HandleSimpleCast instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by the default HandleCall() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. It should fill in + replyProperties (or set it to null) and return a byte + array to send back to the remote caller as a reply + message. + + + + Called by the default HandleCast() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. + + + + Called by HandleCall and HandleCast when a + "jms/stream-message" request is received. + + + The args array contains the values decoded by HandleCall + or HandleCast. + + + The replyWriter parameter will be null if we were called + from HandleCast, in which case a reply is not expected or + possible, or non-null if we were called from + HandleCall. Use the methods of replyWriter in this case to + assemble your reply, which will be sent back to the remote + caller. + + + This default implementation does nothing, which + effectively sends back an empty reply to any and all + remote callers. + + + + + Enters the main loop of the RPC service. + + + Retrieves requests repeatedly from the service's + subscription. Each request is passed to + ProcessRequest. Once ProcessRequest returns, the request + is acknowledged via Subscription.Ack(). If transactional + mode is enabled, TxCommit is then called. Finally, the + loop begins again. + + + Runs until the subscription ends, which happens either as + a result of disconnection, or of a call to Close(). + + + + + Process a single request received from our + subscription. + + + If the request's properties contain a non-null, non-empty + CorrelationId string (see IBasicProperties), it is assumed + to be a two-way call, requiring a response. The ReplyTo + header property is used as the reply address (via + PublicationAddress.Parse, unless that fails, in which case it + is treated as a simple queue name), and the request is + passed to HandleCall(). + + + If the CorrelationId is absent or empty, the request is + treated as one-way asynchronous event, and is passed to + HandleCast(). + + + Usually, overriding HandleCall(), HandleCast(), or one of + their delegates is sufficient to implement a service, but + in some cases overriding ProcessRequest() is + required. Overriding ProcessRequest() gives the + opportunity to implement schemes for detecting interaction + patterns other than simple request/response or one-way + communication. + + + + + Enables transactional mode. + + + Once enabled, transactional mode is not only enabled for + all users of the underlying IModel instance, but cannot be + disabled without shutting down the entire IModel (which + involves shutting down all the services depending on it, + and should not be undertaken lightly). + + + This method calls IModel.TxSelect, every time it is + called. (TxSelect is idempotent, so this is harmless.) + + + + + Implement the IDisposable interface, permitting + SimpleRpcServer instances to be used in using + statements. + + + Manages a subscription to a queue. + + + This convenience class abstracts away from much of the detail + involved in receiving messages from a queue. + + + Once created, the Subscription consumes from a queue (using a + EventingBasicConsumer). Received deliveries can be retrieved + by calling Next(), or by using the Subscription as an + IEnumerator in, for example, a foreach loop. + + + Note that if the "autoAck" option is enabled (which it is by + default), then received deliveries are automatically acked + within the server before they are even transmitted across the + network to us. Calling Ack() on received events will always do + the right thing: if "autoAck" is enabled, nothing is done on an + Ack() call, and if "autoAck" is disabled, IModel.BasicAck() is + called with the correct parameters. + + + + + Creates a new Subscription in "autoAck" mode, + consuming from a named queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode and the name of the queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode, the name of the queue, and the consumer tag. + + + Retrieve the IBasicConsumer that is receiving the + messages from the server for us. Normally, you will not + need to access this property - use Next() and friends + instead. + + + Retrieve the consumer-tag that this subscription + is using. Will usually be a server-generated + name. + + + Returns the most recent value returned by Next(), + or null when either no values have been retrieved yet, the + end of the subscription has been reached, or the most + recent value has already been Ack()ed. See also the + documentation for Ack(). + + + Retrieve the IModel our subscription is carried by. + + + Returns true if we are in "autoAck" mode, where + calls to Ack() will be no-ops, and where the server acks + messages before they are delivered to us. Returns false if + we are in a mode where calls to Ack() are required, and + where such calls will actually send an acknowledgement + message across the network to the server. + + + Retrieve the queue name we have subscribed to. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + As per the IEnumerator interface definition, throws + InvalidOperationException if LatestEvent is null. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + If LatestEvent is non-null, passes it to + Ack(BasicDeliverEventArgs). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicAck with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Closes this Subscription, cancelling the consumer + record in the server. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, false, requeue). Causes LatestEvent to become + null. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, multiple, requeue). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicNack with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Retrieves the next incoming delivery in our + subscription queue. + + + Returns null when the end of the stream is reached and on + every subsequent call. End-of-stream can arise through the + action of the Subscription.Close() method, or through the + closure of the IModel or its underlying IConnection. + + + Updates LatestEvent to the value returned. + + + Does not acknowledge any deliveries at all (but in "autoAck" + mode, the server will have auto-acknowledged each event + before it is even sent across the wire to us). + + + + + Retrieves the next incoming delivery in our + subscription queue, or times out after a specified number + of milliseconds. + + + Returns false only if the timeout expires before either a + delivery appears or the end-of-stream is reached. If false + is returned, the out parameter "result" is set to null, + but LatestEvent is not updated. + + + Returns true to indicate a delivery or the end-of-stream. + + + If a delivery is already waiting in the queue, or one + arrives before the timeout expires, it is removed from the + queue and placed in the "result" out parameter. If the + end-of-stream is detected before the timeout expires, + "result" is set to null. + + + Whenever this method returns true, it updates LatestEvent + to the value placed in "result" before returning. + + + End-of-stream can arise through the action of the + Subscription.Close() method, or through the closure of the + IModel or its underlying IConnection. + + + This method does not acknowledge any deliveries at all + (but in "autoAck" mode, the server will have + auto-acknowledged each event before it is even sent across + the wire to us). + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item or the end of + the stream to become available. Usage of such a timeout is + equivalent to calling Next() with no arguments (modulo + predictable method signature differences). + + + + + Implementation of the IDisposable interface, + permitting Subscription to be used in using + statements. Simply calls Close(). + + + Implementation of the IEnumerable interface, for + permitting Subscription to be used in foreach + loops. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + Dummy implementation of the IEnumerator interface, + for permitting Subscription to be used in foreach loops; + Reset()ting a Subscription doesn't make sense, so this + method always throws InvalidOperationException. + + + A thread-safe single-assignment reference cell. + + A fresh BlockingCell holds no value (is empty). Any thread + reading the Value property when the cell is empty will block + until a value is made available by some other thread. The Value + property can only be set once - on the first call, the + BlockingCell is considered full, and made immutable. Further + attempts to set Value result in a thrown + InvalidOperationException. + + + + Retrieve the cell's value, blocking if none exists + at present, or supply a value to an empty cell, thereby + filling it. + + + + Return valid timeout value + If value of the parameter is less then zero, return 0 + to mean infinity + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Miscellaneous debugging and development utilities. + + Not part of the public API. + + + + Print a hex dump of the supplied bytes to stdout. + + + Print a hex dump of the supplied bytes to the supplied TextWriter. + + + Prints an indented key/value pair; used by DumpProperties() + Recurses into the value using DumpProperties(). + + + Dump properties of objects to the supplied writer. + + + Used internally by class Either. + + + Models the disjoint union of two alternatives, a + "left" alternative and a "right" alternative. + Borrowed from ML, Haskell etc. + + + Private constructor. Use the static methods Left, Right instead. + + + Retrieve the alternative represented by this instance. + + + Retrieve the value carried by this instance. + + + Constructs an Either instance representing a Left alternative. + + + Constructs an Either instance representing a Right alternative. + + + A class for allocating integer IDs in a given range. + + + A class representing a list of inclusive intervals + Creates an IntAllocator allocating integer IDs within the inclusive range [start, end] + + + Allocate a fresh integer from the range, or return -1 if no more integers + are available. This operation is guaranteed to run in O(1) + + + Make the provided integer available for allocation again. This operation + runs in amortized O(sqrt(range size)) time: About every sqrt(range size) + operations will take O(range_size + number of intervals) to complete and + the rest run in constant time. + + No error checking is performed, so if you double Free or Free an integer + that was not originally Allocated the results are undefined. Sorry. + + + + Subclass of BinaryReader that reads integers etc in correct network order. + + + + Kludge to compensate for .NET's broken little-endian-only BinaryReader. + Relies on BinaryReader always being little-endian. + + + + + + Construct a NetworkBinaryReader over the given input stream. + + + + + Construct a NetworkBinaryReader over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryReader over a byte[]. + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Subclass of BinaryWriter that writes integers etc in correct network order. + + + +

+ Kludge to compensate for .NET's broken little-endian-only BinaryWriter. +

+ See also NetworkBinaryReader. +

+
+
+ + + Construct a NetworkBinaryWriter over the given input stream. + + + + + Construct a NetworkBinaryWriter over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryWriter streaming into a fresh MemoryStream + provisioned with the given initialSize. + + + Helper method for extracting the byte[] contents + of a BinaryWriter over a MemoryStream, such as constructed + by TemporaryBinaryWriter. + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + A thread-safe shared queue implementation. + + + A thread-safe shared queue implementation. + + + Flag holding our current status. + + + The shared queue. + + Subclasses must ensure appropriate locking discipline when + accessing this field. See the implementation of Enqueue, + Dequeue. + + + + Close the queue. Causes all further Enqueue() + operations to throw EndOfStreamException, and all pending + or subsequent Dequeue() operations to throw an + EndOfStreamException once the queue is empty. + + + Retrieve the first item from the queue, or block if none available + + Callers of Dequeue() will block if no items are available + until some other thread calls Enqueue() or the queue is + closed. In the latter case this method will throw + EndOfStreamException. + + + + Retrieve the first item from the queue, or return + nothing if no items are available after the given + timeout + + + If one or more items are present on the queue at the time + the call is made, the call will return + immediately. Otherwise, the calling thread blocks until + either an item appears on the queue, or + millisecondsTimeout milliseconds have elapsed. + + + Returns true in the case that an item was available before + the timeout, in which case the out parameter "result" is + set to the item itself. + + + If no items were available before the timeout, returns + false, and sets "result" to null. + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item to become + available. Usage of such a timeout is equivalent to + calling Dequeue() with no arguments. See also the MSDN + documentation for + System.Threading.Monitor.Wait(object,int). + + + If no items are present and the queue is in a closed + state, or if at any time while waiting the queue + transitions to a closed state (by a call to Close()), this + method will throw EndOfStreamException. + + + + + Retrieve the first item from the queue, or return + defaultValue immediately if no items are + available + + + If one or more objects are present in the queue at the + time of the call, the first item is removed from the queue + and returned. Otherwise, the defaultValue that was passed + in is returned immediately. This defaultValue may be null, + or in cases where null is part of the range of the queue, + may be some other sentinel object. The difference between + DequeueNoWait() and Dequeue() is that DequeueNoWait() will + not block when no items are available in the queue, + whereas Dequeue() will. + + + If at the time of call the queue is empty and in a + closed state (following a call to Close()), then this + method will throw EndOfStreamException. + + + + + Place an item at the end of the queue. + + If there is a thread waiting for an item to arrive, the + waiting thread will be woken, and the newly Enqueued item + will be passed to it. If the queue is closed on entry to + this method, EndOfStreamException will be thrown. + + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Call only when the lock on m_queue is held. + + + + Implementation of the IEnumerator interface, for + permitting SharedQueue to be used in foreach loops. + + + Construct an enumerator for the given + SharedQueue. + + + Reset()ting a SharedQueue doesn't make sense, so + this method always throws + InvalidOperationException. + +
+
diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/SQLite.Interop.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/SQLite.Interop.dll new file mode 100644 index 0000000..1395272 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/SQLite.Interop.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Data.SQLite.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Data.SQLite.dll new file mode 100644 index 0000000..6a9fdec Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Data.SQLite.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Data.SQLite.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Data.SQLite.xml new file mode 100644 index 0000000..9b2e7b6 --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Data.SQLite.xml @@ -0,0 +1,22383 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + For a given intrinsic type, return a DbType + + The native type to convert + The corresponding (closest match) DbType + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + This method attempts to query the flags associated with the database + connection in use. If the database connection is disposed, the default + flags will be returned. + + + The command containing the databse connection to query the flags from. + + + The connection flags value. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + NoDefaultFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" connection string property + was used. When this value is non-zero, + will retain treatment of the password as a NUL-terminated text string. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default databse type for this connection. This value will only + be used if the + flag is set. + + + + + The default databse type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Attempts to decrypt a database file that was encrypted using the legacy CryptoAPI-based + RC4 codec that was previously included with System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + SQL statement text as the statement first begins executing + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Reads the next row from the resultset + + True if a new row was successfully loaded and is ready for processing + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callbakc function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for collating sequences + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being resitered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The flags associated with the parent connection object. + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it is + set by the method on its first call. Later, it + is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + method. + On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Call calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Runtime.CompilerServices.Unsafe.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..1908d92 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Runtime.CompilerServices.Unsafe.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..b5dd21b --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,258 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + + + + + + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Bypasses definite assignment rules for a given value. + The uninitialized object. + The type of the uninitialized object. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + + is , and is a non-nullable value type. + + is not a boxed value type. + +-or- + + is not a boxed . + + cannot be found. + A to the boxed value . + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.dll new file mode 100644 index 0000000..8193f5e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.pdb b/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.pdb new file mode 100644 index 0000000..64ba05f Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.pdb differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.xml new file mode 100644 index 0000000..7566efe --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/Win32ApiUtils.xml @@ -0,0 +1,1103 @@ + + + + Win32ApiUtils + + + + + PrintWindow的绘图选项 + + + + + 只有窗口的客户端区域被复制到hdc Blt中。默认情况下,复制整个窗口 + + + + + GetDeviceCap指定返回项 + + + + + 屏幕的高度(光栅线) + + + + + 设备单位的物理页面宽度 + + + + + 设备x轴的比例系数 + + + + + 设备y轴的比例系数 + + + + + TernaryRasterOperations + 位图与目标位图以及图案刷的颜色值进行布尔运算的方式 + + + + + 原图 + + + + + 获取指定设备的性能参数 + + 设备上下文环境的句柄 + 指定返回项 + + + + 为一个设备创建设备上下文环境 + + 1.DISPLAY:屏幕设备 2.WINSPOOL:打印驱动 Or.Null + 所用专门设备的名称。该名由打印管理器分配显示 + Null + 这个结构保存初始值。传递0值则适用默认设置 + + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + _lopen的标志集 + + + + + 以可读、可写的方式打开文件 + + + + + 可打开文件,以便由其他程序读写 + + + + + OpenProcess访问标志 + + + + + 启用VirtualProtectEx和WriteProcessMemory功能中的进程句柄来修改进程的虚拟内存。 + + + + + 启用ReadProcessMemory功能中的进程句柄从进程的虚拟内存读取。 + + + + + 启用WriteProcessMemory功能中的进程句柄来写入进程的虚拟内存。 + + + + + VirtualAllocEx中flAllocationType的标志 + + + + + 该函数在内存页面的指定区域的内存或磁盘上的分页文件中分配实际物理存储。该函数将内存初始化为零。 + + + + + 该函数保留一系列的进程的虚拟地址空间,而不会在内存或磁盘上的页面文件中分配任何实际物理存储。 + + + + + VirtualAllocEx中的保护标志 + + + + + 启用对提交的页面区域的读取和写入权限。 + + + + + VirtualFreeEx的释放标志 + + + + + 该函数释放指定的页面区域。页面进入空闲状态。 + + + + + 打开二进制文件 + + 欲打开文件的名字 + 访问模式和共享模式常数的一个组合 + 如果函数成功,返回值是一个文件句柄。 + + + + 关闭文件句柄 + + + + + 返回现有进程对象的句柄。 + + 想得到的访问权限 + 指定返回的句柄是否可以被继承 + 指定要打开的进程的ID + 进程对象 + + + + 在目标进程地址空间分配内存. + + 在其中分配内存的进程句柄 + 所需的分配起始地址 + 要分配的区域的大小(以字节为单位) + 分配类型 + 访问类型保护 + + + + + 在指定的进程中写入内存。要写入的整个区域必须可访问,否则操作失败。 + + 要写入的进程句柄 + 开始写入地址 + 指向缓冲区的指针写入数据 + 要写入的字节数 + 实际写入的字节数 + + + + 在指定的进程中读取内存。要读取的整个区域必须可访问,否则操作失败。 + + 要读取的进程句柄 + 起始读取地址 + 缓冲区地址放置读取数据 + 要读取的字节数 + 读取到的字节数的地址 + + + + 在指定进程的虚拟地址空间内释放,分解或同时释放内存区域。 + + 要释放内存的进程句柄 + 释放的起始地址 + 大小,以字节为单位的内存区域释放 + 释放类型 + + + + + 函数用来获得当前可用的物理和虚拟内存信息,是GlobalMemoryStatus的64位版本。 + + 用来接收信息的结构 + + + + 强制终结进程 + + 线程句柄 + 结束代码 + 是否成功 + + + + 用于获得系统信息 + + + + + 结构的长度,在使用函数前必须初始化此值 + + + + + 物理内存的使用率(0~100的整数) + + + + + 物理内存的总量,以字节为单位(以下均相同) + + + + + 物理内存的剩余量 + + + + + 系统页面文件大小 + + + + + 系统可用页面文件大小 + + + + + 虚拟内存的总量 + + + + + 虚拟内存的剩余量 + + + + + 保留,值为0 + + + + + 隐藏窗体,并激活另一个窗体 + + + + + 与SW_RESTORE相同 + + + + + 激活并以最小化的形式显示窗体 + + + + + 激活并以最大化的形式显示窗体 + + + + + 最大化指定的窗体 + + + + + 以上次的状态显示指定的窗体,但不激活它 + + + + + 激活窗体,并将其显示在当前的大小和位置上 + + + + + 最小化指定的窗体,并激活另一个窗体 + + + + + 以最小化形式显示指定的窗体,但不激活它 + + + + + 以当前的状态显示指定的窗体,但不激活它 + + + + + 以原本的大小和位置,激活并显示指定的窗体 + + + + + 设置显示的状态由STARTUPINFO结构体指定 + + + + + 运行文件 + + 父窗口句柄,可为0 + 操作类型:"Open" 打开文件,"Print" 打印文件, "explore" 浏览文件夹 + 文件名 + 文件的命令行参数 + 文件所在目录 + 展示方式 + + + + + 获取ComboBox下拉框的所有选项的值 + + ComboBox下拉框的句柄 + ComboBox下拉框的的值列表 + + + + 改变ComboBox下拉框的选择项 + + ComboBox下拉框的句柄 + ComboBox下拉框的序号(从0开始) + + + + 读取ListView任一格子的文本 + + ListView的句柄 + 行,0开始 + 列,0开始 + 文本的编码 + 文本 + + + + 读取TreeView数据 + + TreeView的句柄 + 读取到的数据 + + + + 获取DateTimePicker的显示日期 + + 句柄 + DateTimePicker的显示日期 + + + + 设置DateTimePicker的日期 + + 句柄 + 要设置的日期 + 是否需要点击右方向键 + 输入后的等待,默认为1秒 + + + + 与文件相关的工具类 + + + + + 错误标志 + + + + + 查看文件是否被占用 + + + + + 与键盘相关的工具类 + + + + + 向句柄指向的窗口或控件输入字符串 + + 窗口或控件的句柄 + 要输入的字符串 + + + + 按下指定键 + + 要按下的键 + 等待时间 + + + + 按下指定组合键 + + 长按键 + 短按键 + 等待时间 + + + + 输入字符串, + 以SendInput的键盘事件串形式发送. + + + + + 与鼠标相关的工具类 + + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 鼠标按坐标点击 + + + + + 鼠标按坐标双击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 鼠标按坐标右击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 与显示器有关的工具类 + + + + + 判断是否存在遮挡指定窗口的窗口. + + 指定窗口 + 遮挡住指定窗口的窗口句柄 + + + + 判断是否存在遮挡指定区域的窗口. + + 指定窗口 + 指定区域 + 遮挡住指定区域的窗口句柄 + + + + 获取屏幕缩放系数 + + + + + 提取屏幕截图,根据窗口句柄 + + 句柄 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 提取屏幕截图,根据坐标和大小 + 需要手动将缩放系数适配 + + + + + + + + + + 获取屏幕上指定位置像素点 + + + + + 获取窗口中所有与指定颜色相同的像素点信息 + + 窗口句柄 + 指定颜色 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 获取指定位置中所有与指定颜色相同的像素点信息 + + 左上x轴坐标 + 左上y轴坐标 + 宽度 + 高度 + 指定颜色 + + + + 获取指定图片中所有与指定颜色相同的像素点信息 + + 图片 + 颜色 + 像素点集 + + + + 窗口基本信息 + + + + + 标题 + + + + + 类名 + + + + + 句柄 + + + + + 父窗口句柄 + + + + + 父窗口基本信息 + + + + + 子级 + + + + + 与窗口有关的工具类 + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 向窗口发送关闭信息 + + + + + 获取窗口的矩形信息 + 左上角坐标以及宽高 + + + + + 复制窗口文本到调用者提供的缓冲区. + + 句柄 + 窗口文本 + + + + 以List的形式列出父窗口下所有子窗口的基本信息.(全递归) + + 父窗口句柄 + 递归子窗口基本信息 + + + + 查找符合key条件并返回第一个集合内的窗口信息. + --模糊查询 + 对比Hadnle,ParentHandle,Caption,ClassName + + 遍历的窗口信息集合 + 要找的数据 + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName.精确查询 + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回所有符合条件的集合内的窗口信息 + + 集合 + 所有符合条件的选项 + + + + 坐标结构体 + + + + + 鼠标事件标志 + + + + + 移动鼠标 + + + + + 模拟鼠标左键按下 + + + + + 模拟鼠标左键抬起 + + + + + 鼠标右键按下 + + + + + 鼠标右键抬起 + + + + + 鼠标中键按下 + + + + + 中键抬起 + + + + + 标示是否采用绝对坐标 + + + + + 键盘事件标志 + + + + + 按下 + + + + + 弹起 + + + + + 设置指定窗口的显示状态的标志集 + + + + + 隐藏窗口并激活其他窗口 + + + + + 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志 + + + + + 激活窗口并将其最小化 + + + + + 激活窗口并将其最大化 + + + + + 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态 + + + + + 在窗口原来的位置以原来的尺寸激活和显示窗口 + + + + + 最小化指定的窗口并且激活在Z序中的下一个顶层窗口 + + + + + 窗口最小化,激活窗口仍然维持激活状态 + + + + + 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态 + + + + + 激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志 + + + + + 最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志 + + + + + 发送输入 (SendInput)方法的标志集 + + + + + 鼠标 + + + + + 键盘 + + + + + 硬件 + + + + + 检索到的句柄标识 Z 顺序中最高级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中最低级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口下方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口上方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识指定窗口的所有者窗口(如果有)。 + + + + + 如果指定的窗口是父窗口,则检索到的句柄标识 Z 顺序顶部的子窗口; + 否则,检索到的句柄为 NULL。该函数仅检查指定窗口的子窗口。它不检查后代窗口。 + + + + + 检索到的句柄标识指定窗口拥有的已启用弹出窗口(搜索使用GW_HWNDNEXT找到的第一个此类窗口); + 否则,如果没有启用的弹出窗口,则检索到的句柄是指定窗口的句柄。 + + + + + 操作鼠标 + + 标志集 + x坐标位置 + y坐标位置 + 标志为Wheel值时,设置为滚轮滚动量 + 与鼠标事件相关的附加32位值 + + + + + 移动鼠标到指定位置 + + + + + 操作键盘 + + 键值 + 该键的硬件扫描码 + 标志位集 + 与击键相关的附加的32位值 + + + + 操作键盘或者鼠标, + 将指定事件串插入键盘或鼠标输入流. + + pInputs的数量 + 事件串 + SendInputParm结构的字节大小 + + + + 将一个字符翻译成相应的虚拟键码和对于当前键盘的转换状态 + + + + + 检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换) + + 定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9), + nVirtKey必须被置为相应字符的ASCII码值,对于其他的键,nVirtKey必须是一虚拟键码。 + 若使用非英语键盘布局,则取值在ASCIIa~z和0~9的虚拟键被用于定义绝大多数的字符键。 + 例如,对于德语键盘格式,值为ASCII0(OX4F)的虚拟键指的是”0″键,而VK_OEM_1指”带变音的0键” + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 获取桌面句柄 + + + + + + 寻找顶级窗口 + + 窗口的类名 + 窗口的标题 + + + + + 寻找与指定条件相符的第一个子窗口 + + 父窗口句柄.若为0则以桌面窗口为父窗口并查找所有的子窗口 + 子窗口句柄,指示查找从此子窗口句柄的下一个开始 + 类名 + 标题 + + + + + 枚举子窗口 + + 父窗口句柄 + 回调.true为继续遍历,false为停止遍历 + 附加值 + + + + + 获取父窗口句柄 + + + + + 获取窗口标题的长度 + + + + + 获取窗口标题 + + 句柄 + 用来返回的字符串 + 最大长度 + + + + 获取窗口类名 + + 窗口句柄 + 用来返回的字符串 + 最大长度 + + + + + 返回指定窗口的边框矩形的大小. + 为四个角的坐标. + + 窗口句柄 + 传回的窗口矩形信息 + + + + 获取窗口所在的进程ID + + 窗口句柄 + 进程ID返回值 + + + + 获得指定窗口的可视状态 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + 根据坐标获取窗口句柄 + + 坐标信息 + 窗口句柄 + + + + 检索与指定窗口具有指定关系(Z 顺序或所有者)的窗口的句柄。 + + 窗口的手柄。检索到的窗口句柄基于 uCmd 参数的值相对于此窗口。 + 指定窗口与要检索其句柄的窗口之间的关系。 + + + + + 该函数对指定的窗口设置键盘焦点。该窗口必须与调用线程的消息队列相关。 + + + + + + + 将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号 + + + + + + 取前台窗口的句柄(用户当前工作的窗口) + 在某些情况下,如一个窗口失去激活时,前台窗口可以是NULL。 + + + + + 激活一个窗口,该窗口必须与调用线程的消息队列相关联 + + + + + 设置窗口的显示状态 + + 窗口句柄 + 标志集 + + + + + 获取指定窗口的设备上下文句柄 + 用于在窗口的非客户端区域内进行特殊的绘制效果 + + + + + 将一个可视窗口复制到指定的设备上下文(DC)中 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + PostMessage和PostMessage所使用的标志位集合, + 未来使用时若枚举内不存再则添加上去. + + + + + 修改下拉框 默认选中那一项 相当于MFC中的SetCurlSel + + + + diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/itextsharp.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/itextsharp.dll new file mode 100644 index 0000000..d9f1d58 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/itextsharp.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/itextsharp.xml b/采集器3.0框架封装包2023-11-01/采集器依赖包/itextsharp.xml new file mode 100644 index 0000000..823198f --- /dev/null +++ b/采集器3.0框架封装包2023-11-01/采集器依赖包/itextsharp.xml @@ -0,0 +1,38512 @@ + + + + itextsharp + + + + Gets the name of the resultant PDF file. + This name will be passed to makePdf, assertPdf and comparePdf methods. + @return + + + Gets the name of the compare PDF file. + This name will be passed to comparePdf method. + @return + + + Sets the maximum errors count which will be returned as the result of the comparison. + @param compareByContentMaxErrorCount the errors count. + @return Returns this. + + + Sets the absolute error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Sets the relative error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Creates a new instance of MemoryLimitsAwareException. + + @param message the detail message. + + + + A + + handles memory allocation and prevents decompressed pdf streams from occupation of more space than allowed. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream with two or more filters of identical type + occupies more memory than allowed. + + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + this + + instance. + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams with two or more filters of identical type + occupy more memory than allowed. + + he maximum allowed size which can be occupied by all decompressed pdf streams. + + + this + + instance. + + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + @param size the initial size. + @throws IllegalArgumentException if size is negative. + + + Gets the maximum size which can be occupied by this output stream. + + @return the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + + @param maxStreamSize the maximum size which can be occupied by this output stream. + @return this {@link MemoryLimitsAwareOutputStream} + + + {@inheritDoc} + + + Query and change fields in existing documents either by method + calls or by FDF merging. + @author Paulo Soares + + + A field type invalid or not found. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + Holds value of property generateAppearances. + + + Holds value of property fieldCache. + + + Gets the list of appearance names. Use it to get the names allowed + with radio and checkbox fields. If the /Opt key exists the values will + also be included. The name 'Off' may also be valid + even if not returned in the list. + + For Comboboxes it will return an array of display values. To extract the + export values of a Combobox, please refer to {@link AcroFields#getListOptionExport(String)} + + @param fieldName the fully qualified field name + @return the list of names or null if the field does not exist + + + Gets the list of export option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + Gets the list of display option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + + + Export the fields as a FDF. + @param writer the FDF writer + + + Renames a field. Only the last part of the name can be renamed. For example, + if the original field is "ab.cd.ef" only the "ef" part can be renamed. + @param oldName the old field name + @param newName the new field name + @return true if the renaming was successful, false + otherwise + + + Retrieve the rich value for the given field + @param name + @return The rich value if present, or null. + @since 5.0.6 + + + Gets the field value. + @param name the fully qualified field name + @return the field value + + + Gets the field values of a Choice field. + @param name the fully qualified field name + @return the field value + @since 2.1.3 + + + + + Merges an XML data structure into this form. + @param n the top node of the data structure + @throws java.io.IOException on error + @throws com.lowagie.text.DocumentException o error + + + Sets the fields by FDF merging. + @param fdf the FDF form + @throws IOException on error + @throws DocumentException on error + + + Sets the fields by XFDF merging. + @param xfdf the XFDF form + @throws IOException on error + @throws DocumentException on error + + + Regenerates the field appearance. + This is usefull when you change a field property, but not its value, + for instance form.SetFieldProperty("f", "bgcolor", BaseColor.BLUE, null); + This won't have any effect, unless you use RegenerateField("f") after changing + the property. + + @param name the fully qualified field name or the partial name in the case of XFA forms + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param saveAppearance save the current appearance of the field or not + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the rich value for the given field. See PDF Reference chapter + 12.7.3.4 (Rich Text) and 12.7.4.3 (Text Fields) for further details. Note that iText doesn't create an appearance for Rich Text fields. + So you either need to use XML Worker to create an appearance (/N entry in the /AP dictionary), or you need to use setGenerateAppearances(false) to tell the viewer + that iText didn't create any appearances. + @param name Field name + @param richValue html markup + @return success/failure (will fail if the field isn't found, isn't a text field, or doesn't support rich text) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @param saveAppearance save the current appearance of the field or not + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets different values in a list selection. + No appearance is generated yet; nor does the code check if multiple select is allowed. + + @param name the name of the field + @param value an array with values that need to be selected + @return true only if the field value was changed + @since 2.1.4 + + + Gets all the fields. The fields are keyed by the fully qualified field name and + the value is an instance of AcroFields.Item. + @return all the fields + + + Gets the field structure. + @param name the name of the field + @return the field structure or null if the field + does not exist + + + Gets the long XFA translated name. + @param name the name of the field + @return the long field name + + + Gets the field box positions in the document. The return is an array of float + multiple of 5. For each of this groups the values are: [page, llx, lly, urx, + ury]. The coordinates have the page rotation in consideration. + @param name the field name + @return the positions or null if field does not exist + + + Removes all the fields from page. + @param page the page to remove the fields from + @return true if any field was removed, false otherwise + + + Removes a field from the document. If page equals -1 all the fields with this + name are removed from the document otherwise only the fields in + that particular page are removed. + @param name the field name + @param page the page to remove the field from or -1 to remove it from all the pages + @return true if the field exists, false otherwise + + + Removes a field from the document. + @param name the field name + @return true if the field exists, false otherwise + + + Sets the option to generate appearances. Not generating apperances + will speed-up form filling but the results can be + unexpected in Acrobat. Don't use it unless your environment is well + controlled. The default is true. + @param generateAppearances the option to generate appearances + + + The field representations for retrieval and modification. + + + writeToAll constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + This function writes the given key/value pair to all the instances + of merged, widget, and/or value, depending on the writeFlags setting + + @since 2.1.5 + + @param key you'll never guess what this is for. + @param value if value is null, the key will be removed + @param writeFlags ORed together WRITE_* flags + + + Mark all the item dictionaries used matching the given flags + + @since 2.1.5 + @param writeFlags WRITE_MERGED is ignored + + + An array of PdfDictionary where the value tag /V + is present. + + + + An array of PdfDictionary with the widgets. + + + + An array of PdfDictionary with the widget references. + + + + An array of PdfDictionary with all the field + and widget tags merged. + + + + An array of Integer with the page numbers where + the widgets are displayed. + + + + An array of Integer with the tab order of the field in the page. + + + + Preferred method of determining the number of instances + of a given field. + + @since 2.1.5 + @return number of instances + + + Remove the given instance from this item. It is possible to + remove all instances using this function. + + @since 2.1.5 + @param killIdx + + + Retrieve the value dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return dictionary storing this instance's value. It may be shared across instances. + + + Add a value dict to this Item + + @since 2.1.5 + @param value new value dictionary + + + Retrieve the widget dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return The dictionary found in the appropriate page's Annot array. + + + Add a widget dict to this Item + + @since 2.1.5 + @param widget + + + Retrieve the reference to the given instance + + @since 2.1.5 + @param idx instance index + @return reference to the given field instance + + + Add a widget ref to this Item + + @since 2.1.5 + @param widgRef + + + Retrieve the merged dictionary for the given instance. The merged + dictionary contains all the keys present in parent fields, though they + may have been overwritten (or modified?) by children. + Example: a merged radio field dict will contain /V + + @since 2.1.5 + @param idx instance index + @return the merged dictionary for the given instance + + + Adds a merged dictionary to this Item. + + @since 2.1.5 + @param mergeDict + + + Retrieve the page number of the given instance + + @since 2.1.5 + @param idx + @return remember, pages are "1-indexed", not "0-indexed" like field instances. + + + Adds a page to the current Item. + + @since 2.1.5 + @param pg + + + forces a page value into the Item. + + @since 2.1.5 + @param idx + + + Gets the tabOrder. + + @since 2.1.5 + @param idx + @return tab index of the given field instance + + + Adds a tab order value to this Item. + + @since 2.1.5 + @param order + + + Clears a signed field. + @param name the field name + @return true if the field was signed, false if the field was not signed or not found + @since 5.0.5 + + + Gets the field names that have signatures and are signed. + @return the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + @return the field names that have blank signatures + + + Gets the signature dictionary, the one keyed by /V. + @param name the field name + @return the signature dictionary keyed by /V or null if the field is not + a signature + + + Gets a reference to the normal appearance of a field. + + @param name the field name + @return a reference to the /N entry of the /AP dictionary or null if the field is not found + + + Checks is the signature covers the entire document or just part of it. + @param name the signature field name + @return true if the signature covers the entire document, + false otherwise + + + + Gets the total number of revisions this document has. + @return the total number of revisions + + + Gets this field revision. + @param field the signature field name + @return the revision or zero if it's not a signature field + + + Extracts a revision from the document. + @param field the signature field name + @return an Stream covering the revision. Returns null if + it's not a signature field + @throws IOException on error + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Adds a substitution font to the list. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param font the font + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Gets the XFA form processor. + @return the XFA form processor + + + Removes the XFA stream from the document. + + + Creates a new pushbutton from an existing field. If there are several pushbuttons with the same name + only the first one is used. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField)}. + @param field the field name that should be a pushbutton + @return a new pushbutton or null if the field is not a pushbutton + + + Creates a new pushbutton from an existing field. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField,int)}. + @param field the field name that should be a pushbutton + @param order the field order in fields with same name + @return a new pushbutton or null if the field is not a pushbutton + + + Replaces the first field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @return true if the field was replaced, false if the field + was not a pushbutton + + + Replaces the designated field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @param order the field order in fields with same name + @return true if the field was replaced, false if the field + was not a pushbutton + + + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + @param name String + @return boolean does the signature field exist + @since 5.5.1 + + + A class representing a field position + @since 5.0.2 + + + + Summary description for InputMeta. + + + + + Summary description for MetaDo. + + + + Creates new MetaState + + + Getter for property currentBackgroundColor. + @return Value of property currentBackgroundColor. + + + Getter for property currentTextColor. + @return Value of property currentTextColor. + + + Getter for property backgroundMode. + @return Value of property backgroundMode. + + + Getter for property textAlign. + @return Value of property textAlign. + + + Getter for property polyFillMode. + @return Value of property polyFillMode. + + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + + Reads a BMP from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + @param is the stream + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + The BMP may not have a header and be considered as a plain DIB. + @param is the stream + @param noHeader true to process a plain DIB + @param size the size of the DIB. Not used for a BMP + @throws IOException on error + @return the image + + + Reads a BMP from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a BMP from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + @param width the line width + + + Encodes a number of lines. + @param data the data to be encoded + @param offset the offset into the data + @param size the size of the data to be encoded + + + Encodes a full image. + @param data the data to encode + @param width the image width + @param height the image height + @return the encoded image + + + Encodes a number of lines. + @param data the data to be encoded + @param height the number of lines to encode + + + Closes the encoder and returns the encoded data. + @return the encoded data + + + Reads gif images of all types. All the images in a gif are read in the constructors + and can be retrieved with other methods. + @author Paulo Soares + + + Reads gif images from an URL. + @param url the URL + @throws IOException on error + + + Reads gif images from a file. + @param file the file + @throws IOException on error + + + Reads gif images from a byte array. + @param data the byte array + @throws IOException on error + + + Reads gif images from a stream. The stream isp not closed. + @param isp the stream + @throws IOException on error + + + Gets the number of frames the gif has. + @return the number of frames the gif has + + + Gets the image from a frame. The first frame isp 1. + @param frame the frame to get the image from + @return the image + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Gets the logical screen. The images may be smaller and placed + in some position in this screen to playback some animation. + No image will be be bigger that this. + @return the logical screen dimensions as [x,y] + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + Support for JBIG2 Images. + This class assumes that we are always embedding into a pdf. + + @since 2.1.5 + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + @param ra an random access file or array + @return a byte array + + + returns an Image representing the given page. + @param ra the file or array containing the image + @param page the page number of the image + @return an Image object + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + TODO: the indeterminate-segment-size value of dataLength, else? + + @since 2.1.5 + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Creates a new instance of PngImage + + + Reads a PNG from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a PNG from a stream. + @param is the stream + @throws IOException on error + @return the image + + + Reads a PNG from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a PNG from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + A list of constants used in class TIFFImage. + + + + A bool storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaing multiple directories. + + @param stream a SeekableStream to read from. + @param directory the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + @param stream a SeekableStream to read from. + @param ifd_offset the long byte offset of the directory. + @param directory the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + Returns the number of directory entries. + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + + Returns true if a tag appears in the directory. + + + Returns an ordered array of ints indicating the tag + values. + + + Returns an array of TIFFFields containing all the fields + in this directory. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + + Returns a bool indicating whether the byte order used in the + the TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + Returns the offset of the IFD corresponding to this + TIFFDirectory. + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + The logical order of bits within a byte. +
+            1 = MSB-to-LSB
+            2 = LSB-to-MSB (flipped)
+            
+
+ + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + + Returns the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + + + Returns the number of elements in the IFD. + + + + + + + + + + + + + + + + + + + + Reads TIFF images + @author Paulo Soares + + + Gets the number of pages the TIFF document has. + @param s the file source + @return the number of pages + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + Reads a page from a TIFF image. Direct mode is not used. + @param s the file source + @param page the page to get. The first page is 1 + @return the Image + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + @param h The number of rows the compressed data contains. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newString to the end of oldString. + + + + @author psoares + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + + @param seq + @return the cid code or -1 for end + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + This class represents a CMap file. + + @author Ben Litchfield (ben@benlitchfield.com) + @since 2.1.4 + + + Creates a new instance of CMap. + + + This will tell if this cmap has any one byte mappings. + + @return true If there are any one byte mappings, false otherwise. + + + This will tell if this cmap has any two byte mappings. + + @return true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + + @param code The code used to lookup. + @param offset The offset into the byte array. + @param length The length of the data we are getting. + + @return The string that matches the lookup. + + + + @author psoares + + + + @author psoares + + + Interface providing alternate description for accessible elements. + + + Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @return + + + Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @param value + + + Gets all the properties of accessible element. + @return + + + Role propherty of the accessible element. + Note that all child elements won't also be tagged. + @return + + + Use this methods to get the AcroForm object. + Use this method only if you know what you're doing + @return the PdfAcroform object of the PdfDocument + + + Use this methods to add a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Use this method to adds the PdfAnnotation + to the calculation order array. + @param annot the PdfAnnotation to be added + + + Use this method to set the signature flags. + @param f the flags. This flags are ORed with current ones + + + A PDF document can have an open action and other additional actions. + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws DocumentException on invalid action type + + + Encryption settings are described in section 3.5 (more specifically + section 3.5.2) of the PDF Reference 1.7. + They are explained in section 3.3.3 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + A PDF page can have an open and/or close action. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws DocumentException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + The PDF version is described in the PDF Reference 1.7 p92 + (about the PDF Header) and page 139 (the version entry in + the Catalog). You'll also find info about setting the version + in the book 'iText in Action' sections 2.1.3 (PDF Header) + and 3.3 (Version history). + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header, + but only if param refers to a higher version. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + Sets the PDF version as it will appear in the Catalog. + Note that this only has effect if you use a later version + than the one that appears in the header. This method + ignores the parameter if you try to set a lower version + than the one currently set in the Catalog. + @param version the PDF name that will be used for the Version key in the catalog + + + Adds a developer extension to the Extensions dictionary + in the Catalog. + @param de an object that contains the extensions prefix and dictionary + @since 2.1.6 + + + Viewer preferences are described in section 3.6.1 and 8.1 of the + PDF Reference 1.7 (Table 3.25 on p139-142 and Table 8.1 on p579-581). + They are explained in section 13.1 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + + + Sets the PDF/X conformance level. + Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. + It must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + Shape arabic characters. This code was inspired by an LGPL'ed C library: + Pango ( see http://www.pango.com/ ). Note that the code of this is the + original work of Paulo Soares. Hence it is perfectly justifiable to distribute + it under the MPL. + + @author Paulo Soares + + + Some fonts do not implement ligaturized variations on Arabic characters + e.g. Simplified Arabic has got code point 0xFEED but not 0xFEEE + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Not a valid option value. + + + Bit mask for digit shaping options. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Bit mask for digit type options. + + + Arabic is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Signals that a bad PDF format has been used to construct a PdfObject. + + @see PdfException + @see PdfBoolean + @see PdfNumber + @see PdfString + @see PdfName + @see PdfDictionary + @see PdfFont + + + Base class containing properties and methods commom to all + barcode types. + + @author Paulo Soares + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The minimum bar width. + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + The text font. null if no text. + + + The size of the text or the height of the shorter bar + in Postnet. + + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + The height of the bars. + + + The text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + Gets the minimum bar width. + @return the minimum bar width + + + Gets the bar multiplier for wide bars. + @return the bar multiplier for wide bars + + + Gets the text font. null if no text. + @return the text font. null if no text + + + Gets the size of the text. + @return the size of the text + + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + @return the baseline. + + + Gets the height of the bars. + @return the height of the bars + + + Gets the text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + @return the text alignment + + + The property for the optional checksum generation. + + + Sets the property to show the generated checksum in the the text. + @param checksumText new value of property checksumText + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + @param startStopText new value of property startStopText + + + Sets the property to generate extended barcode 39. + @param extended new value of property extended + + + Gets the code to generate. + @return the code to generate + + + Sets the property to show the guard bars for barcode EAN. + @param guardBars new value of property guardBars + + + Gets the code type. + @return the code type + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Creates a template with the barcode. + @param cb the PdfContentByte to create the template. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the template + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + Creates an Image with the barcode. + @param cb the PdfContentByte to create the Image. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the Image + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + The alternate text to be used, if present. + + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + @param altText the alternate text + + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128 + + + Removes the FNC1 codes in the text. + @param code the text to clean + @return the cleaned text + + + Gets the human readable text of a sequence of AI. + @param code the text + @return the human readable text + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + @param text the text to check + @param textIndex where to check from + @param numDigits the number of digits to check + @return the check result + + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + @param text the text to pack + @param textIndex where to pack from + @param numDigits the number of digits to pack. It is always an even number + @return the packed digits, two digits per character + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @param codeSet forced code set, or AUTO for optimized barcode. + @return the code ready to be fed to getBarsCode128Raw() + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @return the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. The input has the actual barcodes, not + the human readable text. + @param text the barcode + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + Implements the code 39 and code 39 extended. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = true;
+            extended = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + + Creates the bars. + @param text the text to create the bars. This text does not include the start and + stop characters + @return the bars + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + @param text the extended text + @return the escaped text + + + Calculates the checksum. + @param text the text + @return the checksum + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code codabar. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textAlignment = Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + Creates a new BarcodeCodabar. + + + Creates the bars. + @param text the text to create the bars + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X21 encodation. + + + X12 encodation. + + @deprecated Use {@link BarcodeDataMatrix#DM_X12} instead. + + + EDIFACT encodation. + + + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + + + + Gets an Image with the barcode. A successful call to the method generate() + before calling this method is required. + @return the barcode Image + @throws BadElementException on error + + + Creates a java.awt.Image. A successful call to the method generate() + before calling this method is required. + @param foreground the color of the bars + @param background the color of the background + @return the image + + + Gets the generated image. The image is represented as a stream of bytes, each byte representing + 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row + is aligned at byte boundaries. The dimensions of the image are defined by height and width + plus 2 * ws. + @return the generated image + + + + + Gets/sets the whitespace border around the barcode. + @param ws the whitespace border around the barcode + + + + Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, + supplemental 2 and 5. The default parameters are: +
+            x = 0.8f;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            guardBars = true;
+            codeType = EAN13;
+            code = "";
+             
+ + @author Paulo Soares +
+ + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN + + + Calculates the EAN parity character. + @param code the code + @return the parity character + + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + @param text the code to convert. It must have 12 numeric characters + @return the 8 converted digits or null if the + code could not be converted + + + Creates the bars for the barcode EAN13 and UPCA. + @param _code the text with 13 digits + @return the barcode + + + Creates the bars for the barcode EAN8. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode UPCE. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode supplemental 2. + @param _code the text with 2 digits + @return the barcode + + + Creates the bars for the barcode supplemental 5. + @param _code the text with 5 digits + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + @param ean the EAN/UPC barcode + @param supp the supplemental barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + Creates new BarcodeInter25 + + + Deletes all the non numeric characters from text. + @param text the text + @return a string with only numeric characters + + + Calculates the checksum. + @param text the numeric text + @return the checksum + + + Creates the bars for the barcode. + @param text the text. It can contain non numeric characters + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed + and variable sizes, automatic and manual error levels, raw codeword input, + codeword size optimization and bitmap inversion. The output can + be a CCITT G4 Image or a raw bitmap. + @author Paulo Soares + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + The size will be at least codeColumns + with a variable number of codeRows. + + + The size will be at least codeRows + with a variable number of codeColumns. + + + The error level correction is set automatically according + to ISO 15438 recomendations. + + + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + No text interpretation is done and the content of codewords + is used directly. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + Use Macro PDF417 Encoding + @see #setMacroFileId(String) + @see #setMacroSegmentId(int) + @see #setMacroSegmentCount(int) + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + @param id the id (starting at 0) + @see #setMacroSegmentCount(int) + + + Sets the segment count for macro PDF417 encoding + @param cnt the number of macro segments + @see #setMacroSegmentId(int) + + + Sets the File ID for macro PDF417 encoding + @param id the file id + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Gets an Image with the barcode. The image will have to be + scaled in the Y direction by yHeightfor the barcode + to have the right printing aspect. + @return the barcode Image + @throws BadElementException on error + + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + @return The raw barcode image + + + Gets the number of X pixels of outBits. + @return the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + @return the number of Y pixels of outBits + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + @param codeRows the number of barcode rows + + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + @param codeColumns the number of barcode data columns + + + Gets the codeword array. This array is always 928 elements long. + It can be writen to if the option PDF417_USE_RAW_CODEWORDS + is set. + @return the codeword array + + + Sets the length of the codewords. + @param lenCodewords the length of the codewords + + + Gets the error level correction used for the barcode. It may different + from the previously set value. + @return the error level correction used for the barcode + Sets the error level correction for the barcode. + @param errorLevel the error level correction for the barcode + + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + @param text the bytes that form the barcode + + + Sets the text that will form the barcode. This text is converted + to bytes using the encoding Cp437. + @param s the text that will form the barcode + @throws UnsupportedEncodingException if the encoding Cp437 is not supported + + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + @param options the options to generate the barcode + + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + @param aspectRatio the barcode aspect ratio + + + Sets the Y pixel height relative to X. It is usually 3. + @param yHeight the Y pixel height relative to X + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property text. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Gets the size of the barcode grid. + + + Implements the Postnet and Planet barcodes. The default parameters are: +
+            n = 72f / 22f; // distance between bars
+            x = 0.02f * 72f; // bar width
+            barHeight = 0.125f * 72f; // height of the tall bars
+            size = 0.05f * 72f; // height of the short bars
+            codeType = POSTNET; // type of code
+             
+ + @author Paulo Soares +
+ + The bars for each character. + + + Creates new BarcodePostnet + + + Creates the bars for Postnet. + @param text the code to be created without checksum + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + A QRCode implementation based on the zxing code. + @author Paulo Soares + @since 5.0.2 + + + Creates the QR barcode. The barcode is always created with the smallest possible size and is then stretched + to the width and height given. Set the width and height to 1 to get an unscaled barcode. + @param content the text to be encoded + @param width the barcode width + @param height the barcode height + @param hints modifiers to change the way the barcode is create. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + @throws WriterException + + + Gets an Image with the barcode. + @return the barcode Image + @throws BadElementException on error + + + Gets the size of the barcode grid. + + + A thin border with 1 point width. + + + A medium border with 2 point width. + + + A thick border with 3 point width. + + + The field is visible. + + + The field is hidden. + + + The field is visible but does not print. + + + The field is hidden but is printable. + + + The user may not change the value of the field. + + + The field must have a value at the time it is exported by a submit-form + action. + + + The field may contain multiple lines of text. + This flag is only meaningful with text fields. + + + The field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + The field is intended for entering a secure password that should + not be echoed visibly to the screen. + + + The text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + The text entered in the field will not be spell-checked. + This flag is meaningful only in text fields and in combo + fields with the EDIT flag set. + + + If set the combo box includes an editable text box as well as a drop list; if + clear, it includes only a drop list. + This flag is only meaningful with combo fields. + + + whether or not a list may have multiple selections. Only applies to /CH LIST + fields, not combo boxes. + + + combo box flag. + + + Holds value of property rotation. + + + Holds value of property visibility. + + + Holds value of property fieldName. + + + Holds value of property options. + + + Holds value of property maxCharacterLength. + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the border width in points. To eliminate the border + set the border color to null. + @param borderWidth the border width in points + + + Sets the border style. The styles are found in PdfBorderDictionary + and can be STYLE_SOLID, STYLE_DASHED, + STYLE_BEVELED, STYLE_INSET and + STYLE_UNDERLINE. + @param borderStyle the border style + + + Sets the border color. Set to null to remove + the border. + @param borderColor the border color + + + Sets the background color. Set to null for + transparent background. + @param backgroundColor the background color + + + Sets the text color. If null the color used + will be black. + @param textColor the text color + + + Sets the text font. If null then Helvetica + will be used. + @param font the text font + + + Sets the font size. If 0 then auto-sizing will be used but + only for text fields. + @param fontSize the font size + + + Sets the text horizontal alignment. It can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER and Element.ALIGN_RIGHT. + @param alignment the text horizontal alignment + + + Sets the text for text fields. + @param text the text + + + Sets the field dimension and position. + @param box the field dimension and position + + + Sets the field rotation. This value should be the same as + the page rotation where the field will be shown. + @param rotation the field rotation + + + Convenience method to set the field rotation the same as the + page rotation. + @param page the page + + + Sets the field visibility flag. This flags can be one of + VISIBLE, HIDDEN, VISIBLE_BUT_DOES_NOT_PRINT + and HIDDEN_BUT_PRINTABLE. + @param visibility field visibility flag + + + Sets the field name. + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the option flags. The option flags can be a combination by oring of + READ_ONLY, REQUIRED, + MULTILINE, DO_NOT_SCROLL, + PASSWORD, FILE_SELECTION, + DO_NOT_SPELL_CHECK and EDIT. + @param options the option flags + + + Sets the maximum length of the field�s text, in characters. + It is only meaningful for text fields. + @param maxCharacterLength the maximum length of the field�s text, in characters + + + Moves the field keys from from to to. The moved keys + are removed from from. + @param from the source + @param to the destination. It may be null + + + + Summary description for BaseFont. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The maximum height above the baseline reached by glyphs in this + font, excluding the height of glyphs for accented characters. + + + The y coordinate of the top of flat capital letters, measured from + the baseline. + + + The maximum depth below the baseline reached by glyphs in this + font. The value is a negative number. + + + The angle, expressed in degrees counterclockwise from the vertical, + of the dominant vertical strokes of the font. The value is + negative for fonts that slope to the right, as almost all italic fonts do. + + + The lower left x glyph coordinate. + + + The lower left y glyph coordinate. + + + The upper right x glyph coordinate. + + + The upper right y glyph coordinate. + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + The underline position. Usually a negative value. + + + The underline thickness. + + + The strikethrough position. + + + The strikethrough thickness. + + + The recommended vertical size for subscripts for this font. + + + The recommended vertical offset from the baseline for subscripts for this font. Usually a negative value. + + + The recommended vertical size for superscripts for this font. + + + The recommended vertical offset from the baseline for superscripts for this font. + + + The weight class of the font, as defined by the font author + @since 5.0.2 + + + The width class of the font, as defined by the font author + @since 5.0.2 + + + The entry of PDF FontDescriptor dictionary. + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + A value larger than 500 indicates bold font-weight. + + + The font is Type 1. + + + The font is True Type with a standard encoding. + + + The font is CJK. + + + The font is True Type with a Unicode encoding. + + + A font already inside the document. + + + A Type3 font. + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + default array of six numbers specifying the font matrix, mapping glyph space to text space + + + if the font has to be embedded + + + if the font doesn't have to be embedded + + + if the font has to be cached + + + if the font doesn't have to be cached + + + The path to the font resources. + + + The fake CID code that represents a newline. + + + * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029) + * Treated as a line feed character in XFA rich and plain text. + * @since 5.4.3 + + + The font type. + + + a not defined character in a custom PDF encoding + + + table of characters widths for this encoding + + + encoding names + + + same as differences but with the unicode codes + + + encoding used with this font + + + true if the font is to be embedded in the PDF + + + The compression level for the font stream. + @since 2.1.3 + + + true if the font must use its built in encoding. In that case the + encoding is only used to map a char to the position inside + the font, not to the expected char name. + + + cache for the fonts already used. + + + list of the 14 built in fonts. + + + Forces the output of the width array. Only matters for the 14 + built-in fonts. + + + Converts char directly to byte + by casting. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Custom encodings use this map to key the Unicode character + to the single byte code. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + @param contents the content of the stream + @param lengths an array of int that describes the several lengths of each part of the font + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Generates the PDF stream for a font. + @param contents the content of a stream + @param subType the subtype of the font. + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Creates new BaseFont + + + Creates a new font. This will always be the default Helvetica font (not embedded). + This method is introduced because Helvetica is used in many examples. + @return a BaseFont object (Helvetica, Winansi, not embedded) + @throws IOException This shouldn't occur ever + @throws DocumentException This shouldn't occur ever + @since 2.1.1 + + + + + + + + Creates a font based on an existing document font. The created font font may not + behave as expected, depending on the encoding or subset. + @param fontRef the reference to the document font + @return the font + + + Indicates whether the font is used for verticl writing or not. + @return true if the writing mode is vertical for the given font, false otherwise. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + @param name the full name of the font + @return the name without the modifiers Bold, Italic or BoldItalic + + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + @param enc the encoding to be normalized + @return the normalized encoding + + + Creates the widths and the differences arrays + @throws UnsupportedEncodingException the encoding is not supported + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Gets the descent of a String in normalized 1000 units. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @return the dexcent in normalized 1000 units + + + Gets the ascent of a String in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @return the ascent in normalized 1000 units + + + Gets the descent of a String in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @param fontSize the size of the font + @return the dexcent in points + + + Gets the ascent of a String in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @param fontSize the size of the font + @return the ascent in points + + + Gets the width of a String in points taking kerning + into account. + @param text the String to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a string in points. + @param text the string to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a char in points. + @param char1 the char to get the witdth of + @param fontSize the font size + @return the width in points + + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program (if possible). + This method will return null for some types of fonts (CJKFont, Type3Font) + or if there is no font program available (standard Type 1 fonts). + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the encoding used to convert string into byte[]. + @return the encoding name + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the font type. The font types can be: FONT_TYPE_T1, + FONT_TYPE_TT, FONT_TYPE_CJK and FONT_TYPE_TTUNI. + @return the font type + + + Gets the embedded flag. + @return true if the font is embedded. + + + Gets the symbolic flag of the font. + @return true if the font is symbolic + + + Creates a unique subset prefix to be added to the font name when the font is embedded and subset. + @return the subset prefix + + + Gets the Unicode character corresponding to the byte output to the pdf stream. + @param index the byte index + @return the Unicode character + + + Gets the postscript font name. + @return the postscript font name + + + + + + Gets all the names from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), GetFamilyFontName(), GetFullFontName()} + + + Gets all the entries of the namestable from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), getFamilyFontName(), getFullFontName()} + + + + Gets the code pages supported by the font. This has only meaning + with True Type fonts. + @return the code pages supported by the font + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcFile the file name of the font + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcArray the font as a byte array + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Gets the font width array. + @return the font width array + + + Gets the array with the names of the characters. + @return the array with the names of the characters + + + Gets the array with the unicode characters. + @return the array with the unicode characters + + + Set to true to force the generation of the + widths array. + @param forceWidthsOutput true to force the generation of the + widths array + + + Sets the conversion of char directly to byte + by casting. This is a low level feature to put the bytes directly in + the content stream without passing through string.GetBytes(). + @param directTextToByte New value of property directTextToByte. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to true + only the glyphs used will be included in the font. When set to false + and {@link #addSubsetRange(int[])} was not called the full font will be included + otherwise just the characters ranges will be included. + @param subset new value of property subset + + + + Gets the CID code given an Unicode. + It has only meaning with CJK fonts. + @param c the Unicode + @return the CID equivalent + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Gets a list of all document fonts. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @return the list of fonts and references + + + Gets a list of the document fonts in a particular page. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @param page the page to list the fonts from + @return the list of fonts and references + + + Gets the smallest box enclosing the character contours. It will return + null if the font has not the information or the character has no + contours, as in the case of the space, for example. Characters with no contours may + also return [0,0,0,0]. + @param c the character to get the contour bounding box from + @return an array of four floats with the bounding box in the format [llx,lly,urx,ury] or + null + + + Gets default array of six numbers specifying the font matrix, mapping glyph space to text space + @return an array of six values + null + + + iText expects Arabic Diactrics (tashkeel) to have zero advance but some fonts, + most notably those that come with Windows, like times.ttf, have non-zero + advance for those characters. This method makes those character to have zero + width advance and work correctly in the iText Arabic shaping and reordering + context. + + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + @param range the character range + + + Sets the compression level to be used for the font streams. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + Does all the line bidirectional processing with PdfChunk assembly. + + @author Paulo Soares + + + Creates new BidiLine + + + Call this after processLine() to know if any word was split into several lines. + @return + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @return the sum of all widths + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @param originalWidth the full width of the line. It is used in case of RTL and tab stops + @return the sum of all widths + + + Method that changes a String with Arabic characters into a String in which the ligatures are made. + @param s the original String + @param runDirection + @param arabicOptions + @return the String with the ligaturesc + + + Left-to-right + + + Left-to-Right Embedding + + + Left-to-Right Override + + + Right-to-Left + + + Right-to-Left Arabic + + + Right-to-Left Embedding + + + Right-to-Left Override + + + Pop Directional Format + + + European Number + + + European Number Separator + + + European Number Terminator + + + Arabic Number + + + Common Number Separator + + + Non-Spacing Mark + + + Boundary Neutral + + + Paragraph Separator + + + Segment Separator + + + Whitespace + + + Other Neutrals + + + Minimum bidi type value. + + + Maximum bidi type value. + + + Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive + and represent the direction codes of the characters in the text. + + @param types the types array + + + Initialize using an array of direction types and an externally supplied paragraph embedding level. + The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), + 0 is for LTR paragraphs, and 1 is for RTL paragraphs. + + @param types the types array + @param paragraphEmbeddingLevel the externally supplied paragraph embedding level. + + + The algorithm. + Does not include line-based processing (Rules L1, L2). + These are applied later in the line-based phase of the algorithm. + + + + + Rules X9. + Remove explicit codes so that they may be ignored during the remainder + of the main portion of the algorithm. The length of the resulting text + is returned. + @return the length of the data excluding explicit codes and BN. + + + Reinsert levels information for explicit codes. + This is for ease of relating the level information + to the original input data. Note that the levels + assigned to these codes are arbitrary, they're + chosen so as to avoid breaking level runs. + @param textLength the length of the data after compression + @return the length of the data (original length of + types array supplied to constructor) + + + 2) determining explicit levels + Rules X1 - X8 + + The interaction of these rules makes handling them a bit complex. + This examines resultTypes but does not modify it. It returns embedding and + override information in the result array. The low 7 bits are the level, the high + bit is set if the level is an override, and clear if it is an embedding. + + + 3) resolving weak types + Rules W1-W7. + + Note that some weak types (EN, AN) remain after this processing is complete. + + + 6) resolving neutral types + Rules N1-N2. + + + 7) resolving implicit embedding levels + Rules I1, I2. + + + + Return multiline reordering array for a given level array. + Reordering does not occur across a line break. + + + Return reordering array for a given level array. This reorders a single line. + The reordering is a visual to logical map. For example, + the leftmost char is string.CharAt(order[0]). + Rule L2. + + + Return the base level of the paragraph. + + + Return true if the type is considered a whitespace type for the line break rules. + + + Return the strong type (L or R) corresponding to the level. + + + Return the limit of the run starting at index that includes only resultTypes in validSet. + This checks the value at index, and will return index if that value is not in validSet. + + + Return the start of the run including index that includes only resultTypes in validSet. + This assumes the value at index is valid, and does not check it. + + + Set resultTypes from start up to (but not including) limit to newType. + + + Set resultLevels from start up to (but not including) limit to newLevel. + + + Throw exception if type array is invalid. + + + Throw exception if paragraph embedding level is invalid. Special allowance for -1 so that + default processing can still be performed when using this API. + + + Throw exception if line breaks array is invalid. + + + Acts like a StringBuilder but works with byte arrays. + floating point is converted to a format suitable to the PDF. + @author Paulo Soares + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + List items for the linked list that builds the new CID font. + + + remember the current offset and increment by item's size in bytes. + + + Emit the byte stream for this item. + + + Fix up cross references to this item (applies only to markers). + + + set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + + A range item. + + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + @author orly manor + + TODO To change the template for this generated type comment go to + Window - Preferences - Java - Code Generation - Code and Comments + + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + a utility that creates a range item for an entire index + + @param indexOffset where the index is + @return a range item representing the entire index + + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + + A random Access File or an array + (contributed by orly manor) + + + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + A HashMap containing the glyphs used in the text after being converted + to glyph number by the CMap + + + The GlyphsUsed keys as an ArrayList + + + A HashMap for keeping the FDArrays being used by the font + + + A HashMaps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed HashMap as ArrayList + + + An array of the new Indexs for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursivly + + + C'tor for CFFFontSubset + @param rf - The font file + @param GlyphsUsed - a HashMap that contains the glyph used in the subset + + + Calculates the length of the charset according to its format + @param Offset The Charset Offset + @param NumofGlyphs Number of glyphs in the font + @return the length of the Charset + + + Function calculates the number of ranges in the Charset + @param NumofGlyphs The number of glyphs in the font + @param Type The format of the Charset + @return The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + @param Font The index of the font being processed + @return The Processed FDSelect of the font + + + Function reads the FDSelect and builds the FDArrayUsed HashMap According to the glyphs used + @param Font the Number of font being processed + + + Read the FDArray count, offsize and Offset array + @param Font + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + @param fontName - The name of the font to be taken out of the CFF + @return The new font stream + @throws IOException + + + Function calcs bias according to the CharString type and the count + of the subrs + @param Offset The offset to the relevent subrs index + @param Font the font + @return The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings + @param FontIndex the font + @throws IOException + + + + The function finds for the FD array processed the local subr offset and its + offset array. + @param Font the font + @param FD The FDARRAY processed + + + + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + @param begin the start point of the subr + @param end the end point of the subr + @param GBias the bias of the Global Subrs + @param LBias the bias of the Local Subrs + @param hSubr the HashMap for the lSubrs + @param lSubr the ArrayList for the lSubrs + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + Function checks the key and return the change to the stack after the operator + @return The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + + Pop one element from the stack + + + + Add an item to the stack + + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + @param begin the start point of the subr + @param end the end point of the subr + @param LBias the bias of the Local Subrs + @param GBias the bias of the Global Subrs + @param LSubrsOffsets The Offsets array of the subroutines + @return The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param Used the hashmap of the used objects + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + @param NewOffsets the subsetted offset array + @param NewObjects the subsetted object array + @return the new index created + + + The function builds the new output stream according to the subset process + @param Font the font + @return the subseted font stream + @throws IOException + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + @param Count the count field of the index + @param Offsize the offsize field of the index + @param First the first offset of the index + + + Function adds the keys into the TopDict + @param fdarrayRef OffsetItem for the FDArray + @param fdselectRef OffsetItem for the FDSelect + @param charsetRef OffsetItem for the CharSet + @param charstringsRef OffsetItem for the CharString + + + Function takes the original string item and adds the new strings + to accomodate the CID rules + @param Font the font + + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + @param fdselectRef OffsetItem for the FDSelect + @param nglyphs the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + @param charsetRef OffsetItem for the CharSet + @param nglyphs the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + @param fdarrayRef OffsetItem for the FDArray + @param privateRef OffsetItem for the Private Dict + @param Font the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + @param Font the font + @throws IOException + + + Function subsets the FDArray and builds the new one with new offsets + @param Font The font + @param fdPrivate OffsetItem Array (one for each FDArray) + @throws IOException + + + Function Adds the new private dicts (only for the FDs used) to the list + @param Font the font + @param fdPrivate OffsetItem array one element for each private + @param fdPrivateBase IndexBaseItem array one element for each private + @param fdSubrs OffsetItem array one element for each private + @throws IOException + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + @param Font The index of the font + @param fdPrivateBase The IndexBaseItem array for the linked list + @param fdSubrs OffsetItem array for the linked list + @throws IOException + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + @param Offset The Offset for the private dict + @param Size The size of the private dict + @return The size of the offset of the subrs in the private dict + + + Function computes the size of an index + @param indexOffset The offset for the computed index + @return The size of the index + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + @param Font the font + @param Subr The OffsetItem for the subrs of the private + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + @param Font the font + @param PrivateBase IndexBaseItem for the private that's referencing to the subrs + @param Subrs OffsetItem for the subrs + @throws IOException + + + Creates a CJK font compatible with the fonts in the Adobe Asian font Pack. + + @author Paulo Soares + + + The encoding used in the PDF document for CJK fonts + + + The path to the font resources. + + + The font name + + + The style modifier + + + The CMap name associated with this font + + + Creates a CJK font. + @param fontName the name of the font + @param enc the encoding of the font + @param emb always false. CJK font and not embedded + @throws DocumentException on error + @throws IOException on error + + + Returns a font compatible with a CJK encoding or null if not found. + @param enc + @return + + + Checks if its a valid CJK font. + @param fontName the font name + @param enc the encoding + @return true if it is CJK font + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + You can't get the FontStream of a CJK font (CJK fonts are never embedded), + so this method always returns null. + @return null + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + + + Implementation of DocumentFont used while parsing PDF streams. + @since 2.1.4 + + + The font dictionary. + + + the width of a space for this font, in normalized 1000 point units + + + The CMap constructed from the ToUnicode map from the font's dictionary, if present. + This CMap transforms CID values into unicode equivalent + + + Mapping between CID code (single byte only for now) and unicode equivalent + as derived by the font's encoding. Only needed if the ToUnicode CMap is not provided. + + + Creates an instance of a CMapAwareFont based on an indirect reference to a font. + @param refFont the indirect reference to a font + + + Parses the ToUnicode entry, if present, and constructs a CMap for it + @since 2.1.7 + + + Inverts DocumentFont's uni2byte mapping to obtain a cid-to-unicode mapping based + on the font's encoding + @since 2.1.7 + + + For all widths of all glyphs, compute the average width in normalized 1000 point units. + This is used to give some meaningful width in cases where we need an average font width + (such as if the width of a space isn't specified by a given font) + @return the average width of all non-zero width glyphs in the font + + + @since 2.1.5 + Override to allow special handling for fonts that don't specify width of space character + @see com.itextpdf.text.pdf.DocumentFont#getWidth(int) + + + Decodes a single CID (represented by one or two bytes) to a unicode String. + @param bytes the bytes making up the character code to convert + @param offset an offset + @param len a length + @return a String containing the encoded form of the input bytes using the font's encoding. + + + Decodes a string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + @since 2.1.7 + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + + + Encodes bytes to a String. + @param bytes the bytes from a stream + @param offset an offset + @param len a length + @return a String encoded taking into account if the bytes are in unicode or not. + @deprecated method name is not indicative of what it does. Use decode instead. + + + + @author Paulo Soares + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + Constructs a PDF Collection. + @param type the type of PDF collection. + + + Identifies the document that will be initially presented + in the user interface. + @param description the description that was used when attaching the file to the document + + + Sets the Collection schema dictionary. + @param schema an overview of the collection fields + + + Sets the Collection sort dictionary. + @param sort a collection sort dictionary + + + @author blowagie + + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + The type of the PDF collection field. + + + Creates a PdfCollectionField. + @param name the field name + @param type the field type + + + The relative order of the field name. Fields are sorted in ascending order. + @param i a number indicating the order of the field + + + Sets the initial visibility of the field. + @param visible the default is true (visible) + + + Indication if the field value should be editable in the viewer. + @param editable the default is false (not editable) + + + Checks if the type of the field is suitable for a Collection Item. + + + Returns a PdfObject that can be used as the value of a Collection Item. + @param String value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) + + + The PdfCollectionSchema with the names and types of the items. + + + Constructs a Collection Item that can be added to a PdfFileSpecification. + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + @param prefix a prefix + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + @param name the name of the collection field + @param field a Collection Field + + + Constructs a PDF Collection Sort Dictionary. + @param key the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + @param keys the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + @param ascending true is the default, use false for descending order + + + Defines the sort order of the field (ascending or descending). + @param ascending an array with every element corresponding with a name of a field. + + + Creates dictionary referring to a target document that is the parent of the current document. + @param nested null if this is the actual target, another target if this is only an intermediate target. + + + Creates a dictionary referring to a target document. + @param child if false, this refers to the parent document; if true, this refers to a child document, and you'll have to specify where to find the child using the other methods of this class + + + If this dictionary refers to a child that is a document level attachment, + you need to specify the name that was used to attach the document. + @param name the name in the EmbeddedFiles name tree + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the name of the page (or use setFileAttachmentPage to specify the page number). + Once you have specified the page, you still need to specify the attachment using another method. + @param name the named destination referring to the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page number (or use setFileAttachmentPagename to specify a named destination). + Once you have specified the page, you still need to specify the attachment using another method. + @param page the page number of the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the name of the attachment added to this page (or use setFileAttachmentIndex). + @param name the name of the attachment + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the index of the attachment added to this page (or use setFileAttachmentName). + @param name the name of the attachment + + + If this dictionary refers to an intermediate target, you can + add the next target in the sequence. + @param nested the next target in the sequence + + + Each colorSpace in the document will have an instance of this class + + @author Phillip Pan (phillip@formstar.com) + + + The indirect reference to this color + + + The color name that appears in the document body stream + + + The color + + + Each spot color used in a document has an instance of this class. + @param colorName the color name + @param indirectReference the indirect reference to the font + @param scolor the PDfSpotColor + + + Gets the indirect reference to this color. + @return the indirect reference to this color + + + Gets the color name as it appears in the document body. + @return the color name + + + Gets the SpotColor object. + @return the PdfSpotColor + + + + Eliminate the arabic vowels + + + Compose the tashkeel in the ligatures. + + + Do some extra double ligatures. + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Signals that there is no more text available. + + + Signals that there is no more column. + + + The column is valid. + + + The line is out the column limits. + + + The line cannot fit this column position. + + + Upper bound of the column. + + + Lower bound of the column. + + + The column Element. Default is left Element. + + + The left column bound. + + + The right column bound. + + + The chunks that form the text. + + + The current y line location. Text will be written at this line minus the leading. + + + The X position after the last line that has been written. + @since 5.0.3 + + + The leading for the current line. + + + The fixed text leading. + + + The text leading that is multiplied by the biggest font size in the line. + + + The PdfContent where the text will be written to. + + + The line status when trying to fit a line to a column. + + + The first paragraph line indent. + + + The following paragraph lines indent. + + + The right paragraph lines indent. + + + The extra space between paragraphs. + + + The width of the line when the column is defined as a simple rectangle. + + + Holds value of property spaceCharRatio. + + + Holds value of property linesWritten. + + + Holds value of property arabicOptions. + + + Pointer for the row in a table that is being dealt with + @since 5.1.0 + + + The index of the last row that needed to be splitted. + @since 5.0.1 changed a boolean into an int + -2 value mean it is the first attempt to split the first row. + -1 means that we try to avoid splitting current row. + + + if true, first line height is adjusted so that the max ascender touches the top + + + @since 5.4.2 + + + Creates a ColumnText. + @param text the place where the text will be written to. Can + be a template. + + + Creates an independent duplicated of the instance org. + @param org the original ColumnText + @return the duplicated + + + Makes this instance an independent copy of org. + @param org the original ColumnText + @return itself + + + Adds a Phrase to the current text array. + @param phrase the text + + + Replaces the current text array with this Phrase. + Anything added previously with AddElement() is lost. + @param phrase the text + + + Adds a Chunk to the current text array. + Will not have any effect if AddElement() was called before. + @param chunk the text + + + + + Finds the intersection between the yLine and the column. It will + set the lineStatus apropriatly. + @param wall the column to intersect + @return the x coordinate of the intersection + + + Finds the intersection between the yLine and the two + column bounds. It will set the lineStatus apropriatly. + @return a float[2]with the x coordinates of the intersection + + + Finds the intersection between the yLine, + the yLine-leadingand the two + column bounds. It will set the lineStatus apropriatly. + @return a float[4]with the x coordinates of the intersection + + + Sets the columns bounds. Each column bound is described by a + float[] with the line points [x1,y1,x2,y2,...]. + The array must have at least 4 elements. + @param leftLine the left column bound + @param rightLine the right column bound + + + Simplified method for rectangular columns. + @param phrase a Phrase + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx + @param lly + @param urx + @param ury + + + Simplified method for rectangular columns. + @param rect the rectangle for the column + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the yLine. + @return the yLine + + + Gets the number of rows that were drawn when a table is involved. + + + Gets the Element. + @return the alignment + + + Gets the first paragraph line indent. + @return the indent + + + Sets the first paragraph line indent. + + @param indent the indent + @param repeatFirstLineIndent do we need to repeat the indentation of the first line after a newline? + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the currentLeading. + + @return the currentLeading + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Call this after go() to know if any word was split into several lines. + @return + + + Sets the extra space between paragraphs. + @return the extra space between paragraphs + + + Clears the chunk array. A call to go() will always return + NO_MORE_TEXT. + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction. + @return the run direction + + + Gets the number of lines written. + @return the number of lines written + + + Gets the X position of the end of the last line that has been written + (will not work in simulation mode!). + @since 5.0.3 + + + Sets the arabic shaping options. The option can be AR_NOVOWEL, + AR_COMPOSEDTASHKEEL and AR_LIG. + @param arabicOptions the arabic shaping options + + + Gets the biggest descender value of the last line written. + @return the biggest descender value of the last line written + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + @return the width of the line + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @return the width of the line + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment. It is not influenced by the run direction + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + + + Fits the text to some rectangle adjusting the font size as needed. + @param font the font to use + @param text the text + @param rect the rectangle where the text must fit + @param maxFontSize the maximum font size + @param runDirection the run direction + @return the calculated font size that makes the text fit + + + Sets the canvas. + @param canvas + + + Sets the canvases. + @param canvas + + + Checks if the element has a height of 0. + @return true or false + @since 2.1.2 + + + Enables/Disables adjustment of first line height based on max ascender. + @param use enable adjustment if true + + + Checks the status variable and looks if there's still some text. + + + Holds value of property filledWidth. + + + Sets the real width used by the largest line. Only used to set it + to zero to start another measurement. + @param filledWidth the real width used by the largest line + + + Replaces the filledWidth if greater than the existing one. + @param w the new filledWidth if greater than the existing one + + + Sets the first line adjustment. Some objects have properties, like spacing before, that + behave differently if the object is the first to be written after go() or not. The first line adjustment is + true by default but can be changed if several objects are to be placed one + after the other in the same column calling go() several times. + @param adjustFirstLine true to adjust the first line, false otherwise + + + Creates an AES Cipher with CBC and no padding. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + Creates a new instance of ARCFOUREncryption + + + An initialization vector generator for a CBC block encryption. It's a random generator based on RC4. + @author Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + @return a 16 byte random initialization vector + + + Gets a random initialization vector. + @param len the length of the initialization vector + @return a random initialization vector + + + Creates a new instance of StandardDecryption + + + Creates an AES Cipher with CBC and padding PKCS5/7. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + + An instance of the default SplitCharacter. + + + Default constructor, has no custom characters to check. + + + Constructor with one splittable character. + + @param character char + + + Constructor with an array of splittable characters + + @param characters char[] + + + + Returns the current character + + @param current current position in the array + @param ck chunk array + @param cc the character array that has to be checked + @return the current character + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + + Gets the postscript font name. + @return the postscript font name + + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + + Always returns null. + @return null + @since 2.1.3 + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Exposes the unicode - > CID map that is constructed from the font's encoding + @return the unicode to CID map + @since 2.1.7 + + + Exposes the CID - > unicode map that is constructed from the font's encoding + @return the CID to unicode map + @since 5.4.0 + + + Gets the difference map + @return the difference map + @since 5.0.5 + + + Element that draws a dotted line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @since 2.1.2 + + + the gap between the dots. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Setter for the gap between the center of the dots of the dotted line. + @param gap the gap between the center of the dots + + + Interface for an Element that allows you to draw something at the current + vertical position. Trivial implementations are LineSeparator and VerticalPositionMark. + It is also used to define what has to be drawn by a separator chunk. + @since 2.1.2 + + + Implement this method if you want to draw something at the current Y position + (for instance a line). + @param canvas the canvas on which you can draw + @param llx the x coordinate of the left page margin + @param lly the y coordinate of the bottom page margin + @param urx the x coordinate of the right page margin + @param ury the y coordinate of the top page margin + @param y the current y position on the page + + + Element that draws a solid line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @author Paulo Soares + @since 2.1.2 + + + The thickness of the line. + + + The width of the line as a percentage of the available page width. + + + The color of the line. + + + The alignment of the line. + + + Creates a new instance of the LineSeparator class. + @param lineWidth the thickness of the line + @param percentage the width of the line as a percentage of the available page width + @param color the color of the line + @param align the alignment + @param offset the offset of the line relative to the current baseline (negative = under the baseline) + + + Creates a new instance of the LineSeparator class. + @param font the font + + + Creates a new instance of the LineSeparator class with + default values: lineWidth 1 user unit, width 100%, centered with offset 0. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Draws a horizontal line. + @param canvas the canvas to draw on + @param leftX the left x coordinate + @param rightX the right x coordindate + @param y the y coordinate + + + Setter for the line width. + @param lineWidth the thickness of the line that will be drawn. + + + Setter for the width as a percentage of the available width. + @return a width percentage + + + Setter for the color of the line that will be drawn. + @param color a color + + + Setter for the alignment of the line. + @param align an alignment value + + + Helper class implementing the DrawInterface. Can be used to add + horizontal or vertical separators. Won't draw anything unless + you implement the draw method. + @since 2.1.2 + + + Another implementation of the DrawInterface; its draw method will overrule LineSeparator.Draw(). + + + The offset for the line. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + @param drawInterface the drawInterface for this vertical position mark. + @param offset the offset for this vertical position mark. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + @see com.lowagie.text.Element#process(com.lowagie.text.ElementListener) + + + @see com.lowagie.text.Element#type() + + + @see com.lowagie.text.Element#isContent() + + + @see com.lowagie.text.Element#isNestable() + + + @see com.lowagie.text.Element#getChunks() + + + Setter for the interface with the overruling Draw() method. + @param drawInterface a DrawInterface implementation + + + Setter for the offset. The offset is relative to the current + Y position. If you want to underline something, you have to + choose a negative offset. + @param offset an offset + + + Enumerates all the fonts inside a True Type Collection. + + @author Paulo Soares + + + Class for an index. + + @author Michael Niedermair + + + Keeps a map with fields that are to be positioned in inGenericTag. + + + Keeps the form field that is to be positioned in a cellLayout event. + + + The PdfWriter to use when a field has to added in a cell event. + + + The PdfFormField that is the parent of the field added in a cell event. + + + Creates a new event. This constructor will be used if you need to position fields with Chunk objects. + + + Some extra padding that will be taken into account when defining the widget. + + + Add a PdfFormField that has to be tied to a generic Chunk. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + @param padding The padding to set. + + + @param parent The parent to set. + + + @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String) + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + Class for an index. + + @author Michael Niedermair + + + keeps the indextag with the pagenumber + + + All the text that is passed to this event, gets registered in the indexentry. + + @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag( + com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, + com.lowagie.text.Rectangle, java.lang.String) + + + indexcounter + + + the list for the index entry + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + + + Comparator for sorting the index + + + Set the comparator. + @param aComparator The comparator to set. + + + Returns the sorted list with the entries and the collected page numbers. + @return Returns the sorted list with the entries and teh collected page numbers. + + + Class for an index entry. +

+ In the first step, only in1, in2,in3 and tag are used. + After the collections of the index entries, pagenumbers are used. +

+
+ + first level + + + second level + + + third level + + + the tag + + + the lsit of all page numbers. + + + the lsit of all tags. + + + Create a new object. + @param aIn1 The first level. + @param aIn2 The second level. + @param aIn3 The third level. + @param aTag The tag. + + + Returns the in1. + @return Returns the in1. + + + Returns the in2. + @return Returns the in2. + + + Returns the in3. + @return Returns the in3. + + + Returns the tag. + @return Returns the tag. + + + Returns the pagenumer for this entry. + @return Returns the pagenumer for this entry. + + + Add a pagenumber. + @param number The page number. + @param tag + + + Returns the key for the map-entry. + @return Returns the key for the map-entry. + + + Returns the pagenumbers. + @return Returns the pagenumbers. + + + Returns the tags. + @return Returns the tags. + + + print the entry (only for test) + @return the toString implementation of the entry + + + If you want to add more than one page eventa to a PdfWriter, + you have to construct a PdfPageEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page eventa to the forwarder. + @param eventa an eventa that has to be added to the forwarder. + + + Called when the document is opened. + + @param writer + the PdfWriter for this document + @param document + the document + + + + Called when a page is finished, just before being written to the + document. + + @param writer + the PdfWriter for this document + @param document + the document + + + + + + + + + + + If you want to add more than one event to a cell, + you have to construct a PdfPCellEventForwarder, add the + different events to this object and add the forwarder to + the PdfPCell. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + If you want to add more than one page event to a PdfPTable, + you have to construct a PdfPTableEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[]) + + + @see com.itextpdf.text.pdf.PdfPTableEventAfterSplit#afterSplitTable(com.itextpdf.text.pdf.PdfPTable, com.itextpdf.text.pdf.PdfPRow, int) + @since iText 5.4.3 + + + + @author Paulo Soares + + + Constructs an extended color of a certain type and a certain color. + @param type + @param red + @param green + @param blue + @param alpha + + + Reads an FDF form and makes the fields available + @author Paulo Soares + + + Reads an FDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an FDF form. + @param pdfIn the byte array with the form + @throws IOException on error + + + Reads an FDF form. + @param url the URL of the document + @throws IOException on error + + + Reads an FDF form. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field dictionary. + @param name the fully qualified field name + @return the field dictionary + + + Gets a byte[] containing a file that is embedded in the FDF. + @param name the fully qualified field name + @return the bytes of the file + @throws IOException + @since 5.0.1 + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Writes an FDF form. + @author Paulo Soares + + + The PDF file associated with the FDF. + + + Creates a new FdfWriter. + + + Writes the content to a stream. + @param os the stream + @throws DocumentException on error + @throws IOException on error + + + Removes the field value. + @param field the field name + @return true if the field was found and removed, + false otherwise + + + Gets all the fields. The map is keyed by the fully qualified + field name and the values are PdfObject. + @return a map with all the fields + + + Gets the field value. + @param field the field name + @return the field value or null if not found + + + Sets the field value as a name. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a string. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a PDFAction. + For example, this method allows setting a form submit button action using {@link PdfAction#createSubmitForm(String, Object[], int)}. + This method creates an A entry for the specified field in the underlying FDF file. + Method contributed by Philippe Laflamme (plaflamme) + @param field the fully qualified field name + @param action the field's action + @return true if the value was inserted, + false if the name is incompatible with + an existing field + @since 2.1.5 + + + Sets all the fields from this FdfReader + @param fdf the FdfReader + + + Sets all the fields from this PdfReader + @param pdf the PdfReader + + + Sets all the fields from this AcroFields + @param acro the AcroFields + + + Gets the PDF file name associated with the FDF. + @return the PDF file name associated with the FDF + + + Each font in the document will have an instance of this class + where the characters used will be represented. + + @author Paulo Soares + + + The indirect reference to this font + + + The font name that appears in the document body stream + + + The font + + + The font if its an instance of TrueTypeFontUnicode + + + The array used with single byte encodings + + + The map used with double byte encodings. The key is Int(glyph) and the + value is int[]{glyph, width, Unicode code} + + + The font type + + + true if the font is symbolic + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Each font used in a document has an instance of this class. + This class stores the characters used in the document and other + specifics unique to the current working document. + @param fontName the font name + @param indirectReference the indirect reference to the font + @param baseFont the BaseFont + + + Gets the indirect reference to this font. + @return the indirect reference to this font + + + Gets the font name as it appears in the document body. + @return the font name + + + Gets the BaseFont of this font. + @return the BaseFont of this font + + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + @param text the text to convert + @return the conversion + + + Writes the font definition to the document. + @param writer the PdfWriter of this document + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. Set to false + to include all. + @param subset new value of property subset + + + + Adds a Font to be searched for valid characters. + @param font the Font + + + Process the text so that it will render with a combination of fonts + if needed. + @param text the text + @return a Phrase with one or more chunks + + + + @author Paulo Soares + + + Hyphenates words automatically accordingly to the language and country. + The hyphenator engine was taken from FOP and uses the TEX patterns. If a language + is not provided and a TEX pattern for it exists, it can be easily adapted. + + @author Paulo Soares + + + The hyphenator engine. + + + The second part of the hyphenated word. + + + Creates a new hyphenation instance usable in Chunk. + @param lang the language ("en" for english, for example) + @param country the country ("GB" for Great-Britain or "none" for no country, for example) + @param leftMin the minimun number of letters before the hyphen + @param rightMin the minimun number of letters after the hyphen + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + return number of items in array + + + returns current capacity of array + + + This is to implement memory allocation in the array. Like Malloc(). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Reset Vector but don't resize or clear elements + + + return number of items in array + + + returns current capacity of array + + + + + number of hyphenation points in word + + + rawWord as made of alternating strings and {@link Hyphen Hyphen} + instances + + + @return the number of hyphenation points in the word + + + @return the pre-break text, not including the hyphen character + + + @return the post-break text + + + @return the hyphenation points + + + + + value space: stores the inteletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + @param values a string of digits from '0' to '9' representing the + interletter values. + @return the index into the vspace array where the packed values + are stored. + + + String compare, returns 0 if equal or + t is a substring of s + + + + Hyphenate word and return a Hyphenation object. + @param word the word to be hyphenated + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + w = "****nnllllllnnn*****", + where n is a non-letter, l is a letter, + all n may be absent, the first n is at offset, + the first l is at offset + iIgnoreAtBeginning; + word = ".llllll.'\0'***", + where all l in w are copied into word. + In the first part of the routine len = w.length, + in the second part of the routine len = word.length. + Three indices are used: + Index(w), the index in w, + Index(word), the index in word, + Letterindex(word), the index in the letter part of word. + The following relations exist: + Index(w) = offset + i - 1 + Index(word) = i - iIgnoreAtBeginning + Letterindex(word) = Index(word) - 1 + (see first loop). + It follows that: + Index(w) - Index(word) = offset - 1 + iIgnoreAtBeginning + Index(w) = Letterindex(word) + offset + iIgnoreAtBeginning + Hyphenate word and return an array of hyphenation points. + @param w char array that contains the word + @param offset Offset to first character in word + @param len Length of word + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + Add a character class to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + + Add an exception to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} class as callback to + store the hyphenation exceptions. + @param word normalized word + @param hyphenatedword a vector of alternating strings and + {@link Hyphen hyphen} objects. + + + Add a pattern to the tree. Mainly, to be used by + {@link SimplePatternParser SimplePatternParser} class as callback to + add a pattern to the tree. + @param pattern the hyphenation pattern + @param ivalue interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + TODO: Don't use statics + + + @param lang + @param country + @param leftMin + @param rightMin + + + @param lang + @param country + @return the hyphenation tree + + + @param key + @return a hyphenation tree + + + @param lang + @param country + @param word + @param leftMin + @param rightMin + @return a hyphenation object + + + @param lang + @param country + @param word + @param offset + @param len + @param leftMin + @param rightMin + @return a hyphenation object + + + @param min + + + @param min + + + @param lang + @param country + + + @param word + @param offset + @param len + @return a hyphenation object + + + @param word + @return a hyphenation object + + + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + @param chargroup character group + + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + {@link Hyphen Hyphen} instances + + + Add hyphenation patterns. + @param pattern the pattern + @param values interletter values expressed as a string of + digit characters. + + + Parses the xml hyphenation pattern. + + @author Paulo Soares + + + Creates a new instance of PatternParser2 + + +

Ternary Search Tree

+ +

A ternary search tree is a hibrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash).

+ +

The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirenments to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe.

+ +

All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values.

+ + @author cav@uniscope.co.jp +
+ + We use 4 arrays to represent a node. I guess I should have created + a proper node class, but somehow Knuth's pascal code made me forget + we now have a portable language with memory management and + automatic garbage collection! And now is kind of late, furthermore, + if it ain't broken, don't fix it. + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + +

The character stored in this node: splitchar + Two special values are reserved:

+
  • 0x0000 as string terminator
  • +
  • 0xFFFF to indicate that the branch starting at + this node is compressed
+

This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character.

+
+ + This vector holds the trailing of the keys when the branch is compressed. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + + The actual insertion function, recursive version. + + + Compares 2 null terminated char arrays + + + Compares a string with null terminated char array + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + + Balance the tree for best search performance + + + Each node stores a character (splitchar) which is part of + some Key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + current node index + + + current key + + + TernaryTree parent + + + Node stack + + + key stack implemented with a StringBuilder + + + traverse upwards + + + traverse the tree to find next key + + + + Summary description for ICC_Profile. + + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + @author Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + @param text the Unicode string + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + @param char1 the Unicode char + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + @param b the input byte array + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Called by Chunk to hyphenate a word. + + @author Paulo Soares + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + This is the AcroForm object for the complete document. + + + This is the array containing the references to annotations + that were added to the document. + + + This is an array containg references to some delayed annotations + (that were added for a page that doesn't exist yet). + + + Checks if the AcroForm is valid. + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + Stores the PDF version information, + knows how to write a PDF Header, + and how to add the version to the catalog (if necessary). + + + Contains different strings that are part of the header. + + + Indicates if the header was already written. + + + Indicates if we are working in append mode. + + + The version that was or will be written to the header. + + + The version that will be written to the catalog. + + + The version that user can use to get the actual version of PDF document * + + + The extensions dictionary. + @since 2.1.6 + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + Sets the append mode. + + + Writes the header to the OutputStreamCounter. + @throws IOException + + + Returns the PDF version as a name. + @param version the version character. + + + Returns the version as a byte[]. + @param version the version character + + + Adds the version to the Catalog dictionary. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Stores the information concerning viewer preferences, + and contains the business logic that allows you to set viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences + + + A series of viewer preferences. + + + This value will hold the viewer preferences for the page layout and page mode. + + + This dictionary holds the viewer preferences (other than page layout and page mode). + + + The mask to decide if a ViewerPreferences dictionary is needed + + + Returns the page layout and page mode value. + + + Returns the viewer preferences. + + + Sets the viewer preferences as the sum of several constants. + + @param preferences + the viewer preferences + @see PdfWriter#setViewerPreferences + + + Given a key for a viewer preference (a PdfName object), + this method returns the index in the VIEWER_PREFERENCES array. + @param key a PdfName referring to a viewer preference + @return an index in the VIEWER_PREFERENCES array + + + Checks if some value is valid for a certain key. + + + Sets the viewer preferences for printing. + + + Adds the viewer preferences defined in the preferences parameter to a + PdfDictionary (more specifically the root or catalog of a PDF file). + + @param catalog + + + The value indicating if the PDF has to be in conformance with PDF/X. + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#setPDFXConformance(int) + + + @see com.itextpdf.text.pdf.interfaces.PdfIsoConformance#isPdfIso() + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if the PDF has to be in conformance with PDF/X-1a:2001 + @return true of the PDF has to be in conformance with PDF/X-1a:2001 + + + Checks if the PDF has to be in conformance with PDF/X-3:2002 + @return true of the PDF has to be in conformance with PDF/X-3:2002 + + + Business logic that checks if a certain object is in conformance with PDF/X. + @param writer the writer that is supposed to write the PDF/X file + @param key the type of PDF ISO conformance that has to be checked + @param obj1 the object that is checked for conformance + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + The interface common to all layer types. + + @author Paulo Soares + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Gets the object representing the layer. + @return the object representing the layer + + + Allows a class to catch several document events. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + Called when a page is initialized. +

+ Note that if even if a page is not written this method is still + called. It is preferable to use onEndPage to avoid + infinite loops. +

+

+ Note that this method isn't called for the first page. You should apply modifications for the first + page either before opening the document or by using the onOpenDocument() method. +

+ + @param writer the PdfWriter for this document + @param document the document +
+ + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + + Summary description for IPdfPCellEvent. + + + + + An interface that can be used to retrieve the position of cells in PdfPTable. + + @author Paulo Soares + + + + Implementation of the IndicLigaturizer for Gujarati. + + + Constructor for the IndicLigaturizer for Gujarati. + + + Hebrew is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Interface that needs to be implemented by classes that process bytes + representing text in specific languages. Processing involves changing + order to Right to Left and/or applying ligatures. + + + Processes a String + @param s the original String + @return the processed String + + + Indicates if the rundirection is right-to-left. + @return true if text needs to be rendered from right to left. + + + Superclass for processors that can convert a String of bytes in an Indic + language to a String in the same language of which the bytes are reordered + for rendering using a font that contains the necessary glyphs. + + + The table mapping specific character indexes to the characters in a + specific language. + + + Reorders the bytes in a String making Indic ligatures + + @param s + the original String + @return the ligaturized String + + + Indic languages are written from right to left. + + @return false + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Checks if a character is vowel letter. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel letter + + + Checks if a character is vowel sign. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel sign + + + Checks if a character is consonant letter. + + @param ch + the character that needs to be checked + @return true if the chracter is a consonant letter + + + Swaps two characters in a StringBuilder object + + @param s + the StringBuilder + @param i + the index of one character + @param j + the index of the other character + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newstring to the end of oldstring. + + + Represents a Bezier curve. + + @since 5.5.6 + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + Constructs new bezier curve. + @param controlPoints Curve's control points. + + + {@inheritDoc} + + + You can adjust precision of the approximation by varying the following + parameters: {@link #curveCollinearityEpsilon}, {@link #distanceToleranceSquare}, + {@link #distanceToleranceManhattan} + + @return {@link java.util.List} containing points of piecewise linear approximation + for this bezier curve. + @since 5.5.6 + + + @author kevin + @since 5.0.1 + + + Gets the content bytes from a content object, which may be a reference + a stream or an array. + @param contentObject the object to read bytes from + @return the content bytes + @throws IOException + + + Gets the content bytes of a page from a reader + @param reader the reader to get content bytes from + @param pageNum the page number of page you want get the content stream from + @return a byte array with the effective content stream of a page + @throws IOException + @since 5.0.1 + + + Simply extends the {@link com.itextpdf.text.pdf.parser.RenderListener} interface to provide + additional methods. + + {@inheritDoc} + + @since 5.5.6 + + + Called when the current path is being modified. E.g. new segment is being added, + new subpath is being started etc. + + @param renderInfo Contains information about the path segment being added to the current path. + + + Called when the current path should be rendered. + + @param renderInfo Contains information about the current path which should be rendered. + @return The path which can be used as a new clipping path. + + + Called when the current path should be set as a new clipping path. + + @param rule Either {@link PathPaintingRenderInfo#EVEN_ODD_RULE} or {@link PathPaintingRenderInfo#NONZERO_WINDING_RULE} + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + The filters to be applied + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + Applies filters, then delegates to the deleg if all filters pass + @param renderInfo contains info to render text + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + Applies filters, then delegates to the deleg if all filters pass + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.TextExtractionStrategy#getResultantText() + + + Keeps all the parameters of the graphics state. + @since 2.1.4 + + + The current transformation matrix. + + + The current character spacing. + + + The current word spacing. + + + The current horizontal scaling + + + The current leading. + + + The active font. + + + The current font size. + + + The current render mode. + + + The current text rise + + + The current knockout value. + + + The current color space for stroke. + + + The current color space for stroke. + + + The current fill color. + + + The current stroke color. + + + The line width for stroking operations + + + The line cap style. For possible values + see {@link PdfContentByte} + + + The line join style. For possible values + see {@link PdfContentByte} + + + The mitir limit value + + + The line dash pattern + + + Constructs a new Graphics State object with the default values. + + + Copy constructor. + @param source another GraphicsState object + + + Getter for the current transformation matrix + @return the ctm + @since iText 5.0.1 + + + Getter for the character spacing. + @return the character spacing + @since iText 5.0.1 + + + Getter for the word spacing + @return the word spacing + @since iText 5.0.1 + + + Getter for the horizontal scaling + @return the horizontal scaling + @since iText 5.0.1 + + + Getter for the leading + @return the leading + @since iText 5.0.1 + + + Getter for the font + @return the font + @since iText 5.0.1 + + + Getter for the font size + @return the font size + @since iText 5.0.1 + + + Getter for the render mode + @return the renderMode + @since iText 5.0.1 + + + Getter for text rise + @return the text rise + @since iText 5.0.1 + + + Getter for knockout + @return the knockout + @since iText 5.0.1 + + + Gets the current color space for fill operations + + + Gets the current color space for stroke operations + + + Gets the current fill color + @return a BaseColor + + + Gets the current stroke color + @return a BaseColor + + + Getter and setter for the line width. + @return The line width + @since 5.5.6 + + + Getter and setter for the line cap style. + For possible values see {@link PdfContentByte} + @return The line cap style. + @since 5.5.6 + + + Getter and setter for the line join style. + For possible values see {@link PdfContentByte} + @return The line join style. + @since 5.5.6 + + + Getter and setter for the miter limit value. + @return The miter limit. + @since 5.5.6 + + + Getter for the line dash pattern. + @return The line dash pattern. + @since 5.5.6 + + + Setter for the line dash pattern. + @param lineDashPattern New line dash pattern. + @since 5.5.6 + + + Interface implemented by a series of content operators + @since 2.1.4 + + + Invokes a content operator. + @param processor the processor that is dealing with the PDF content + @param operator the literal PDF syntax of the operator + @param operands the operands that come with the operator + @throws Exception any exception can be thrown - it will be re-packaged into a runtime exception and re-thrown by the {@link PdfContentStreamProcessor} + + + Represents image data from a PDF + @since 5.0.1 + + + The graphics state that was in effect when the image was rendered + + + A reference to the image XObject + + + A reference to an inline image + + + the color space associated with the image + + + the image object to be rendered, if it has been parsed already. Null otherwise. + + + Array containing marked content info for the text. + @since 5.5.11 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on inline image data. This is nowhere near completely thought through + and really just acts as a placeholder. + @param ctm the coordinate transformation matrix at the time the image is rendered + @param imageObject the image object representing the inline image + @return the ImageRenderInfo representing the rendered embedded image + @since 5.0.1 + + + Gets an object containing the image dictionary and bytes. + @return an object containing the image dictionary and byte[] + @since 5.0.2 + + + @return a vector in User space representing the start point of the xobject + + + @return The coordinate transformation matrix active when this image was rendered. Coordinates are in User space. + @since 5.0.3 + + + @return the size of the image, in User space units + + + @return an indirect reference to the image + @since 5.0.2 + + + @return the current fill color from the graphics state at the time this render operation occured + @since 5.5.7 + + + Checks if the image belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.5.11 + + + * Checks if the image belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.5.11 + + + @return the marked content associated with the ImageRenderInfo instance. + + + + Called when a new text block is beginning (i.e. BT) + @since iText 5.0.1 + + + Called when text should be rendered + @param renderInfo information specifying what to render + + + Called when a text block has ended (i.e. ET) + @since iText 5.0.1 + + + Called when image should be rendered + @param renderInfo information specifying what to render + @since iText 5.0.1 + + + Defines an interface for {@link RenderListener}s that can return text + @since 5.0.2 + + + Returns the result so far. + @return a String with the resulting text. + + + Represents a line. + + @since 5.5.6 + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + + + Constructs a new line based on the given coordinates. + + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash array and + a dash phase. + + @since 5.5.6 + + + Creates new {@link LineDashPattern} object. + @param dashArray The dash array. See {@link #getDashArray()} + @param dashPhase The dash phase. See {@link #getDashPhase()} + + + Getter and setter for the dash array. + + The dash array’s elements is number that specify the lengths of + alternating dashes and gaps; the numbers are nonnegative. The + elements are expressed in user space units. + + @return The dash array. + + + Getter and setter for the dash phase. + + The dash phase shall specify the distance into the dash pattern at which + to start the dash. The elements are expressed in user space units. + + @return The dash phase. + + + Calculates and returns the next element which is either gap or dash. + @return The next dash array's element. + + + Checks whether the dashed pattern is solid or not. It's solid when the + size of a dash array is even and sum of all the units off in the array + is 0.
+ For example: [3 0 4 0 5 0 6 0] (sum is 0), [3 0 4 0 5 1] (sum is 1). +
+ + Resets the dash array so that the {@link #next()} method will start + from the beginning of the dash array. + + + Represents a line segment in a particular coordinate system. This class is immutable. + @since 5.0.2 + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + @param startPoint the start point of a line segment. + @param endPoint the end point of a line segment. + + + @return the start point + + + @return the end point + + + @return the length of this line segment + @since 5.0.2 + + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + @return the bounding rectangle + @since 5.0.2 + + + Transforms the segment by the specified matrix + @param m the matrix for the transformation + @return the transformed segment + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + @param strat the custom strategy + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @param str + @return true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + @param str + @return true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + Filters the provided list with the provided filter + @param textChunks a list of all TextChunks that this strategy found during processing + @param filter the filter to apply. If null, filtering will be skipped. + @return the filtered list + @since 5.3.3 + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + @param chunk the new chunk being evaluated + @param previousChunk the chunk that appeared immediately before the current chunk + @return true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + Gets text that meets the specified filter + If multiple text extractions will be performed for the same page (i.e. for different physical regions of the page), + filtering at this level is more efficient than filtering using {@link FilteredRenderListener} - but not nearly as powerful + because most of the RenderInfo state is not captured in {@link TextChunk} + @param chunkFilter the filter to to apply + @return the text results so far, filtered using the specified filter + + + Returns the result so far. + @return a String with the resulting text. + + + Used for debugging only + + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + the starting location of the chunk + + + the ending location of the chunk + + + the orientation as a scalar for quick sorting + + + perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system) + we round to the nearest integer to handle the fuzziness of comparing floats + + + distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + the width of a single space character in the font of the chunk + + + @param comparedLine the location to compare to + @return true is this location is on the the same line as the other + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + unit vector in the orientation of the chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + @return the start location of the text + + + @return the end location of the text + + + @return the width of a single space character as rendered by this chunk + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @param as the location to compare to + @return true is this location is on the the same line as the other + + + + @param int1 + @param int2 + @return comparison of the two integers + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + Specifies a filter for filtering {@link TextChunk} objects during text extraction + @see LocationTextExtractionStrategy#getResultantText(TextChunkFilter) + @since 5.3.3 + + + @param textChunk the chunk to check + @return true if the chunk should be allowed + + + Represents a Marked Content block in a PDF + @since 5.0.2 + + + Get the tag of this marked content + @return the tag of this marked content + + + Determine if an MCID is available + @return true if the MCID is available, false otherwise + + + Gets the MCID value If the Marked Content contains + an MCID entry, returns that value. Otherwise, a {@link NullPointerException} is thrown. + @return the MCID value + @throws NullPointerException if there is no MCID (see {@link MarkedContentInfo#hasMcid()}) + + + A {@link RenderFilter} that only allows text within a specified marked content sequence. + @since 5.0.2 + + + The MCID to match. + + + Constructs a filter + @param mcid the MCID to match + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Keeps all the values of a 3 by 3 matrix + and allows you to do some math with matrices. + @since 2.1.4 + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + the values inside the matrix (the identity matrix by default). + default initialization is performed in the default constructor. + + + constructs a new Matrix with identity. + !shall be called from any other constructor! + + + Constructs a matrix that represents translation + @param tx + @param ty + + + Creates a Matrix with 6 specified entries + @param a + @param b + @param c + @param d + @param e + @param f + + + Gets a specific value inside the matrix. + @param index an array index corresponding with a value inside the matrix + @return the value at that specific position. + + + multiplies this matrix by 'b' and returns the result + See http://en.wikipedia.org/wiki/Matrix_multiplication + @param by The matrix to multiply by + @return the resulting matrix + + + Subtracts a matrix from this matrix and returns the results + @param arg the matrix to subtract from this matrix + @return a Matrix object + + + Computes the determinant of the matrix. + @return the determinant of the matrix + + + Checks equality of matrices. + @param obj the other Matrix that needs to be compared with this matrix. + @return true if both matrices are equal + @see java.lang.Object#equals(java.lang.Object) + + + Generates a hash code for this object. + @return the hash code of this object + @see java.lang.Object#hashCode() + + + Generates a String representation of the matrix. + @return the values, delimited with tabs and newlines. + @see java.lang.Object#toString() + + + Attaches a {@link RenderListener} for the corresponding filter set. + @param delegate RenderListener instance to be attached. + @param filterSet filter set to be attached. The delegate will be invoked if all the filters pass. + + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + @since 5.5.6 + + + @return A {@link java.util.List} of subpaths forming this path. + + + Adds the subpath to this path. + + @param subpath The subpath to be added to this path. + + + Adds the subpaths to this path. + + @param subpaths {@link java.util.List} of subpaths to be added to this path. + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + @return The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + + + Appends a straight line segment from the current point to the point (x, y). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the current + point represents two control points. + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the (x3, y3) + point represents two control points. + + + Appends a rectangle to the current path as a complete subpath. + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + @returns Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + + + Contains information relating to construction the current path. + + @since 5.5.6 + + + See {@link com.itextpdf.text.pdf.parser.Path#moveTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#lineTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveFromTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#closeSubpath()} + + + See {@link com.itextpdf.text.pdf.parser.Path#rectangle(float, float, float, float)} + + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains data of a new segment being added to the current path. + E.g. x, y, w, h for rectangle; x, y for line etc. + @param ctm Current transformation matrix. + + + See {@link #PathConstructionRenderInfo(int, java.util.List, Matrix)} + + + @return construction operation should be performed on the current path. + + + @return {@link java.util.List} containing data of a new segment (E.g. x, y, w, h for rectangle; + x, y for line etc.) if the specified operation relates to adding the segment to the + current path, null otherwise. + + + @return Current transformation matrix. + + + Contains information relating to painting current path. + + @since 5.5.6 + + + The nonzero winding number rule determines whether a given point is inside a path by + conceptually drawing a ray from that point to infinity in any direction and then examining + the places where a segment of the path crosses the ray. Starting with a count of 0, the rule + adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a + segment crosses from right to left. After counting all the crossings, if the result is 0, the + point is outside the path; otherwise, it is inside. + + For more details see PDF spec. + + + The even-odd rule determines whether a point is inside a path by drawing a ray from that point in + any direction and simply counting the number of path segments that cross the ray, regardless of + direction. If this number is odd, the point is inside; if even, the point is outside. + + For more details see PDF spec. + + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + @param operation One of the possible combinations of {@link #STROKE} and {@link #FILL} values or {@link #NO_OP} + @param rule Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + @param gs The graphics state. + + + If the operation is {@link #NO_OP} then the rule is ignored, + otherwise {@link #NONZERO_WINDING_RULE} is used by default. + + See {@link #PathPaintingRenderInfo(int, int, GraphicsState)} + + + @return int value which is either {@link #NO_OP} or one of possible + combinations of {@link #STROKE} and {@link #FILL} + + + @return Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + + + @return Current transformation matrix. + + + Tool that parses the content of a PDF document. + @since 2.1.4 + + + Shows the detail of a dictionary. + This is similar to the PdfLister functionality. + @param dic the dictionary of which you want the detail + @return a String representation of the dictionary + + + Shows the detail of a dictionary. + @param dic the dictionary of which you want the detail + @param depth the depth of the current dictionary (for nested dictionaries) + @return a String representation of the dictionary + + + Displays a summary of the entries in the XObject dictionary for the stream + @param resourceDic the resource dictionary for the stream + @return a string with the summary of the entries + @throws IOException + @since 5.0.2 + + + Writes information about a specific page from PdfReader to the specified output stream. + @since 2.1.5 + @param reader the PdfReader to read the page content from + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param out the output stream to send the content to + @throws IOException + + + Writes information about the specified page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified file, or System.out. + @param args + + + Processor for a PDF content Stream. + @since 2.1.4 + + + Default oper + @since 5.0.1 + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + + Stack keeping track of the graphics state. + + + Text matrix. + + + Text line matrix. + + + Listener that will be notified of render events + + + A map with all supported XObject handlers + + + The font cache. + @since 5.0.6 + + + + A stack containing marked content info. + @since 5.0.2 + + + Creates a new PDF Content Stream Processor that will send it's output to the + designated render listener. + + @param renderListener the {@link RenderListener} that will receive rendering notifications + + + + Gets the font pointed to by the indirect reference. The font may have been cached. + @param ind the indirect reference ponting to the font + @return the font + @since 5.0.6 + + + Loads all the supported graphics and text state operators in a map. + + + + @return {@link java.util.Collection} containing all the registered operators strings + @since 5.5.6 + + + Resets the graphics state stack, matrices and resources. + + + Returns the current graphics state. + @return the graphics state + + + Invokes an oper. + @param oper the PDF Syntax of the oper + @param operands a list with operands + + + Add to the marked content stack + @param tag the tag of the marked content + @param dict the PdfDictionary associated with the marked content + @since 5.0.2 + + + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + @since 5.0.2 + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + Displays text. + @param string the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + @param xobjectName the name of the XObject to retrieve from the resource dictionary + + + Displays the current path. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any int value. + @param close Indicates whether the path should be closed or not. + @since 5.5.6 + + + Modifies the current path. + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains x, y components of points of a new segment being added to the current path. + E.g. x1 y1 x2 y2 x3 y3 etc. It's ignored for "close subpath" operarion (h). + + + Adjusts the text matrix for the specified adjustment value (see TJ oper in the PDF spec for information) + @param tj the text adjustment + + + Processes PDF syntax. + Note: If you re-use a given {@link PdfContentStreamProcessor}, you must call {@link PdfContentStreamProcessor#reset()} + @param contentBytes the bytes of a content stream + @param resources the resources that come with the content stream + + + Callback when an inline image is found. This requires special handling because inline images don't follow the standard operator syntax + @param info the inline image + @param colorSpaceDic the color space for the inline immage + + + Property for the RenderListener object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + @return the renderListener + + + A resource dictionary that allows stack-like behavior to support resource dictionary inheritance + + + A content oper implementation (unregistered). + + + A content oper implementation (TJ). + + + A content oper implementation ("). + + + A content oper implementation ('). + + + A content oper implementation (Tj). + + + A content oper implementation (T*). + + + A content oper implementation (Tm). + + + A content oper implementation (TD). + + + A content oper implementation (Td). + + + A content oper implementation (Tf). + + + A content oper implementation (Tr). + + + A content oper implementation (Ts). + + + A content oper implementation (TL). + + + A content oper implementation (Tz). + + + A content oper implementation (Tc). + + + A content oper implementation (Tw). + + + A content oper implementation (gs). + + + A content oper implementation (q). + + + A content oper implementation (cm). + + + Gets a color based on a list of operands. + + + Gets a color based on a list of operands. + + + A content operator implementation (g). + + + A content operator implementation (G). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (cs). + + + A content operator implementation (CS). + + + A content operator implementation (sc / scn). + + + A content operator implementation (SC / SCN). + + + A content oper implementation (Q). + + + A content oper implementation (BT). + + + A content oper implementation (ET). + + + A content oper implementation (BMC). + @since 5.0.2 + + + A content oper implementation (BDC). + @since 5.0.2 + + + A content oper implementation (EMC). + @since 5.0.2 + + + A content oper implementation (Do). + + + A content operator implementation (w). + + + A content operator implementation (J). + + + A content operator implementation (j). + + + A content operator implementation (M). + + + A content operator implementation (d). + + + A content operator implementation (m). + + @since 5.5.6 + + + A content operator implementation (l). + + @since 5.5.6 + + + A content operator implementation (c). + + @since 5.5.6 + + + A content operator implementation (v). + + @since 5.5.6 + + + A content operator implementation (y). + + @since 5.5.6 + + + A content operator implementation (h). + + @since 5.5.6 + + + A content operator implementation (re). + + @since 5.5.6 + + + A content operator implementation (S, s, f, F, f*, B, B*, b, b*). + + @since 5.5.6 + + + Constructs PainPath object. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any value. + @param close Indicates whether the path should be closed or not. + + + A content operator implementation (n). + + @since 5.5.6 + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + An object that contains an image dictionary and image bytes. + @since 5.0.2 + + + Different types of data that can be stored in the bytes of a {@link PdfImageObject} + @since 5.0.4 + + + the recommended file extension for streams of this type + + + @param fileExtension the recommended file extension for use with data of this type (for example, if the bytes were just saved to a file, what extension should the file have) + + + @return the file extension registered when this type was created + + + A filter that does nothing, but keeps track of the filter type that was used + @since 5.0.4 + + + The image dictionary. + + + The decoded image bytes (after applying filters), or the raw image bytes if unable to decode + + + Tracks the type of data that is actually stored in the streamBytes member + + + @return the type of image data that is returned by getImageBytes() + + + Creates a PdfImage object. + @param stream a PRStream + @throws IOException + + + Creates a PdfImage object. + @param stream a PRStream + @param colorSpaceDic a color space dictionary + @throws IOException + + + Creats a PdfImage object using an explicitly provided dictionary and image bytes + @param dictionary the dictionary for the image + @param samples the samples + @since 5.0.3 + + + Returns an entry from the image dictionary. + @param key a key + @return the value + + + Returns the image dictionary. + @return the dictionary + + + Sets state of this object according to the color space + @param colorspace the colorspace to use + @param allowIndexed whether indexed color spaces will be resolved (used for recursive call) + @throws IOException if there is a problem with reading from the underlying stream + + + decodes the bytes currently captured in the streamBytes and replaces it with an image representation of the bytes + (this will either be a png or a tiff, depending on the color depth of the image) + @throws IOException + + + @return the bytes of the image (the format will be as specified in {@link PdfImageObject#getImageBytesType()} + @throws IOException + @since 5.0.4 + + + A utility class that makes it cleaner to process content from pages of a PdfReader + through a specified RenderListener. + @since 5.0.2 + + + the reader this parser will process + + + + + Extracts text from a PDF file. + @since 2.1.4 + + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom ContentOperators + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @param additionalContentOperators an optional dictionary of custom IContentOperators for rendering instructions + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + + + Extract text from a specified page using an extraction strategy. + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + @since 5.0.2 + + + + A {@link RenderFilter} that only allows text within a specified rectangular region + @since 5.0.1 + + + the region to allow text from + + + Constructs a filter + @param filterRect the rectangle to filter text against. Note that this is a java.awt.Rectangle ! + + + Constructs a filter + @param filterRect the rectangle to filter text against. + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Interface for defining filters for use with {@link FilteredRenderListener} + @since 5.0.1 + + + @param renderInfo + @return true if the text render operation should be performed + + + + @param renderInfo + @return true if the image render operation should be performed + + + Represents segment from a PDF path. + + @since 5.5.6 + + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + @return Ordered list consisting of shape's base points. + + + A simple text extraction renderer. + + This renderer keeps track of the current Y position of each string. If it detects + that the y position has changed, it inserts a line break into the output. If the + PDF renders text in a non-top-to-bottom fashion, this will result in the text not + being a true representation of how it appears in the PDF. + + This renderer also uses a simple strategy based on the font metrics to determine if + a blank space should be inserted into the output. + + @since 2.1.5 + + + used to store the resulting String. + + + Creates a new text extraction renderer. + + + @since 5.0.1 + + + @since 5.0.1 + + + Returns the result so far. + @return a String with the resulting text. + + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + @param text the text to append to the text results accumulated so far + + + Captures text using a simplified algorithm for inserting hard returns and spaces + @param renderInfo render info + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + As subpath is a part of a path comprising a sequence of connected segments. + + @since 5.5.6 + + + Copy constuctor. + @param subpath + + + Constructs a new subpath starting at the given point. + + + Constructs a new subpath starting at the given point. + + + Sets the start point of the subpath. + @param startPoint + + + Sets the start point of the subpath. + @param x + @param y + + + @return The point this subpath starts at. + + + @return The last point of the subpath. + + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + @param segment new segment. + + + @return {@link java.util.List} comprising all the segments + the subpath made on. + + + Checks whether subpath is empty or not. + @return true if the subpath is empty, false otherwise. + + + @return true if this subpath contains only one point and it is not closed, + false otherwise + + + Returns or sets a bool value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + @return bool value indicating whether the path must be closed or not. + @since 5.5.6 + + + Returns a bool indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + @return bool value indicating whether the path is degenerate or not. + @since 5.5.6 + + + @return {@link java.util.List} containing points of piecewise linear approximation + for this subpath. + @since 5.5.6 + + + Converts a tagged PDF document into an XML file. + + @since 5.0.2 + + + The reader obj from which the content streams are read. + + + The writer obj to which the XML will be written + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + @param charset + the charset to encode the data + @since 5.0.5 + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + + + Inspects a child of a structured element. This can be an array or a + dictionary. + + @param k + the child to inspect + @throws IOException + + + If the child of a structured element is an array, we need to loop over + the elements. + + @param k + the child array to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + Searches for a tag in a page. + + @param tag + the name of the tag + @param obj + an identifier to find the marked content + @param page + a page dictionary + @throws IOException + + + Allows you to find the rectangle that contains all the text in a page. + @since 5.0.2 + + + Method invokes by the PdfContentStreamProcessor. + Passes a TextRenderInfo for every text chunk that is encountered. + We'll use this object to obtain coordinates. + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Getter for the left margin. + @return the X position of the left margin + + + Getter for the bottom margin. + @return the Y position of the bottom margin + + + Getter for the right margin. + @return the X position of the right margin + + + Getter for the top margin. + @return the Y position of the top margin + + + Gets the width of the text block. + @return a width + + + Gets the height of the text block. + @return a height + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + + + + ! .NET SPECIFIC ! + is used for caching "UTF-16BE" encoding to improve performance + + + Array containing marked content info for the text. + @since 5.0.2 + + + Creates a new TextRenderInfo object + @param string the PDF string that should be displayed + @param gs the graphics state (note: at this time, this is not immutable, so don't cache it) + @param textMatrix the text matrix at the time of the render operation + @param markedContentInfo the marked content sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character + @param parent the parent TextRenderInfo + @param string the content of a TextRenderInfo + @param horizontalOffset the unscaled horizontal offset of the character that this TextRenderInfo represents + @since 5.3.3 + + + @return the text to render + + + @return original PDF string + + + Checks if the text belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.0.2 + + + * Checks if the text belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.3.5 + + + @return the marked content associated with the TextRenderInfo instance. + + + @return the unscaled (i.e. in Text space) width of the text + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the baseline line segment + @since 5.0.2 + + + Gets the ascentline for the text (i.e. the line that represents the topmost extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the ascentline line segment + @since 5.0.2 + + + Gets the descentline for the text (i.e. the line that represents the bottom most extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the descentline line segment + @since 5.0.2 + + + Getter for the font + @return the font + @since iText 5.0.2 + + + The rise represents how far above the nominal baseline the text should be rendered. The {@link #getBaseline()}, {@link #getAscentLine()} and {@link #getDescentLine()} methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + @return The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + @since 5.3.3 + + + + @param width the width, in text space + @return the width in user space + @since 5.3.3 + + + + @param height the height, in text space + @return the height in user space + @since 5.3.3 + + + @return The width, in user space units, of a single space character in the current font + + + @return the text render mode that should be used for the text. From the + PDF specification, this means: +
    +
  • 0 = Fill text
  • +
  • 1 = Stroke text
  • +
  • 2 = Fill, then stroke text
  • +
  • 3 = Invisible
  • +
  • 4 = Fill text and add to path for clipping
  • +
  • 5 = Stroke text and add to path for clipping
  • +
  • 6 = Fill, then stroke text and add to path for clipping
  • +
  • 7 = Add text to padd for clipping
  • +
+ @since iText 5.0.1 +
+ + @return the current fill color. + + + @return the current stroke color. + + + Calculates the width of a space character. If the font does not define + a width for a standard space character \u0020, we also attempt to use + the width of \u00A0 (a non-breaking space in many fonts) + @return the width of a single space character in text space units + + + Gets the width of a String in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Gets the width of a PDF string in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + @return A list of {@link TextRenderInfo} objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + @since 5.3.3 + + + Calculates width and word spacing of a single character PDF string. + @param string a character to calculate width. + @param singleCharString true if PDF string represents single character, false otherwise. + @return array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + Converts a single character string to char code. + + @param string single character string to convert to. + @return char code. + + + Split PDF string into array of single character PDF strings. + @param string PDF string to be splitted. + @return splitted PDF string. + + + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + @param x the X coordinate + @param y the Y coordinate + @param z the Z coordinate + + + Gets the value from a coordinate of the vector + @param index the index of the value to get (I1, I2 or I3) + @return a coordinate value + + + Computes the cross product of this vector and the specified matrix + @param by the matrix to cross this vector with + @return the result of the cross product + + + Computes the difference between this vector and the specified vector + @param v the vector to subtract from this one + @return the results of the subtraction + + + Computes the cross product of this vector and the specified vector + @param with the vector to cross this vector with + @return the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + @return the unit vector + @since 5.0.1 + + + Multiplies the vector by a scalar + @param by the scalar to multiply by + @return the result of the scalar multiplication + @since 5.0.1 + + + Computes the dot product of this vector with the specified vector + @param with the vector to dot product this vector with + @return the dot product + + + + + @see java.lang.Object#toString() + + + @since 5.0.1 + @see java.lang.Object#equals(java.lang.Object) + + + @author Kevin Day + @since iText 5.0.1 + + + Represents an inline image from a PDF + @since 5.1.4 + + + @return the image dictionary associated with this inline image + + + @return the raw samples associated with this inline image + + + Utility methods to help with processing of inline images + @since 5.0.4 + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + @since 5.0.4 + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + @param ps the content parser to use for reading the image. + @return the parsed image + @throws IOException if anything goes wring with the parsing + @throws InlineImageParseException if parsing of the inline image failed due to issues specific to inline image processing + + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the EI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + @param ps the parser to extract the embedded image information from + @return the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + @throws IOException if the parse fails + + + Transforms value abbreviations into their corresponding real value + @param key the key that the value is for + @param value the value that might be an abbreviation + @return if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + @param colorSpaceName the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + @return the components per pixel for the specified color space + + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + @param imageDictionary the dictionary of the inline image + @return the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Represents a pattern. Can be used in high-level constructs (Paragraph, Cell, etc.). + + + The actual pattern. + + + Creates a color representing a pattern. + @param painter the actual pattern + + + Gets the pattern. + @return the pattern + + + Each PDF document can contain maximum 1 AcroForm. + + + This is a map containing FieldTemplates. + + + This is an array containing DocumentFields. + + + This is an array containing the calculationorder of the fields. + + + Contains the signature flags. + + + Creates new PdfAcroForm + + + Adds fieldTemplates. + + + Adds documentFields. + + + Closes the AcroForm. + + + Adds an object to the calculationOrder. + + + Sets the signature flags. + + + Adds a formfield to the AcroForm. + + + @param field + @param name + @param llx + @param lly + @param urx + @param ury + + + @param field + @param llx + @param lly + @param urx + @param ury + + + A PdfAction defines an action that can be triggered from a PDF file. + + @see PdfDictionary + + + A named action to go to the first page. + + + A named action to go to the previous page. + + + A named action to go to the next page. + + + A named action to go to the last page. + + + A named action to open a print dialog. + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + Create an empty action. + + + Constructs a new PdfAction of Subtype URI. + + @param url the Url to go to + + + Constructs a new PdfAction of Subtype URI. + + @param url the url to go to + + + Constructs a new PdfAction of Subtype GoTo. + @param destination the destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param name the named destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param page the page destination to go to + + + Implements name actions. The action can be FIRSTPAGE, LASTPAGE, + NEXTPAGE and PREVPAGE. + @param named the named action + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + @return a Launch action + + + Creates a Rendition action + @param file + @param fs + @param mimeType + @param ref + @return a Media Clip action + @throws IOException + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be placed as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + @return the JavaScript action + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be place as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @return the JavaScript action + + + Add a chained action. + @param na the next action + + + Creates a GoTo action to an internal page. + @param page the page to go. First page is 1 + @param dest the destination for the page + @param writer the writer for this action + @return a GoTo action + + + Creates a GoTo action to a named destination. + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToR action + + + Creates a GoToR action to a named destination. + @param filename the file name to go to + @param dest the destination name + @param isName if true sets the destination as a name, if false sets it as a String + @param newWindow open the document in a new window if true, if false the current document is replaced by the new document. + @return a GoToR action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToE action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param target a path to the target document of this action + @param dest the destination inside the target document, can be of type PdfDestination, PdfName, or PdfString + @param newWindow if true, the destination document should be opened in a new window + @return a GoToE action + + + + A PdfAnnotation is a note that is associated with a page. + + @see PdfDictionary + + + flagvalue PDF 1.7 + + + attributevalue + + + Holds value of property used. + + + Holds value of property placeInPage. + + + Constructs a new PdfAnnotation of subtype text. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates a screen PdfAnnotation + @param writer + @param rect + @param clipTitle + @param fs + @param mimeType + @param playOnDisplay + @return a screen PdfAnnotation + @throws IOException + + + Creates a file attachment annotation. + @param writer the PdfWriter + @param rect the dimensions in the page of the annotation + @param contents the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + @return the annotation + + + Creates a file attachment annotation + @param writer + @param rect + @param contents + @param fs + @return the annotation + @throws IOException + + + Creates a polygon or -line annotation + @param writer the PdfWriter + @param rect the annotation position + @param contents the textual content of the annotation + @param polygon if true, the we're creating a polygon annotation, if false, a polyline + @param vertices an array with the vertices of the polygon or -line + @since 5.0.2 + + + Sets the annotation's highlighting mode. The values can be + HIGHLIGHT_NONE, HIGHLIGHT_INVERT, + HIGHLIGHT_OUTLINE and HIGHLIGHT_PUSH; + @param highlight the annotation's highlighting mode + + + Getter for property form. + @return Value of property form. + + + Getter for property annotation. + @return Value of property annotation. + + + Getter for property placeInPage. + @return Value of property placeInPage. + + + Sets the layer this annotation belongs to. + @param layer the layer this annotation belongs to + + + Sets the name of the annotation. + With this name the annotation can be identified among + all the annotations on a page (it has to be unique). + + + This class processes links from imported pages so that they may be active. The following example code reads a group + of files and places them all on the output PDF, four pages in a single page, keeping the links active. +
+            String[] files = new String[] {"input1.pdf", "input2.pdf"};
+            String outputFile = "output.pdf";
+            int firstPage=1;
+            Document document = new Document();
+            PdfWriter writer = PdfWriter.GetInstance(document, new FileOutputStream(outputFile));
+            document.SetPageSize(PageSize.A4);
+            float W = PageSize.A4.GetWidth() / 2;
+            float H = PageSize.A4.GetHeight() / 2;
+            document.Open();
+            PdfContentByte cb = writer.GetDirectContent();
+            for (int i = 0; i < files.length; i++) {
+               PdfReader currentReader = new PdfReader(files[i]);
+               currentReader.ConsolidateNamedDestinations();
+               for (int page = 1; page <= currentReader.GetNumberOfPages(); page++) {
+                   PdfImportedPage importedPage = writer.GetImportedPage(currentReader, page);
+                   float a = 0.5f;
+                   float e = (page % 2 == 0) ? W : 0;
+                   float f = (page % 4 == 1 || page % 4 == 2) ? H : 0;
+                   ArrayList links = currentReader.GetLinks(page);
+                   cb.AddTemplate(importedPage, a, 0, 0, a, e, f);
+                   for (int j = 0; j < links.Size(); j++) {
+                       PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.Get(j);
+                       if (link.IsInternal()) {
+                           int dPage = link.GetDestinationPage();
+                           int newDestPage = (dPage-1)/4 + firstPage;
+                           float ee = (dPage % 2 == 0) ? W : 0;
+                           float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0;
+                           link.SetDestinationPage(newDestPage);
+                           link.TransformDestination(a, 0, 0, a, ee, ff);
+                       }
+                       link.TransformRect(a, 0, 0, a, e, f);
+                       writer.AddAnnotation(link.CreateAnnotation(writer));
+                   }
+                   if (page % 4 == 0)
+                   document.NewPage();
+               }
+               if (i < files.length - 1)
+               document.NewPage();
+               firstPage += (currentReader.GetNumberOfPages()+3)/4;
+            }
+            document.Close();
+            
+
+ + Returns a String representation of the link. + @return a String representation of the imported link + @since 2.1.6 + + + Implements the appearance stream to be used with form fields.. + + + Creates a PdfAppearance. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + + this is the actual array of PdfObjects + + + Constructs an empty PdfArray-object. + + + Constructs an PdfArray-object, containing 1 PdfObject. + + @param object a PdfObject that has to be added to the array + + + Constructs a PdfArray with the elements of an ArrayList. + Throws a ClassCastException if the ArrayList contains something + that isn't a PdfObject. + @param l an ArrayList with PdfObjects + @since 2.1.3 + + + Constructs an PdfArray-object, containing all the PdfObjects in a given PdfArray. + + @param array a PdfArray that has to be added to the array + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + Overwrites a specified location of the array. + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Returns the PdfObject with the specified index. + + A possible indirect references is not resolved, so the returned + PdfObject may be either a direct object or an indirect + reference, depending on how the object is stored in the + PdfArray. + + @param idx The index of the PdfObject to be returned + @return A PdfObject + + + Overwrites a specified location of the array, returning the previous + value + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Remove the element at the specified position from the array. + + Shifts any subsequent elements to the left (subtracts one from their + indices). + + @param idx The index of the element to be removed. + @throws IndexOutOfBoundsException the specified position doesn't exist + @since 2.1.5 + + + Returns an ArrayList containing PdfObjects. + + @return an ArrayList + + + Returns the number of entries in the array. + + @return the size of the ArrayList + + + Returns true if the array is empty. + + @return true if the array is empty + @since 2.1.5 + + + Adds a PdfObject to the PdfArray. + + @param object PdfObject to add + @return true + + + Inserts the specified element at the specified position. + + Shifts the element currently at that position (if any) and + any subsequent elements to the right (adds one to their indices). + + @param index The index at which the specified element is to be inserted + @param element The element to be inserted + @throws IndexOutOfBoundsException if the specified index is larger than the + last position currently set, plus 1. + @since 2.1.5 + + + Inserts a PdfObject at the beginning of the + PdfArray. + + The PdfObject will be the first element, any other elements + will be shifted to the right (adds one to their indices). + + @param object The PdfObject to add + + + Checks if the PdfArray already contains a certain PdfObject. + + @param object PdfObject to check + @return true + + + + @return this PdfArray's values as a long[] + @since 5.3.5 + + + + @return this PdfArray's values as a double[] + @since 5.5.6 + + + + A possible value of PdfBoolean + + + A possible value of PdfBoolean + + + the bool value of this object + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject, represented as a string + + @throws BadPdfFormatException thrown if the value isn't 'true' or 'false' + + + Returns the primitive value of the PdfBoolean-object. + + @return the actual value of the object. + + + A PdfBorderArray defines the border of a PdfAnnotation. + + @see PdfArray + + + Constructs a new PdfBorderArray. + + + Constructs a new PdfBorderArray. + + + A PdfBorderDictionary define the appearance of a Border (Annotations). + + @see PdfDictionary + + + Constructs a PdfBorderDictionary. + + + + The allowed attributes in variable attributes. + + + The allowed attributes in variable noStroke. + + + The value of this object. + + + The encoding. + + + The font for this PdfChunk. + + + + + true if the chunk split was cause by a newline. + + + The image in this PdfChunk, if it has one + + + The offset in the x direction for the image + + + The offset in the y direction for the image + + + Indicates if the height and offset of the Image has to be taken into account + + + The leading that can overrule the existing leading. + + + Constructs a PdfChunk-object. + + @param string the content of the PdfChunk-object + @param font the PdfFont + @param attributes the metrics attributes + @param noStroke the non metric attributes + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + @param tabSettings the Phrase tab settings + + + + + + Returns the font of this Chunk. + + @return a PdfFont + + + Returns the color of this Chunk. + + @return a BaseColor + + + Returns the width of this PdfChunk. + + @return a width + + + Checks if the PdfChunk split was caused by a newline. + @return true if the PdfChunk split was caused by a newline. + + + Gets the width of the PdfChunk taking into account the + extra character and word spacing. + @param charSpacing the extra character spacing + @param wordSpacing the extra word spacing + @return the calculated width + + + Gets the text displacement relatiev to the baseline. + @return a displacement in points + + + Trims the last space. + @return the width of the space trimmed, otherwise 0 + + + Gets an attribute. The search is made in attributes + and noStroke. + @param name the attribute key + @return the attribute value or null if not found + + + Checks if the attribute exists. + @param name the attribute key + @return true if the attribute exists + + + Checks if this PdfChunk needs some special metrics handling. + @return true if this PdfChunk needs some special metrics handling. + + + Checks if this PdfChunk is a Separator Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Checks if this PdfChunk is a horizontal Separator Chunk. + @return true if this chunk is a horizontal separator. + @since 2.1.2 + + + Checks if this PdfChunk is a tab Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Correction for the tab position based on the left starting position. + @param newValue the new value for the left X. + @since 2.1.2 + + + Checks if there is an image in the PdfChunk. + @return true if an image is present + + + Gets the image in the PdfChunk. + @return the image or null + + + Returns a scalePercentage in case the image needs to be scaled. + Sets a scale percentage in case the image needs to be scaled. + + + Gets the image offset in the x direction + @return the image offset in the x direction + + + Gets the image offset in the y direction + @return Gets the image offset in the y direction + + + sets the value. + + + Tells you if this string is in Chinese, Japanese, Korean or Identity-H. + + + Gets the encoding of this string. + + @return a string + + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + Constructs a new PdfColor. + + @param red a value between 0 and 255 + @param green a value between 0 and 255 + @param blue a value between 0 and 255 + + + PdfContentByte is an object containing the user positioned + text and graphic contents of a page. It knows how to apply the proper + font encoding. + + + This class keeps the graphic state of the current page + + + This is the font in use + + + This is the color in use + + + This is the font size in use + + + The x position of the text line matrix. + + + The y position of the text line matrix. + + + The current text leading. + + + The current horizontal scaling + + + The current character spacing + + + The current word spacing + + + The alignement is center + + + The alignement is left + + + The alignement is right + + + A possible line cap value + + + A possible line cap value + + + A possible line cap value + + + A possible line join value + + + A possible line join value + + + A possible line join value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + This is the actual content + + + This is the writer + + + This is the PdfDocument + + + This is the GraphicState in use + + + The list were we save/restore the layer depth + + + The list were we save/restore the state + + + The separator between commands. + + + Constructs a new PdfContentByte-object. + + @param wr the writer associated to this content + + + Returns the string representation of this PdfContentByte-object. + + @return a string + + + [SUP-1395] If set, prevents iText from marking content and creating structure tags for items added to this content stream. + (By default, iText automatically marks content using BDC/EMC operators, and adds a structure tag for the new content + at the end of the page.) + + + Checks if the content needs to be tagged. + @return false if no tags need to be added + + + Gets the internal buffer. + @return the internal buffer + + + Returns the PDF representation of this PdfContentByte-object. + + @param writer the PdfWriter + @return a byte array with the representation + + + Adds the content of another PdfContent-object to this object. + + @param other another PdfByteContent-object + + + Gets the x position of the text line matrix. + + @return the x position of the text line matrix + + + Gets the y position of the text line matrix. + + @return the y position of the text line matrix + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current word spacing. + + @return the current word spacing + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current text leading. + + @return the current text leading + + + + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + + + + + + + + + + + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding number rule to determine which regions lie inside the clipping + path. + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + + Changes the currentgray tint for filling paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for filling paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for filling paths to black. + + + Changes the currentgray tint for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for stroking paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for stroking paths to black. + + + Helper to validate and write the RGB color components + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (minimum intensity) and + 1 (maximum intensity).

+ + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + Changes the current color for stroking paths to black. + + + + Helper to validate and write the CMYK color components. + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink).

+ + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + + Changes the current color for stroking paths to black. + + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a variable width border to the current path. + Only use if {@link com.lowagie.text.Rectangle#isUseVariableBorders() Rectangle.isUseVariableBorders} + = true. + @param rect a Rectangle + + + Adds a border (complete or partially) to the current path.. + + @param rectangle a Rectangle + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + + Ends the path without filling or stroking it. + + + Strokes the path. + + + Closes the path and strokes it. + + + Fills the path, using the non-zero winding number rule to determine the region to fill. + + + Fills the path, using the even-odd rule to determine the region to fill. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + + Adds an Image to the page. The Image must have + absolute positioning. + @param image the Image object + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The Image must have + absolute positioning. The image can be placed inline. + @param image the Image object + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @param isMCBlockOpened true not to open MCBlock, false otherwise + @throws DocumentException on error + + + Makes this PdfContentByte empty. + Calls reset( true ) + + + Makes this PdfContentByte empty. + @param validateContent will call sanityCheck() if true. + @since 2.1.6 + + + Starts the writing of text. + @param restoreTM indicates if to restore text matrix of the previous text block. + + + Starts the writing of text. + + + Ends the writing of text and makes the current font invalid. + + + Saves the graphic state. saveState and + restoreState must be balanced. + + + Restores the graphic state. saveState and + restoreState must be balanced. + + + Sets the character spacing parameter. + + @param charSpace a parameter + + + Sets the word spacing parameter. + + @param wordSpace a parameter + + + Sets the horizontal scaling parameter. + + @param scale a parameter + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + Sets the text rendering parameter. + + @param rendering a parameter + + + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + A helper to insert into the content stream the text + converted to bytes according to the font's encoding. + + @param text the text to write + + + Shows the text. + + @param text the text to write + + + Constructs a kern array for a text in a certain font + @param text the text + @param font the font + @return a PdfTextArray + + + Shows the text kerned. + + @param text the text to write + + + Moves to the next line and shows text. + + @param text the text to write + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + @param wordSpacing a parameter + @param charSpacing a parameter + @param text the text to write + + + Changes the text matrix. +

+ Remark: this operation also initializes the current point position.

+ + @param a operand 1,1 in the matrix + @param b operand 1,2 in the matrix + @param c operand 2,1 in the matrix + @param d operand 2,2 in the matrix + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + + + Changes the text matrix. The first four parameters are {1,0,0,1}. +

+ Remark: this operation also initializes the current point position.

+ + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + Moves to the start of the next line, offset from the start of the current line. + + @param x x-coordinate of the new current point + @param y y-coordinate of the new current point + + + Moves to the start of the next line, offset from the start of the current line. +

+ As a side effect, this sets the leading parameter in the text state.

+ + @param x offset of the new current point + @param y y-coordinate of the new current point +
+ + Moves to the start of the next line. + + + Gets the size of this content. + + @return the size of the content + + + Adds a named outline to the document. + + @param outline the outline + @param name the name for the local destination + + + Gets the root outline. + + @return the root outline + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The additional spacing is not computed for the last character + of the string. + @param text the string to get width of + @param kerned the kerning option + @return the width + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The spacing for the last character is also computed. + It also takes into account kerning that can be specified within TJ operator (e.g. [(Hello) 123 (World)] TJ) + @param text the string to get width of + @param kerned the kerning option + @param kerning the kerning option from TJ array + @return the width + + + Shows text right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + Shows text kerned right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + @since 5.0.1 + + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Create a new colored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @return the PdfPatternPainter where the pattern will be created + + + Create a new colored tiling pattern. Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Adds a PostScript XObject to this content. + + @param psobject the object + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink). This method however accepts only ints between 0x00 and 0xFF.

+ + @param cyan the intensity of cyan + @param magenta the intensity of magenta + @param yellow the intensity of yellow + @param black the intensity of black +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param cyan the intensity of red + @param magenta the intensity of green + @param yellow the intensity of blue + @param black the intensity of black +
+ + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF.

+ + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Sets the stroke color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the stroke color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the fill color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Outputs the color values to the content. + @param color The color + @param tint the tint if it is a spot color, ignored otherwise + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Paints using a shading object. + @param shading the shading object + + + Paints using a shading pattern. + @param shading the shading pattern + + + Sets the shading fill pattern. + @param shading the shading pattern + + + Sets the shading stroke pattern + @param shading the shading pattern + + + Check if we have a valid PdfWriter. + + + + Show an array of text. + @param text array of text + + + Gets the PdfWriter in use by this object. + @return the PdfWriter in use by this object + + + Gets the PdfDocument in use by this object. + @return the PdfDocument in use by this object + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + The local destination to where a local goto with the same + name will jump. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already exists + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Outputs a string directly to the content. + @param s the string + + + Outputs a char directly to the content. + @param c the char + + + Outputs a float directly to the content. + @param n the float + + + Throws an error if it is a pattern. + @param t the object to check + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a button. + + + Draws a button. + + + Sets the graphic state + @param gstate the graphic state + + + + Ends a layer controled graphic block. It will end the most recent open block. + + + Sets the default colorspace. + @param name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB + or PdfName.DEFAULTCMYK + @param obj the colorspace. A null or PdfNull removes any colorspace with the same name + + + Concatenates a transformation to the current transformation + matrix. + @param af the transformation + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Ends a marked content sequence + + + Begins a marked content sequence. If property is null the mark will be of the type + BMC otherwise it will be BDC. + @param tag the tag + @param property the property + @param inline true to include the property in the content or false + to include the property in the resource dictionary with the possibility of reusing + + + This is just a shorthand to beginMarkedContentSequence(tag, null, false). + @param tag the tag + + + Checks for any dangling state: Mismatched save/restore state, begin/end text, + begin/end layer, or begin/end marked content sequence. + If found, this function will throw. This function is called automatically + during a Reset() (from Document.NewPage() for example), and before writing + itself out in ToPdf(). + One possible cause: not calling myPdfGraphics2D.Dispose() will leave dangling + SaveState() calls. + @since 2.1.6 + @throws IllegalPdfSyntaxException (a runtime exception) + + + Parses the page or template content. + @author Paulo Soares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + @param tokeniser the tokeniser with the content + + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + @param ls an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + @return the same ArrayList given as argument or a new one + @throws IOException on error + + + Gets the tokeniser. + @return the tokeniser. + + + Sets the tokeniser. + @param tokeniser the tokeniser + + + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + @return the dictionary + @throws IOException on error + + + Reads an array. The tokeniser must be positioned past the "[" token. + @return an array + @throws IOException on error + + + Reads a pdf object. + @return the pdf object + @throws IOException on error + + + Reads the next token skipping over the comments. + @return true if a token was read, false if the end of content was reached + @throws IOException on error + + + PdfContents is a PdfStream containing the contents (text + graphics) of a PdfPage. + + + Constructs a PdfContents-object, containing text and general graphics. + + @param under the direct content that is under all others + @param content the graphics in a page + @param text the text in a page + @param secondContent the direct content that is over all others + @throws BadPdfFormatException on error + + + Make copies of PDF documents. Documents can be edited after reading and + before writing them out. + @author Mark Thompson + + + This class holds information about indirect references, since they are + renumbered by iText. + + + Holds value of property rotateContents. + + + Constructor + @param document + @param os outputstream + + + Setting page events isn't possible with Pdf(Smart)Copy. + Use the PageStamp class if you want to add content to copied pages. + @see com.itextpdf.text.pdf.PdfWriter#setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Grabs a page from the input document + @param reader the reader of the document + @param pageNumber which page to get + @return the page + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRStream to a PdfStream. The data part copies itself. + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PR-object to a Pdf-object + + + Translate a PR-object to a Pdf-object + + + convenience method. Given an importedpage, set our "globals" + + + convenience method. Given a reader, set our "globals" + + + Add an imported page to our output + @param iPage an imported page + @throws IOException, BadPdfFormatException + + + Adds a blank page. + @param rect The page dimension + @param rotation The rotation angle in degrees + @since 2.1.5 + @throws DocumentException + + + Copy document fields to a destination document. + @param reader a document where fields are copied from. + @throws DocumentException + @throws IOException + + + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Concatenates PDF documents including form fields. The rules for the form field + concatenation are the same as in Acrobat. All the documents are kept in memory unlike + PdfCopy. + @author Paulo Soares + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + @throws IOException on error + + + Creates a new instance. + @param os the output stream + @param pdfVersion the pdf version the output will have + @throws DocumentException on error + @throws IOException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as AddDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + + @author psoares + + + Sets a reference to "visited" in the copy process. + @param ref the reference that needs to be set to "visited" + @return true if the reference was set to visited + + + Checks if a reference has already been "visited" in the copy process. + @param ref the reference that needs to be checked + @return true if the reference was already visited + + + Checks if a reference refers to a page object. + @param ref the reference that needs to be checked + @return true is the reference refers to a page object. + + + Allows you to add one (or more) existing PDF document(s) to + create a new PDF and add the form of another PDF document to + this new PDF. + @since 2.1.5 + @deprecated since 5.5.2 + + + The class with the actual implementations. + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Copies the form fields of this PDFDocument onto the PDF-Document which was added + @param reader the PDF document + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as addDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + SimpleBookmark#. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + Allows you to add one (or more) existing PDF document(s) + and add the form(s) of (an)other PDF document(s). + @since 2.1.5 + @deprecated since 5.5.2 + + + This sets up the output document + @param os The Outputstream pointing to the output document + @throws DocumentException + + + This method feeds in the source document + @param reader The PDF reader containing the source document + @throws DocumentException + + + This merge fields is slightly different from the mergeFields method + of PdfCopyFields. + + + A PdfDashPattern defines a dash pattern as described in + the PDF Reference Manual version 1.3 p 325 (section 8.4.3). + + @see PdfArray + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + + Constructs a PdfDate-object. + + @param d the date that has to be turned into a PdfDate-object + + + Constructs a PdfDate-object, representing the current day and time. + + + Adds a number of leading zeros to a given string in order to get a string + of a certain length. + + @param i a given number + @param length the length of the resulting string + @return the resulting string + + + Gives the W3C format of the PdfDate. + @return a formatted date + + + Gives the W3C format of the PdfDate. + @param d the date in the format D:YYYYMMDDHHmmSSOHH'mm' + @return a formatted date + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + Is the indirect reference to a page already added? + + + + + + + Creates a PdfDestination based on a String. + Valid Strings are for instance the values returned by SimpleNamedDestination: + "Fit", "XYZ 36 806 0",... + @param dest a String notation of a destination. + @since iText 5.0 + + + Checks if an indirect reference to a page has been added. + + @return true or false + + + Adds the indirect reference of the destination page. + + @param page an indirect reference + @return true if the page reference was added + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications (such as this one) that PDF-consuming applications use to + interpret the extensions. + @since 2.1.6 + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the baseversion. + + + Creates a PdfDeveloperExtension object. + @param prefix the prefix referring to the developer + @param baseversion the number of the base version + @param extensionLevel the extension level within the baseverion. + + + Gets the prefix name. + @return a PdfName + + + Gets the baseversion name. + @return a PdfName + + + Gets the extension level within the baseversion. + @return an integer + + + Generations the developer extension dictionary corresponding + with the prefix. + @return a PdfDictionary + + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is the type of this dictionary + + + This is the hashmap that contains all the values and keys of the dictionary + + + Constructs an empty PdfDictionary-object. + + + Constructs a PdfDictionary-object of a certain type. + + @param type a PdfName + + + Returns the PDF representation of this PdfDictionary. + + @return an array of byte + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null or PdfNull the key is deleted. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null it does nothing. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Copies all of the mappings from the specified PdfDictionary + to this PdfDictionary. + + These mappings will replace any mappings previously contained in this + PdfDictionary. + + @param dic The PdfDictionary with the mappings to be + copied over + + + Removes a PdfObject and its key from the PdfDictionary. + + @param key key of the entry (a PdfName) + + + Removes all the PdfObjects and its keys from the + PdfDictionary. + @since 5.0.2 + + + + Checks if a Dictionary is of the type FONT. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGE. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGES. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type CATALOG. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type OUTLINES. + + @return true if it is, false if it isn't. + + + Checks the type of the dictionary. + @param type the type you're looking for + @return true if the type of the dictionary corresponds with the type you're looking for + + + This function behaves the same as 'get', but will never return an indirect reference, + it will always look such references up and return the actual object. + @param key + @return null, or a non-indirect object + + + All the getAs functions will return either null, or the specified object type + This function will automatically look up indirect references. There's one obvious + exception, the one that will only return an indirect reference. All direct objects + come back as a null. + Mark A Storer (2/17/06) + @param key + @return the appropriate object in its final type, or null + + + + + Construct a PdfInfo-object. + + + Constructs a PdfInfo-object. + + @param author name of the author of the document + @param title title of the document + @param subject subject of the document + + + Adds the title of the document. + + @param title the title of the document + + + Adds the subject to the document. + + @param subject the subject of the document + + + Adds some keywords to the document. + + @param keywords the keywords of the document + + + Adds the name of the author to the document. + + @param author the name of the author + + + Adds the name of the creator to the document. + + @param creator the name of the creator + + + Adds the name of the producer to the document. + + + Adds the date of creation to the document. + + + + Constructs a PdfCatalog. + + @param pages an indirect reference to the root of the document's Pages tree. + @param writer the writer the catalog applies to + + + Adds the names of the named destinations to the catalog. + @param localDestinations the local destinations + @param documentJavaScript the javascript used in the document + @param writer the writer the catalog applies to + + + Sets the document level additional actions. + @param actions dictionary of actions + + + Constructs a new PDF document. + @throws DocumentException on error + + + The PdfWriter. + + + Adds a PdfWriter to the PdfDocument. + + @param writer the PdfWriter that writes everything + what is added to this document to an outputstream. + @throws DocumentException on error + + + This is the PdfContentByte object, containing the text. + + + This is the PdfContentByte object, containing the borders and other Graphics. + + + This represents the leading of the lines. + + + Getter for the current leading. + @return the current leading + @since 2.1.2 + + + This is the current height of the document. + + + Signals that onParagraph is valid (to avoid that a Chapter/Section title is treated as a Paragraph). + @since 2.1.2 + + + This represents the current alignment of the PDF Elements. + + + The current active PdfAction when processing an Anchor. + + + The current tab settings. + @return the current + @since 5.4.0 + + + Signals that the current leading has to be subtracted from a YMark object when positive + and save current leading + @since 2.1.2 + + + Save current @leading + + + Restore @leading from leadingStack + + + Getter and setter for the current tab stops. + @since 5.4.0 + + + Signals that an Element was added to the Document. + + @param element the element to add + @return true if the element was added, false if not. + @throws DocumentException when a document isn't open yet, or has been closed + + + + + Use this method to set the XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + @throws IOException + + + Makes a new page and sends it to the PdfWriter. + + @return true if new page was added + @throws DocumentException on error + + + Sets the pagesize. + + @param pageSize the new pagesize + @return true if the page size was set + + + margin in x direction starting from the left. Will be valid in the next page + + + margin in x direction starting from the right. Will be valid in the next page + + + margin in y direction starting from the top. Will be valid in the next page + + + margin in y direction starting from the bottom. Will be valid in the next page + + + Sets the margins. + + @param marginLeft the margin on the left + @param marginRight the margin on the right + @param marginTop the margin on the top + @param marginBottom the margin on the bottom + @return a bool + + + @see com.lowagie.text.DocListener#setMarginMirroring(bool) + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + Sets the page number. + + @param pageN the new page number + + + Sets the page number to 0. + + + Signals that OnOpenDocument should be called. + + + + The line that is currently being written. + + + The lines that are written until now. + + + Adds the current line to the list of lines and also adds an empty line. + @throws DocumentException on error + + + line.height() is usually the same as the leading + We should take leading into account if it is not the same as the line.height + + @return float combined height of the line + @since 5.5.1 + + + If the current line is not empty or null, it is added to the arraylist + of lines and a new empty line is added. + @throws DocumentException on error + + + Gets the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Holds the type of the last element, that has been added to the document. + + + Ensures that a new line has been started. + + + Writes all the lines to the text-object. + + @return the displacement that was caused + @throws DocumentException on error + + + The characters to be applied the hanging punctuation. + + + + This represents the current indentation of the PDF Elements on the left side. + + + Indentation to the left caused by a section. + + + This represents the current indentation of the PDF Elements on the left side. + + + This is the indentation caused by an image on the left. + + + This represents the current indentation of the PDF Elements on the right side. + + + Indentation to the right caused by a section. + + + This is the indentation caused by an image on the right. + + + This represents the current indentation of the PDF Elements on the top side. + + + This represents the current indentation of the PDF Elements on the bottom side. + + + Gets the indentation on the left side. + + @return a margin + + + Gets the indentation on the right side. + + @return a margin + + + Gets the indentation on the top side. + + @return a margin + + + Gets the indentation on the bottom side. + + @return a margin + + + Calls addSpacing(float, float, Font, boolean (false)). + + + Adds extra space. + + + some meta information about the Document. + + + + Gets the PdfCatalog-object. + + @param pages an indirect reference to this document pages + @return PdfCatalog + + + This is the root outline of the document. + + + This is the current PdfOutline in the hierarchy of outlines. + + + Adds a named outline to the document . + @param outline the outline to be added + @param name the name of this local destination + + + Gets the root outline. All the outlines must be created with a parent. + The first level is created with this outline. + @return the root outline + + + Contains the Viewer preferences of this PDF document. + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Stores the destinations keyed by name. Value is + Object[]{PdfAction,PdfIndirectReference,PdfDestintion}. + + + The local destination to where a local goto with the same + name will jump to. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already existed + + + Stores a list of document level JavaScript actions. + + + Sets the collection dictionary. + @param collection a dictionary of type PdfCollection + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + This is the size of the next page. + + + This is the size of the several boxes of the current Page. + + + This is the size of the several boxes that will be used in + the next page. + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + This checks if the page is empty. + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the PdfTransition object + + + This are the page resources of the current Page. + + + Holds value of property strictImageSequence. + + + Setter for property strictImageSequence. + @param strictImageSequence New value of property strictImageSequence. + + + + This is the position where the image ends. + + + Method added by Pelikan Stephan + @see com.lowagie.text.DocListener#clearTextWrap() + + + This is the image that could not be shown on a previous page. + + + Adds an image to the document. + @param image the Image to add + @throws PdfException on error + @throws DocumentException on error + + + Adds a PdfPTable to the document. + @param ptable the PdfPTable to be added to the document. + @throws DocumentException on error + + + @since 5.0.1 + + + Extends PdfStream and should be used to create Streams for Embedded Files + (file attachments). + @since 2.1.3 + + + Creates a Stream object using an InputStream and a PdfWriter object + @param in the InputStream that will be read to get the Stream object + @param writer the writer to which the stream will be added + + + Creates a Stream object using a byte array + @param fileStore the bytes for the stream + + + @see com.lowagie.text.pdf.PdfDictionary#toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream) + + + Supports fast encodings for winansi and PDFDocEncoding. + + @author Paulo Soares + + + + + Checks is text only has PdfDocEncoding characters. + @param text the String to test + @return true if only PdfDocEncoding characters are present + + + Adds an extra encoding. + @param name the name of the encoding. The encoding recognition is case insensitive + @param enc the conversion class + + + + @author Paulo Soares + + + The encryption key for a particular object/generation + + + The encryption key length for a particular object/generation + + + The global encryption key + + + Work area to prepare the object/generation bytes + + + The message digest algorithm MD5 + + + The encryption key for the owner + + + The encryption key for the user + + + The public key security handler for certificate encryption + + + The generic key length. It may be 40 or 128. + + + Indicates if the encryption is only necessary for embedded files. + @since 2.1.3 + + + Indicates if only the embedded files have to be encrypted. + @return if true only the embedded files will be encrypted + @since 2.1.3 + + + + + + ownerKey, documentID must be setuped + + + + mkey must be setuped + + + + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm (Revision 2 - 4). + + @param ownerPassword owner password of the encrypted document. + @return user password, or null if revision 5 (AES256) or greater of standard encryption handler was used. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Give you a verbose analysis of the permissions. + @param permissions the permissions value of a PDF file + @return a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + @param permissions the permissions value of a PDF file + @return true if printing is allowed + + @since 2.0.7 + + + Tells you if modifying content is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying content is allowed + + @since 2.0.7 + + + Tells you if copying is allowed. + @param permissions the permissions value of a PDF file + @return true if copying is allowed + + @since 2.0.7 + + + Tells you if modifying annotations is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying annotations is allowed + + @since 2.0.7 + + + Tells you if filling in fields is allowed. + @param permissions the permissions value of a PDF file + @return true if filling in fields is allowed + + @since 2.0.7 + + + Tells you if repurposing for screenreaders is allowed. + @param permissions the permissions value of a PDF file + @return true if repurposing for screenreaders is allowed + + @since 2.0.7 + + + Tells you if document assembly is allowed. + @param permissions the permissions value of a PDF file + @return true if document assembly is allowed + + @since 2.0.7 + + + Tells you if degraded printing is allowed. + @param permissions the permissions value of a PDF file + @return true if degraded printing is allowed + + @since 2.0.7 + + + Signals that an unspecified problem while constructing a PDF document. + + @see BadPdfFormatException + + + Specifies a file or an URL. The file can be extern or embedded. + + @author Paulo Soares + + + Creates a new instance of PdfFileSpecification. The static methods are preferred. + + + Creates a file specification of type URL. + @param writer the PdfWriter + @param url the URL + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compressionLevel the compression level to be used for compressing the file + it takes precedence over filePath + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @param compressionLevel the level of compression + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification for an external file. + @param writer the PdfWriter + @param filePath the file path + @return the file specification + + + Gets the indirect reference to this file specification. + Multiple invocations will retrieve the same value. + @throws IOException on error + @return the indirect reference + + + Sets the file name (the key /F) string as an hex representation + to support multi byte file names. The name must have the slash and + backslash escaped according to the file specification rules + @param fileName the file name as a byte array + + + Adds the unicode file name (the key /UF). This entry was introduced + in PDF 1.7. The filename must have the slash and backslash escaped + according to the file specification rules. + @param filename the filename + @param unicode if true, the filename is UTF-16BE encoded; otherwise PDFDocEncoding is used; + + + Sets a flag that indicates whether an external file referenced by the file + specification is volatile. If the value is true, applications should never + cache a copy of the file. + @param volatile_file if true, the external file should not be cached + + + Adds a description for the file that is specified here. + @param description some text + @param unicode if true, the text is added as a unicode string + + + Adds the Collection item dictionary. + + + + the font metrics. + + + the size. + + + Compares this PdfFont with another + + @param object the other PdfFont + @return a value + + + Returns the size of this font. + + @return a size + + + Returns the approximative width of 1 character of this font. + + @return a width in Text Space + + + Returns the width of a certain character of this font. + + @param character a certain character + @return a width in Text Space + + + Implements form fields. + + @author Paulo Soares + + + Allows text fields to support rich text. + @since 5.0.6 + + + Holds value of property parent. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates new PdfFormField + + + Getter for property parent. + @return Value of property parent. + + + Sets the rich value for this field. + It is suggested that the regular value of this field be set to an + equivalent value. Rich text values are only supported since PDF 1.5, + and require that the FF_RV flag be set. See PDF Reference chapter + 12.7.3.4 for details. + @param rv HTML markup for the rich value of this field + @since 5.0.6 + + + PdfFormObject is a type of XObject containing a template-object. + + + This is a PdfNumber representing 0. + + + This is a PdfNumber representing 1. + + + This is the 1 - matrix. + + + Constructs a PdfFormXObject-object. + + @param template the template + @param compressionLevel the compression level for the stream + @since 2.1.3 (Replacing the existing constructor with param compressionLevel) + + + Implements PDF functions. + + @author Paulo Soares + + + Creates new PdfFunction + + + The graphic state dictionary. + + @author Paulo Soares + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + Sets the flag whether to apply overprint for stroking. + @param ov + + + Sets the flag whether to apply overprint for non stroking painting operations. + @param ov + + + Sets the flag whether to toggle knockout behavior for overprinted objects. + @param ov - accepts 0 or 1 + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for stroking operations in the transparent + imaging model. + @param n + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for nonstroking operations in the transparent + imaging model. + @param n + + + The alpha source flag specifying whether the current soft mask + and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + @param v + + + Determines the behaviour of overlapping glyphs within a text object + in the transparent imaging model. + @param v + + + The current blend mode to be used in the transparent imaging model. + @param bm + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + A PdfICCBased defines a ColorSpace + + @see PdfStream + + + Creates an ICC stream. + @param profile an ICC profile + + + Creates an ICC stream. + + @param compressionLevel the compressionLevel + + @param profile an ICC profile + @since 2.1.3 (replacing the constructor without param compressionLevel) + + + PdfImage is a PdfStream containing an image-Dictionary and -stream. + + + This is the PdfName of the image. + + + Constructs a PdfImage-object. + + @param image the Image-object + @param name the PdfName for this image + @throws BadPdfFormatException on error + + + Returns the PdfName of the image. + + @return the name + + + Called when no resource name is provided in our constructor. This generates a + name that is required to be unique within a given resource dictionary. + @since 5.0.1 + + + Represents an imported page. + + @author Paulo Soares + + + True if the imported page has been copied to a writer. + @since iText 5.0.4 + + + Reads the content from this PdfImportedPage-object from a reader. + + @return self + + + + Always throws an error. This operation is not allowed. + @param image dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + @throws DocumentException dummy + + + Always throws an error. This operation is not allowed. + @param template dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + + + Always throws an error. This operation is not allowed. + @return dummy + + + Gets the stream representing this page. + + @param compressionLevel the compressionLevel + @return the stream representing this page + @since 2.1.3 (replacing the method without param compressionLevel) + + + Always throws an error. This operation is not allowed. + @param bf dummy + @param size dummy + + + Checks if the page has to be copied. + @return true if the page has to be copied. + @since iText 5.0.4 + + + Indicate that the resources of the imported page have been copied. + @since iText 5.0.4 + + + + The object number + + + the generation number + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param objecti the direct objecti + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param generation the generation number + @param objecti the direct objecti + + + Returns a PdfIndirectReference to this PdfIndirectObject. + + @return a PdfIndirectReference + + + Writes eficiently to a stream + + @param os the stream to write to + @throws IOException on write error + + + + the object number + + + the generation number + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + + + Returns the number of the object. + + @return a number. + + + Returns the generation of the object. + + @return a number. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. + + @author Paulo Soares + + + Holds value of property on. + + + Holds value of property onPanel. + + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + @param title the title text + @param writer the PdfWriter + @return the title layer + + + Creates a new layer. + @param name the name of the layer + @param writer the writer + + + Adds a child layer. Nested layers can only have one parent. + @param child the child layer + + + Gets the parent layer. + @return the parent layer or null if the layer has no parent + + + Gets the children layers. + @return the children layers or null if the layer has no children + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Sets the name of this layer. + @param name the name of this layer + + + Gets the dictionary representing the layer. It just returns this. + @return the dictionary representing the layer + + + Gets the initial visibility of the layer. + @return the initial visibility of the layer + + + Used by the creating application to store application-specific + data associated with this optional content group. + @param creator a text string specifying the application that created the group + @param subtype a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + Specifies the language of the content controlled by this + optional content group + @param lang a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + @param preferred used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + @param export the export state + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + @param min the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + @param max the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + Specifies that the content in this group is intended for + use in printing + @param subtype a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + @param printstate indicates that the group should be + set to that state when the document is printed from a viewer application + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + @param view the view state + + + Indicates that the group contains a pagination artifact. + @param pe one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + @since 5.0.2 + + + One of more users for whom this optional content group is primarily intended. + @param type should be "Ind" (Individual), "Ttl" (Title), or "Org" (Organization). + @param names one or more names + @since 5.0.2 + + + Gets the layer visibility in Acrobat's layer panel + @return the layer visibility in Acrobat's layer panel + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + @param onPanel the visibility of the layer in Acrobat's layer panel + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. + + @author Paulo Soares + + + Visible only if all of the entries are ON. + + + Visible if any of the entries are ON. + + + Visible if any of the entries are OFF. + + + Visible only if all of the entries are OFF. + + + Creates a new, empty, membership layer. + @param writer the writer + + + Gets the PdfIndirectReference that represents this membership layer. + @return the PdfIndirectReference that represents this layer + + + Adds a new member to the layer. + @param layer the new member to the layer + + + Gets the member layers. + @return the member layers + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are ALLON, ANYON, ANYOFF and ALLOFF. + The default value is ANYON. + @param type the visibility policy + + + Sets the visibility expression for content belonging to this + membership dictionary. + @param ve A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + @since 5.0.2 + + + Gets the dictionary representing the membership layer. It just returns this. + @return the dictionary representing the layer + + + PdfLine defines an array with PdfChunk-objects + that fit into 1 line. + + + The arraylist containing the chunks. + + + The left indentation of the line. + + + The width of the line. + + + The alignment of the line. + + + The heigth of the line. + + + true if the chunk splitting was caused by a newline. + + + The original width. + + + Constructs a new PdfLine-object. + + @param left the limit of the line at the left + @param right the limit of the line at the right + @param alignment the alignment of the line + @param height the height of the line + + + Creates a PdfLine object. + @param left the left offset + @param originalWidth the original width of the line + @param remainingWidth bigger than 0 if the line isn't completely filled + @param alignment the alignment of the line + @param newlineSplit was the line splitted (or does the paragraph end with this line) + @param line an array of PdfChunk objects + @param isRTL do you have to read the line from Right to Left? + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @param currentLeading new value for the height of the line + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Returns the number of chunks in the line. + + @return a value + + + Returns an iterator of PdfChunks. + + @return an Iterator + + + Returns the height of the line. + + @return a value + + + Returns the left indentation of the line taking the alignment of the line into account. + + @return a value + + + Checks if this line has to be justified. + + @return true if the alignment equals ALIGN_JUSTIFIED and there is some width left. + + + + Adds extra indentation to the left (for Paragraph.setFirstLineIndent). + + + Returns the width that is left, after a maximum of characters is added to the line. + + @return a value + + + Returns the number of space-characters in this line. + + @return a value + + + + Returns the listsymbol of this line. + + @return a PdfChunk if the line has a listsymbol; null otherwise + + + Return the indentation needed to show the listsymbol. + + @return a value + + + Get the string representation of what is in this line. + + @return a string + + + Checks if a newline caused the line split. + @return true if a newline caused the line split + + + Gets the index of the last PdfChunk with metric attributes + @return the last PdfChunk with metric attributes + + + Gets a PdfChunk by index. + @param idx the index + @return the PdfChunk or null if beyond the array + + + Gets the original width of the line. + @return the original width of the line + + + Gets the difference between the "normal" leading and the maximum + size (for instance when there are images in the chunk and the leading + has to be taken into account). + @return an extra leading for images + @since 2.1.5 + + + Gets the number of separators in the line. + Returns -1 if there's a tab in the line. + @return the number of separators in the line + @since 2.1.2 + + + Gets the maximum size of the ascender for all the fonts used + in this line. + @return maximum size of all the ascenders used in this line + + + Gets the biggest descender for all the fonts used + in this line. Note that this is a negative number. + @return maximum size of all the ascenders used in this line + + + a Literal + + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from ABSOLUTECALORIMETRIC + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + a name used in PDF structure + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 5.0.3 + + + A name + + + A name + + + A name + + + Use ALT to specify alternate texts in Tagged PDF. + For alternate ICC profiles, use {@link #ALTERNATE} + + + Use ALTERNATE only in ICC profiles. It specifies an alternative color + space, in case the primary one is not supported, for legacy purposes. + For various types of alternate texts in Tagged PDF, use {@link #ALT} + + + A name + @since 5.5.8 + + + A name + @since 5.4.5 + + + A name + @since 5.4.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.0.7 + + + A name + + + A name + + + A name + + + A name + @since 5.3.2 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 renamed from DEFAULTCRYPTFILER + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + @since 5.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 2.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + @since 5.4.0 + + + A name of an attribute. + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.5 + + + A name + @since 2.1.5 + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.4 + + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use {@link #LANGUAGE} + + + A dictionary type, strictly for use in the content usage dictionary. For + dictionary entries in Tagged Pdf, use {@link #LANG} + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.2 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + @since 2.1.6 + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 renamed from MAX + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 renamed from MIN + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name used with Document Structure + @since 2.1.5 + + + a name used with Document Structure + @since 2.1.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name used in defining Document Structure. + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.0.2 + + + A name + @since 5.0.2 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from RELATIVECALORIMETRIC + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + @since 5.4.4 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.3 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + T is very commonly used for various dictionary entries, including title + entries in a Tagged PDF element dictionary, and target dictionaries. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + @since 5.4.3 + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.4 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + Use Title for the document's top level title (optional), and for document + outline dictionaries, which can store bookmarks. + For all other uses of a title entry, including Tagged PDF, use {@link #T} + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.2.1 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.0.2 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an encoding + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name of an encoding + + + A name + @since 5.4.3 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name + + + map strings to all known static names + @since 2.1.6 + + + Use reflection to cache all the static public readonly names so + future PdfName additions don't have to be "added twice". + A bit less efficient (around 50ms spent here on a 2.2ghz machine), + but Much Less error prone. + @since 2.1.6 + + + Constructs a new PdfName. The name length will be checked. + @param name the new name + + + Constructs a new PdfName. + @param name the new name + @param lengthCheck if true check the lenght validity, if false the name can + have any length + + + + Indicates whether some other object is "equal to" this one. + + @param obj the reference object with which to compare. + @return true if this object is the same as the obj + argument; false otherwise. + + + Returns a hash code value for the object. This method is + supported for the benefit of hashtables such as those provided by + java.util.Hashtable. + + @return a hash code value for this object. + + + Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD". + + @param name the name to encode + @return the encoded name + @since 2.1.5 + + + Decodes an escaped name in the form "/AB#20CD" into "AB CD". + @param name the name to decode + @return the decoded name + + + Creates a name tree. + @author Paulo Soares + + + Creates a name tree. + @param items the item of the name tree. The key is a String + and the value is a PdfObject. Note that although the + keys are strings only the lower byte is used and no check is made for chars + with the same lower byte and different upper byte. This will generate a wrong + tree name. + @param writer the writer + @throws IOException on error + @return the dictionary with the name tree. This dictionary is the one + generally pointed to by the key /Dests, for example + + + + This is an instance of the PdfNull-object. + + + + + actual value of this PdfNumber, represented as a double + + + Constructs a PdfNumber-object. + + @param content value of the new PdfNumber-object + + + Constructs a new int PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new long PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Returns the primitive int value of this object. + + @return a value + + + Returns the primitive long value of this object. + + @return a value + + + Returns the primitive double value of this object. + + @return a value + + + Increments the value of the PdfNumber-object with 1. + + + Creates a number tree. + @author Paulo Soares + + + Creates a number tree. + @param items the item of the number tree. The key is an Integer + and the value is a PdfObject. + @param writer the writer + @throws IOException on error + @return the dictionary with the number tree. + + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + This is an empty string used for the PdfNull-object and for an empty PdfString-object. + + + This is the default encoding to be used for converting strings into bytes and vice versa. + The default encoding is PdfDocEcoding. + + + This is the encoding to be used to output text in Unicode. + + + the content of this PdfObject + + + the type of this PdfObject + + + Holds value of property indRef. + + + Hash code of the PdfObject instance. + Unfortunately, default C# behavior does not generate unique hash code. + + + Used for generating hash code. + + + Making hash code generation thread safe. + + + Constructs a PdfObject of a certain type without any content. + + @param type type of the new PdfObject + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param content content of the new PdfObject as a String. + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param bytes content of the new PdfObject as an array of byte. + + + Writes the PDF representation of this PdfObject as an array of bytes to the writer. + @param writer for backwards compatibility + @param os the outputstream to write the bytes to. + @throws IOException + + + Gets the presentation of this object in a byte array + @return a byte array + + + Can this object be in an object stream? + @return true if this object can be in an object stream. + + + Returns the String-representation of this PdfObject. + + @return a String + + + Returns the length of the actual content of the PdfObject. +

+ In some cases, namely for PdfString and PdfStream, + this method differs from the method pdfLength because pdfLength + returns the length of the PDF representation of the object, not of the actual content + as does the method length.

+

+ Remark: the actual content of an object is in some cases identical to its representation. + The following statement is always true: Length() >= PdfLength().

+ + @return a length +
+ + Changes the content of this PdfObject. + + @param content the new content of this PdfObject + + + Returns the type of this PdfObject. + + @return a type + + + Checks if this PdfObject is of the type PdfNull. + + @return true or false + + + Checks if this PdfObject is of the type PdfBoolean. + + @return true or false + + + Checks if this PdfObject is of the type PdfNumber. + + @return true or false + + + Checks if this PdfObject is of the type PdfString. + + @return true or false + + + Checks if this PdfObject is of the type PdfName. + + @return true or false + + + Checks if this PdfObject is of the type PdfArray. + + @return true or false + + + Checks if this PdfObject is of the type PdfDictionary. + + @return true or false + + + Checks if this PdfObject is of the type PdfStream. + + @return true or false + + + Checks if this is an indirect object. + @return true if this is an indirect object + + + + the PdfIndirectReference of this object + + + value of the Count-key + + + value of the Parent-key + + + value of the Destination-key + + + The PdfAction for this outline. + + + Holds value of property tag. + + + Holds value of property open. + + + Holds value of property color. + + + Holds value of property style. + + + + + + + + + + + + + + + + Helper for the constructors. + @param parent the parent outline + @param title the title for this outline + @param open true if the children are visible + + + Gets the indirect reference of this PdfOutline. + + @return the PdfIndirectReference to this outline. + + + Gets the parent of this PdfOutline. + + @return the PdfOutline that is the parent of this outline. + + + Set the page of the PdfDestination-object. + + @param pageReference indirect reference to the page + @return true if this page was set as the PdfDestination-page. + + + Gets the destination for this outline. + @return the destination + + + returns the level of this outline. + + @return a level + + + Returns the PDF representation of this PdfOutline. + + @param writer the encryption information + @param os + @throws IOException + + + Getter for property tag. + @return Value of property tag. + + + Setter for property open. + @param open New value of property open. + + + + value of the Rotate key for a page in PORTRAIT + + + value of the Rotate key for a page in LANDSCAPE + + + value of the Rotate key for a page in INVERTEDPORTRAIT + + + value of the Rotate key for a page in SEASCAPE + + + value of the MediaBox key + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @param rotate a value for the Rotate key + @throws DocumentException + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @throws DocumentException + + + + Adds an indirect reference pointing to a PdfContents-object. + + @param contents an indirect reference to a PdfContents-object + + + Rotates the mediabox, but not the text in it. + + @return a PdfRectangle + + + Returns the MediaBox of this Page. + + @return a PdfRectangle + + + Helps the use of PdfPageEvent by implementing all the interface methods. + A class can extend PdfPageEventHelper and only implement the + needed methods. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + Page labels are used to identify each + page visually on the screen or in print. + @author Paulo Soares + + + Logical pages will have the form 1,2,3,... + + + Logical pages will have the form I,II,III,IV,... + + + Logical pages will have the form i,ii,iii,iv,... + + + Logical pages will have the form of uppercase letters + (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on) + + + Logical pages will have the form of uppercase letters + (a to z for the first 26 pages, aa to zz for the next 26, and so on) + + + No logical page numbers are generated but fixed text may + still exist + + + Dictionary values to set the logical page styles + + + The sequence of logical pages. Will contain at least a value for page 1 + + + Creates a new PdfPageLabel with a default logical page 1 + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + @param includeFirstPage If true, the page label will be added to the first page if it is page 1. + If the first page is not page 1 or this value is false, the value will not be added to the dictionary. + + + Adds or replaces a page label. The first logical page has the default + of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + + + Adds or replaces a page label. There is no text prefix and the first + logical page has the default of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + + + Adds or replaces a page label. + + + Removes a page label. The first page lagel can not be removed, only changed. + @param page the real page to remove + + + Gets the page label dictionary to insert into the document. + @return the page label dictionary + + + Retrieves the page labels from a PDF as an array of String objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a String array or null if no page labels are present + + + Retrieves the page labels from a PDF as an array of {@link PdfPageLabelFormat} objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a PdfPageLabelEntry array, containing an entry for each format change + or null if no page labels are present + + + Creates a page label format. + @param physicalPage the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param prefix the text to prefix the number. Can be null or empty + @param logicalPage the first logical page number + + + + Constructs a PdfPages-object. + + + A PdfPattern defines a ColorSpace + + @see PdfStream + + + Creates a PdfPattern object. + @param painter a pattern painter instance + + + Creates a PdfPattern object. + @param painter a pattern painter instance + @param compressionLevel the compressionLevel for the stream + @since 2.1.3 + + + Implements the pattern. + + + Creates a PdfPattern. + + + Creates new PdfPattern + + @param wr the PdfWriter + + + Gets the stream representing this pattern + @return the stream representing this pattern + + + Gets the stream representing this pattern + @param compressionLevel the compression level of the stream + @return the stream representing this pattern + @since 2.1.3 + + + Gets a duplicate of this PdfPatternPainter. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPatternPainter + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayFill(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayStroke(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFillF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStrokeF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFillF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStrokeF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#addImage(com.lowagie.text.Image, float, float, float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStroke(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStroke(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter) + + + A cell in a PdfPTable. + + + Holds value of property verticalAlignment. + + + Holds value of property paddingLeft. + + + Holds value of property paddingLeft. + + + Holds value of property paddingTop. + + + Holds value of property paddingBottom. + + + Holds value of property fixedHeight. + + + Fixed height of the cell. + + + Holds value of property noWrap. + + + Holds value of property table. + + + Holds value of property minimumHeight. + + + This field is used to cache the height which is calculated on getMaxHeight() method call; + this helps to avoid unnecessary recalculations on table drawing. + + + Holds value of property colspan. + + + Holds value of property rowspan. + @since 2.1.6 + + + Holds value of property image. + + + Holds value of property cellEvent. + + + Holds value of property useDescender. + + + Increases padding to include border if true + + + The text in the cell. + + + The rotation of the cell. Possible values are + 0, 90, 180 and 270. + + + Constructs an empty PdfPCell. + The default padding is 2. + + + Constructs a PdfPCell with a Phrase. + The default padding is 2. + @param phrase the text + + + Constructs a PdfPCell with an Image. + The default padding is 0. + @param image the Image + + + Constructs a PdfPCell with an Image. + The default padding is 0.25 for a border width of 0.5. + @param image the Image + @param fit true to fit the image to the cell + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + The default padding is 0. + @param table The PdfPTable + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + + @param table The PdfPTable + @param style The style to apply to the cell (you could use getDefaultCell()) + @since 2.1.0 + + + Constructs a deep copy of a PdfPCell. + @param cell the PdfPCell to duplicate + + + Adds an iText element to the cell. + @param element + + + Gets the Phrase from this cell. + @return the Phrase + + + Gets the horizontal alignment for the cell. + @return the horizontal alignment for the cell + + + Gets the vertical alignment for the cell. + @return the vertical alignment for the cell + + + Gets the effective left padding. This will include + the left border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingLeft. + + + @return Value of property paddingLeft. + + + Gets the effective right padding. This will include + the right border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingRight. + + + Getter for property paddingRight. + @return Value of property paddingRight. + + + Gets the effective top padding. This will include + the top border width if {@link #isUseBorderPadding()} is true. + @return effective value of property paddingTop. + + + Getter for property paddingTop. + @return Value of property paddingTop. + + + /** Gets the effective bottom padding. This will include + * the bottom border width if {@link #UseBorderPadding} is true. + * @return effective value of property paddingBottom. + + + Getter for property paddingBottom. + @return Value of property paddingBottom. + + + Sets the padding of the contents in the cell (space between content and border). + @param padding + + + Adjusts effective padding to include border widths. + @param use adjust effective padding if true + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the first paragraph line indent. + @return the indent + + + Gets the extra space between paragraphs. + @return the extra space between paragraphs + + + Getter for property fixedHeight. + @return Value of property fixedHeight. + + + Tells you whether the cell has a fixed height. + + @return true is a fixed height was set. + @since 2.1.5 + + + Gets the height which was calculated on last call of getMaxHeight(). + If cell's bBox and content wasn't changed this value is actual maxHeight of the cell. + @return max height which was calculated on last call of getMaxHeight(); if getMaxHeight() wasn't called the return value is 0 + + + Setter for property noWrap. + @param noWrap New value of property noWrap. + + + Getter for property table. + @return Value of property table. + + + Getter for property minimumHeight. + @return Value of property minimumHeight. + + + Tells you whether the cell has a minimum height. + + @return true if a minimum height was set. + @since 2.1.5 + + + Getter for property colspan. + @return Value of property colspan. + + + Getter for property rowspan. + @return Value of property rowspan. + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction of the text content in the cell + @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL. + + + Getter for property image. + @return Value of property image. + + + + Gets the cell event for this cell. + @return the cell event + + + + Gets the arabic shaping options. + @return the arabic shaping options + + + Gets state of first line height based on max ascender + @return true if an ascender is to be used. + + + Getter for property useDescender. + @return Value of property useDescender. + + + + Gets the ColumnText with the content of the cell. + @return a columntext object + + + Returns the list of composite elements of the column. + @return a List object. + @since 2.1.1 + + + Sets the rotation of the cell. Possible values are + 0, 90, 180 and 270. + @param rotation the rotation of the cell + + + Returns the height of the cell. + @return the height of the cell + @since 3.0.0 + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + A row in a PdfPTable. + + @author Paulo Soares + + + True if the table may not break after this row. + + + the bottom limit (bottom right y) + + + the right limit + @since 2.1.5 + + + extra heights that needs to be added to a cell because of rowspans. + @since 2.1.6 + + + Constructs a new PdfPRow with the cells in the array that was passed + as a parameter. + + @param cells + + + Makes a copy of an existing row. + + @param row + + + Sets the widths of the columns in the row. + + @param widths + @return true if everything went right + + + Initializes the extra heights array. + @since 2.1.6 + + + Sets an extra height for a cell. + @param cell the index of the cell that needs an extra height + @param height the extra height + @since 2.1.6 + + + Calculates the heights of each cell in the row. + + @return the maximum height of the row. + + + Writes the border and background of one cell in the row. + + @param xPos The x-coordinate where the table starts on the canvas + @param yPos The y-coordinate where the table starts on the canvas + @param currentMaxHeight The height of the cell to be drawn. + @param cell + @param canvases + @since 2.1.6 extra parameter currentMaxHeight + + + @since 2.1.6 private is now protected + + + @since 2.1.6 private is now protected + + + @since 3.0.0 protected is now public static + + + * Writes a number of cells (not necessarily all cells). + * + * @param colStart The first column to be written. + * Remember that the column index starts with 0. + * @param colEnd The last column to be written. + * Remember that the column index starts with 0. + * If -1, all the columns to the end are written. + * @param xPos The x-coordinate where the table starts on the canvas + * @param yPos The y-coordinate where the table starts on the canvas + * @param reusable if set to false, the content in the cells is "consumed"; + * if true, you can reuse the cells, the row, the parent table as many times you want. + * @since 5.1.0 added the reusable parameter + + + Checks if the dimensions of the columns were calculated. + + @return true if the dimensions of the columns were calculated + + + Gets the maximum height of the row (i.e. of the 'highest' cell). + @return the maximum height of the row + + + Copies the content of a specific row in a table to this row. + Don't do this if the rows have a different number of cells. + @param table the table from which you want to copy a row + @param idx the index of the row that needs to be copied + @since 5.1.0 + + + Splits a row to newHeight. + The returned row is the remainder. It will return null if the newHeight + was so small that only an empty row would result. + + @param new_height the new height + @return the remainder row or null if the newHeight was so small that only + an empty row would result + + + Split rowspan of cells with rowspan on next page by inserting copies with the remaining rowspan + and reducing the previous rowspan appropriately, i.e. if a cell with rowspan 7 gets split after 3 rows + of that rowspan have been laid out, its column on the next page should start with an empty cell + having the same attributes and rowspan 7 - 3 = 4. + + @since iText 5.4.3 + + + Returns the array of cells in the row. + Please be extremely careful with this method. + Use the cells as read only objects. + + @return an array of cells + @since 2.1.1 + + + Checks if a cell in the row has a rowspan greater than 1. + @since 5.1.0 + + + Implements the PostScript XObject. + + + Creates a new instance of PdfPSXObject + + + Constructs a PSXObject + @param wr + + + Gets the stream representing this object. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + @throws IOException + + + Gets a duplicate of this PdfPSXObject. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPSXObject + + + This is a table that can be put at an absolute position but can also + be added to the document as the class Table. + In the last case when crossing pages the table always break at full rows; if a + row is bigger than the page it is dropped silently to avoid infinite loops. +

+ A PdfPTableEvent can be associated to the table to do custom drawing + when the table is rendered. + @author Paulo Soares + + + The index of the original PdfcontentByte. + + + The index of the duplicate PdfContentByte where the background will be drawn. + + + The index of the duplicate PdfContentByte where the border lines will be drawn. + + + The index of the duplicate PdfContentByte where the text will be drawn. + + + The current column index. + + @since 5.1.0 renamed from currentColIdx + + + Holds value of property headerRows. + + + Holds value of property widthPercentage. + + + Holds value of property horizontalAlignment. + + + Holds value of property skipFirstHeader. + + + Holds value of property skipLastFooter. + + @since 2.1.6 + + + Holds value of property lockedWidth. + + + Holds value of property splitRows. + + + The spacing before the table. + + + The spacing after the table. + + + Holds value of property extendLastRow. + + + Holds value of property headersInEvent. + + + Holds value of property splitLate. + + + Defines if the table should be kept + on one page if possible + + + Indicates if the PdfPTable is complete once added to the document. + @since iText 2.0.8 + + + Keeps track of the completeness of the current row. + + @since 2.1.6 + + + Constructs a PdfPTable with the relative column widths. + @param relativeWidths the relative column widths + + + Constructs a PdfPTable with numColumns columns. + @param numColumns the number of columns + + + Constructs a copy of a PdfPTable. + @param table the PdfPTable to be copied + + + Makes a shallow copy of a table (format without content). + @param table + @return a shallow copy of the table + + + Copies the format of the sourceTable without copying the content. + @param sourceTable + @since 2.1.6 private is now protected + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + @since 2.1.6 private is now protected + + + Sets the full width of the table from the absolute column width. + @param columnWidth the absolute width of each column + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the percentage width of the table from the absolute column width. Warning: Don't use this with setLockedWidth(true). These two settings don't mix. + @param columnWidth the absolute width of each column + @param pageSize the page size + @throws DocumentException + + + Gets the full width of the table. + @return the full width of the table + + + Calculates the heights of the table. + + @return the total height of the table. Note that it will be 0 if you didn't + specify the width of the table with SetTotalWidth(). + and made it public + + + Changes the number of columns. Any existing rows will be deleted. + + @param the new number of columns + + + Gets the default PdfPCell that will be used as + reference for all the addCell methods except + addCell(PdfPCell). + @return default PdfPCell + + + Adds a cell element. + + @param cell the cell element + + + When updating the row index, cells with rowspan should be taken into account. + This is what happens in this method. + + @since 2.1.6 + + + Added by timmo3. This will return the correct cell taking it's cellspan into account + + @param row the row index + @param col the column index + @return PdfPCell at the given row and position or null otherwise + + + Checks if there are rows above belonging to a rowspan. + @param currRow the current row to check + @param currCol the current column to check + @return true if there's a cell above that belongs to a rowspan + @since 2.1.6 + + + Adds a cell element. + @param text the text for the cell + + + Adds a nested table. + @param table the table to be added to the cell + + + Adds an Image as Cell. + @param image the Image to add to the table. + This image will fit in the cell + + + Adds a cell element. + @param phrase the Phrase to be added to the cell + + + + + Writes the selected rows and columns to the document. + This method does not clip the columns; this is only important + if there are columns with colspan at boundaries. + canvases is obtained from beginWritingRows(). + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvases an array of 4 PdfContentByte obtained from + beginWritingRows() + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @return the y coordinate position of the bottom of the last row + @see #beginWritingRows(com.itextpdf.text.pdf.PdfContentByte) + @since 5.1.0 added the reusable parameter + + + Writes the selected rows to the document. + + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coodinate + @param yPos the y write coodinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + + + + Writes the selected rows and columns to the document. + This method clips the columns; this is only important + if there are columns with colspan at boundaries. + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @since 5.1.0 added the reusable parameter + + + + Finishes writing the table. + @param canvases the array returned by beginWritingRows() + + + Gets the number of rows in this table. + @return the number of rows in this table + + + Gets the total height of the table. + @return the total height of the table + + + Gets the height of a particular row. + @param idx the row index (starts at 0) + @return the height of a particular row + + + Gets the height of a particular row. + + @param idx the row index (starts at 0) + @param firsttime is this the first time the row heigh is calculated? + @return the height of a particular row + @since 5.0.0 + + + Gets the maximum height of a cell in a particular row (will only be different + from getRowHeight is one of the cells in the row has a rowspan > 1). + + @param rowIndex the row index + @param cellIndex the cell index + @return the height of a particular row including rowspan + @since 2.1.6 + + + Checks if a cell in a row has a rowspan greater than 1. + + @since 5.1.0 + + + Makes sure the footers value is lower than the headers value. + + @since 5.0.1 + + + Gets the height of the rows that constitute the header as defined by + setHeaderRows(). + @return the height of the rows that constitute the header and footer + + + Gets the height of the rows that constitute the header as defined by + setFooterRows(). + @return the height of the rows that constitute the footer + @since 2.1.1 + + + Deletes a row from the table. + @param rowNumber the row to be deleted + @return true if the row was deleted + + + Deletes the last row in the table. + @return true if the last row was deleted + + + Removes all of the rows except headers + + + Returns the number of columns. + @return the number of columns. + @since 2.1.1 + + + Gets all the chunks in this element. + + @return an List + + + Gets the type of the text element. + + @return a type + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isContent() + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isNestable() + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets a row with a given index. + + @param idx + @return the row at position idx + + + Returns the index of the last completed row. + + @return the index of a row + + + Defines where the table may be broken (if necessary). + + @param breakPoints int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines which rows should not allow a page break (if possible). + + @param rows int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows that should not allow a page break (if possible). + + @param start int + @param end int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows (from the parameter to the last row) that should not allow a page break (if possible). + The equivalent of calling {@link #keepRowsTogether(int,int) keepRowsTogether(start, rows.size()}. + + @param start int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Gets an arraylist with all the rows in the table. + @return an arraylist + + + Gets an arraylist with a selection of rows. + @param start the first row in the selection + @param end the first row that isn't part of the selection + @return a selection of rows + @since 2.1.6 + + + Calculates the extra height needed in a row because of rowspans. + @param start the index of the start row (the one to adjust) + @param end the index of the end row on the page + @since 2.1.6 + + + Sets the table event for this table. + + @param event the table event for this table + + + Gets the absolute sizes of each column width. + @return he absolute sizes of each column width + + + Tells you if the last footer needs to be skipped + (for instance if the footer says "continued on the next page") + + @return Value of property skipLastFooter. + @since 2.1.6 + + + When set the last row on every page will be extended to fill + all the remaining space to the bottom boundary; except maybe the + row. + + @param extendLastRows true to extend the last row on each page; false otherwise + @param extendFinalRow false if you don't want to extend the row of the complete table + @since iText 5.0.0 + + + * Gets the value of the last row extension, taking into account + * if the row is reached or not. + * + * @return true if the last row will extend; + * false otherwise + * @since iText 5.0.0 + + + If true the table will be kept on one page if it fits, by forcing a + new page if it doesn't fit on the current page. The default is to + split the table over multiple pages. + + @param p_KeepTogether whether to try to keep the table on one page + + + Completes the current row with the default cell. An incomplete row will be dropped + but calling this method will make sure that it will be present in the table. + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Gets row index where cell overlapping (rowIdx, colIdx) starts + @param rowIdx + @param colIdx + @return row index + @since iText 5.4.3 + + + + @since iText 5.4.3 + + + Correct chosen last fitting row so that the content of all cells with open rowspans will fit on the page, + i.e. the cell content won't be split. + (Only to be used with splitLate == true) + + + + @since iText 5.4.3 + + + Determine which rows fit on the page, respecting isSplitLate(). + Note: sets max heights of the inspected rows as a side effect, + just like PdfPTable.getRowHeight(int, boolean) does. + Respect row.getMaxHeights() if it has been previously set (which might be independent of the height of + individual cells). + The last row written on the page will be chosen by the caller who might choose not + the calculated one but an earlier one (due to mayNotBreak settings on the rows). + The height of the chosen last row has to be corrected if splitLate == true + by calling FittingRows.correctLastRowChosen() by the caller to avoid splitting the content of + cells with open rowspans. + + @since iText 5.4.3 + + + + @author Aiken Sam (aikensam@ieee.org) + + + Reads a PDF document. + @author Paulo Soares + @author Kazuya Ujihara + + + The iText developers are not responsible if you decide to change the + value of this static parameter. + @since 5.0.2 + + + Handler which will be used for decompression of pdf streams. + + + Holds value of property appendable. + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param partialRead if true, the reader is opened in partial mode (PDF is parsed on demand), if false, the entire PDF is parsed into memory as the reader opens + @param ownerPassword the password or null if no password is required + @param certificate the certificate or null if no certificate is required + @param certificateKey the key or null if no certificate key is required + @param certificateKeyProvider the name of the key provider, or null if no key is required + @param closeSourceOnConstructorError if true, the byteSource will be closed if there is an error during construction of this reader + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param properties the properties which will be used to create the reader + + + Reads and parses a PDF document. + @param filename the file name of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param properties the properties which will be used to create the reader + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param certificate the certificate to read the document + @param certificateKey the private key of the certificate + @param certificateKeyProvider the security provider for certificateKey + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param properties the properties which will be used to create the reader + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a PDF document. + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a pdf document. Contrary to the other constructors only the xref is read + into memory. The reader is said to be working in "partial" mode as only parts of the pdf + are read as needed. + @param raf the document location + @param ownerPassword the password or null for no password + @throws IOException on error + + + Reads and parses a pdf document. + @param raf the document location + @param ownerPassword the password or null for no password + @param partial indicates if the reader needs to read the document only partially. See {@link PdfReader#PdfReader(RandomAccessFileOrArray, byte[])} + @throws IOException on error + + + Creates an independent duplicate. + @param reader the PdfReader to duplicate + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + @param byteSource the source to check + @return a tokeniser that is guaranteed to start at the PDF header + @throws IOException if there is a problem reading the byte source + + + Gets a new file instance of the original PDF + document. + @return a new file instance of the original PDF document + + + Gets the number of pages in the document. + @return the number of pages in the document + + + Returns the document's catalog. This dictionary is not a copy, + any changes will be reflected in the catalog. + @return the document's catalog + + + Returns the document's acroform, if it has one. + @return the document's acroform + + + Gets the page rotation. This value can be 0, 90, 180 or 270. + @param index the page number. The first page is 1 + @return the page rotation + + + Gets the page size, taking rotation into account. This + is a Rectangle with the value of the /MediaBox and the /Rotate key. + @param index the page number. The first page is 1 + @return a Rectangle + + + Gets the rotated page from a page dictionary. + @param page the page dictionary + @return the rotated page + + + Gets the page size without taking rotation into account. This + is the value of the /MediaBox key. + @param index the page number. The first page is 1 + @return the page size + + + Gets the page from a page dictionary + @param page the page dictionary + @return the page + + + Gets the crop box without taking rotation into account. This + is the value of the /CropBox key. The crop box is the part + of the document to be displayed or printed. It usually is the same + as the media box but may be smaller. If the page doesn't have a crop + box the page size will be returned. + @param index the page number. The first page is 1 + @return the crop box + + + Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media". + @param index the page number. The first page is 1 + @param boxName the box name + @return the box rectangle or null + + + Returns the content of the document information dictionary as a Hashtable + of String. + @return content of the document information dictionary + + + Normalizes a Rectangle so that llx and lly are smaller than urx and ury. + @param box the original rectangle + @return a normalized Rectangle + + + Checks if the PDF is a tagged PDF. + + + Parses the entire PDF + + + @throws IOException + + + @param obj + @return a PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. + @param obj the PdfObject to read + @return the resolved PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. If the reader was opened in partial mode the object will be released + to save memory. + @param obj the PdfObject to read + @param parent + @return a PdfObject + + + @param obj + @param parent + @return a PdfObject + + + @param idx + @return a PdfObject + + + @param idx + @return aPdfObject + + + + + + + + + @param obj + + + @param obj + @return an indirect reference + + + @return the percentage of the cross reference table that has been read + + + Eliminates the reference to the object freeing the memory used by it and clearing + the xref entry. + @param obj the object. If it's an indirect reference it will be eliminated + @return the object or the already erased dereferenced object + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + @param in + @param dicPar + @return a byte array + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + @param in the input data + @return the decoded data + + + Checks if the document had errors and was rebuilt. + @return true if rebuilt. + + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a Dictionary object + + + @param pageNum + + + + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @param file the location of the PDF document + @throws IOException on error + @return the content + + + Gets the content from the page dictionary. + @param page the page dictionary + @throws IOException on error + @return the content + @since 5.0.6 + + + Retrieve the given page's resource dictionary + @param pageNum 1-based page number from which to retrieve the resource dictionary + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Retrieve the given page's resource dictionary + @param pageDict the given page + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @throws IOException on error + @return the content + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @throws IOException on error + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @since 2.1.3 (the method already existed without param compressionLevel) + + + Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @param filterHandlers the map used to look up a handler for each type of filter + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Get the content from a stream applying the required filters. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream applying the required filters. + @param stream the stream + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @throws IOException on error + @return the stream content + + + Eliminates shared streams if they exist. + + + Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper. + @param tampered the tampered state + + + Gets the XML metadata. + @throws IOException on error + @return the XML metadata + + + Gets the byte address of the last xref table. + @return the byte address of the last xref table + + + Gets the number of xref objects. + @return the number of xref objects + + + Gets the byte address of the %%EOF marker. + @return the byte address of the %%EOF marker + + + Gets the PDF version. Only the last version char is returned. For example + version 1.4 is returned as '4'. + @return the PDF version + + + Returns true if the PDF is encrypted. + @return true if the PDF is encrypted + + + Gets the encryption permissions. It can be used directly in + PdfWriter.SetEncryption(). + @return the encryption permissions + + + Returns true if the PDF has a 128 bit key encryption. + @return true if the PDF has a 128 bit key encryption + + + Gets the trailer dictionary + @return the trailer dictionary + + + Finds all the font subsets and changes the prefixes to some + random values. + @return the number of font subsets altered + + + Finds all the fonts not subset but embedded and marks them as subset. + @return the number of fonts altered + + + Gets all the named destinations as an Hashtable. The key is the name + and the value is the destinations array. + @return gets all the named destinations + + + Gets all the named destinations as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets all the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Dests key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Names key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Removes all the fields from the document. + + + Removes all the annotations and fields from the document. + + + Replaces remote named links with local destinations that have the same name. + @since 5.0 + + + Converts a remote named destination GoToR with a local named destination + if there's a corresponding name. + @param obj an annotation that needs to be screened for links to external named destinations. + @param names a map with names of local named destinations + @since iText 5.0 + + + Replaces all the local named links with the actual destinations. + + + Closes the reader, and any underlying stream or data source used to create the reader + + + Removes all the unreachable objects. + @return the number of indirect objects removed + + + Gets a read-only version of AcroFields. + @return a read-only version of AcroFields + + + Gets the global document JavaScript. + @param file the document file + @throws IOException on error + @return the global document JavaScript + + + Gets the global document JavaScript. + @throws IOException on error + @return the global document JavaScript + + + Selects the pages to keep in the document. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param ranges the comma separated ranges as described in {@link SequenceList} + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + @param removeUnused indicate if to remove unsed objects. @see removeUnusedObjects + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param key a key for a viewer preference + @param value a value for the viewer preference + @see PdfViewerPreferences#addViewerPreference + + + Returns a bitset representing the PageMode and PageLayout viewer preferences. + Doesn't return any information about the ViewerPreferences dictionary. + @return an int that contains the Viewer Preferences. + + + Getter for property newXrefType. + @return Value of property newXrefType. + + + Getter for property fileLength. + @return Value of property fileLength. + + + Getter for property hybridXref. + @return Value of property hybridXref. + + + Keeps track of all pages nodes to avoid circular references. + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a dictionary object + + + @param pageNum + @return an indirect reference + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + @param pageNum + + + + + + Checks if this PDF has usage rights enabled. + + @return true if usage rights are present; false otherwise + + + Removes any usage rights that this PDF may have. Only Adobe can grant usage rights + and any PDF modification with iText will invalidate them. Invalidated usage rights may + confuse Acrobat and it's advisabe to remove them altogether. + + + Gets the certification level for this document. The return values can be PdfSignatureAppearance.NOT_CERTIFIED, + PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, + PdfSignatureAppearance.CERTIFIED_FORM_FILLING and + PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS. +

+ No signature validation is made, use the methods availabe for that in AcroFields. +

+ @return gets the certification level for this document +
+ + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return true. + @return true if the document was opened with the owner password or if it's not encrypted, + false if the document was opened with the user password + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + @return user password, or null if not a standard encryption handler was used, + if standard encryption handler was used with AES256 encryption algorithm, + or if ownerPasswordUsed wasn't use to open the document. + + + Instance of PdfReader in each output document. + + @author Paulo Soares + + + Gets the content stream of a page as a PdfStream object. + @param pageNumber the page of which you want the stream + @param compressionLevel the compression level you want to apply to the stream + @return a PdfStream object + @since 2.1.3 (the method already existed without param compressionLevel) + + + + lower left x + + + lower left y + + + upper right x + + + upper right y + + + Constructs a PdfRectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + + @since rugPdf0.10 + + + Constructs a PdfRectangle-object starting from the origin (0, 0). + + @param urx upper right x + @param ury upper right y + + + Constructs a PdfRectangle-object with a Rectangle-object. + + @param rectangle a Rectangle + + + Returns the high level version of this PdfRectangle + @return this PdfRectangle translated to class Rectangle + + + Overrides the add-method in PdfArray in order to prevent the adding of extra object to the array. + + @param object PdfObject to add (will not be added here) + @return false + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param object Ignored. + @since 2.1.5 + + + Returns the lower left x-coordinate. + + @return the lower left x-coordinaat + + + Returns the upper right x-coordinate. + + @return the upper right x-coordinate + + + Returns the upper right y-coordinate. + + @return the upper right y-coordinate + + + Returns the lower left y-coordinate. + + @return the lower left y-coordinate + + + Returns the lower left x-coordinate, considering a given margin. + + @param margin a margin + @return the lower left x-coordinate + + + Returns the upper right x-coordinate, considering a given margin. + + @param margin a margin + @return the upper right x-coordinate + + + Returns the upper right y-coordinate, considering a given margin. + + @param margin a margin + @return the upper right y-coordinate + + + Returns the lower left y-coordinate, considering a given margin. + + @param margin a margin + @return the lower left y-coordinate + + + Returns the width of the rectangle. + + @return a width + + + Returns the height of the rectangle. + + @return a height + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + @return a PdfRectangle + + + A Rendition dictionary (pdf spec 1.5) + + + + Constructs a PDF ResourcesDictionary. + + + Implements the shading dictionary (or stream). + + @author Paulo Soares + + + Holds value of property bBox. + + + Holds value of property antiAlias. + + + Creates new PdfShading + + + Implements the shading pattern dictionary. + + @author Paulo Soares + + + Creates new PdfShadingPattern + + + Implements the signature dictionary. + + @author Paulo Soares + + + Creates new PdfSignature + + + Sets the signature creator name in the + {@link PdfSignatureBuildProperties} dictionary. + + @param name + + + Gets the {@link PdfSignatureBuildProperties} instance if it exists, if + not it adds a new one and returns this. + + @return {@link PdfSignatureBuildProperties} + + + Class that takes care of the cryptographic options + and appearances that form a signature. + + + Constructs a PdfSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Approval signature + + + Author signature, no changes allowed + + + Author signature, form filling allowed + + + Author signature, form filling and annotations allowed + + + The certification level + + + Sets the document type to certified instead of simply signed. + @param certificationLevel the values can be: NOT_CERTIFIED, CERTIFIED_NO_CHANGES_ALLOWED, + CERTIFIED_FORM_FILLING and CERTIFIED_FORM_FILLING_AND_ANNOTATIONS + + + The caption for the reason for signing. + + + The caption for the location of signing. + + + The reason for signing. + + + Holds value of property location. + + + Holds value of property signDate. + + + Gets and setsthe signing reason. + @return the signing reason + + + Sets the caption for signing reason. + @param reasonCaption the signing reason caption + + + Gets and sets the signing location. + @return the signing location + + + Sets the caption for the signing location. + @param locationCaption the signing location caption + + + Holds value of the application that creates the signature + + + Gets the signature creator. + @return the signature creator + + Sets the name of the application used to create the signature. + @param signatureCreator the name of the signature creating application + + + The contact name of the signer. + + + Gets the signing contact. + @return the signing contact + + + Gets the signature date. + @return the signature date + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null) + + + Array containing the byte positions of the bytes that need to be hashed. + + + + @return the underlying source + @throws IOException + + + The signing certificate + + + Adds the appropriate developer extension. + + + The crypto dictionary + + + Gets the user made signature dictionary. This is the dictionary at the /V key. + @return the user made signature dictionary + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + @param sig the signature dictionary + + + Holds value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + @param signatureEvent the signature event + + + The name of the field + + + Gets the field name. + @return the field name + + + Gets a new signature field name that + doesn't clash with any existing name. + @return a new signature field name + + + The page where the signature will appear. + + + Gets the page number of the field. + @return the page number of the field + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + Gets the rectangle representing the signature dimensions. + @return the rectangle representing the signature dimensions. It may be null + or have zero width or height for invisible signatures + + + rectangle that represent the position and dimension of the signature in the page. + + + Gets the rectangle that represent the position and dimension of the signature in the page. + @return the rectangle that represent the position and dimension of the signature in the page + + + Gets the visibility status of the signature. + @return the visibility status of the signature + + + Sets the signature to be visible. It creates a new visible signature field. + @param pageRect the position and dimension of the field in the page + @param page the page to place the field. The fist page is 1 + @param fieldName the field name or null to generate automatically a new field name + + + Sets the signature to be visible. An empty signature field with the same name must already exist. + @param fieldName the existing empty signature field name + + + Signature rendering modes + @since 5.0.1 + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + The rendering mode chosen for visible signatures + + + Gets the rendering mode for this signature. + @return the rendering mode for this signature + @since 5.0.1 + + + The image that needs to be used for a visible signature + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC + or RenderingMode.GRAPHIC_AND_DESCRIPTION. + @param signatureGraphic image rendered. If null the mode is defaulted + to RenderingMode.DESCRIPTION + + + Appearance compliant with the recommendations introduced in Acrobat 6? + + + Acrobat 6.0 and higher recommends that only layer n0 and n2 be present. + Use this method with value false if you want to ignore this recommendation. + @param acro6Layers if true only the layers n0 and n2 will be present + @deprecated Adobe no longer supports Adobe Acrobat / Reader versions older than 9 + + + Layers for a visible signature. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Indicates that the existing appearances needs to be reused as layer 0. + + + An appearance that can be used for layer 1 (if acro6Layers is false). + + + A background image for the text in layer 2. + + + Gets the background image for the layer 2. + @return the background image for the layer 2 + + + the scaling to be applied to the background image.t + + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + @param imageScale the scaling to be applied to the background image + + + The text that goes in Layer 2 of the signature appearance. + + + Sets the signature text identifying the signer. + @param text the signature text identifying the signer. If null or not set + a standard description will be used + + + Font for the text in Layer 2. + + + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + @param layer2Font the n2 and n4 font + + + Run direction for the text in layers 2 and 4. + + + Sets the run direction in the n2 and n4 layer. + @param runDirection the run direction + + + The text that goes in Layer 4 of the appearance. + + + Sets the text identifying the signature status. Will be ignored if acro6Layers is true. + @param text the text identifying the signature status. If null or not set + the description "Signature Not Verified" will be used + + + Template containing all layers drawn on top of each other. + + + + extra space at the top. + + + margin for the content inside the signature rectangle. + + + + The PdfStamper that creates the signed PDF. + + + Gets the PdfStamper associated with this instance. + @return the PdfStamper associated with this instance + + + Sets the PdfStamper + @param stamper PdfStamper + + + The PdfStamperImp object corresponding with the stamper. + + + A byte buffer containing the bytes of the Stamper. + + + Getter for the byte buffer. + + + OutputStream for the bytes of the stamper. + + + Temporary file in case you don't want to sign in memory. + + + Gets the temporary file. + @return the temporary file or null is the document is created in memory + + + Name and content of keys that can only be added in the close() method. + + + Length of the output. + + + Indicates if the stamper has already been pre-closed. + + + + Signature field lock dictionary. + + + + + Signature field lock dictionary. + + + If a signature is created on an existing signature field, then its /Lock dictionary + takes the precedence (if it exists). + + + + Checks if the document is in the process of closing. + @return true if the document is in the process of closing, + false otherwise + + + + Adds keys to the signature dictionary that define + the certification level and the permissions. + This method is only used for Certifying signatures. + @param crypto the signature dictionary + + + Adds keys to the signature dictionary that define + the field permissions. + This method is only used for signatures that lock fields. + @param crypto the signature dictionary + + + + PdfSmartCopy has the same functionality as PdfCopy, + but when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. + + + the cache with the streams and references. + + + Creates a PdfSmartCopy instance. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file if it wasn't available + in the cache yet. If it's in the cache, the reference to + the already used stream is returned. + + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + A PdfSpotColor defines a ColorSpace + + @see PdfDictionary + + + Constructs a new PdfSpotColor. + + @param name a string value + @param tint a tint value between 0 and 1 + @param altcs a altnative colorspace value + + + + The writer + + + + + + Gets the optional String map to add or change values in + the info dictionary. + @return the map or null + + An optional String map to add or change values in + the info dictionary. Entries with null + values delete the key in the original info dictionary + @param moreInfo additional entries to the info dictionary + + + + Replaces a page from this document with a page from other document. Only the content + is replaced not the fields and annotations. This method must be called before + getOverContent() or getUndercontent() are called for the same page. + @param r the PdfReader from where the new page will be imported + @param pageImported the page number of the imported page + @param pageReplaced the page to replace in this document + + + Inserts a blank page. All the pages above and including pageNumber will + be shifted up. If pageNumber is bigger than the total number of pages + the new page will be the last one. + @param pageNumber the page number position where the new page will be inserted + @param mediabox the size of the new page + + + Gets the signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + Gets the xml signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + + Gets a PdfContentByte to write under the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write under the page of + the original document + + + Gets a PdfContentByte to write over the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write over the page of + the original document + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the encryption was set too late + + + Gets a page from other PDF document. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the underlying PdfReader. + @return the underlying PdfReader + + + Gets the AcroFields object that allows to get and set field values + and to merge FDF forms. + @return the AcroFields object + + + Determines if the fields are flattened on close. The fields added with + {@link #addAnnotation(PdfAnnotation,int)} will never be flattened. + @param flat true to flatten the fields, false + to keep the fields + + + Determines if the FreeText annotations are flattened on close. + @param flat true to flatten the FreeText annotations, false + (the default) to keep the FreeText annotations as active content. + + + Flatten annotations with an appearance stream on close(). + + @param flat boolean to indicate whether iText should flatten annotations or not. + + + Adds an annotation of form field in a specific page. This page number + can be overridden with {@link PdfAnnotation#setPlaceInPage(int)}. + @param annot the annotation + @param page the page + + + Adds an empty signature. + @param name the name of the signature + @param page the page number + @param llx lower left x coordinate of the signature's position + @param lly lower left y coordinate of the signature's position + @param urx upper right x coordinate of the signature's position + @param ury upper right y coordinate of the signature's position + @return a signature form field + @since 2.1.4 + + + Adds the comments present in an FDF file. + @param fdf the FDF file + @throws IOException on error + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Sets the thumbnail image for a page. + @param image the image + @param page the page + @throws PdfException on error + @throws DocumentException on error + + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param js the JavaScript code + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param name the name for the JavaScript snippet in the name tree + @param js the JavaScript code + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fs the file specification + + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Sets the XMP metadata. + @param xmp + @see PdfWriter#setXmpMetadata(byte[]) + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. Be attentive!!! If you want set full compression , you should set immediately after creating PdfStamper, + before editing the document.It can be set once and it can't be unset. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + Integer(page number) -> PageStamp + + + Holds value of property rotateContents. + + + Creates new PdfStamperImp. + @param reader the read PDF + @param os the output destination + @param pdfVersion the new pdf version or '\0' to keep the same version as the original + document + @param append + @throws DocumentException on error + @throws IOException + + + @param reader + @param openFile + @throws IOException + + + @param reader + + + @param fdf + @throws IOException + + + If true, annotations with an appearance stream will be flattened. + + @since 5.5.3 + @param flatAnnotations boolean + + + @see com.lowagie.text.pdf.PdfWriter#getPageReference(int) + + + @see com.lowagie.text.pdf.PdfWriter#addAnnotation(com.lowagie.text.pdf.PdfAnnotation) + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfWriter#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + Always throws an UnsupportedOperationException. + @param actionType ignore + @param action ignore + @throws PdfException ignore + @see PdfStamper#setPageAction(PdfName, PdfAction, int) + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Always throws an UnsupportedOperationException. + @param seconds ignore + + + Always throws an UnsupportedOperationException. + @param transition ignore + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + Getter for property append. + @return Value of property append. + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(com.lowagie.text.pdf.PdfAction) + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(java.lang.String) + + + @see com.lowagie.text.pdf.PdfWriter#setThumbnail(com.lowagie.text.Image) + + + Reads the OCProperties dictionary from the catalog of the existing document + and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. + Note that the original OCProperties of the existing document can contain more information. + @since 2.1.2 + + + Recursive method to reconstruct the documentOCGorder variable in the writer. + @param parent a parent PdfLayer (can be null) + @param arr an array possibly containing children for the parent PdfLayer + @param ocgmap a Hashtable with indirect reference Strings as keys and PdfLayer objects as values. + @since 2.1.2 + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + is the stream compressed? + + + The level of compression. + @since 2.1.3 + + + Constructs a PdfStream-object. + + @param bytes content of the new PdfObject as an array of byte. + + + Creates an efficient stream. No temporary array is ever created. The InputStream + is totally consumed but is not closed. The general usage is: +
+            InputStream in = ...;
+            PdfStream stream = new PdfStream(in, writer);
+            stream.FlateCompress();
+            writer.AddToBody(stream);
+            stream.WriteLength();
+            in.Close();
+            
+ @param inputStream the data to write to this stream + @param writer the PdfWriter for this stream +
+ + Constructs a PdfStream-object. + + + Writes the stream length to the PdfWriter. +

+ This method must be called and can only be called if the contructor {@link #PdfStream(InputStream,PdfWriter)} + is used to create the stream. +

+ @throws IOException on error + @see #PdfStream(InputStream,PdfWriter) +
+ + Compresses the stream. + + + Compresses the stream. + @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) + @since 2.1.3 + + + Writes the data content to an Stream. + @param os the destination to write to + @throws IOException on error + + + @see com.lowagie.text.pdf.PdfObject#toString() + + + + The value of this object. + + + The encoding. + + + Constructs an empty PdfString-object. + + + Constructs a PdfString-object. + + @param value the content of the string + + + Constructs a PdfString-object. + + @param value the content of the string + @param encoding an encoding + + + Constructs a PdfString-object. + + @param bytes an array of byte + + + Returns the PDF representation of this PdfString. + + @return an array of bytes + + + Returns the string value of the PdfString-object. + + @return a string + + + Gets the encoding of this string. + + @return a string + + + This is a node in a document logical structure. It may contain a mark point or it may contain + other nodes. + @author Paulo Soares + + + Holds value of property kids. + + + Holds value of property reference. + + + Creates a new instance of PdfStructureElement. + @param parent the parent of this node + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Creates a new instance of PdfStructureElement. + @param root the structure tree root + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Gets the parent of this node. + @return the parent of this node + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + The structure tree root corresponds to the highest hierarchy level in a tagged PDF. + @author Paulo Soares + + + Holds value of property writer. + + + Creates a new instance of PdfStructureTreeRoot + + + Maps the user tags to the standard tags. The mapping will allow a standard application to make some sense of the tagged + document whatever the user tags may be. + @param used the user tag + @param standard the standard tag + + + Gets the writer. + @return the writer + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + Implements the form XObject. + + + The indirect reference to this template + + + The resources used by this template + + + The bounding box of this template + + + A dictionary with additional information + @since 5.1.0 + + + Creates a PdfTemplate. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + + Gets the bounding width of this template. + + @return width the bounding width + + + Gets the bounding heigth of this template. + + @return heigth the bounding height + + + Gets the layer this template belongs to. + @return the layer this template belongs to or null for no layer defined + + + Gets the indirect reference to this template. + + @return the indirect reference to this template + + + Constructs the resources used by this template. + + @return the resources used by this template + + + Gets the stream representing this template. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + + + Gets a duplicate of this PdfTemplate. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfTemplate + + + Sets/gets a dictionary with extra entries, for instance /Measure. + + @param additional + a PdfDictionary with additional information. + @since 5.1.0 + + + + Adds a PdfNumber to the PdfArray. + + @param number displacement of the string + + + Out Vertical Split + + + Out Horizontal Split + + + In Vertical Split + + + IN Horizontal Split + + + Vertical Blinds + + + Vertical Blinds + + + Inward Box + + + Outward Box + + + Left-Right Wipe + + + Right-Left Wipe + + + Bottom-Top Wipe + + + Top-Bottom Wipe + + + Dissolve + + + Left-Right Glitter + + + Top-Bottom Glitter + + + Diagonal Glitter + + + duration of the transition effect + + + type of the transition effect + + + Constructs a Transition. + + + + Constructs a Transition. + + @param type type of the transition effect + + + Constructs a Transition. + + @param type type of the transition effect + @param duration duration of the transition effect + + + The transparency group dictionary. + + @author Paulo Soares + + + Constructs a transparencyGroup. + + + Determining the initial backdrop against which its stack is composited. + @param isolated + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + @param knockout + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + @since 5.0.2 + + + A boolean operator. + + + A boolean operator. + + + A boolean operator. + + + Creates a visibility expression. + @param type should be AND, OR, or NOT + + + @see com.itextpdf.text.pdf.PdfArray#add(int, com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#addFirst(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(float[]) + + + @see com.itextpdf.text.pdf.PdfArray#add(int[]) + + + A DocWriter class for PDF. +

+ When this PdfWriter is added + to a certain PdfDocument, the PDF representation of every Element + added to this Document will be written to the outputstream.

+
+ + The highest generation number possible. + @since iText 2.1.6 + + + + PdfCrossReference is an entry in the PDF Cross-Reference table. + + + Byte offset in the PDF file. + + + generation of the object. + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + @param generation generationnumber of the object + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + + + Returns the PDF representation of this PdfObject. + @param os + @throws IOException + + + Writes PDF syntax to the Stream + @param midSize + @param os + @throws IOException + + + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @see java.lang.Object#equals(java.lang.Object) + + + array containing the cross-reference table of the normal objects. + + + the current byteposition in the body. + + + Constructs a new PdfBody. + @param writer + + + + Gets a PdfIndirectReference for an object that will be created in the future. + @return a PdfIndirectReference + + + + Returns the offset of the Cross-Reference table. + + @return an offset + + + Returns the total number of objects contained in the CrossReferenceTable of this Body. + + @return a number of objects + + + Returns the CrossReferenceTable of the Body. + @param os + @param root + @param info + @param encryption + @param fileID + @param prevxref + @throws IOException + + + + Constructs a PDF-Trailer. + + @param size the number of entries in the PdfCrossReferenceTable + @param offset offset of the PdfCrossReferenceTable + @param root an indirect reference to the root of the PDF document + @param info an indirect reference to the info object of the PDF document + @param encryption + @param fileID + @param prevxref + + + Returns the PDF representation of this PdfObject. + @param writer + @param os + @throws IOException + + + Constructs a PdfWriter. + + + + Use this method to get an instance of the PdfWriter. + + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @return a new PdfWriter + + @throws DocumentException on error + + + Use this method to get an instance of the PdfWriter. + + @return a new PdfWriter + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @param listener A DocListener to pass to the PdfDocument. + @throws DocumentException on error + + + the pdfdocument object. + + + Gets the PdfDocument associated with this writer. + @return the PdfDocument + + + Use this method to get the info dictionary if you want to + change it directly (add keys and values to the info dictionary). + @return the info dictionary + + + Use this method to get the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Sets the initial leading for the PDF document. + This has to be done before the document is opened. + @param leading the initial leading + @since 2.1.6 + @throws DocumentException if you try setting the leading after the document was opened. + + + The direct content in this document. + + + The direct content under in this document. + + + Use this method to get the direct content for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Use this method to get the direct content under for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Resets all the direct contents to empty. + This happens when a new page is started. + + + body of the PDF document + + + Adds the local destinations to the body of the document. + @param dest the Hashtable containing the destinations + @throws IOException on error + + + Adds an object to the PDF body. + @param object + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Use this method for caching objects. + @param iobj @see PdfIndirectObject + + + Gets a PdfIndirectReference for an object that + will be created in the future. + @return the PdfIndirectReference + + + Returns the outputStreamCounter. + @return the outputStreamCounter + + + Holds value of property extraCatalog. + + + Sets extra keys to the catalog. + @return the catalog to change + + + The root of the page tree. + + + The PdfIndirectReference to the pages. + + + The current page number. + + + The value of the Tabs entry in the page dictionary. + @since 2.1.5 + + + Additional page dictionary entries. + @since 5.1.0 + + + Adds an additional entry for the page dictionary. + @since 5.1.0 + + + Gets the additional pageDictEntries. + @since 5.1.0 + + + Resets the additional pageDictEntries. + @since 5.1.0 + + + Use this method to make sure the page tree has a lineair structure + (every leave is attached directly to the root). + Use this method to allow page reordering with method reorderPages. + + + Use this method to reorder the pages in the document. + A null argument value only returns the number of pages to process. + It is advisable to issue a Document.NewPage() before using this method. + @return the total number of pages + @param order an array with the new page sequence. It must have the + same size as the number of pages. + @throws DocumentException if all the pages are not present in the array + + + Use this method to get a reference to a page existing or not. + If the page does not exist yet the reference will be created + in advance. If on closing the document, a page number greater + than the total number of pages was requested, an exception + is thrown. + @param page the page number. The first page is 1 + @return the reference to the page + + + Gets the pagenumber of this document. + This number can be different from the real pagenumber, + if you have (re)set the page number previously. + @return a page number + + + Sets the Viewport for the next page. + @param viewport an array consisting of Viewport dictionaries. + @since 5.1.0 + + + Sets the value for the Tabs entry in the page tree. + @param tabs Can be PdfName.R, PdfName.C or PdfName.S. + Since the Adobe Extensions Level 3, it can also be PdfName.A + or PdfName.W + @since 2.1.5 + + + + The PdfPageEvent for this document. + + + Gets the PdfPageEvent for this document or null + if none is set. + @return the PdfPageEvent for this document or null + if none is set + + + A number refering to the previous Cross-Reference Table. + + + The original file ID (if present). + + + + + Use this method to get the root outline + and construct bookmarks. + @return the root outline + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + Stores the version information for the header and the catalog. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Returns the version information. + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Use this method to add page labels + @param pageLabels the page labels + + + Adds named destinations in bulk. + Valid keys and values of the map can be found in the map + that is created by SimpleNamedDestination. + @param map a map with strings as keys for the names, + and structured strings as values for the destinations + @param page_offset number of pages that has to be added to + the page numbers in the destinations (useful if you + use this method in combination with PdfCopy). + @since iText 5.0 + + + Adds one named destination. + @param name the name for the destination + @param page the page number where you want to jump to + @param dest an explicit destination + @since iText 5.0 + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param js The JavaScript action + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param js The JavaScript action + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Use this method to adds a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + + + Adds a file attachment at the document level. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. + @param description the file description + @param fs the file specification + + + Adds a file attachment at the document level. + @param fs the file specification + + + action value + + + action value + + + action value + + + action value + + + action value + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + Sets the Collection dictionary. + @param collection a dictionary of type PdfCollection + + + signature value + + + signature value + + + Gets the AcroForm object. + @return the PdfAcroForm + + + Adds a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Adds the PdfAnnotation to the calculation order + array. + @param annot the PdfAnnotation to be added + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + XMP Metadata for the document. + + + Sets XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to set the XMP Metadata for each page. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to creates XMP Metadata based + on the metadata in the PdfDocument. + @since 5.4.4 just creates XmpWriter instance which will be serialized in close. + + + PDF/X level + + + PDF/X level + + + PDF/X level + + + Stores the PDF ISO conformance. + + + Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It + must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#isPdfX() + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + @param outputConditionIdentifier a value + @param outputCondition a value + @param registryName a value + @param info a value + @param destOutputProfile a value + @throws IOException on error + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + + Prefer the ICC_Profile-based version of this method. + @param outputConditionIdentifier a value + @param outputCondition a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance. + @param registryName a value + @param info a value + @param destOutputProfile a value + @since 1.x + + @throws IOException + + + Copies the output intent dictionary from other document to this one. + @param reader the other document + @param checkExistence true to just check for the existence of a valid output intent + dictionary, false to insert the dictionary if it exists + @throws IOException on error + @return true if the output intent dictionary exists, false + otherwise + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Mask to separate the encryption type from the encryption mode. + + + Add this to the mode to keep the metadata in clear text + + + Add this to the mode to keep encrypt only the embedded files. + @since 2.1.3 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_CONTENTS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_COPY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_ANNOTATIONS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_FILL_IN} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_SCREENREADERS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_ASSEMBLY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_DEGRADED_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_40} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_128} instead. Scheduled for removal at or after 2.2.0 + + + Contains the business logic for cryptography. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Holds value of property fullCompression. + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + The compression level of the content streams. + @since 2.1.3 + + + Sets the compression level to be used for streams written by this writer. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + The fonts of this document + + + The font number counter for the fonts in the document. + + + Adds a BaseFont to the document but not to the page resources. + It is used for templates. + @param bf the BaseFont to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The form XObjects in this document. The key is the xref and the value + is Object[]{PdfName, template}. + + + The name counter for the form XObjects name. + + + Adds a template to the document but not to the page resources. + @param template the template to add + @param forcedName the template name, rather than a generated one. Can be null + @return the PdfName for this template + + + Releases the memory used by a template by writing it to the output. The template + can still be added to any content but changes to the template itself won't have + any effect. + @param tp the template to release + @throws IOException on error + + + Gets a page from other PDF document. The page can be used as + any other PdfTemplate. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Returns the PdfReaderInstance associated with the specified reader. + Multiple calls with the same reader object will return the same + PdfReaderInstance. + @param reader the PDF reader that you want an instance for + @return the instance for the provided reader + @since 5.0.3 + + + Writes the reader to the document and frees the memory used by it. + The main use is when concatenating multiple documents to keep the + memory usage restricted to the current appending document. + @param reader the PdfReader to free + @throws IOException on error + + + Gets the current document size. This size only includes + the data already writen to the output stream, it does not + include templates or fonts. It is usefull if used with + freeReader() when concatenating many documents + and an idea of the current size is needed. + @return the approximate size without fonts or templates + + + The colors of this document + + + The color number counter for the colors in the document. + + + Adds a SpotColor to the document but not to the page resources. + @param spc the SpotColor to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The patterns of this document + + + The patten number counter for the colors in the document. + + + Mark this document for tagging. It must be called before open. + + + Check if the document is marked for tagging. + @return true if the document is marked for tagging + + + Fix structure of tagged document: remove unused objects, remove unused items from class map, + fix xref table due to removed objects. + + + Flushes merged AcroFields to document (if any). + + + Gets the structure tree root. If the document is not marked for tagging it will return null. + @return the structure tree root + + + Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer + state. It's advisable to only call this method right before close and do any modifications + at that time. + @return the Optional Content Properties Dictionary + + + Sets a collection of optional content groups whose states are intended to follow + a "radio button" paradigm. That is, the state of at most one optional + content group in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + @param group the radio group + + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + @param layer the layer that needs to be added to the array of locked OCGs + @since 2.1.2 + + + Gives the size of the media box. + @return a Rectangle + + + Sets the crop box. The crop box should not be rotated even if the + page is rotated. This change only takes effect in the next + page. + @param crop the crop box + + + Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed". + @param boxName the box size + @param size the size + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + Returns the intersection between the crop, trim art or bleed box and the parameter intersectingRectangle. + This method returns null when + - there is no intersection + - any of the above boxes are not defined + - the parameter intersectingRectangle is null + + @param boxName crop, trim, art, bleed + @param intersectingRectangle the rectangle that intersects the rectangle associated to the boxName + @return the intersection of the two rectangles + + + Use this method to make sure a page is added, + even if it's empty. If you use SetPageEmpty(false), + invoking NewPage() after a blank page will add a newPage. + SetPageEmpty(true) won't have any effect. + @param pageEmpty the state + + + action value + + + action value + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the the thumbnail image for the current page. + @param image the image + @throws PdfException on error + @throws DocumentException or error + + + A group attributes dictionary specifying the attributes + of the page�s page group for use in the transparent + imaging model + + + The default space-char ratio. + + + Disable the inter-character spacing. + + + The ratio between the extra word spacing and the extra character spacing. + Extra word spacing will grow ratio times more than extra character spacing. + + + Sets the ratio between the extra word spacing and the extra character spacing + when the text is fully justified. + Extra word spacing will grow spaceCharRatio times more than extra character spacing. + If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing + will be zero. + @param spaceCharRatio the ratio between the extra word spacing and the extra character spacing + + + Use the default run direction. + + + Do not use bidirectional reordering. + + + Use bidirectional reordering with left-to-right + preferential run direction. + + + Use bidirectional reordering with right-to-left + preferential run direction. + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + A UserUnit is a value that defines the default user space unit. + The minimum UserUnit is 1 (1 unit = 1/72 inch). + The maximum UserUnit is 75,000. + Remark that this userunit only works starting with PDF1.6! + + + Gets the default colorspaces. + @return the default colorspaces + + + + Sets the image sequence to follow the text in strict order. + @param strictImageSequence new value of property strictImageSequence + + + + Clears text wrapping around images (if applicable). + Method suggested by Pelikan Stephan + @throws DocumentException + + + Dictionary, containing all the images of the PDF document + + + This is the list with all the images in the document. + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @param fixedRef the reference to used. It may be null, + a PdfIndirectReference or a PRIndirectReference. + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Writes a PdfImage to the outputstream. + + @param pdfImage the image to be added + @return a PdfIndirectReference to the encapsulated image + @throws PdfException when a document isn't open yet, or has been closed + + + return the PdfIndirectReference to the image with a given name. + + @param name the name of the image + @return a PdfIndirectReference + + + A Hashtable with Stream objects containing JBIG2 Globals + @since 2.1.5 + + + Gets an indirect reference to a JBIG2 Globals stream. + Adds the stream if it hasn't already been added to the writer. + @param content a byte array that may already been added to the writer inside a stream object. + @since 2.1.5 + + + A flag indicating the presence of structure elements that contain user properties attributes. + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + @param userProperties the user properties flag + + + Holds value of property RGBTranparency. + + + Sets the transparency blending colorspace to RGB. The default blending colorspace is + CMYK and will result in faded colors in the screen and in printing. Calling this method + will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages + until other value is set. + Note that this is a generic solution that may not work in all cases. + @param rgbTransparencyBlending true to set the transparency blending colorspace to RGB, false + to use the default blending colorspace + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param rect + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param title + @param content + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param action + @param subtype + @return + + + Gets the list of the standard structure element names (roles). + @return + + + + @author psoares + + + Creates a new instance of PdfXConformanceException. + + + Creates a new instance of PdfXConformanceException. + @param s + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + @param inp the PFM file + @param outp the AFM file + @throws IOException on error + + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + Character class. This is a minor attempt to overcome the problem that + in the pfm file, all unused characters are given the width of space. + Note that this array isn't used in iText. + + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + This class captures an AcroForm on input. Basically, it extends Dictionary + by indexing the fields of an AcroForm + @author Mark Thompson + + + This class holds the information for a single field + + + Returns the name of the widget annotation (the /NM entry). + @return a String or null (if there's no /NM key) + + + Constructor + @param reader reader of the input file + + + Number of fields found + @return size + + + Given the title (/T) of a reference, return the associated reference + @param name a string containing the path + @return a reference to the field, or null + + + Read, and comprehend the acroform + @param root the docment root + + + After reading, we index all of the fields. Recursive. + @param fieldlist An array of fields + @param fieldDict the last field dictionary we encountered (recursively) + @param parentPath the pathname of the field, up to this point or null + + + merge field attributes from two dictionaries + @param parent one dictionary + @param child the other dictionary + @return a merged dictionary + + + stack a level of dictionary. Merge in a dictionary from this level + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + + + Creates a new PDF stream object that will replace a stream + in a existing PDF file. + @param reader the reader that holds the existing PDF + @param conts the new content + @param compressionLevel the compression level for the content + @since 2.1.3 (replacing the existing constructor without param compressionLevel) + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @since iText 2.1.1 + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @param compressionLevel a value between -1 and 9 (ignored if compress == false) + @since iText 2.1.3 + + + Sets the data associated with the stream, as-is. This method will not + remove or change any existing filter: the data has to match an existing + filter or an appropriate filter has to be set. + + @param data data, possibly encrypted and/or compressed + @since 5.5.0 + + + Sets the data associated with the stream + @param data raw data, decrypted and uncompressed. + + + + @author Paulo Soares + + + Creates a PRTokeniser for the specified {@link RandomAccessSource}. + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + @param file the source + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
The same as calling {@link #isWhitespace(int, boolean) isWhiteSpace(ch, true)}. + @param ch int + @return boolean + @since 5.5.1 +
+ + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + @param ch int + @param isWhitespace boolean + @return boolean + @since 5.5.1 + + + Gets current reference number. If parsing was failed with NumberFormatException -1 will be return. + + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. +
The same as calling {@link #readLineSegment(byte[], boolean) readLineSegment(input, true)}. + + @param input byte[] + @return boolean + @throws IOException + @since 5.5.1 +
+ + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. + + @param input byte[] + @param isNullWhitespace boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method {@link #readLineSegment(byte[]) readLineSegment(input)} + @return boolean + @throws IOException + @since 5.5.1 + + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + Holds value of property layout. + + + Holds value of property image. + + + Holds value of property template. + + + Holds value of property scaleIcon. + + + Holds value of property proportionalIcon. + + + Holds value of property iconVerticalAdjustment. + + + Holds value of property iconHorizontalAdjustment. + + + Holds value of property iconFitToBounds. + + + Creates a new instance of PushbuttonField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, + LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, + LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, + LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. + The default is LAYOUT_LABEL_ONLY. + @param layout New value of property layout. + + + Sets the icon as an image. + @param image the image + + + Sets the icon as a template. + @param template the template + + + Sets the way the icon will be scaled. Possible values are + SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, + SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. + The default is SCALE_ICON_ALWAYS. + @param scaleIcon the way the icon will be scaled + + + Sets the way the icon is scaled. If true the icon is scaled proportionally, + if false the scaling is done anamorphicaly. + @param proportionalIcon the way the icon is scaled + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. + A value of 0 positions the icon at the bottom of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconVerticalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. + A value of 0 positions the icon at the left of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconHorizontalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon + + + Gets the button appearance. + @throws IOException on error + @throws DocumentException on error + @return the button appearance + + + Gets the pushbutton field. + @throws IOException on error + @throws DocumentException on error + @return the pushbutton field + + + If true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account. The default + is false. + @param iconFitToBounds if true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account + + + Holds value of property iconReference. + + + Sets the reference to an existing icon. + @param iconReference the reference to an existing icon + + +

A simple, fast array of bits, represented compactly by an array of ints internally.

+ + @author Sean Owen +
+ + @param i bit to get + @return true iff bit i is set + + + Sets bit i. + + @param i bit to set + + + Flips bit i. + + @param i bit to set + + + Sets a block of 32 bits, starting at bit i. + + @param i first bit to set + @param newBits the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + @param start start of range, inclusive. + @param end end of range, exclusive + @param value if true, checks that bits in range are set, otherwise checks that they are not set + @return true iff all bits are set or not set in range, according to value argument + @throws IllegalArgumentException if end is less than or equal to start + + + @return underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + Reverses all bits in the array. + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+ +

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+ +

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+ + @author Sean Owen + @author dswitkin@google.com (Daniel Switkin) +
+ +

Gets the requested bit, where true means black.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) + @return value of given bit in matrix +
+ +

Sets the given bit to true.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ +

Flips the given bit.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ + @param left The horizontal position to begin at (inclusive) + @param top The vertical position to begin at (inclusive) + @param width The width of the region + @param height The height of the region +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + @param y The row to retrieve + @param row An optional caller-allocated BitArray, will be allocated if null or too small + @return The resulting BitArray - this reference should always be used even when passing + your own row + + + @return The width of the matrix + + + @return The height of the matrix + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + @return row/column dimension of this matrix + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This class implements an array of unsigned bytes. + + @author dswitkin@google.com (Daniel Switkin) + + + Access an unsigned byte at location index. + @param index The index in the array to access. + @return The unsigned value of the byte as an int. + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + @author Sean Owen + + + @param name character set ECI encoding name + @return {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal + but unsupported + + + These are a set of hints that you may pass to Writers to specify their behavior. + + @author dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by ChooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + + @return the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + Append mode info. On success, store the result in "bits". + + + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + +

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard.

+ + @author Sean Owen +
+ + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + @param bits int containing the two bits encoding a QR Code's error correction level + @return {@link ErrorCorrectionLevel} representing the encoded error correction level + + +

Encapsulates a QR Code's format information, including the data mask used and + error correction level.

+ + @author Sean Owen + @see ErrorCorrectionLevel +
+ + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + @param maskedFormatInfo1 format info indicator, with mask still applied + @param maskedFormatInfo2 second copy of same info; both are checked at the same time + to establish best match + @return information about the format it specifies, or null + if doesn't seem to match any known pattern + + +

This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations.

+ +

Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used.

+ + @author Sean Owen +
+ + Create a representation of GF(256) using the given primitive polynomial. + + @param primitive irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + @return the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + + @return sum/difference of a and b + + + @return 2 to the power of a in GF(256) + + + @return base 2 log of a in GF(256) + + + @return multiplicative inverse of a + + + @param a + @param b + @return product of a and b in GF(256) + + +

Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable.

+ +

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+ + @author Sean Owen +
+ + @param field the {@link GF256} instance representing the field to use + to perform computations + @param coefficients coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + @throws IllegalArgumentException if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + @return degree of this polynomial + + + @return true iff this polynomial is the monomial "0" + + + @return coefficient of x^degree term in this polynomial + + + @return evaluation of this polynomial at a given point + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + +

See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard.

+ + @author Sean Owen +
+ + @param bits four bits encoding a QR Code data mode + @return {@link Mode} encoded by these bits + @throws IllegalArgumentException if bits do not correspond to a known mode + + + @param version version in question + @return number of bits used, in this QR Code symbol {@link Version}, to encode the + count of characters that will follow encoded in this {@link Mode} + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + + @author dswitkin@google.com (Daniel Switkin) + + +

Implements Reed-Solomon enbcoding, as the name implies.

+ + @author Sean Owen + @author William Rucklidge +
+ +

Thrown when an exception occurs during Reed-Solomon decoding, such as when + there are too many errors to correct.

+ + @author Sean Owen +
+ + See ISO 18004:2006 Annex D + + @author Sean Owen + + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + +

Deduces version information purely from QR Code dimensions.

+ + @param dimension dimension in modules + @return {@link Version} for a QR Code of that dimension + @throws FormatException if dimension is not 1 mod 4 +
+ + See ISO 18004:2006 Annex E + + +

Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version.

+
+ +

Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format.

+
+ + See ISO 18004:2006 6.5.1 Table 9 + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + @author dswitkin@google.com (Daniel Switkin) + + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Holds value of property checkType. + + + Holds value of property onValue. + + + Holds value of property checked. + + + Creates a new instance of RadioCheckField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. It must not be null + @param onValue the value when the field is checked + + + Sets the checked symbol. It can be + TYPE_CHECK, + TYPE_CIRCLE, + TYPE_CROSS, + TYPE_DIAMOND, + TYPE_SQUARE and + TYPE_STAR. + @param checkType the checked symbol + + + Sets the value when the field is checked. + @param onValue the value when the field is checked + + + Sets the state of the field to checked or unchecked. + @param checked the state of the field, true for checked + and false for unchecked + + + Gets the field appearance. + @param isRadio true for a radio field and false + for a check field + @param on true for the checked state, false + otherwise + @throws IOException on error + @throws DocumentException on error + @return the appearance + + + Gets the special field appearance for the radio circle. + @param on true for the checked state, false + otherwise + @return the appearance + + + Gets a radio group. It's composed of the field specific keys, without the widget + ones. This field is to be used as a field aggregator with {@link PdfFormField#addKid(PdfFormField) AddKid()}. + @param noToggleToOff if true, exactly one radio button must be selected at all + times; clicking the currently selected button has no effect. + If false, clicking + the selected button deselects it, leaving no button selected. + @param radiosInUnison if true, a group of radio buttons within a radio button field that + use the same value for the on state will turn on and off in unison; that is if + one is checked, they are all checked. If false, the buttons are mutually exclusive + (the same behavior as HTML radio buttons) + @return the radio group + + + Gets the radio field. It's only composed of the widget keys and must be used + with {@link #getRadioGroup(bool,bool)}. + @return the radio field + @throws IOException on error + @throws DocumentException on error + + + Gets the check field. + @return the check field + @throws IOException on error + @throws DocumentException on error + + + Gets a radio or check field. + @param isRadio true to get a radio field, false to get + a check field + @throws IOException on error + @throws DocumentException on error + @return the field + + + Intended to be layered on top of a low level RandomAccessSource object. Provides + functionality useful during parsing: +
    +
  • tracks current position in the file
  • +
  • allows single byte pushback
  • +
  • allows reading of multi-byte data structures (int, long, String) for both Big and Little Endian representations
  • +
  • allows creation of independent 'views' of the underlying data source
  • +
+ + @author Paulo Soares, Kevin Day +
+ + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + @deprecated use {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + @param filename + @throws IOException + + + Creates an independent view of the specified source. Closing the new object will not close the source. + Closing the source will have adverse effect on the behavior of the new view. + @deprecated use {@link RandomAccessFileOrArray#createView()} instead + @param source the source for the new independent view + + + Creates an independent view of this object (with it's own file pointer and pushback queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + @return the new view + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + @param byteSource the byte source to wrap + + + Constructs a new RandomAccessFileOrArrayObject + @param filename the file to open (can be a file system file or one of the following url strings: file://, http://, https://, jar:, wsjar:, vfszip: + @param forceRead if true, the entire file will be read into memory + @param plainRandomAccess if true, a regular RandomAccessFile is used to access the file contents. If false, a memory mapped file will be used, unless the file cannot be mapped into memory, in which case regular RandomAccessFile will be used + @throws IOException if there is a failure opening or reading the file + @deprecated use {@link RandomAccessSourceFactory#createBestSource(String)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param url + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(URL)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param is + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(InputStream)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param arrayIn + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(byte[])} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + @param b the byte to push + + + Reads a single byte + @return the byte, or -1 if EOF is reached + @throws IOException + + + + + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + Interface to sign a document. The signing is fully done externally, including the container composition. + @author Paulo Soares + + + Produces the container with the signature. + @param data the data to sign + @return a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + @throws GeneralSecurityException + + + Modifies the signature dictionary to suit the container. At least the keys PdfName.FILTER and + PdfName.SUBFILTER will have to be set. + @param signDic the signature dictionary + + + Helps to locate xml stream + + + Constructor for XPath2 expression + + + Get XPath2 expression + + + Get XmlNamespaceManager to resolve namespace conflicts + + + Class that signs your XML. + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param keyInfo KeyInfo for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param includeSignaturePolicy if true SignaturePolicyIdentifier will be included (XAdES-EPES) + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param publicKey PublicKey for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates new PdfSignatureAppDictionary + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary + + @param name + + + Dictionary that stores signature build properties. + @author Kwinten Pisman + + + Creates new PdfSignatureBuildProperties + + + Sets the signatureCreator property in the underlying + {@link PdfSignatureAppDictionary} dictionary. + + @param name + + + Gets the {@link PdfSignatureAppDictionary} from this dictionary. If it + does not exist, it adds a new {@link PdfSignatureAppDictionary} and + returns this instance. + + @return {@link PdfSignatureAppDictionary} + + + Class that encapsulates the signature policy information + @author J. Arturo + + Sample: + + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + a class that holds an X509 name + + + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + + email address in Verisign certificates + + + object identifier + + + LDAP User id. + + + A Hashtable with default symbols + + + A Hashtable with values + + + Constructs an X509 name + @param seq an Asn1 Sequence + + + Constructs an X509 name + @param dirName a directory name + + + gets a field array from the values Hashmap + @param name + @return an ArrayList + + + getter for values + @return a Hashtable with the fields of the X509 name + + + @see java.lang.Object#toString() + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + Get the issuer fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in + @param enc a TBSCertificate in a byte array + @return a DERObject + + + Get the subject fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "subject" from the TBSCertificate bytes that are passed in + @param enc A TBSCertificate in a byte array + @return a DERObject + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + Gets the URL of the Certificate Revocation List for a Certificate + @param certificate the Certificate + @return the String where you can check if the certificate was revoked + @throws CertificateParsingException + @throws IOException + + + Retrieves the OCSP URL from the given certificate. + @param certificate the certificate + @return the URL or null + @throws IOException + + + Gets the URL of the TSA if it's available on the certificate + @param certificate a certificate + @return a TSA URL + @throws IOException + + + @param certificate the certificate from which we need the ExtensionValue + @param oid the Object Identifier value for the extension. + @return the extension value as an ASN1Primitive object + @throws IOException + + + Gets a String from an ASN1Primitive + @param names the ASN1Primitive + @return a human-readable String + @throws IOException + + + This class consists of some methods that allow you to verify certificates. + + + Verifies a single certificate. + @param cert the certificate to verify + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return a String with the error description or null + if no error + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies an OCSP response against a KeyStore. + @param ocsp the OCSP response + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + Verifies a time stamp against a KeyStore. + @param ts the time stamp + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the CertificateVerifier in a chain of verifiers. + @param verifier the previous verifier in the chain + + + Decide whether or not online checking is allowed. + @param onlineCheckingAllowed + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @param signDate the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + @author Paulo Soares + + + The CRL as a byte array. + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + @param crlEncoded the CRL bytes + + + Returns the CRL bytes (the parameters are ignored). + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + @author Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + Creates a CrlClientOnline instance using one or more URLs. + + + Creates a CrlClientOnline instance using a certificate chain. + + + Adds an URL to the list of CRL URLs + @param url an URL in the form of a String + + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + @param verifier the next verifier in the chain + @param crls a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single CRL. + @param crl the Certificate Revocation List + @param signCert a certificate that needs to be verified + @param issuerCert its issuer + @param signDate the sign date + @return true if the verification succeeded + @throws GeneralSecurityException + + + Fetches a CRL for a specific certificate online (without further checking). + @param signCert the certificate + @param issuerCert its issuer + @return an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + @param crl the CRL + @param crlIssuer the trusted anchor + @return true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3 + + + Algorithm available for signatures since PDF 1.6 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps the name of a digest algorithm with its ID. + + + Creates a MessageDigest object that can be used to create a hash. + @param hashAlgorithm the algorithm you want to use to create a hash + @param provider the provider you want to use to create the hash + @return a MessageDigest object + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws GeneralSecurityException + + + Creates a hash using a specific digest algorithm and a provider. + @param data the message of which you want to create a hash + @param hashAlgorithm the algorithm used to create the hash + @param provider the provider used to create the hash + @return the hash + @throws GeneralSecurityException + @throws IOException + + + Gets the digest name for a certain id + @param oid an id (for instance "1.2.840.113549.2.5") + @return a digest name (for instance "MD5") + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + @param name the name of the digest algorithm + @return an oid + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + @param oid an id (for instance "1.2.840.113549.1.1.1") + @return an algorithm name (for instance "RSA") + @since 2.1.6 + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists into your PDF. + @author Paulo Soares + + + Gets a collection of byte array each representing a crl. + @param checkCert the certificate from which a CRL URL can be obtained + @param url a CRL url if you don't want to obtain it from the certificate + @return a collection of byte array each representing a crl. It may return null or an empty collection + + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + @author Paulo Soares + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + + + Signs it using the encryption algorithm in combination with + the digest algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @throws GeneralSecurityException + + + Interface for the OCSP Client. + @since 2.1.6 + + + * Gets an encoded byte array with OCSP validation. The method should not throw an exception. + * @param checkCert to certificate to check + * @param rootCert the parent certificate + * @param url the url to get the verification. It it's null it will be taken + * from the check cert or from other implementation specific source + * @return a byte array with the validation or null if the validation could not be obtained + + + + Get the time stamp token size estimate. + Implementation must return value large enough to accomodate the entire token + returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call. + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint byte[] - data imprint to be time-stamped + @return byte[] - encoded, TSA signed data of the timeStampToken + @throws Exception - TSA request failed + + + PAdES-LTV Timestamp + @author Pulo Soares + + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. + @param sap the signature appearance + @param tsa the timestamp generator + @param signatureName the signature name or null to have a name generated + automatically + @throws Exception + + + Add verification according to PAdES-LTV (part 4) + @author psoares + + + What type of verification to include + + + Include only OCSP + + + Include only CRL + + + Include both OCSP and CRL + + + Include CRL only if OCSP can't be read + + + Options for how many certificates to include + + + Include verification just for the signing certificate + + + Include verification for the whole chain of certificates + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys + + + Include certificates in the DSS and VRI dictionaries + + + Do not include certificates in the DSS and VRI dictionaries + + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + @param stp the PdfStamper to apply the validation to + + + Add verification for a particular signature + @param signatureName the signature to validate (it may be a timestamp) + @param ocsp the interface to get the OCSP + @param crl the interface to get the CRL + @param certOption + @param level the validation options to include + @param certInclude + @return true if a validation was generated, false otherwise + @throws Exception + + + Returns the issuing certificate for a child certificate. + @param cert the certificate for which we search the parent + @param certs an array with certificates that contains the parent + @return the partent certificate + + + Alternative addVerification. + I assume that inputs are deduplicated. + + @throws IOException + @throws GeneralSecurityException + + + + Merges the validation with any validation already in the document or creates + a new one. + @throws IOException + + + The Logger instance + + + Do we need to check all certificate, or only the signing certificate? + + + Verify root. + + + A reader object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + Creates a VerificationData object for a PdfReader + @param reader a reader for the document we want to verify. + @throws GeneralSecurityException + + + Sets an extra verifier. + @param verifier the verifier to set + + + Sets the certificate option. + @param option Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + @return a PdfPKCS7 object + @throws GeneralSecurityException + + + Verifies all the document-level timestamps and all the signatures in the document. + @throws IOException + @throws GeneralSecurityException + + + Verifies a document level timestamp. + @throws GeneralSecurityException + @throws IOException + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + @param chain + @throws GeneralSecurityException + + + Verifies certificates against a list of CRLs and OCSP responses. + @param signingCert + @param issuerCert + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate) + + + Switches to the previous revision. + @throws IOException + @throws GeneralSecurityException + + + Gets a list of X509CRL objects from a Document Security Store. + @return a list of CRLs + @throws GeneralSecurityException + @throws IOException + + + Gets OCSP responses from the Document Security Store. + @return a list of BasicOCSPResp objects + @throws IOException + @throws GeneralSecurityException + + + Class that signs your PDF. + @author Paulo Soares + + + The Logger instance. + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Processes a CRL list. + @param cert a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + @param crlList a list of CrlClient implementations + @return a collection of CRL bytes that can be embedded in a PDF. + + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. + @param sap the PdfSignatureAppearance + @param externalSignatureContainer the interface providing the actual signing + @param estimatedSize the reserved size for the signature + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs a PDF where space was already reserved. + @param reader the original PDF + @param fieldName the field to sign. It must be the last field + @param outs the output PDF + @param externalSignatureContainer the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + + + OcspClient implementation using BouncyCastle. + @author Paulo Soares + + + Create default implemention of {@code OcspClient}. + Note, if you use this constructor, OCSP response will not be verified. + + + Create {@code OcspClient} + @param verifier will be used for response verification. {@see OCSPVerifier}. + + + Gets OCSP response. If {@see OCSPVerifier} was set, the response will be checked. + + + Gets an encoded byte array with OCSP validation. The method should not throw an exception. + + @param checkCert to certificate to check + @param rootCert the parent certificate + @param url to get the verification. It it's null it will be taken + from the check cert or from other implementation specific source + @return a byte array with the validation or null if the validation could not be obtained + + + Generates an OCSP request using BouncyCastle. + @param issuerCert certificate of the issues + @param serialNumber serial number + @return an OCSP request + @throws OCSPException + @throws IOException + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + @param verifier the next verifier in the chain + @param ocsps a list of OCSP responses + + + Verifies if a a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single OCSP response + @param ocspResp the OCSP response + @param signCert the certificate that needs to be checked + @param issuerCert the certificate of CA + @param signDate sign date + @return {@code true}, in case successful check, otherwise false. + @throws GeneralSecurityException + @throws IOException + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + @param ocspResp the OCSP response + @param issuerCert the issuer certificate + @throws GeneralSecurityException + @throws IOException + + + Verifies if the response is valid. + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + NOTE. Use {@code isValidResponse()} instead. + @param ocspResp the response object + @param issuerCert the issuer certificate + @return true if the response can be trusted + + + Checks if an OCSP response is genuine + @param ocspResp the OCSP response + @param responderCert the responder certificate + @return true if the OCSP response verifies against the responder certificate + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking). + @param signCert the signing certificate + @param issuerCert the issuer certificate + @return an OCSP response + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + Assembles all the elements needed to create a signature, except for the data. + @param privKey the private key + @param certChain the certificate chain + @param interfaceDigest the interface digest + @param hashAlgorithm the hash algorithm + @param provider the provider or null for the default provider + @param hasRSAdata true if the sub-filter is adbe.pkcs7.sha1 + @throws InvalidKeyException on error + @throws NoSuchProviderException on error + @throws NoSuchAlgorithmException on error + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + @param contentsKey the /Contents key + @param certsKey the /Cert key + + + Use this constructor if you want to verify a signature. + @param contentsKey the /Contents key + @param filterSubtype the filtersubtype + @param provider the provider or null for the default provider + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Getter/setter for property sigName. + @return Value of property sigName. + + + Getter for property reason. + @return Value of property reason. + + + Getter for property location. + @return Value of property location. + + + Getter for property signDate. + @return Value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + @return the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + @return the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1" + + + Returns the name of the digest algorithm, e.g. "SHA256". + @return the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + @return the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + @param digest the digest. This is the actual signature + @param RSAdata the extra data that goes into the data tag in PKCS#7 + @param digestEncryptionAlgorithm the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + This method is used both for signing and verifying + @param buf the data buffer + @param off the offset in the data buffer + @param len the data length + @throws SignatureException on error + + + Gets the bytes for the PKCS#1 object. + @return a byte array + + + Gets the bytes for the PKCS7SignedData object. + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + @param secondDigest the digest in the authenticatedAttributes + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, OR a time-stamp-authority client + may be provided. + @param secondDigest the digest in the authenticatedAttributes + @param tsaClient TSAClient - null or an optional time stamp authority client + @return byte[] the bytes for the PKCS7SignedData object + @since 2.1.6 + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + @param timeStampToken byte[] - time stamp token, DER encoded signedData + @return ASN1EncodableVector + @throws IOException + + + + This method provides that encoding and the parameters must be + exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. + + @param secondDigest the content digest + @return the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + Verify the digest. + @throws SignatureException on error + @return true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + @throws java.security.NoSuchAlgorithmException on error + @return true if it checks false otherwise + @since 2.1.6 + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + @return the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + @return the X.509 certificates associated with this PKCS#7 object + @since 2.1.6 + + + Get the X.509 certificate actually used to sign the digest. + @return the X.509 certificate actually used to sign the digest + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + @return the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + @return the OCSP basic response or null + @since 2.1.6 + + + Checks if OCSP revocation refers to the document signing certificate. + @return true if it checks, false otherwise + @since 2.1.6 + + + Helper method that creates the BasicOCSPResp object. + @param seq + @throws IOException + + + True if there's a PAdES LTV time stamp. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + @return true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + @return the timestamp token or null + @since 2.1.6 + + + Gets the timestamp date + @return a date + @since 2.1.6 + + + Returns the filter subtype. + + + Returns the encryption algorithm + @return the name of an encryption algorithm + + + Implementation of the ExternalSignature interface that can be used + when you have a PrivateKey object. + @author Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Creates an ExternalSignature instance + @param pk a PrivateKey object + @param hashAlgorithm the hash algorithm (e.g. "SHA-1", "SHA-256",...) + @param provider the security provider (e.g. "BC") + + + Creates a message digest using the hash algorithm + and signs it using the encryption algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @see com.itextpdf.text.pdf.security.ExternalSignature#sign(byte[]) + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + The Logger instance + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + + @param verifier + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + + @param keyStore + a root store + + + Verifies a single certificate against a key store (if present). + + @param signCert + the certificate to verify + @param issuerCert + the issuer certificate + @param signDate + the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + A list of IDs that are used by the security classes + + + Class that contains a field lock action and + an array of the fields that are involved. + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance + + + Getter for the field lock action. + + + Getter for the fields involved in the lock action. + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + + Getter to find out if the signature is a certification signature. + @return true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + @return true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + @return true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + @return an Array with field names + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. +

+ Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. +

+ @since 2.1.6 +
+ + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + The default value for the hash algorithm + + + Estimate of the received time stamp token + + + The default value for the hash algorithm + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + @param tokSzEstimate int - estimated size of received time stamp token (DER encoded) + + + @param tsaInfo the tsaInfo to set + + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint data imprint to be time-stamped + @return encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + @return - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + @param info a TimeStampTokenInfo object + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + @param certificate the certificate that was successfully verified + @param verifierClass the class that was used for verification + @param message the reason why the certificate could be verified + + + A single String explaining which certificate was verified, how and why. + @see java.lang.Object#toString() + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + + + + The certificate with the private key + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + The certificate with the private key + The hash algorithm for the signature. As the Windows CAPI is used + to do the signature the only hash guaranteed to exist is SHA-1 + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + + Generates a list of numbers from a string. + @param ranges the comma separated ranges + @param maxNumber the maximum number in the range + @return a list with the numbers as Integer + + + Implements a shading pattern as a Color. + + @author Paulo Soares + + + + Creates a new instance of SimpleBookmark + + + Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. + (Contributed by Kazuya Ujihara) + @param indirect + 2004-06-13 + + + Gets a List with the bookmarks. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @return a List with the bookmarks or null if the + document doesn't have any + + + Gets a List with the bookmarks that are children of outline. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @param outline the outline dictionary to get bookmarks from + @param includeRoot indicates if to include outline parameter itself into returned list of bookmarks + @return a List with the bookmarks or null if the + document doesn't have any + + + Removes the bookmark entries for a number of page ranges. The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageRange the page ranges, always in pairs. + + + For the pages in range add the pageShift to the page number. + The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageShift the number to add to the pages in range + @param pageRange the page ranges, always in pairs. It can be null + to include all the pages + + + Exports the bookmarks to XML. Only of use if the generation is to be include in + some other XML document. + @param list the bookmarks + @param out the export destination. The writer is not closed + @param indent the indentation level. Pretty printing significant only. Use -1 for no indents. + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + + Exports the bookmarks to XML. + @param list the bookmarks + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the bookmarks from XML. + @param in the XML source. The stream is not closed + @throws IOException on error + @return the bookmarks + + + Import the bookmarks from XML. + @param in the XML source. The reader is not closed + @throws IOException on error + @return the bookmarks + + + + @author Paulo Soares + + + + Exports the bookmarks to XML. + @param names the names + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the names from XML. + @param inp the XML source. The stream is not closed + @throws IOException on error + @return the names + + + Import the names from XML. + @param inp the XML source. The reader is not closed + @throws IOException on error + @return the names + + + + @author psoares + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + @return an escaped byte array + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + + + Converts an array of unsigned 16bit numbers to an array of bytes. + The input values are presented as chars for convenience. + + @param chars the array of 16bit numbers that should be converted + @return the resulting byte array, twice as large as the input + + + Supports text, combo and list fields generating the correct appearances. + All the option in the Acrobat GUI are supported in an easy to use API. + @author Paulo Soares + + + Holds value of property defaultText. + + + Holds value of property choices. + + + Holds value of property choiceExports. + + + Holds value of property choiceSelection. + + + Represents the /TI value + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Obfuscates a password String. + Every character is replaced by an asterisk (*). + + @param text + @return String + @since 2.1.5 + + + Get the PdfAppearance of a text or combo field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Get the PdfAppearance of a list field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Gets a new text field. + @throws IOException on error + @throws DocumentException on error + @return a new text field + + + Gets a new combo field. + @throws IOException on error + @throws DocumentException on error + @return a new combo field + + + Gets a new list field. + @throws IOException on error + @throws DocumentException on error + @return a new list field + + + Sets the default text. It is only meaningful for text fields. + @param defaultText the default text + + + Sets the choices to be presented to the user in list/combo + fields. + @param choices the choices to be presented to the user + + + Sets the export values in list/combo fields. If this array + is null then the choice values will also be used + as the export values. + @param choiceExports the export values in list/combo fields + + + Sets the zero based index of the selected item. + @param choiceSelection the zero based index of the selected item + + + Sets the top visible choice for lists; + + @since 5.5.3 + @param visibleTopChoice index of the first visible item (zero-based array) + Returns the index of the top visible choice of a list. Default is -1. + @return the index of the top visible choice + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Holds value of property substitutionFonts. + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Holds value of property extensionFont. + + + Sets the extensionFont. This font will be searched before the + substitution fonts. It may be null. + @param extensionFont New value of property extensionFont. + + + Reads a Truetype font + + @author Paulo Soares + + + The code pages possible for a True Type font. + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + The file in use. + + + The file name. + + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + The index for the TTC font. It is an empty string for a + TTF file. + + + The style modifier + + + The content of table 'head'. + + + The content of table 'hhea'. + + + The content of table 'OS/2'. + + + The width of the glyphs. This is essentially the content of table + 'hmtx' normalized to 1000 units. + + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an int[2] where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 + units. + + + + + By James for unicode Ext.B + + + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + The font name. + This name is usually extracted from the table 'name' with + the 'Name ID' 6. + + + The font subfamily + This subFamily name is usually extracted from the table 'name' with + the 'Name ID' 2 or 'Name ID' 17. + + + The full name of the font 'Name ID' 1 or 'Name ID' 16 + + + All the names auf the Names-Table + + + The family name of the font + + + + true if all the glyphs have the same width. + + + The components of table 'head'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'hhea'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'OS/2'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + This constructor is present to allow extending the class. + + + Creates a new TrueType font. + @param ttFile the location of the font on file. The file must end in '.ttf' or + '.ttc' but can have modifiers after the name + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + @param name the full name + @return the simple file name + + + Reads the tables 'head', 'hhea', 'OS/2', 'post' and 'maxp' filling several variables. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the Postscript font name. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + @return the Postscript font name + + + Extracts the names of the font in all the languages available. + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Extracts all the names of the names-Table + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Reads the font data. + @param ttfAfm the font as a byte array, possibly null + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Reads a Unicode string from the font file. Each character is + represented by two bytes. + @param length the length of bytes to read. The string will have length/2 + characters + @return the string read + @throws IOException the font file could not be read + + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets a glyph width. + @param glyph the glyph to get the width of + @return the width of the glyph in normalized 1000 units + + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + Reads the kerning information from the 'kern' table. + @throws IOException the font file could not be read + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Gets the width from the font according to the unicode char c. + If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Generates the font descriptor for this font. + @return the PdfDictionary containing the font descriptor or null + @param subsetPrefix the subset prefix + @param fontStream the indirect reference to a PdfStream containing the font or null + @throws DocumentException if there is an error + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param subsetPrefix the subset prefx + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + @throws DocumentException if there is an error + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + @return a byte array + @since 2.1.3 + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Gets the postscript font name. + @return the postscript font name + + + Gets the code pages supported by the font. + @return the code pages supported by the font + + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Checks whether this font may be used with winansi encoding. + + @return true if the font can be correctly used with winansi encodings + + + Subsets a True Type font by removing the unneeded glyphs from + the font. + + @author Paulo Soares + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[3] where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + @param directoryOffset The offset from the start of the file to the table directory + @param fileName the file name of the font + @param glyphsUsed the glyphs used + @param includeCmap true if the table cmap is to be included in the generated font + + + Does the actual work of subsetting the font. + @throws IOException on error + @throws DocumentException on error + @return the subset font + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Represents a True Type font with Unicode encoding. All the character + in the font can be used directly by using the encoding Identity-H or + Identity-V. This is the only way to represent some character sets such + as Thai. + @author Paulo Soares + + + Creates a new TrueType font addressed by Unicode characters. The font + will always be embedded. + @param ttFile the location of the font on file. The file must end in '.ttf'. + The modifiers after the name are ignored. + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + @param metrics metrics[0] contains the glyph index and metrics[2] + contains the Unicode code + @throws DocumentException on error + @return the stream representing this CMap or null + + + Gets an hex string in the format "<HHHH>". + @param n the number + @return the hex string + + + Generates the CIDFontTyte2 dictionary. + @param fontDescriptor the indirect reference to the font descriptor + @param subsetPrefix the subset prefix + @param metrics the horizontal width metrics + @return a stream + + + Generates the font dictionary. + @param descendant the descendant dictionary + @param subsetPrefix the subset prefix + @param toUnicode the ToUnicode stream + @return the stream + + + The method used to sort the metrics array. + @param o1 the first element + @param o2 the second element + @return the comparisation + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + A forbidden operation. Will throw a null pointer exception. + @param text the text + @return always null + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Reads a Type1 font + + @author Paulo Soares + + + The PFB file if the input was made with a byte array. + + + The Postscript font name. + + + The full name of the font. + + + The family name of the font. + + + The weight of the font: normal, bold, etc. + + + The italic angle of the font, usually 0.0 or negative. + + + true if all the characters have the same + width. + + + The character set of the font. + + + The llx of the FontBox. + + + The lly of the FontBox. + + + The lurx of the FontBox. + + + The ury of the FontBox. + + + The underline position. + + + The underline thickness. + + + The font's encoding name. This encoding is 'StandardEncoding' or + 'AdobeStandardEncoding' for a font that can be totally encoded + according to the characters names. For all other names the + font is treated as symbolic. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + Represents the section CharMetrics in the AFM file. Each + value of this array contains a Object[4] with an + Integer, Integer, String and int[]. This is the code, width, name and char bbox. + The key is the name of the char and also an Integer with the char number. + + + Represents the section KernPairs in the AFM file. The key is + the name of the first character and the value is a Object[] + with 2 elements for each kern pair. Position 0 is the name of + the second character and position 1 is the kerning distance. This is + repeated for all the pairs. + + + The file in use. + + + true if this font is one of the 14 built in fonts. + + + Types of records in a PFB file. ASCII is 1 and BINARY is 2. + They have to appear in the PFB file in this sequence. + + + Creates a new Type1 font. + @param ttfAfm the AFM file if the input is made with a byte array + @param pfb the PFB file if the input is made with a byte array + @param afmFile the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + Gets the width from the font according to the name or, + if the name is null, meaning it is a symbolic font, + the char c. + @param c the char if the font is symbolic + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode characters. The characters + are converted to names and this names are used to find the kerning + pairs in the Hashtable KernPairs. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Reads the font metrics + @param rf the AFM file + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + If the embedded flag is false or if the font is + one of the 14 built in types, it returns null, + otherwise the font is read and output in a PdfStream object. + @return the PdfStream containing the font or null + @throws DocumentException if there is an error reading the font + + + Generates the font descriptor for this font or null if it is + one of the 14 built in fonts. + @param fontStream the indirect reference to a PdfStream containing the font or null + @return the PdfDictionary containing the font descriptor or null + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the postscript font name. + @return the postscript font name + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + A class to support Type3 fonts. + + + Creates a Type3 font. + @param writer the writer + @param chars an array of chars corresponding to the glyphs used (not used, prisent for compability only) + @param colorized if true the font may specify color, if false no color commands are allowed + and only images as masks can be used + + + + Defines a glyph. If the character was already defined it will return the same content + @param c the character to match this glyph. + @param wx the advance this character will have + @param llx the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param lly the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param urx the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param ury the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @return a content where the glyph can be defined + + + Always returns null, because you can't get the FontStream of a Type3 font. + @return null + @since 2.1.3 + + + The content where Type3 glyphs are written to. + + + Writes text vertically. Note that the naming is done according + to horizontal text although it referrs to vertical text. + A line with the alignment Element.LEFT_ALIGN will actually + be top aligned. + + + Signals that there are no more text available. + + + Signals that there is no more column. + + + The chunks that form the text. + + + The PdfContent where the text will be written to. + + + The column Element. Default is left Element. + + + Marks the chunks to be eliminated when the line is written. + + + The chunk created by the splitting. + + + The chunk created by the splitting. + + + The leading + + + The X coordinate. + + + The Y coordinate. + + + The maximum number of vertical lines. + + + The height of the text. + + + Creates new VerticalText + @param text the place where the text will be written to. Can + be a template. + + + Adds a Phrase to the current text array. + @param phrase the text + + + Adds a Chunk to the current text array. + @param chunk the text + + + Sets the layout. + @param startX the top right X line position + @param startY the top right Y line position + @param height the height of the lines + @param maxLines the maximum number of lines + @param leading the separation between the lines + + + Gets the separation between the vertical lines. + @return the vertical line separation + + + Creates a line from the chunk array. + @param width the width of the line + @return the line or null if no more chunks + + + Normalizes the list of chunks when the line is accepted. + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Sets the new text origin. + @param startX the X coordinate + @param startY the Y coordinate + + + Gets the X coordinate where the next line will be writen. This value will change + after each call to go(). + @return the X coordinate + + + Gets the Y coordinate where the next line will be writen. + @return the Y coordinate + + + Gets the maximum number of available lines. This value will change + after each call to go(). + @return Value of property maxLines. + + + Gets the height of the line + @return the height + + + Gets the Element. + @return the alignment + + + Processes XFA forms. + @author Paulo Soares + + + An empty constructor to build on. + + + Return the XFA Object, could be an array, could be a Stream. + Returns null f no XFA Object is present. + @param reader a PdfReader instance + @return the XFA object + @since 2.1.3 + + + A constructor from a PdfReader. It basically does everything + from finding the XFA stream to the XML parsing. + @param reader the reader + @throws java.io.IOException on error + @throws javax.xml.parsers.ParserConfigurationException on error + @throws org.xml.sax.SAXException on error + + + Extracts the nodes from the domDocument. + @since 2.1.5 + + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + Sets the XFA key from a byte array. The old XFA is erased. + @param form the data + @param reader the reader + @param writer the writer + @throws java.io.IOException on error + + + Sets the XFA key from the instance data. The old XFA is erased. + @param writer the writer + @throws java.io.IOException on error + + + Serializes a XML document to a byte array. + @param n the XML document + @throws java.io.IOException on error + @return the serialized XML document + + + Returns true if it is a XFA form. + @return true if it is a XFA form + + + Gets the top level DOM document. + @return the top level DOM document + + + Finds the complete field name contained in the "classic" forms from a partial + name. + @param name the complete or partial name + @param af the fields + @return the complete name or null if not found + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the complete name or null if not found + + + Finds the Node contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + @param n the Node + @return the text found or "" if no text was found + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param n the Node to add the text to + @param text the text to add + + + Sets the PdfReader to be used by this instance. + @param reader the PdfReader to be used by this instance + + + Checks if this XFA form was changed. + @return true if this XFA form was changed + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchie. + + + Gets the full name by traversing the hiearchie using only the + index 0. + @return the full name + + + Search the current node for a similar name. A similar name starts + with the same name but has a differnt index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + @param name the name to search + @return true if a similitude was found + + + Another stack implementation. The main use is to facilitate + the porting to other languages. + + + Looks at the object at the top of this stack without removing it from the stack. + @return the object at the top of this stack + + + Removes the object at the top of this stack and returns that object as the value of this function. + @return the object at the top of this stack + + + Pushes an item onto the top of this stack. + @param item the item to be pushed onto this stack + @return the item argument + + + Tests if this stack is empty. + @return true if and only if this stack contains no items; false otherwise + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchie. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + @param s the unescaped string + @return the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + @param s the escaped string + @return the unescaped string + + + Outputs the stack as the sequence of elements separated + by '.'. + @return the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + @param s the long name + @return the short name + + + Adds a SOM name to the search node chain. + @param unstack the SOM name + + + Adds a SOM name to the search node chain. + @param inverseSearch the start point + @param stack the stack with the separeted SOM parts + @param unstack the full name + + + Searchs the SOM hiearchie from the bottom. + @param parts the SOM parts + @return the full name or null if not found + + + Splits a SOM name in the individual parts. + @param name the full SOM name + @return the split name + + + Gets the order the names appear in the XML, depth first. + @return the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + @return the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchie. + @return the data to do a search from the bottom hierarchie + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + @param n the datasets node + + + Inserts a new Node that will match the short name. + @param n the datasets top Node + @param shortName the short name + @return the new Node of the inserted name + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + @param items the Collection + + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + @return the mapping from short names to long names + + + Processes the template section in the XFA form. + + + Creates a new instance from the datasets node. + @param n the template node + + + Gets the field type as described in the template section of the XFA. + @param s the exact template name + @return the field type or null if not found + + + true if it's a dynamic form; false + if it's a static form. + @return true if it's a dynamic form; false + if it's a static form + + + Gets the class that contains the template processing section of the XFA. + @return the class that contains the template processing section of the XFA + + + Gets the class that contains the datasets processing section of the XFA. + @return the class that contains the datasets processing section of the XFA + + + Gets the class that contains the "classic" fields processing. + @return the class that contains the "classic" fields processing + + + Gets the Node that corresponds to the datasets part. + @return the Node that corresponds to the datasets part + + + Replaces the data under datasets/data. + @since iText 5.0.0 + + + Helps to locate xml stream inside PDF document with Xfa form. + + + Gets Document to sign + + + Save document as single XML stream in AcroForm. + @param document signed document + @throws IOException + @throws DocumentException + + + Constructor for xpath expression for signing XfaForm + + + Possible xdp packages to sign + + + Empty constructor, no transform. + + + Construct for Xpath expression. Depends from selected xdp package. + @param xdpPackage + + + Get XPath expression + + + Reads a XFDF. + @author Leonard Rosenthol (leonardr@pdfsages.com) + + + Storage for field values if there's more than one value for a field. + @since 2.1.4 + + + Reads an XFDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an XFDF form. + @param xfdfIn the byte array with the form + @throws IOException on error + + + Reads an XFDF form. + @param is an InputStream to read the form + @throws IOException on error + @since 5.0.1 + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field value. + @param name the fully qualified field name + @return the field's value + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the field values for a list or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field values or null + @since 2.1.4 + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + Constructs XmlSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Holds value of property xades:SigningTime. + + + Holds value of property xades:Description. + + + Holds value of property xades:MimeType. + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + Gets the signature date. + @return the signature date + + + Sets the signature date. + @param signDate the signature date + + + Helps to locate xml stream + @return XmlLocator, cannot be null. + + + Constructor for xpath expression in case signing only part of XML document. + @return XpathConstructor, can be null + + + Close PdfStamper + @throws IOException + @throws DocumentException + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static GetDefaultFilterHandlers() method, then obtain the desired {@link IFilterHandler} + via a lookup. + @since 5.0.4 + + + The main interface for creating a new {@link IFilterHandler} + + + The default {@link IFilterHandler}s used by iText + + + @return the default {@link IFilterHandler}s used by iText + + + Creates a {@link MemoryLimitsAwareOutputStream} which will be used for decompression of the passed pdf stream. + + @param streamDictionary the pdf stream which is going to be decompressed. + @return the {@link ByteArrayOutputStream} which will be used for decompression of the passed pdf stream + + + Handles FLATEDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles LZWDECODE filter + + + Handles CCITTFAXDECODE filter + + + A filter that doesn't modify the stream at all + + + Handles RUNLENGTHDECODE filter + + + A PdfArray object consisting of nothing but PdfNumber objects + @since 5.1.0 + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers float values + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers a List containing PdfNumber objects + + + Signals that a table will continue in the next page. + + @since 5.0.6 + + + This method is called to indicate that table is being split. It's called + before the tableLayout method and before the table is drawn. + + @param table the PdfPTable in use + + + Wrapper class for PdfCopy and PdfSmartCopy. + Allows you to concatenate existing PDF documents with much less code. + + + The Document object for PdfCopy. + + + The actual PdfWriter + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + @param smart do we want PdfCopy to detect redundant content? + + + Adds the pages from an existing PDF document. + @param reader the reader for the existing PDF document + @return the number of pages that were added + @throws DocumentException + @throws IOException + + + Gets the PdfCopy instance so that you can add bookmarks or change preferences before you close PdfConcatenate. + + + Opens the document (if it isn't open already). + Opening the document is done implicitly. + + + We've finished writing the concatenated document. + + + The spacing before the table. + + + The spacing after the table. + + + Defines if the div should be kept on one page if possible + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual height the div would require to layout it's content + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual width the div would require to layout it's content + + + Image will be scaled to fit in the div occupied area. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Gets the type of the text element. + + @return a type + + + @see com.itextpdf.text.Element#isContent() + @since iText 2.0.8 + + + @see com.itextpdf.text.Element#isNestable() + @since iText 2.0.8 + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Serial version UID + + + Creates a new instance of PdfIsoConformanceException. + + + Creates a new instance of PdfIsoConformanceException. + @param s + + + A signature field lock dictionary. + + + Enumerates the different actions of a signature lock. + Indicates the set of fields that should be locked: + all the fields in the document, + all the fields specified in the /Fields array + all the fields except those specified in the /Fields array + + + Enumerates the different levels of permissions. + + + Creates a signature lock valid for all fields in the document. + + + Creates a signature lock for all fields in the document, + setting specific permissions. + + + Creates a signature lock for specific fields in the document. + + + Creates a signature lock for specific fields in the document. + + + Add kid to structureTreeRoot from structTreeRoot + + + + An Anchor can be a reference or a destination of a reference. + + + An Anchor is a special kind of . + It is constructed in the same way. + + + + + + + This is the name of the Anchor. + + + + + This is the reference of the Anchor. + + + + + Constructs an Anchor without specifying a leading. + + + Has nine overloads. + + + + + Constructs an Anchor with a certain leading. + + the leading + + + + Constructs an Anchor with a certain Chunk. + + a Chunk + + + + Constructs an Anchor with a certain string. + + a string + + + + Constructs an Anchor with a certain string + and a certain Font. + + a string + a Font + + + + Constructs an Anchor with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs an Anchor with a certain leading + and a certain string. + + the leading + a string + + + + Constructs an Anchor with a certain leading, + a certain string and a certain Font. + + the leading + a string + a Font + + + Constructs an Anchor with a certain Phrase. + + @param phrase a Phrase + + + + Processes the element by adding it (or the different parts) to an + + + an IElementListener + true if the element was processed successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + Applies the properties of the Anchor to a Chunk. + @param chunk the Chunk (part of the Anchor) + @param notGotoOK if true, this chunk will determine the local destination + @param localDestination true if the chunk is a local goto and the reference a local destination + @return the value of notGotoOK or false, if a previous Chunk was used to determine the local destination + + + + Gets the type of the text element. + + a type + + + + Name of this Anchor. + + + + + reference of this Anchor. + + + + + reference of this Anchor. + + an Uri + + + + An Annotation is a little note that can be added to a page + on a document. + + + + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is the type of annotation. + + + This is the title of the Annotation. + + + This is the lower left x-value + + + This is the lower left y-value + + + This is the upper right x-value + + + This is the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + the destination in this file + + + + Creates a Screen anotation to embed media clips + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + path to the media clip file + mime type of the media + if true play on display of the page + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + a page number in this file + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + a named destination in this file + + Has nine overloads. + + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external application + parameters to pass to this application + the operation to pass to this application + the default directory to run this application in + + + + Gets the type of the text element + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was process successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + + Sets the dimensions of this annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Returns the lower left x-value. + + a value + + + + Returns the lower left y-value. + + a value + + + + Returns the uppper right x-value. + + a value + + + + Returns the uppper right y-value. + + a value + + + + Returns the lower left x-value. + + the default value + a value + + + + Returns the lower left y-value. + + the default value + a value + + + + Returns the upper right x-value. + + the default value + a value + + + + Returns the upper right y-value. + + the default value + a value + + + + Returns the type of this Annotation. + + a type + + + + Returns the title of this Annotation. + + a name + + + + Gets the content of this Annotation. + + a reference + + + + Gets the content of this Annotation. + + a reference + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Signals an attempt to create an Element that hasn't got the right form. + + + + + + + Base class for Color, serves as wrapper class for + to allow extension. + + + + Construct a new BaseColor. + @param red the value for the red gamma + @param green the value for the green gamma + @param blue the value for the blue gamma + @param alpha the value for the alpha gamma + + + @param red + @param green + @param blue + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + @param alpha + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + + + Construct a BaseColor by setting the combined value. + @param argb + + + Construct a BaseColor by System.Drawing.Color. + @param color + + + @return the combined color value + + + + @return the value for red + + + + @return the value for green + + + + @return the value for blue + + + + @return the value for the alpha channel + + + Make this BaseColor brighter. Factor used is 0.7. + @return the new BaseColor + + + Make this color darker. Factor used is 0.7 + @return the new BaseColor + + + + A Chapter is a special Section. + + + A chapter number has to be created using a Paragraph as title + and an int as chapter number. The chapter number is shown be + default. If you don't want to see the chapter number, you have to set the + numberdepth to 0. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + chapter2.SetNumberDepth(0); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new BaseColor(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + + + + + Constructs a new Chapter. + @param number the Chapter number + + + + Constructs a new Chapter. + + the Chapter title (as a Paragraph) + the Chapter number + + Has three overloads. + + + + + Constructs a new Chapter. + + the Chapter title (as a string) + the Chapter number + + Has three overloads. + + + + + Gets the type of the text element. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Chapter with auto numbering. + + @author Michael Niedermair + + + Is the chapter number already set? + @since 2.1.4 + + + Create a new object. + + @param para the Chapter title (as a Paragraph) + + + Create a new objet. + + @param title the Chapter title (as a String) + + + Create a new section for this chapter and ad it. + + @param title the Section title (as a String) + @return Returns the new section. + + + Create a new section for this chapter and add it. + + @param title the Section title (as a Paragraph) + @return Returns the new section. + + + Changes the Chapter number. + @param number the new chapter number + @since 2.1.4 + + + + This is the smallest significant part of text that can be added to a document. + + + Most elements can be divided in one or more Chunks. + A chunk is a string with a certain Font. + all other layoutparameters should be defined in the object to which + this chunk of text is added. + + + + Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, Font.ITALIC, new BaseColor(255, 0, 0))); + document.Add(chunk); + + + + + The character stand in for an image or a separator. + + + This is a Chunk containing a newline. + + + This is a Chunk containing a newpage. + + + This is the content of this chunk of text. + + + This is the Font of this chunk of text. + + + Contains some of the attributes for this Chunk. + + + + Empty constructor. + + + Has six overloads. + + + + A Chunk copy constructor. + @param ck the Chunk to be copied + + + + Constructs a chunk of text with a certain content and a certain Font. + + the content + the font + + + + Constructs a chunk of text with a certain content, without specifying a Font. + + the content + + + Constructs a chunk of text with a char and a certain Font. + + @param c the content + @param font the font + + + Constructs a chunk of text with a char, without specifying a Font. + + @param c the content + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + + + Key for drawInterface of the Separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @param vertical true if this is a vertical separator + @since 2.1.2 + + + Key for drawInterface of the tab. + @since 2.1.2 + + + Key for tab stops of the tab. + @since 5.4.1 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @since 2.1.2 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @param newline if true, a newline will be added if the tabPosition has already been reached. + @since 2.1.2 + + + Creates a tab Chunk. + + @param tabInterval an interval that will be used if tab stops are omitted. + @param isWhitespace if true, the current tab is treated as white space. + @since 5.4.1 + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + true if the leading has to be adapted to the image + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + appends some text to this Chunk. + + a string + a StringBuilder + + + + Get/set the font of this Chunk. + + a Font + + + + Returns the content of this Chunk. + + a string + + + + Checks is this Chunk is empty. + + false if the Chunk contains other characters than space. + + + Gets the width of the Chunk in points. + @return a width in points + + + + Checks the attributes of this Chunk. + + false if there aren't any. + + + Checks the accessible attributes of this Chunk. + + @return false if there aren't any. + + + + Sets/Gets the attributes for this Chunk. + + + It may be null. + + a Hashtable + + + + Sets an arbitrary attribute. + + the key for the attribute + the value of the attribute + this Chunk + + + Key for text horizontal scaling. + + + Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f + shrinks the text to half it's width. + @param scale the horizontal scaling factor + @return this Chunk + + + Gets the horizontal scaling. + @return a percentage in float + + + Key for underline. + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param thickness the absolute thickness of the line + @param yPosition the absolute y position relative to the baseline + @return this Chunk + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param color the color of the line or null to follow + the text color + @param thickness the absolute thickness of the line + @param thicknessMul the thickness multiplication factor with the font size + @param yPosition the absolute y position relative to the baseline + @param yPositionMul the position multiplication factor with the font size + @param cap the end line cap. Allowed values are + PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and + PdfContentByte.LINE_CAP_PROJECTING_SQUARE + @return this Chunk + + + Key for sub/basescript. + + + + Sets the text displacement relative to the baseline. Positive values rise the text, + negative values lower the text. + + + It can be used to implement sub/basescript. + + the displacement in points + this Chunk + + + Key for text skewing. + + + Skews the text to simulate italic and other effects. + Try alpha=0 and beta=12. + @param alpha the first angle in degrees + @param beta the second angle in degrees + @return this Chunk + + + Key for background. + + + + Sets the color of the background Chunk. + + the color of the background + this Chunk + + + Sets the color and the size of the background Chunk. + @param color the color of the background + @param extraLeft increase the size of the rectangle in the left + @param extraBottom increase the size of the rectangle in the bottom + @param extraRight increase the size of the rectangle in the right + @param extraTop increase the size of the rectangle in the top + @return this Chunk + + + Key for text rendering mode. + + + Sets the text rendering mode. It can outline text, simulate bold and make + text invisible. + @param mode the text rendering mode. It can be PdfContentByte.TEXT_RENDER_MODE_FILL, + PdfContentByte.TEXT_RENDER_MODE_STROKE, PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE + and PdfContentByte.TEXT_RENDER_MODE_INVISIBLE. + @param strokeWidth the stroke line width for the modes PdfContentByte.TEXT_RENDER_MODE_STROKE and + PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE. + @param strokeColor the stroke color or null to follow the text color + @return this Chunk + + + Key for split character. + + + + Sets the split characters. + + the SplitCharacter interface + this Chunk + + + Key for hyphenation. + + + + sets the hyphenation engine to this Chunk. + + the hyphenation engine + this Chunk + + + Key for remote goto. + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the name of the destination to go to + this Chunk + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the page of the destination to go to. First page is 1 + this Chunk + + + Key for local goto. + + + + Sets a local goto for this Chunk. + + + There must be a local destination matching the name. + + the name of the destination to go to + this Chunk + + + Key for local destination. + + + + Sets a local destination for this Chunk. + + the name for this destination + this Chunk + + + Key for generic tag. + + + + Sets the generic tag Chunk. + + + The text for this tag can be retrieved with PdfPageEvent. + + the text for the tag + this Chunk + + + Key for line-height (alternative for leading in Phrase). + + + Sets a line height tag. + + @return this Chunk + + + Key for image. + + + + Returns the image. + + an Image + + + Key for Action. + + + + Sets an action for this Chunk. + + the action + this Chunk + + + + Sets an anchor for this Chunk. + + the Uri to link to + this Chunk + + + + Sets an anchor for this Chunk. + + the url to link to + this Chunk + + + Key for newpage. + + + + Sets a new page tag. + + this Chunk + + + Key for annotation. + + + + Sets a generic annotation to this Chunk. + + the annotation + this Chunk + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Returns the hyphenation (if present). + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Key for color. + + + Key for encoding. + + + Key for character spacing. + + + Sets the character spacing. + + @param charSpace the character spacing value + @return this Chunk + + + Gets the character spacing. + + @return a value in float + + + Key for word spacing. + + + Sets the word spacing. + + @param wordSpace the word spacing value + @return this Chunk + + + Gets the word spacing. + + @return a value in float + + + Sets the textual expansion of the abbreviation or acronym. + It is highly recommend to set textuual expansion when generating PDF/UA documents. + @param value + + + + A generic Document class. + + + All kinds of Text-elements can be added to a HTMLDocument. + The Document signals all the listeners when an element + has been added.

+

    +
  1. Once a document is created you can add some meta information. +
  2. You can also set the headers/footers. +
  3. You have to open the document before you can write content. +
  4. You can only write content (no more meta-formation!) once a document is opened. +
  5. When you change the header/footer on a certain page, this will be effective starting on the next page. +
  6. Ater closing the document, every listener (as well as its OutputStream) is closed too. +
+
+ + + // creation of the document with a certain size and certain margins + Document document = new Document(PageSize.A4, 50, 50, 50, 50); + try { + // creation of the different writers + HtmlWriter.GetInstance(document, System.out); + PdfWriter.GetInstance(document, new FileOutputStream("text.pdf")); + // we add some meta information to the document + document.AddAuthor("Bruno Lowagie"); + document.AddSubject("This is the result of a Test."); + + // we define a header and a footer + HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false); + HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase(".")); + footer.SetAlignment(Element.ALIGN_CENTER); + document.SetHeader(header); + document.SetFooter(footer); + // we open the document for writing + document.Open(); + document.Add(new Paragraph("Hello world")); + } + catch (DocumentException de) { + Console.Error.WriteLine(de.Message); + } + document.Close(); + + +
+ + Allows the pdf documents to be produced without compression for debugging purposes. + + + Scales the WMF font size. The default value is 0.86. + + + The IDocListener. + + + Is the document open or not? + + + Has the document already been closed? + + + The size of the page. + + + margin in x direction starting from the left + + + margin in x direction starting from the right + + + margin in y direction starting from the top + + + margin in y direction starting from the bottom + + + mirroring of the top/bottom margins + @since 2.1.6 + + + Content of JavaScript onLoad function + + + Content of JavaScript onUnLoad function + + + Style class in HTML body tag + + + Current pagenumber + + + This is a chapter number in case ChapterAutoNumber is used. + + + + Constructs a new Document-object. + + + Has three overloads. + + + + + Constructs a new Document-object. + + the pageSize + + + + Constructs a new Document-object. + + the pageSize + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Adds a IDocListener to the Document. + + the new IDocListener + + + + Removes a IDocListener from the Document. + + the IDocListener that has to be removed. + + + + Adds an Element to the Document. + + the Element to add + true if the element was added, false if not + + + + Opens the document. + + + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Opens the document. + + + Version for languages that are not case-dependant. + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Sets the pagesize. + + the new pagesize + a bool + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + + + Sets the page number. + + an int + + + + Returns the current page number. + + an int + + + + Closes the document. + + + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Closes the document. + + + Version for languages that are not case-dependant. + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Adds a user defined header to the document. + + the name of the header + the content of the header + true if successful, false otherwise + + + + Adds the title to a Document. + + the title + true if successful, false otherwise + + + + Adds the subject to a Document. + + the subject + true if successful, false otherwise + + + + Adds the keywords to a Document. + + keywords to add + true if successful, false otherwise + + + + Adds the author to a Document. + + the name of the author + true if successful, false otherwise + + + + Adds the creator to a Document. + + the name of the creator + true if successful, false otherwise + + + + Adds the producer to a Document. + + true if successful, false otherwise + + + Adds a language to th document. Required for PDF/UA compatible documents. + @param language + @return true if successfull, false otherwise + + + + Adds the current date and time to a Document. + + true if successful, false otherwise + + + + Returns the left margin. + + the left margin + + + + Return the right margin. + + the right margin + + + + Returns the top margin. + + the top margin + + + + Returns the bottom margin. + + the bottom margin + + + + Returns the lower left x-coordinate. + + the lower left x-coordinate + + + + Returns the upper right x-coordinate. + + the upper right x-coordinate. + + + + Returns the upper right y-coordinate. + + the upper right y-coordinate. + + + + Returns the lower left y-coordinate. + + the lower left y-coordinate. + + + + Returns the lower left x-coordinate considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Gets the pagesize. + + the page size + + + + Checks if the document is open. + + true if the document is open + + + + Gets the JavaScript onLoad command. + + the JavaScript onLoad command. + + + + Gets the JavaScript onUnLoad command. + + the JavaScript onUnLoad command + + + + Gets the style class of the HTML body tag + + the style class of the HTML body tag + + + + + Gets the margin mirroring flag. + + @return the margin mirroring flag + + + + Signals that an error has occurred in a Document. + + + + + + + + + Constructs a new DocumentException + + + Has two overloads. + + + + + Construct a new DocumentException + + error message + + + + Constructs a DocumentException with a message and a Exception. + + a message describing the exception + an exception that has to be turned into a DocumentException + + + + An abstract Writer class for documents. + + + DocWriter is the abstract class of several writers such + as PdfWriter and HtmlWriter. + A DocWriter can be added as a DocListener + to a certain Document by getting an instance (see method + GetInstance() in the specific writer-classes). + Every Element added to the original Document + will be written to the stream of the listening + DocWriter. + + + + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + The pageSize. + + + This is the document that has to be written. + + + The stream of this writer. + + + Is the writer open for writing? + + + Do we have to pause all writing actions? + + + Closes the stream on document close + + + + Constructs a DocWriter. + + The Document that has to be written + The Stream the writer has to write to. + + + + Signals that an Element was added to the Document. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class. + + + false + + + + Signals that the Document was opened. + + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + + This does nothing. Has to be overridden if needed. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + + This does nothing. Has to be overridden if needed. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Sets the page number. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + + + Converts a string into a Byte array + according to the ISO-8859-1 codepage. + + the text to be converted + the conversion result + + + + Let the writer know that all writing has to be paused. + + + + Checks if writing is paused. + + @return true if writing temporarely has to be paused, false otherwise. + + + + Let the writer know that writing may be resumed. + + + + + Flushes the Stream. + + + + + Writes a string to the stream. + + the string to write + + + + Writes a number of tabs. + + the number of tabs to add + + + + Writes a key-value pair to the stream. + + the name of an attribute + the value of an attribute + + + + Writes a starttag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + + + + Writes the markup attributes of the specified MarkupAttributes + object to the stream. + + the MarkupAttributes to write. + + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.5 + + + This is a possible type of Element. + @since 5.3.0 + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.2 + + + This is an element thats not an element. + @see WritableDirectElement + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the center + and extra whitespace should be placed equally on + the left and right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the right + indent and extra whitespace should be placed on + the left. + + + + + A possible value for paragraph Element. This + specifies that extra whitespace should be spread + out through the rows of the paragraph with the + text lined up with the left and right indent + except on the last line which should be aligned + to the left. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + Does the same as ALIGN_JUSTIFIED but the last line is also spread out. + + + + + Pure two-dimensional encoding (Group 4) + + + + + Pure one-dimensional encoding (Group 3, 1-D) + + + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows + parameter. The use of this flag will set the key /EndOfBlock to false. + + + + Localizes error messages. The messages are located in the package + com.lowagie.text.error_messages in the form language_country.lng. + The internal file encoding is UTF-8 without any escape chars, it's not a + normal property file. See en.lng for more information on the internal format. + @author Paulo Soares (psoares@glintt.com) + + + Get a message without parameters. + @param key the key to the message + @return the message + + + Get a message with parameters. The parameters will replace the strings + "{1}", "{2}", ..., "{n}" found in the message. + @param key the key to the message + @param p the variable parameter + @return the message + + + Sets the language to be used globally for the error messages. The language + is a two letter lowercase country designation like "en" or "pt". The country + is an optional two letter uppercase code like "US" or "PT". + @param language the language + @param country the country + @return true if the language was found, false otherwise + @throws IOException on error + + + Sets the error messages directly from a Reader. + @param r the Reader + @throws IOException on error + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 It was written for iText 2.0.8, but moved to another package + + + Creates an exception saying the user password was incorrect. + + + Typed exception used when creating PDF syntax that isn't valid. + @since 2.1.6 + + + Creates an exception saying the PDF syntax isn't correct. + @param message some extra info about the exception + + + RuntimeException to indicate that the provided Image is invalid/corrupted. + Should only be thrown/not caught when ignoring invalid images. + @since 5.4.2 + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 + + + Creates an instance of with a message and no cause + @param message the reason why the document isn't a PDF document according to iText. + + + Creates an exception with a message and a cause + @param message the reason why the document isn't a PDF document according to iText. + @param cause the cause of the exception, if any + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document according to iText, + but it's different from the InvalidPdfException in the sense that it may + be an iText limitation (most of the times it isn't but you might have + bumped into something that has been added to the PDF specs, but that isn't + supported in iText yet). + @since 2.1.5 + + + Creates an instance of an UnsupportedPdfException. + @param message the reason why the document isn't a PDF document according to iText. + + + This class can produce String combinations representing a number built with + Greek letters (from alpha to omega, then alpha alpha, alpha beta, alpha gamma). + We are aware of the fact that the original Greek numbering is different; + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a upper case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a Greek letter combination. + @param index the original number + @return the letter combination + + + This class can produce String combinations representing a number. + "a" to "z" represent 1 to 26, "AA" represents 27, "AB" represents 28, + and so on; "ZZ" is followed by "AAA". + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'A' to 'Z'; + 1 = A, 2 = B, ..., 26 = Z, 27 = AA, 28 = AB,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z' + (a = 1, b = 2, ..., z = 26, aa = 27, ab = 28,...). + + + This class can produce String combinations representing a roman number. + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + @param digit the roman digit + @param value the value + @param pre can it be used as a prefix + + + Array with Roman digits. + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into an upper case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a roman number. + @param index the original number + @return the roman number (lower case) + + + + Contains all the specifications of a font: fontfamily, size, style and color. + + + + Paragraph p = new Paragraph("This is a paragraph", + new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + the value of an undefined attribute. + + + the value of the default size. + + + the value of the fontfamily. + + + the value of the fontsize. + + + the value of the style. + + + the value of the color. + + + the external font + + + Copy constructor of a Font + @param other the font that has to be copied + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + + + + Constructs a Font. + + the external font + the size of this font + + + + Constructs a Font. + + the external font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + + + + Constructs a Font. + + the family to which this font belongs + + + + Constructs a Font. + + + Has nine overloads. + + + + + Compares this Font with another + + the other Font + a value + + + + Gets the family of this font. + + the value of the family + + + + Gets the familyname as a string. + + the familyname + + + + Sets the family using a String ("Courier", + "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats"). + + A String representing a certain font-family. + + + + Translates a string-value of a certain family + into the index that is used for this family in this class. + + A string representing a certain font-family + the corresponding index + + + + Get/set the size of this font. + + the size of this font + + + Gets the size that can be used with the calculated BaseFont. + @return the size that can be used with the calculated BaseFont + + + Gets the leading that can be used with this font. + + @param multipliedLeading + a certain multipliedLeading + @return the height of a line + + + + Gets the style of this font. + + the style of this font + + + Gets the style that can be used with the calculated BaseFont. + @return the style that can be used with the calculated BaseFont + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is underlined. + + a boolean + + + + checks if the style of this font is STRIKETHRU. + + a boolean + + + + Sets the style using a String containing one of + more of the following values: normal, bold, italic, underline, strike. + + A String representing a certain style. + + + Sets the style. + @param style the style. + + + + Translates a string-value of a certain style + into the index value is used for this style in this class. + + a string + the corresponding value + + + + Get/set the color of this font. + + the color of this font + + + + Sets the color. + + the red-value of the new color + the green-value of the new color + the blue-value of the new color + + + + Gets the BaseFont inside this object. + + the BaseFont + + + Gets the BaseFont this class represents. + For the built-in fonts a BaseFont is calculated. + @param specialEncoding true to use the special encoding for Symbol and ZapfDingbats, + false to always use Cp1252 + @return the BaseFont this class represents + + + + Checks if the properties of this font are undefined or null. +

+ If so, the standard should be used. +

+ a boolean +
+ + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this static class first and then create fonts in your code using one of the static getFont-method + without having to enter a path as parameter. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks whether the given font is contained within the object + + the name of the font + true if font is contained within the object + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + + This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file. + + + This is a map of fontfamilies. + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in windows + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + A special-version of LIST whitch use greek-letters. + + @see com.lowagie.text.List + + + Initialization + + @param symbolIndent indent + + + Initialisierung + + @param symbolIndent indent + + + Initialisierung + @param greeklower greek-char in lowercase + @param symbolIndent indent + + + change the font to SYMBOL + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + This is an Element that contains + some userdefined meta information about the document. + + + + Header header = new Header("inspired by", "William Shakespeare"); + + + + + This is the content of this chunk of text. + + + + Constructs a Header. + + the name of the meta-information + the content + + + + Returns the name of the meta information. + + a string + + + + List with the HTML translation of all the characters. + + + Set containing tags that trigger a new line. + @since iText 5.0.6 + + + Converts a String to the HTML-format of this String. + + @param string The String to convert + @return a String + + + Converts a BaseColor into a HTML representation of this BaseColor. + + @param color the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + Translates the alignment value. + + @param alignment the alignment value + @return the translated value + + + Returns true if the tag causes a new line like p, br etc. + @since iText 5.0.6 + + + Static final values of supported HTML tags and attributes. + @since 5.0.6 + @deprecated since 5.5.2 + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + The possible value of an alignment attribute. + @since 5.0.6 + + + The possible value of an alignment attribute. + @since 5.0.6 + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + This is used for inline css style information + + + Attribute for specifying externally defined CSS class. + @since 5.0.6 + + + the CSS tag for text color + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + the CSS tag for text decorations + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + Stores the hierarchy of tags along with the attributes of each tag. + @since 5.0.6 renamed from ChainedProperties + @deprecated since 5.5.2 + + + Class that stores the info about one tag in the chain. + + + A possible tag + + + The styles corresponding with the tag + + + Constructs a chained property. + @param tag an XML/HTML tag + @param attrs the tag's attributes + + + A list of chained properties representing the tag hierarchy. + + + Creates a new instance of ChainedProperties + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns a value as soon as a match + is found or null if the key can't be found. + @param key the key of the property + @return the value of the property + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns true as soon as a match is + found or false if the key can't be found. + @param key the key of the property + @return true if the key is found + + + Adds a tag and its corresponding properties to the chain. + @param tag the tags that needs to be added to the chain + @param props the tag's attributes + + + If the properties contain a font size, the size may need to + be adjusted based on font sizes higher in the hierarchy. + @param attrs the attributes that may have to be updated + @since 5.0.6 (renamed) + + + Old iText class that allows you to convert HTML to PDF. + We've completely rewritten HTML to PDF conversion and we made it a separate project named XML Worker. + @deprecated since 5.5.2; please switch to XML Worker instead (this is a separate project) + + + DocListener that will listen to the Elements + produced by parsing the HTML. + This can be a com.lowagie.text.Document adding + the elements to a Document directly, or an + HTMLWorker instance strong the objects in a List + + + The map with all the supported tags. + @since 5.0.6 + + + The object defining all the styles. + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + @param tags A map containing the supported tags + @param style A StyleSheet + @since 5.0.6 + + + Sets the map with supported tags. + @param tags + @since 5.0.6 + + + Setter for the StyleSheet + @param style the StyleSheet + + + Parses content read from a java.io.Reader object. + @param reader the content + @throws IOException + + + Stack with the Elements that already have been processed. + @since iText 5.0.6 (private => protected) + + + Keeps the content of the current paragraph + @since iText 5.0.6 (private => protected) + + + The current hierarchy chain of tags. + @since 5.0.6 + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Dictionary) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + Adds a new line to the currentParagraph. + @since 5.0.6 + + + Flushes the current paragraph, indicating that we're starting + a new block. + If the stack is empty, the paragraph is added to the document. + Otherwise the Paragraph is added to the stack. + @since 5.0.6 + + + Stacks the current paragraph, indicating that we're starting + a new span. + @since 5.0.6 + + + Pushes an element to the Stack. + @param element + @since 5.0.6 + + + Updates the chain with a new tag and new attributes. + @param tag the new tag + @param attrs the corresponding attributes + @since 5.0.6 + + + Updates the chain by removing a tag. + @param tag the new tag + @since 5.0.6 + + + Key used to store the image provider in the providers map. + @since 5.0.6 + + + Key used to store the image processor in the providers map. + @since 5.0.6 + + + Key used to store the image store in the providers map. + @since 5.0.6 + + + Key used to store the image baseurl provider in the providers map. + @since 5.0.6 + + + Key used to store the font provider in the providers map. + @since 5.0.6 + + + Key used to store the link provider in the providers map. + @since 5.0.6 + + + IDictionary containing providers such as a FontProvider or ImageProvider. + @since 5.0.6 (renamed from interfaceProps) + + + Setter for the providers. + If a FontProvider is added, the ElementFactory is updated. + @param providers a IDictionary with different providers + @since 5.0.6 + + + Factory that is able to create iText Element objects. + @since 5.0.6 + + + Creates a Chunk using the factory. + @param content the content of the chunk + @return a Chunk with content + @since 5.0.6 + + + Creates a Paragraph using the factory. + @return a Paragraph without any content + @since 5.0.6 + + + Creates a List object. + @param tag should be "ol" or "ul" + @return a List object + @since 5.0.6 + + + Creates a ListItem object. + @return a ListItem object + @since 5.0.6 + + + Creates a LineSeparator object. + @param attrs properties of the LineSeparator + @return a LineSeparator object + @since 5.0.6 + + + Creates an Image object. + @param attrs properties of the Image + @return an Image object (or null if the Image couldn't be found) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Creates a Cell. + @param tag the tag + @return a CellWrapper object + @since 5.0.6 + + + Adds a link to the current paragraph. + @since 5.0.6 + + + Fetches the List from the Stack and adds it to + the TextElementArray on top of the Stack, + or to the Document if the Stack is empty. + @throws DocumentException + @since 5.0.6 + + + Looks for the List object on the Stack, + and adds the ListItem to the List. + @throws DocumentException + @since 5.0.6 + + + Processes an Image. + @param img + @param attrs + @throws DocumentException + @since 5.0.6 + + + Processes the Table. + @throws DocumentException + @since 5.0.6 + + + Gets the TableWrapper from the Stack and adds a new row. + @since 5.0.6 + + + Stack to keep track of table tags. + + + Boolean to keep track of TR tags. + + + Boolean to keep track of TD and TH tags + + + Boolean to keep track of LI tags + + + Boolean to keep track of PRE tags + @since 5.0.6 renamed from isPRE + + + Indicates if text needs to be skipped. + @since iText 5.0.6 (private => protected) + + + Pushes the values of pendingTR and pendingTD + to a state stack. + @since 5.0.6 + + + Pops the values of pendingTR and pendingTD + from a state stack. + @since 5.0.6 + + + @return the pendingTR + @since 5.0.6 + + + @param pendingTR the pendingTR to set + @since 5.0.6 + + + @return the pendingTD + @since 5.0.6 + + + @param pendingTD the pendingTD to set + @since 5.0.6 + + + @return the pendingLI + @since 5.0.6 + + + @param pendingLI the pendingLI to set + @since 5.0.6 + + + @return the insidePRE + @since 5.0.6 + + + @param insidePRE the insidePRE to set + @since 5.0.6 + + + @return the skipText + @since 5.0.6 + + + @param skipText the skipText to set + @since 5.0.6 + + + The resulting list of elements. + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param tags a map containing supported tags and their processors + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + @since 5.0.6 + + + @see com.itextpdf.text.ElementListener#add(com.itextpdf.text.Element) + + + @see com.itextpdf.text.DocListener#close() + + + @see com.itextpdf.text.DocListener#newPage() + + + @see com.itextpdf.text.DocListener#open() + + + @see com.itextpdf.text.DocListener#resetPageCount() + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + @since 2.1.6 + + + @see com.itextpdf.text.DocListener#setMargins(float, float, float, float) + + + @see com.itextpdf.text.DocListener#setPageCount(int) + + + @see com.itextpdf.text.DocListener#setPageSize(com.itextpdf.text.Rectangle) + + + Sets the providers. + @deprecated use SetProviders() instead + + + Gets the providers + @deprecated use GetProviders() instead + + + @deprecated since 5.5.2 + + + Old class to define styles for HTMLWorker. + We've completely rewritten HTML to PDF functionality; see project XML Worker. + XML Worker is able to parse CSS files and "style" attribute values. + @deprecated since 5.5.2 + + + IDictionary storing tags and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + IDictionary storing possible names of the "class" attribute + and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + Creates a new instance of StyleSheet + + + Associates a IDictionary containing styles with a tag. + @param tag the name of the HTML/XML tag + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param tag the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Associates a IDictionary containing styles with a class name. + @param className the value of the class attribute + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param className the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Resolves the styles based on the tag name and the value + of the class attribute. + @param tag the tag that needs to be resolved + @param attrs existing style map that will be updated + + + Method contributed by Lubos Strapko + @param h + @param chain + @since 2.1.3 + + + We use a CellWrapper because we need some extra info + that isn't available in PdfPCell. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The cell that is wrapped in this stub. + + + The width of the cell. + @since iText 5.0.6 + + + Indicates if the width is a percentage. + @since iText 5.0.6 + + + Creates a new instance of IncCell. + @param tag the cell that is wrapped in this object. + @param chain properties such as width + @since 5.0.6 + + + Creates a PdfPCell element based on a tag and its properties. + @param tag a cell tag + @param chain the hierarchy chain + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Factory that produces iText Element objects, + based on tags and their properties. + @author blowagie + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The font provider that will be used to fetch fonts. + @since iText 5.0 This used to be a FontFactoryImp + + + Creates a new instance of FactoryProperties. + + + Setter for the font provider + @param provider + @since 5.0.6 renamed from setFontImp + + + Creates a Font object based on a chain of properties. + @param chain chain of properties + @return an iText Font object + + + Creates an iText Chunk + @param content the content of the Chunk + @param chain the hierarchy chain + @return a Chunk + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a Paragraph without any content + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a ListItem without any content + + + Method that does the actual Element creating for + the createParagraph and createListItem method. + @param paragraph + @param chain + + + Sets the leading of a Paragraph object. + @param paragraph the Paragraph for which we set the leading + @param leading the String value of the leading + + + Gets a HyphenationEvent based on the hyphenation entry in + the hierarchy chain. + @param chain the hierarchy chain + @return a HyphenationEvent + @since 2.1.2 + + + Creates a LineSeparator. + @since 5.0.6 + + + This class maps tags such as div and span to their corresponding + TagProcessor classes. + @deprecated since 5.5.2 + + + Creates a Map containing supported tags. + + + Object that processes the following tags: + i, em, b, strong, s, strike, u, sup, sub + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Maps em to i, strong to b, and strike to s. + This is a convention: the style parser expects i, b and s. + @param tag the original tag + @return the mapped tag + + + Object that processes the a tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Object that processes the br tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Interface that needs to be implemented by every tag that is supported by HTMLWorker. + @deprecated since 5.5.2 + + + Implement this class to tell the HTMLWorker what to do + when an open tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @param attrs the current attributes of the tag + @throws DocumentException + @throws IOException + + + Implement this class to tell the HTMLWorker what to do + when an close tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @throws DocumentException + + + Implement this interface to process images and + to indicate if the image needs to be added or + skipped. + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Allows you to (pre)process the image before (or instead of) + adding it to the DocListener with HTMLWorker. + @param img the Image object + @param attrs attributes of the image + @param chain hierarchy of attributes + @param doc the DocListener to which the Image needs to be added + @return false if you still want HTMLWorker to add the Image + + + Allows you to do additional processing on a Paragraph that contains a link. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Does additional processing on a link paragraph + @param current the Paragraph that has the link + @param attrs the attributes + @return false if the Paragraph no longer needs processing + + + @since 5.0.6 + @deprecated since 5.5.2 + + + We use a TableWrapper because PdfPTable is rather complex + to put on the HTMLWorker stack. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The styles that need to be applied to the table + @since 5.0.6 renamed from props + + + Nested list containing the PdfPCell elements that are part of this table. + + + Array containing the widths of the columns. + @since iText 5.0.6 + + + Creates a new instance of IncTable. + @param attrs a Map containing attributes + + + Adds a new row to the table. + @param row a list of PdfPCell elements + + + Setter for the column widths + @since iText 5.0.6 + + + Creates a new PdfPTable based on the info assembled + in the table stub. + @return a PdfPTable + + + This class is a HashMap that contains the names of colors as a key and the + corresponding Color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + @author blowagie + @deprecated since 5.5.2 + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + @param colStr + A non-null, lower case string that might describe an RGB color + in hex. + @return Is this a web color hex string without the leading #? + @since 5.0.6 + + + Gives you a BaseColor based on a name. + + @param name + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + @return the corresponding BaseColor object. Never returns null. + @throws IllegalArgumentException + if the String isn't a know representation of a color. + + + A class that contains some utilities to parse HTML attributes and content. + @since 5.0.6 (some of these methods used to be in the Markup class) + @deprecated since 5.5.2 + + + a default value for font-size + @since 2.1.3 + + + Parses a length. + + @param str + a length in the form of an optional + or -, followed by a + number and a unit. + @return a float + + + New method contributed by: Lubos Strapko + + @since 2.1.3 + + + Converts a BaseColor into a HTML representation of this + BaseColor. + + @param s + the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + This method parses a String with attributes and returns a Properties + object. + + @param str + a String of this form: 'key1="value1"; key2="value2";... + keyN="valueN" ' + @return a Properties object + + + Removes the comments sections of a String. + + @param str + the original String + @param startComment + the String that marks the start of a Comment section + @param endComment + the String that marks the end of a Comment section. + @return the String stripped of its comment section + + + Helper class that reduces the white space in a String + @param content content containing whitespace + @return the content without all unnecessary whitespace + + + A series of predefined font sizes. + @since 5.0.6 (renamed) + + + Picks a font size from a series of predefined font sizes. + @param value the new value of a font, expressed as an index + @param previous the previous value of the font size + @return a new font size. + + + Translates a String value to an alignment value. + (written by Norman Richards, integrated into iText by Bruno) + @param alignment a String (one of the ALIGN_ constants of this class) + @return an alignment value (one of the ALIGN_ constants of the Element interface) + + + + A class that implements DocListener will perform some + actions when some actions are performed on a Document. + + + + + + + + Signals that the Document has been opened and that + Elements can be added. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + The output stream of every writer implementing IDocListener will be closed. + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Parameter that allows you to do margin mirroring (odd/even pages) + @param marginMirroring + @return true if succesfull + + + Parameter that allows you to do top/bottom margin mirroring (odd/even pages) + @param marginMirroringTopBottom + @return true if successful + @since 2.1.6 + + + + Sets the page number. + + the new page number + + + + Sets the page number to 0. + + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + Checks if this element is a content object. + If not, it's a metadata object. + @since iText 2.0.8 + @return true if this is a 'content' element; false if this is a 'medadata' element + + + Checks if this element is nestable. + @since iText 2.0.8 + @return true if this element can be nested inside other elements. + + + + Gets all the chunks in this element. + + an ArrayList + + + + Gets the content of the text element. + + the content of the text element + + + + A class that implements ElementListener will perform some + actions when an Element is added. + + + + + Signals that an Element was added to the Document. + + Element added + true if the element was added, false if not. + + + These two methods are used by FactoryProperties (for HTMLWorker). + It's implemented by FontFactoryImp. + @since iText 5.0 + + + Checks if a certain font is registered. + + @param fontname the name of the font that has to be checked. + @return true if the font is found + + + Constructs a Font-object. + + @param fontname the name of the font + @param encoding the encoding of the font + @param embedded true if the font is to be embedded in the PDF + @param size the size of this font + @param style the style of this font + @param color the BaseColor of this font. + @return the Font constructed based on the parameters + + + Interface implemented by Element objects that can potentially consume + a lot of memory. Objects implementing the LargeElement interface can + be added to a Document more than once. If you have invoked setCompleted(false), + they will be added partially and the content that was added will be + removed until you've invoked setCompleted(true); + @since iText 2.0.8 + + + If you invoke setCompleted(false), you indicate that the content + of the object isn't complete yet; it can be added to the document + partially, but more will follow. If you invoke setCompleted(true), + you indicate that you won't add any more data to the object. + @since iText 2.0.8 + @param complete false if you'll be adding more data after + adding the object to the document. + + + Flushes the content that has been added. + + + + An Image is the representation of a graphic element (JPEG, PNG or GIF) + that has to be inserted into the document + + + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The imagetype. + + + The URL of the image. + + + The raw data of the image. + + + The template to be treated as an image. + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + if the annotation is not null the image will be clickable. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalType. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + + Constructs an Image-object, using an url. + + the URL where the image can be found. + + + + Constructs an Image object duplicate. + + another Image object. + + + + Gets an instance of an Image. + + an Image + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + a byte array + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image from a System.Drwaing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + + Gets an instance of an Image from a System.Drawing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + an object of type ImgRaw + + + + Gets an instance of an Image. + + a filename + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + an object of type ImgRaw + + + Creates a JBIG2 Image. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + @since 2.1.5 + + + Reuses an existing image. + @param ref the reference to the image dictionary + @throws BadElementException on error + @return the image + + + + Gets an instance of an Image in raw mode. + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + + + + + + + + + + + + + + + + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + + transparency information in the Mask format of the + image dictionary + + an object of type ImgRaw + + + + Sets the absolute position of the Image. + + + + + + + Scale the image to the dimensions of the rectangle + + dimensions to scale the Image + + + + Scale the image to an absolute width and an absolute height. + + the new width + the new height + + + + Scale the image to an absolute width. + + the new width + + + + Scale the image to an absolute height. + + the new height + + + + Scale the image to a certain percentage. + + the scaling percentage + + + + Scale the width and height of an image to a certain percentage. + + the scaling percentage of the width + the scaling percentage of the height + + + + Scales the images to the dimensions of the rectangle. + + the dimensions to fit + + + + Scales the image so that it fits a certain width and height. + + the width to fit + the height to fit + + + Gets the current image rotation in radians. + @return the current image rotation in radians + + + + Sets the rotation of the image in radians. + + rotation in radians + + + + Sets the rotation of the image in degrees. + + rotation in degrees + + + + Get/set the annotation. + + the Annotation + + + + Gets the bpc for the image. + + + this only makes sense for Images of the type RawImage. + + a bpc value + + + + Gets the raw data for the image. + + + this only makes sense for Images of the type RawImage. + + the raw data + + + + Get/set the template to be used as an image. + + + this only makes sense for Images of the type ImgTemplate. + + the template + + + + Checks if the Images has to be added at an absolute position. + + a bool + + + + Checks if the Images has to be added at an absolute X position. + + a bool + + + + Returns the absolute X position. + + a position + + + + Returns the absolute Y position. + + a position + + + + Returns the type. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Returns true if the image is a Jpeg-object. + + a bool + + + + Returns true if the image is a ImgRaw-object. + + a bool + + + + Returns true if the image is an ImgTemplate-object. + + a bool + + + + Gets the string-representation of the reference to the image. + + a string + + + + Get/set the alignment for the image. + + a value + + + + Get/set the alternative text for the image. + + a string + + + + Gets the scaled width of the image. + + a value + + + + Gets the scaled height of the image. + + a value + + + + Gets the colorspace for the image. + + + this only makes sense for Images of the type Jpeg. + + a colorspace value + + + + Returns the transformation matrix of the image. + + an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + Returns the transformation matrix of the image. + + @return an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + + Returns the transparency. + + the transparency + + + + Gets the plain width of the image. + + a value + + + + Gets the plain height of the image. + + a value + + + + generates new serial id + + + + + returns serial id for this object + + + + + Gets the dots-per-inch in the X direction. Returns 0 if not available. + + the dots-per-inch in the X direction + + + + Gets the dots-per-inch in the Y direction. Returns 0 if not available. + + the dots-per-inch in the Y direction + + + Sets the dots per inch value + + @param dpiX + dpi for x coordinates + @param dpiY + dpi for y coordinates + + + + Returns true if this Image has the + requisites to be a mask. + + true if this Image can be a mask + + + + Make this Image a mask. + + + + + Get/set the explicit masking. + + the explicit masking + + + + Returns true if this Image is a mask. + + true if this Image is a mask + + + + Inverts the meaning of the bits of a mask. + + true to invert the meaning of the bits of a mask + + + + Sets the image interpolation. Image interpolation attempts to + produce a smooth transition between adjacent sample values. + + New value of property interpolation. + + + Tags this image with an ICC profile. + @param profile the profile + + + Checks is the image has an ICC profile. + @return the ICC profile or null + + + Indicates if the image should be scaled to fit the line + when the image exceeds the available width. + @since iText 5.0.6 + + + Indicates if the image should be scaled to fit + when the image exceeds the available height. + @since iText 5.4.2 + + + Gets and sets the value of scaleToFitHeight. + @return true if the image size has to scale to the available height + @since iText 5.4.2 + + + Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray. + + + Some image formats, like TIFF may present the images rotated that have + to be compensated. + + + Sets the compression level to be used if the image is written as a compressed stream. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + CCITT Image data that has to be inserted into the document + + @see Element + @see Image + + @author Paulo Soares + + CCITT Image data that has to be inserted into the document + + + + + + + Creats an Image in CCITT mode. + + the exact width of the image + the exact height of the image + + reverses the bits in data. + Bit 0 is swapped with bit 7 and so on + + + the type of compression in data. It can be + CCITTG4, CCITTG31D, CCITTG32D + + + parameters associated with this stream. Possible values are + CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a + combination of them + + the image data + + + Support for JBIG2 images. + @since 2.1.5 + + + JBIG2 globals + + + A unique hash + + + Copy contstructor. + @param image another Image + + + Empty constructor. + + + Actual constructor for ImgJBIG2 images. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + + + Getter for the JBIG2 global data. + @return an array of bytes + + + Getter for the unique hash. + @return an array of bytes + + + + Raw Image data that has to be inserted into the document + + + + + + + Creats an Image in raw mode. + + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + data the image data + + + + PdfTemplate that has to be inserted into the document + + + + + + + Creats an Image from a PdfTemplate. + + the Image + + + + Creats an Image from a PdfTemplate. + + the PdfTemplate + + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + @see Element + @see Image + @see Gif + @see Png + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + + + + Constructs an ImgWMF-object + + a Image + + + + Constructs an ImgWMF-object, using an url. + + the URL where the image can be found + + + + Constructs an ImgWMF-object, using a filename. + + a string-representation of the file that contains the image. + + + + Constructs an ImgWMF-object from memory. + + the memory image + + + + This method checks if the image is a valid WMF and processes some parameters. + + + + + Reads the WMF into a template. + + the template to read to + + + A RandomAccessSource that is based on an underlying byte array + @since 5.3.5 + + + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + A RandomAccessSource that is based on a set of underlying sources, treating the sources as if they were a contiguous block of data. + @since 5.3.5 + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + Constructs a new {@link GroupedRandomAccessSource} based on the specified set of sources + @param sources the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently (for example {@link FileChannelRandomAccessSource} takes advantage of fixed size page buffers to compute the index) + @param offset the offset + @return the index of the input source that contains the specified offset, or 0 if unknown + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup when the source is no longer the active source + @param offset the offset of the byte to look for + @return the SourceEntry that contains the byte at the specified offset + @throws IOException if there is a problem with IO (usually the result of the sourceReleased() call) + + + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + @param source the source that is no longer the active source + @throws IOException if there are any problems + + + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + @param source the source that is about to become the active source + @throws IOException if there are any problems + + + {@inheritDoc} + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Closes all of the underlying sources + + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + @param index the index + @param source the source + @param offset the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + @param absoluteOffset the offset in the parent GroupedRandomAccessSource + @return the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSouce but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + @since 5.3.5 + + + Gets a byte at the specified position + @param position + @return the byte, or -1 if EOF is reached + + + Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be + read will be placed in bytes and the number actually read will be returned. + @param position the position in the RandomAccessSource to read from + @param bytes output buffer + @param off offset into the output buffer where results will be placed + @param len the number of bytes to read + @return the number of bytes actually read, or -1 if the file is at EOF + + + @return the length of this source + + + Closes this source. The underlying data structure or source (if any) will also be closed + @throws IOException + + + + A RandomAccessSource that uses a {@link RandomAccessFile} as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + The source + + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of IOExceptions when reading the length. + + + Creates this object + @param raf the source for this RandomAccessSource + @throws IOException if the RAF can't be read + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Note: the length is determined when the {@link RAFRandomAccessSource} is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + Closes the underlying RandomAccessFile + + + Factory to create {@link RandomAccessSource} objects based on various types of sources + @since 5.3.5 + + + + whether the full content of the source should be read into memory at construction + + + Whether {@link RandomAccessFile} should be used instead of a {@link FileChannel}, where applicable + + + Whether the underlying file should have a RW lock on it or just an R lock + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + Determines whether the full content of the source will be read into memory + @param forceRead true if the full content will be read, false otherwise + @return this object (this allows chaining of method calls) + + + Creates a {@link RandomAccessSource} based on a byte array + @param data the byte array + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a URL. The data available at the URL is read into memory and used + as the source for the {@link RandomAccessSource} + @param url the url to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on an {@link InputStream}. The full content of the InputStream is read into memory and used + as the source for the {@link RandomAccessSource} + @param is the stream to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if forceRead is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened using {@link RandomAccessFile} access (if usePlainRandomAccess is true) + This call will automatically failover to using {@link RandomAccessFile} if the memory map operation fails + @param filename the name of the file or resource to create the {@link RandomAccessSource} for + @return the newly created {@link RandomAccessSource} + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + An input stream that uses a RandomAccessSource as it's underlying source + @since 5.3.5 + + + The source + + + The current position in the source + + + Creates an input stream based on the source + @param source the source + + + Utility class with commonly used stream operations + @since 5.3.5 + + + + Reads the full content of a stream and returns them in a byte array + @param is the stream to read + @return a byte array containing all of the bytes from the stream + @throws IOException if there is a problem reading from the input stream + + + Gets the font resources. + @param key the name of the resource + @return the Stream to get the resource or + null if not found + + + A RandomAccessSource that wraps another RandomAccessSouce and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + @since 5.3.5 + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + @param source the source + @param offset the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + @param source the source + @param offset the amount of the offset to use + @param length the number of bytes to be included in this RAS + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the length will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + + + The RTF jar depends on the iText jar, but the iText jar may not + depend on the RTF jar. This interface offers a temporary solution + until we find a more elegant way to solve this. + + + + Interface for customizing the split character. + + + + + + Interface for a text element to which other objects can be added. + + + + + + + + + + + + Adds an object to the TextElementArray. + + an object that has to be added + true if the addition succeeded; false otherwise + + + + An Jpeg is the representation of a graphic element (JPEG) + that has to be inserted into the document + + + + + + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Construct a Jpeg-object, using a Image + + a Image + + + + Constructs a Jpeg-object, using an Uri. + + + Deprecated, use Image.GetInstance(...) to create an Image + + the Uri where the image can be found + + + + Constructs a Jpeg-object from memory. + + the memory image + + + + Constructs a Jpeg-object from memory. + + the memory image. + the width you want the image to have + the height you want the image to have + + + + Reads a short from the Stream. + + the Stream + an int + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Returns a type of marker. + + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + + This method checks if the image is a valid JPEG and processes some parameters. + + + + An Jpeg2000 is the representation of a graphic element (JPEG) + that has to be inserted into the document + + @see Element + @see Image + + + Constructs a Jpeg2000-object, using an url. + + @param url the URL where the image can be found + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image. + @param width the width you want the image to have + @param height the height you want the image to have + @throws BadElementException + @throws IOException + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + A List contains several ListItems. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + +
+ + a possible value for the numbered parameter + + + a possible value for the numbered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + This is the ArrayList containing the different ListItems. + + + Indicates if the list has to be numbered. + + + Indicates if the listsymbols are numerical or alphabetical. + + + Indicates if the listsymbols are lowercase or uppercase. + + + Indicates if the indentation has to be set automatically. + + + Indicates if the indentation of all the items has to be aligned. + + + This variable indicates the first number of a numbered list. + + + This is the listsymbol of a list that is not numbered. + + + In case you are using numbered/lettered lists, this String is added before the number/letter. + @since iText 2.1.1 + + + In case you are using numbered/lettered lists, this String is added after the number/letter. + @since iText 2.1.1 + + + The indentation of this list on the left side. + + + The indentation of this list on the right side. + + + The indentation of the listitems. + + + Constructs a List. + + + Constructs a List with a specific symbol indentation. + @param symbolIndent the symbol indentation + @since iText 2.0.8 + + + Constructs a List. + + @param numbered a bool + + + Constructs a List. + + @param numbered a bool + @param lettered has the list to be 'numbered' with letters + + + + Constructs a List. + + + the parameter symbolIndent is important for instance when + generating PDF-documents; it indicates the indentation of the listsymbol. + + a bool + the indentation that has to be used for the listsymbol + + + + Constructs a List. + + a bool + a bool + the indentation that has to be used for the listsymbol + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + Adds an Object to the List. + + the object to add + true is successful + + + Makes sure all the items in the list have the same indentation. + + + + Alias for VB.NET compatibility. + + + + + Get/set the first number + + an int + + + + Sets the symbol + + a Chunk + + + + Sets the listsymbol. + + + This is a shortcut for SetListSymbol(Chunk symbol). + + a string + + + + Get/set the indentation of this paragraph on the left side. + + the indentation + + + + Get/set the indentation of this paragraph on the right side. + + the indentation + + + + Gets the symbol indentation. + + the symbol indentation + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Gets all the items in the list. + + an ArrayList containing ListItems + + + + Gets the size of the list. + + a size + + + Returns true if the list is empty. + + @return true if the list is empty + + + + Gets the leading of the first listitem. + + a leading + + + + Get/set the symbol indentation. + + a Chunk + + + Returns the String that is after a number or letter in the list symbol. + @return the String that is after a number or letter in the list symbol + @since iText 2.1.1 + + + Sets the String that has to be added after a number or letter in the list symbol. + @since iText 2.1.1 + @param postSymbol the String that has to be added after a number or letter in the list symbol. + + + Sets the String that has to be added before a number or letter in the list symbol. + @since iText 2.1.1 + @param preSymbol the String that has to be added before a number or letter in the list symbol. + + + + A ListItem is a Paragraph + that can be added to a List. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + + +
+ + this is the symbol that wil proceed the listitem. + + + + Constructs a ListItem. + + + + + Constructs a ListItem with a certain leading. + + the leading + + + + Constructs a ListItem with a certain Chunk. + + a Chunk + + + + Constructs a ListItem with a certain string. + + a string + + + + Constructs a ListItem with a certain string + and a certain Font. + + a string + a string + + + + Constructs a ListItem with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a ListItem with a certain string + and a certain leading. + + the leading + a string + + + Constructs a ListItem with a certain leading, string + and Font. + + @param leading the leading + @param string a string + @param font a Font + + Constructs a ListItem with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a ListItem with a certain Phrase. + + a Phrase + + + + Gets the type of the text element. + + a type + + + + Get/set the listsymbol. + + a Chunk + + + Sets the indentation of this paragraph on the left side. + + @param indentation the new indentation + + + Changes the font of the list symbol to the font of the first chunk + in the list item. + @since 5.0.6 + + + Factory that creates a counter for every reader or writer class. + You can implement your own counter and declare it like this: + CounterFactory.getInstance().setCounter(new SysoCounter()); + SysoCounter is just an example of a Counter implementation. + It writes info about files being read and written to the System.out. + + This functionality can be used to create metrics in a SaaS context. + + + The singleton instance. + + + The current counter implementation. + + + The empty constructor. + + + Returns the singleton instance of the factory. + + + Returns a counter factory. + + + Getter for the counter. + + + Setter for the counter. + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass + @return this Counter implementation + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Interface that can be implemented if you want to count the number of documents + that are being processed by iText. + + Implementers may use this method to record actual system usage for licensing purposes + (e.g. count the number of documents or the volumne in bytes in the context of a SaaS license). + + + Gets a Counter instance for a specific class. + + + This method gets triggered if a file is read. + @param l the length of the file that was written + + + This method gets triggered if a file is written. + @param l the length of the file that was written + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass The Class asking for the Counter + @return the Counter instance + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + The name of the class for which the Counter was created + (or iText if no name is available) + + + Empty SysoCounter constructor. + + + Constructs a SysoCounter for a specific class. + @param klass + + + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Logger interface + {@link LoggerFactory#setLogger(Logger)}. + + @author redlab_b + + + + @param klass + @return the logger for the given klass + + + @param level + @return true if there should be logged for the given level + + + Log a warning message. + @param message + + + Log a trace message. + @param message + + + Log a debug message. + @param message + + + Log an info message. + @param message + + + Log an error message. + @param message + + + Log an error message and exception. + @param message + @param e + + + The different log levels. + @author redlab_b + + + + LoggerFactory can be used to set a logger. The logger should be created by + implementing {@link Logger}. In the implementation users can choose how they + log received messages. Added for developers. For some cases it can be handy + to receive logging statements while developing applications with iText + + @author redlab_b + + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param klass + @return the logger. + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param name + @return the logger. + + + Returns the LoggerFactory + @return singleton instance of this LoggerFactory + + + Set the global logger to process logging statements with. + + @param logger the logger + + + Get the logger. + + @return the logger + + + The no-operation logger, it does nothing with the received logging + statements. And returns false by default for {@link NoOpLogger#isLogging(Level)} + + @author redlab_b + + + + A Simple System.out logger. + @author redlab_be + + + + Defaults packageReduce to 1. + + + Amount of characters each package name should be reduced with. + @param packageReduce + + + + @param klass + @param shorten + + + @param name2 + @return + + + Wrapper that allows to add properties to 'basic building block' objects. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + The element that is wrapped in a MarkedObject. + + + Contains extra markupAttributes + + + This constructor is for internal use only. + + + Creates a MarkedObject. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets the type of the text element. + + @return a type + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + @return the markupAttributes + + + Wrapper that allows to add properties to a Chapter/Section object. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + This is the title of this section. + + + Creates a MarkedObject with a Section or Chapter object. + @param section the marked section + + + Adds a Paragraph, List or Table + to this Section. + + @param index index at which the specified element is to be inserted + @param o an object of type Paragraph, List or Table= + @throws ClassCastException if the object is not a Paragraph, List or Table + + + Adds a Paragraph, List, Table or another Section + to this Section. + + @param o an object of type Paragraph, List, Table or another Section + @return a bool + @throws ClassCastException if the object is not a Paragraph, List, Table or Section + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Adds a collection of Elements + to this Section. + + @param collection a collection of Paragraphs, Lists and/or Tables + @return true if the action succeeded, false if not. + @throws ClassCastException if one of the objects isn't a Paragraph, List, Table + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @return a new Section object + + + Creates a Section, add it to this Section and returns it. + + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @return a new Section object + + + Sets the title of this section. + + @param title the new title + + + + Sets the indentation of this Section on the left side. + + @param indentation the indentation + + + Sets the indentation of this Section on the right side. + + @param indentation the indentation + + + Sets the indentation of the content of this Section. + + @param indentation the indentation + + + Setter for property bookmarkOpen. + @param bookmarkOpen false if the bookmark children are not + visible. + + + Setter for property triggerNewPage. + @param triggerNewPage true if a new page has to be triggered. + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Adds a new page to the section. + @since 2.1.1 + + + + This is an Element that contains + some meta information about the document. + + + An object of type Meta can not be constructed by the user. + Userdefined meta information should be placed in a Header-object. + Meta is reserved for: Subject, Keywords, Author, Title, Producer + and Creationdate information. + + + + + + This is the type of Meta-information this object contains. + + + This is the content of the Meta-information. + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + + Constructs a Meta. + + the type of meta-information + the content + + + + Constructs a Meta. + + the tagname of the meta-information + the content + + + + Processes the element by adding it (or the different parts) to a + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + appends some text to this Meta. + + a string + a StringBuilder + + + + Returns the content of the meta information. + + a string + + + + Returns the name of the meta information. + + a string + + + + Returns the name of the meta information. + + name to match + a string + + + + The PageSize-object contains a number of read only rectangles representing the most common paper sizes. + + + + + This is the letter format + + + This is the note format + + + This is the legal format + + + This is the tabloid format + + + This is the executive format + + + This is the postcard format + + + This is the a0 format + + + This is the a1 format + + + This is the a2 format + + + This is the a3 format + + + This is the a4 format + + + This is the a5 format + + + This is the a6 format + + + This is the a7 format + + + This is the a8 format + + + This is the a9 format + + + This is the a10 format + + + This is the b0 format + + + This is the b1 format + + + This is the b2 format + + + This is the b3 format + + + This is the b4 format + + + This is the b5 format + + + This is the b6 format + + + This is the b7 format + + + This is the b8 format + + + This is the b9 format + + + This is the b10 format + + + This is the archE format + + + This is the archD format + + + This is the archC format + + + This is the archB format + + + This is the archA format + + + This is the American Foolscap format + + + This is the European Foolscap format + + + This is the halfletter format + + + This is the 11x17 format + + + This is the ISO 7810 ID-1 format (85.60 x 53.98 mm or 3.370 x 2.125 inch) + + + This is the ISO 7810 ID-2 format (A7 rotated) + + + This is the ISO 7810 ID-3 format (B7 rotated) + + + This is the ledger format + + + This is the Crown Quarto format + + + This is the Large Crown Quarto format + + + This is the Demy Quarto format. + + + This is the Royal Quarto format. + + + This is the Crown Octavo format + + + This is the Large Crown Octavo format + + + This is the Demy Octavo format + + + This is the Royal Octavo format. + + + This is the small paperback format. + + + This is the Pengiun small paperback format. + + + This is the Penguin large paparback format. + + + This is the letter format + @since iText 5.0.6 + + + This is the legal format + @since iText 5.0.6 + + + This is the a4 format + @since iText 5.0.6 + + + This method returns a Rectangle based on a String. + Possible values are the the names of a constant in this class + (for instance "A4", "LETTER",...) or a value like "595 842" + + + + A Paragraph is a series of Chunks and/or Phrases. + + + A Paragraph has the same qualities of a Phrase, but also + some additional layout-parameters: +
    +
  • the indentation +
  • the alignment of the text +
+
+ + + Paragraph p = new Paragraph("This is a paragraph", + FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + +
+ + The alignment of the text. + + + The indentation of this paragraph on the left side. + + + The indentation of this paragraph on the right side. + + + Holds value of property firstLineIndent. + + + The spacing before the paragraph. + + + The spacing after the paragraph. + + + Holds value of property extraParagraphSpace. + + + Does the paragraph has to be kept together on 1 page. + + + + Constructs a Paragraph. + + + + + Constructs a Paragraph with a certain leading. + + the leading + + + + Constructs a Paragraph with a certain Chunk. + + a Chunk + + + + Constructs a Paragraph with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a Paragraph with a certain string. + + a string + + + + Constructs a Paragraph with a certain string + and a certain Font. + + a string + a Font + + + + Constructs a Paragraph with a certain string + and a certain leading. + + the leading + a string + + + + Constructs a Paragraph with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a Paragraph with a certain Phrase. + + a Phrase + + + Creates a shallow clone of the Paragraph. + @return + + + Creates a shallow clone of the Paragraph. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + + Gets the type of the text element. + + a type + + + + Adds an Object to the Paragraph. + + the object to add + a bool + + + + Get/set the alignment of this paragraph. + + a integer + + + + Get/set the indentation of this paragraph on the left side. + + a float + + + + Get/set the indentation of this paragraph on the right side. + + a float + + + + Set/get if this paragraph has to be kept together on one page. + + a bool + + + + A Phrase is a series of Chunks. + + + A Phrase has a main Font, but some chunks + within the phrase can have a Font that differs from the + main Font. All the Chunks in a Phrase + have the same leading. + + + + // When no parameters are passed, the default leading = 16 + Phrase phrase0 = new Phrase(); + Phrase phrase1 = new Phrase("this is a phrase"); + // In this example the leading is passed as a parameter + Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16"); + // When a Font is passed (explicitely or embedded in a chunk), the default leading = 1.5 * size of the font + Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.GetFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0))); + Phrase phrase4 = new Phrase(new Chunk("this is a phrase")); + Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + + + + + This is the leading of this phrase. + + + The text leading that is multiplied by the biggest font size in the line. + + + This is the font of this phrase. + + + Null, unless the Phrase has to be hyphenated. + @since 2.1.2 + + + Predefined tab position and properties(alignment, leader and etc.); + @since 5.4.1 + + + + Constructs a Phrase without specifying a leading. + + + Has nine overloads. + + + + Copy constructor for Phrase. + + + + Constructs a Phrase with a certain leading. + + the leading + + + + Constructs a Phrase with a certain Chunk. + + a Chunk + + + + Constructs a Phrase with a certain Chunk and a certain leading. + + the leading + a Chunk + + + + Constructs a Phrase with a certain string. + + a string + + + + Constructs a Phrase with a certain string and a certain Font. + + a string + a Font + + + + Constructs a Phrase with a certain leading and a certain string. + + the leading + a string + + + + Processes the element by adding it (or the different parts) to an + . + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Chunk, an Anchor or another Phrase + to this Phrase. + + index at which the specified element is to be inserted + an object of type Chunk, Anchor, or Phrase + + + Adds a String to this Phrase. + + @param s a string + @return a boolean + @since 5.0.1 + + + + Adds a Chunk, Anchor or another Phrase + to this Phrase. + + an object of type Chunk, Anchor or Phrase + a bool + + + + Adds a collection of Chunks + to this Phrase. + + a collection of Chunks, Anchors and Phrases. + true if the action succeeded, false if not. + + + + Adds a Chunk. + + + This method is a hack to solve a problem I had with phrases that were split between chunks + in the wrong place. + + a Chunk + a bool + + + + Adds a Object to the Paragraph. + + the object to add. + + + + Checks is this Phrase contains no or 1 empty Chunk. + + + false if the Phrase + contains more than one or more non-emptyChunks. + + + + + + + Gets/sets the leading of this phrase. + + the linespacing + + + Gets the total leading. + This method is based on the assumption that the + font of the Paragraph is the font of all the elements + that make part of the paragraph. This isn't necessarily + true. + @return the total leading (fixed and multiplied) + + + + Gets the font of the first Chunk that appears in this Phrase. + + a Font + + + Returns the content as a String object. + This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase. + + + Setter/getter for the hyphenation. + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Setter/getter for the tabSettings. + @param tabSettings a TabSettings instance + @since 5.4.1 + + + Constructs a Phrase that can be used in the static GetInstance() method. + @param dummy a dummy parameter + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @param font + @return a newly constructed Phrase + + + + A Rectangle is the representation of a geometric figure. + + + + + + + + This is the value that will be used as undefined. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents a rectangle without borders. + + + This represents a type of border. + + + the lower left x-coordinate. + + + the lower left y-coordinate. + + + the upper right x-coordinate. + + + the upper right y-coordinate. + + + This represents the status of the 4 sides of the rectangle. + + + This is the width of the border around this rectangle. + + + This is the color of the border of this rectangle. + + + The color of the left border of this rectangle. + + + The color of the right border of this rectangle. + + + The color of the top border of this rectangle. + + + The color of the bottom border of this rectangle. + + + The width of the left border of this rectangle. + + + The width of the right border of this rectangle. + + + The width of the top border of this rectangle. + + + The width of the bottom border of this rectangle. + + + Whether variable width borders are used. + + + This is the color of the background of this rectangle. + + + This is the rotation value of this rectangle. + + + + Constructs a Rectangle-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a Rectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation (0, 90, 180, or 270) + @since iText 5.0.6 + + + + Constructs a Rectangle-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a Rectangle-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the rectangle + @since iText 5.0.6 + + + + Constructs a Rectangle-object. + + another Rectangle + + + Constructs a Rectangle-object based on a com.itextpdf.awt.geom.Rectangle object + @param rect com.itextpdf.awt.geom.Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Switches lowerleft with upperright + + + + Gets a Rectangle that is altered to fit on the page. + + the top position + the bottom position + a Rectangle + + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + a Rectangle + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Returns the lower left x-coordinate, considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Returns the width of the rectangle. + + a width + + + + Returns the height of the rectangle. + + a height + + + + Indicates if the table has borders. + + a bool + + + + Indicates if the table has a some type of border. + + the type of border + a bool + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Updates the border flag for a side based on the specified width. A width + of 0 will disable the border on that side. Any other width enables it. + + @param width + width of border + @param side + border side constant + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A RectangleReadOnly is the representation of a geometric figure. + It's the same as a Rectangle but immutable. + + + + + + + + + Constructs a RectangleReadOnly-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a RectangleReadOnly -object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the Rectangle (0, 90, 180, 270) + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a RectangleReadOnly-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object. + + another Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Switches lowerleft with upperright + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A special-version of LIST which use roman-letters. + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + Initialization + + + Initialization + + @param symbolIndent indent + + + Initialization + @param romanlower roman-char in lowercase + @param symbolIndent indent + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A Section is a part of a Document containing + other Sections, Paragraphs, List + and/or Tables. + + + You can not construct a Section yourself. + You will have to ask an instance of Section to the + Chapter or Section to which you want to + add the new Section. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0))); + Section section11 = section1.AddSection(40, title211, 2); + section11.Add(someSectionText);strong> + + + + + A possible number style. The default number style: "1.2.3." + @since iText 2.0.8 + + + A possible number style. For instance: "1.2.3" + @since iText 2.0.8 + + + This is the title of this section. + + + This is the number of sectionnumbers that has to be shown before the section title. + + + The style for sectionnumbers. + @since iText 2.0.8 + + + The indentation of this section on the left side. + + + The indentation of this section on the right side. + + + The additional indentation of the content of this section. + + + This is the number of subsections. + + + This is the complete list of sectionnumbers of this section and the parents of this section. + + + Indicates if the Section will be complete once added to the document. + @since iText 2.0.8 + + + Indicates if the Section was added completely to the document. + @since iText 2.0.8 + + + Indicates if this is the first time the section was added. + @since iText 2.0.8 + + + false if the bookmark children are not visible + + + true if the section has to trigger a new page + + + The bookmark title if different from the content title + + + + Constructs a new Section. + + + Has 2 overloads. + + + + + Constructs a new Section. + + a Paragraph + the numberDepth + + + + Sets the number of this section. + + the number of this section + an ArrayList, containing the numbers of the Parent + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Paragraph, List or Table + to this Section. + + index at which the specified element is to be inserted + an object of type Paragraph, List or Table + + + + Adds a Paragraph, List, Table or another Section + to this Section. + + an object of type Paragraph, List, Table or another Section + a bool + + + + Adds a collection of Elements + to this Section. + + a collection of Paragraphs, Lists and/or Tables + true if the action succeeded, false if not. + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Creates a Section, add it to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a marked section. For use in class MarkedSection only! + + + + Creates a Section, adds it to this Section and returns it. + + the title of the new section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param indentation the indentation of the new section + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the title of the new section + the newly added Section + + + + Get/set the title of this section + + a Paragraph + + + Sets the style for numbering sections. + Possible values are NUMBERSTYLE_DOTTED: 1.2.3. (the default) + or NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT: 1.2.3 + @since iText 2.0.8 + + + Constructs a Paragraph that will be used as title for a Section or Chapter. + @param title the title of the section + @param numbers a list of sectionnumbers + @param numberDepth how many numbers have to be shown + @param numberStyle the numbering style + @return a Paragraph object + @since iText 2.0.8 + + + + Checks if this object is a Chapter. + + + true if it is a Chapter, + false if it is a Section + + + + + Checks if this object is a Section. + + + true if it is a Section, + false if it is a Chapter. + + + + + Get/set the numberdepth of this Section. + + a int + + + + Get/set the indentation of this Section on the left side. + + the indentation + + + + Get/set the indentation of this Section on the right side. + + the indentation + + + + Get/set the indentation of the content of this Section. + + the indentation + + + + Returns the depth of this section. + + the depth + + + + Get/set the bookmark + + a bool + + + Gets the bookmark title. + @return the bookmark title + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Changes the Chapter number. + + + Indicates if this is the first time the section is added. + @since iText2.0.8 + @return true if the section wasn't added yet + + + @see com.lowagie.text.LargeElement#isAddedCompletely() + @since iText 2.0.8 + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Adds a new page to the section. + @since 2.1.1 + + + Returns the first occurrence of a special symbol in a String. + + @param string a String + @return an index of -1 if no special symbol was found + + + Gets a chunk with a symbol character. + @param c a character that has to be changed into a symbol + @param font Font if there is no SYMBOL character corresponding with c + @return a SYMBOL version of a character + + + Looks for the corresponding symbol in the font Symbol. + + @param c the original ASCII-char + @return the corresponding symbol in font Symbol + + + A collection of convenience methods that were present in many different iText + classes. + + + + + + + + + + Utility method to extend an array. + @param original the original array or null + @param item the item to be added to the array + @return a new array with the item appended + + + Checks for a true/false value of a key in a Properties object. + @param attributes + @param key + @return + + + + This method makes a valid URL from a given filename. + + + + + a given filename + a valid URL + + + Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value. + @param src the url to unescape + @return the eunescaped value + + + + This method is an alternative for the Stream.Skip()-method + that doesn't seem to work properly for big values of size. + + the stream + the number of bytes to skip + + + Measurement conversion from millimeters to points. + @param value a value in millimeters + @return a value in points + @since 2.1.2 + + + Measurement conversion from millimeters to inches. + @param value a value in millimeters + @return a value in inches + @since 2.1.2 + + + Measurement conversion from points to millimeters. + @param value a value in points + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from points to inches. + @param value a value in points + @return a value in inches + @since 2.1.2 + + + Measurement conversion from inches to millimeters. + @param value a value in inches + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from inches to points. + @param value a value in inches + @return a value in points + @since 2.1.2 + + + Reads the contents of a file to a String. + @param path the path to the file + @return a String with the contents of the file + @since iText 5.0.0 + + + Converts an array of bytes to a String of hexadecimal values + @param bytes a byte array + @return the same bytes expressed as hexadecimal values + + + + The ParserBase-class provides XML document parsing. + + + + + Begins the process of processing an XML document + + the XML document to parse + + + + This method gets called when a start tag is encountered. + + + + the name of the tag that is encountered + the list of attributes + + + + This method gets called when an end tag is encountered. + + + + the name of the tag that ends + + + + This method gets called when characters are encountered. + + an array of characters + the start position in the array + the number of characters to read from the array + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains all possible id values of the entity tag + that can be translated to a character in font Symbol. + + + Gets a chunk with a symbol character. + @param e a symbol value (see Entities class: alfa is greek alfa,...) + @param font the font if the symbol isn't found (otherwise Font.SYMBOL) + @return a Chunk + + + Looks for the corresponding symbol in the font Symbol. + + @param name the name of the entity + @return the corresponding character in font Symbol + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains the names of entities and their unicode value. + + + Translates an entity to a unicode character. + + @param name the name of the entity + @return the corresponding unicode character + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a comment is found. + @param text the comment text + + + + possible states + + + the state stack + + + The current character. + + + The previous character. + + + the line we are currently reading + + + the column where the current character occurs + + + was the last character equivalent to a newline? + + + A boolean indicating if the next character should be taken into account + if it's a space character. When nospace is false, the previous character + wasn't whitespace. + @since 2.1.5 + + + the current state + + + Are we parsing HTML? + + + current text (whatever is encountered between tags) + + + + current tagname + + + current attributes + + + The handler to which we are going to forward document content + + + The handler to which we are going to forward comments. + + + Keeps track of the number of tags that are open. + + + the quote character that was used to open the quote. + + + the attribute key. + + + the attribute value. + + + Creates a Simple XML parser object. + Call Go(BufferedReader) immediately after creation. + + + Does the actual parsing. Perform this immediately + after creating the parser object. + + + Gets a state from the stack + @return the previous state + + + Adds a state to the stack. + @param s a state to add to the stack + + + Flushes the text that is currently in the buffer. + The text can be ignored, added to the document + as content or as comment,... depending on the current state. + + + Initialized the tag name and attributes. + + + Sets the name of the tag. + + + processes the tag. + @param start if true we are dealing with a tag that has just been opened; if false we are closing a tag. + + + Throws an exception + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param r the document. The encoding is already resolved. The reader is not closed + @throws IOException on error + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param in the document. The encoding is deduced from the stream. The stream is not closed + @throws IOException on error + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + + + This {@link NewLineHandler} returns true on the tags p, + blockqouteand br + + @author Balder + + + + Default constructor + + @since 5.0.6 + + + Always returns false. + @author Balder + @since 5.0.6 + + + + A NewLineHandler determines if an encountered tag should result in a new line + in a document. + + @author Balder + @since 5.0.6 + + + @param tag the tag to check if after this one a new line should be in a document + @return true in case a new line should be added. + @since 5.0.6 + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + @param shorthand + @throws IOException + + + Adds a title. + @param title + + + Adds a title. + @param title + + + Adds a description. + @param desc + + + Adds a description. + @param desc + + + Adds a subject. + @param subject + + + Adds a subject. + @param subject array of subjects + + + Adds a single author. + @param author + + + Adds an array of authors. + @param author + + + Adds a single publisher. + @param publisher + + + Adds an array of publishers. + @param publisher + + + + A wrapper for an Encoding to suppress the preamble. + + + + Key for the default language. + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Add a language. + + + Process a property. + + + Creates a String that can be used in an XmpSchema. + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + @throws IOException + + + Adds keywords. + @param keywords + + + Adds the producer. + @param producer + + + Adds the version. + @param version + + + StringBuilder to construct an XMP array. + + + An array that is unordered. + + + An array that is ordered. + + + An array with alternatives. + + + the type of array. + + + Creates an XmpArray. + @param type the type of array: UNORDERED, ORDERED or ALTERNATIVE. + + + Returns the String representation of the XmpArray. + @return a String representation + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History�s softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + @param shorthand + @throws IOException + + + Adds the creatortool. + @param creator + + + Adds the creation date. + @param date + + + Adds the modification date. + @param date + + + Adds the meta data date. + @param date + + + Adds the identifier. + @param id + + + Adds the nickname. + @param name + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + @throws IOException + + + Reads an XMP stream into an org.w3c.dom.Document objects. + Allows you to replace the contents of a specific tag. + @since 2.1.3 + + + String used to fill the extra space. + + + Processing Instruction required at the start of an XMP stream + @since iText 2.1.6 + + + Processing Instruction required at the end of an XMP stream for XMP streams that can be updated + @since iText 2.1.6 + + + Constructs an XMP reader + @param bytes the XMP content + @throws ExceptionConverter + @throws IOException + @throws SAXException + + + Replaces the content of a tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 2.1.6 the return type has changed from void to boolean + + + Replaces the content of an attribute in the description tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 5.0.0 the return type has changed from void to boolean + + + Adds a tag. + @param namespaceURI the URI of the namespace + @param parent the tag name of the parent + @param localName the name of the tag to add + @param value the new content for the tag + @return true if the content was successfully added + @since 2.1.6 + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param domDocument the Document that contains the node + @param n the Node to add the text to + @param value the text to add + + + Writes the document to a byte array. + + + Abstract superclass of the XmpSchemas supported by iText. + + + the namesspace + + + Constructs an XMP schema. + @param xmlns + + + The String representation of the contents. + @return a String representation. + + + Processes a property + @param buf + @param p + + + @return Returns the xmlns. + + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @see java.util.Properties#setProperty(java.lang.String, java.lang.String) + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @param content + @return + + + With this class you can create an Xmp Stream that can be used for adding + Metadata to a PDF Dictionary. Remark that this class doesn't cover the + complete XMP specification. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + Creates an XmpWriter. + @param os + @param utfEncoding + @param extraSpace + @throws IOException + + + Creates an XmpWriter. + @param os + @throws IOException + + + @param os + @param info + @throws IOException + + + @param os + @param info + @throws IOException + @since 5.0.1 (generic type in signature) + + + Sets the XMP to read-only + + + @param about The about to set. + + + Adds an rdf:Description. + @param xmlns + @param content + @throws IOException + + + Adds an rdf:Description. + @param s + @throws IOException + + + @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + @param propName The name of the property. + Has the same usage as in getProperty(). + @param value the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + @throws XMPException Wraps all errors and exceptions that may occur. +
+ + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an ordered array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an alternate array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Flushes and closes the XmpWriter. + @throws IOException + + + Flushes and closes the XmpWriter. + @throws IOException + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + Adds a title. + + @param xmpMeta + @param title + + + Sets a title. + + @param xmpMeta + @param title + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a description. + + @param xmpMeta + @param desc + + + Sets a description. + + @param xmpMeta + @param desc + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a subject. + + @param xmpMeta + @param subject + + + Sets a subject. + + @param xmpMeta + @param subject array of subjects + + + Adds a single author. + + @param xmpMeta + @param author + + + Sets an array of authors. + + @param xmpMeta + @param author + + + Adds a single publisher. + + @param xmpMeta + @param publisher + + + Sets an array of publishers. + + @param xmpMeta + @param publisher + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + Adds keywords. + + @param xmpMeta + @param keywords + + + Adds the producer. + + @param xmpMeta + @param producer + + + Adds the version. + + @param xmpMeta + @param version + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + Adds the creatortool. + + @param xmpMeta + @param creator + + + Adds the creation date. + + @param xmpMeta + @param date + + + Adds the modification date. + + @param xmpMeta + @param date + + + Adds the meta data date. + + @param xmpMeta + @param date + + + Sets the identifier. + + @param xmpMeta + @param id + + + Adds the nickname. + + @param xmpMeta + @param name + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + + @author psoares + + + Print writer. + + + Canonical output. + + + Processing XML 1.1 document. + + + Default constructor. + + + Sets whether output is canonical. + + + Sets the output stream for printing. + + + Sets the output writer. + + + Writes the specified node, recursively. + + + Returns a sorted list of attributes. + + + Normalizes and prints the given string. + + + Normalizes and print the given character. + + + This class converts XML into plain text stripping all tags. + + + Buffer that stores all content that is encountered. + + + Static method that parses an XML Stream. + @param is the XML input that needs to be parsed + @return a String obtained by removing all tags from the XML + + + Creates an instance of XML to TXT. + + + @return the String after parsing. + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Map) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + Contains utility methods for XML. + @author Balder + @since 5.0.6 + + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + @since 5.0.6 + + + + Unescapes 'lt', 'gt', 'apos', 'quote' and 'amp' to the + corresponding character values. + @param s a string representing a character + @return a character value + + + Checks if a character value should be escaped/unescaped. + @param s the String representation of an integer + @return true if it's OK to escape or unescape this value + + + Checks if a character value should be escaped/unescaped. + @param c a character value + @return true if it's OK to escape or unescape this value + + + Looks for a character in a character array, starting from a certain position + @param needle the character you're looking for + @param haystack the character array + @param start the start position + @return the position where the character was found, or -1 if it wasn't found. + + + Returns the IANA encoding name that is auto-detected from + the bytes specified, with the endian-ness of that encoding where appropriate. + (method found in org.apache.xerces.impl.XMLEntityManager, originally published + by the Apache Software Foundation under the Apache Software License; now being + used in iText under the MPL) + @param b4 The first four bytes of the input. + @return an IANA-encoding string + @since 5.0.6 + + + + A special-version of LIST whitch use zapfdingbats-letters. + + @see com.lowagie.text.List + @author Michael Niedermair and Bruno Lowagie + + + char-number in zapfdingbats + + + Creates a ZapfDingbatsList + + @param zn a char-number + + + Creates a ZapfDingbatsList + + @param zn a char-number + @param symbolIndent indent + + + Sets the dingbat's color. + + @param zapfDingbatColor color for the ZapfDingbat + + + set the char-number + @param zn a char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A special-version of LIST whitch use zapfdingbats-numbers (1..10). + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + which type + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + get the type + + @return char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + Objects implementing Indentable allow to set indentation left and right. + + + Sets the indentation on the left side. + + @param indentation the new indentation + + + Sets the indentation on the right side. + + @param indentation the new indentation + + + Objects implementing Spaceable allow setting spacing before and after. + + + Sets the spacing before. + + @param spacing the new spacing + + + Sets the spacing after. + + @param spacing the new spacing + + + @author itextpdf.com + + + + Receive a writer and the document to do certain operations on them. + @param writer the PdfWriter + @param doc the document + @throws DocumentException + + + This class contains version information about iText. + DO NOT CHANGE THE VERSION INFORMATION WITHOUT PERMISSION OF THE COPYRIGHT HOLDERS OF ITEXT. + Changing the version makes it extremely difficult to debug an application. + Also, the nature of open source software is that you honor the copyright of the original creators of the software. + + + String that will indicate if the AGPL version is used. + + + The iText version instance. + + + This String contains the name of the product. + iText is a registered trademark by iText Group NV. + Please don't change this constant. + + + This String contains the version number of this iText release. + For debugging purposes, we request you NOT to change this constant. + + + This String contains the iText version as shown in the producer line. + iText is a product developed by iText Group NV. + iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + The license key. + + + Gets an instance of the iText version that is currently used. + Note that iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + * Gets the product name. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the product name + + + * Gets the release number. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the release number + + + * Returns the iText version as shown in the producer line. + * iText is a product developed by iText Group NV. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return iText version + + + Returns a license key if one was provided, or null if not. + @return a license key. + + + Checks if the AGPL version is used. + @return returns true if the AGPL version is used. + + + An element that is not an element, it holds {@link Element#WRITABLE_DIRECT} + as Element type. It implements WriterOperation to do operations on the + {@link PdfWriter} and the {@link Document} that must be done at the time of + the writing. Much like a {@link VerticalPositionMark} but little different. + + @author itextpdf.com + + + + @return {@link Element#WRITABLE_DIRECT} + + + The TYPE_UNKNOWN is an initial type value + + + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Multiply matrix of two AffineTransform objects + @param t1 - the AffineTransform object is a multiplicand + @param t2 - the AffineTransform object is a multiplier + @return an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + @version $Revision: 1.4 $ + + + + + marker for invalid bytes + + + + marker for accepted whitespace bytes + + + + marker for an equal symbol + + + + Encode the given byte[]. + + the source string. + the base64-encoded data. + + + + Encode the given byte[]. + + the source string. + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + the base64-encoded data. + + + + Encode the given string. + the source string. + the base64-encoded string. + + + + Decode the given byte[]. + + + the base64-encoded data. + the decoded data. + + + + Decode the given string. + + the base64-encoded string. + the decoded string. + + + + Byte buffer container including length of valid data. + + @since 11.10.2006 + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + + Loads the stream into a buffer. + + an InputStream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + + Appends a byte to the buffer. + a byte + + + + Appends a byte array or part of to the buffer. + + a byte array + an offset with + + + + + Append a byte array to the buffer + a byte array + + + + Append another buffer to this buffer. + another ByteBuffer + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + Reads a single character. + + @exception IOException If an I/O error occurs + + + Reads characters into a portion of an array. + + @exception IOException If an I/O error occurs + + + ** + + + + @since 22.08.2006 + + + + + the result of the escaping sequence + + + + count the digits of the sequence + + + + the state of the automaton + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + @since 16.02.2006 + + + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + + + @since 22.08.2006 + + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + + Skips the next char. + + + + Returns the current position. + + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + + @since 12.10.2006 + + + + + Private constructor + + + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + + @since 11.08.2006 + + + + + private constructor + + + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + + Asserts that a specific language is set. + a specific lang + Specific language is null or empty + + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + + Asserts that any string parameter is set. + any string parameter + Thrown if the parameter is null or has length 0. + + + + Asserts that the xmp object is of this implemention + (). + the XMP object + A wrong implentaion is used. + + + + Parser for "normal" XML serialisation of RDF. + + @since 14.07.2006 + + + + + Start of coreSyntaxTerms. + + + + End of coreSyntaxTerms + + + + Start of additions for syntax Terms. + + + + End of of additions for syntaxTerms. + + + + Start of oldTerms. + + + + End of oldTerms. + + + + ! Yes, the syntax terms include the core terms. + + + + this prefix is used for default namespaces + + + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + thown on parsing errors + + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* )* + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.14 propertyElt + + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + Add a leaf node with the text value and qualifiers for the attributes. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thown on parsing errors + + + + + Adds a child node. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thown on parsing errors + + + + Adds a qualifier node. + + the parent xmp node + the name of the qualifier which has to be + QName including the default prefix + the value of the qualifier + Returns the newly created child node. + thown on parsing errors + + + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thown on parsing errors + + + + Checks if the node is a white space. + an XML-node + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + If an I/O error occurs + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + If an I/O error occurs + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + If the pushback buffer is full, + or if some other I/O error occurs + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + If an I/O error occurs + + + + @since 09.11.2006 + + + + + XML localname + + + + XML namespace prefix + + + + Splits a qname into prefix and localname. + a QName + + + + Constructor that initializes the fields + the prefix + the name + + + the localName + + + the prefix + + + Returns whether the QName has a prefix. + + + + Utility functions for the XMPToolkit implementation. + + @since 06.06.2006 + + + + + segments of a UUID + + + + length of a UUID + + + + + + init char tables + + + + Private constructor + + + + + + + + a schema namespace + + an XMP Property + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + Check some requirements for an UUID: +
    +
  • Length of the UUID is 32
  • +
  • The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23)
  • +
+ +
+ uuid to test + true - this is a well formed UUID, false - UUID has not the expected format +
+ + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + + + Replaces the ASCII control chars with a space. + + + a node value + Returns the cleaned up value + + + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + @since 16.02.2006 + + + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Use NO time zone as default + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZone. + + a date describing an absolute point in time + a TimeZone how to interpret the date + + + + Creates an XMPDateTime-instance from an ISO 8601 string. + + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + @since 29.06.2006 + + + + + the node iterator doing the work + + + + stores the iterator options + + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + + flag to indicate that skipSiblings() has been called. + + + + Constructor with optionsl initial values. If propName is provided, + schemaNs has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNs + advanced iteration options, see + If the node defined by the paramters is not existing. + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + + + + + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + @since 29.06.2006 + + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + + Implementation for . + + @since 17.02.2006 + + + + + Property values are Strings by default + + + + root of the metadata tree + + + + the xpacket processing instructions content + + + + Constructor for an empty metadata object. + + + + + Constructor for a cloned metadata tree. + + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + Returns the root node of the XMP tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for SetProperty() and related calls, used after the node is + found or created. + + + the newly created node + + the node value, can be null + + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + + an int indicating the value type + + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + @since 01.02.2006 + + + + + Hidden constructor, initialises the SAX parser handler. + + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + the parse options + Returns the resulting XMP metadata object + Thrown if parsing or normalisation fails. + + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + Possible improvements: + + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + @since 21.02.2006 + + + + + flag if the node is an alias + + + + list of child nodes, lazy initialized + + + + flag if the node has aliases + + + + flag if the node has an "rdf:value" child node. + + + + flag if the node is implicitly created + + + + name of the node, contains different information depending of the node kind + + + + options describing the kind of the node + + + + link to the parent node + + + + list of qualifier of the node, lazy initialized + + + + value of the node, contains different information depending of the node kind + + + + Creates an XMPNode with initial values. + + the name of the node + the value of the node + the options of the node + + + + Constructor for the node without value. + + the name of the node + the options of the node + + + Returns the parent node. + + + Returns the number of children without neccessarily creating a list. + + + Returns the number of qualifier without neccessarily creating a list. + + + Returns the name. + + + Returns the value. + + + Returns the options. + + + Returns the implicit flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + Returns if the node contains aliases (applies only to schema nodes) + + + the hasValueChild + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + + + Resets the node. + + + + an index [1..size] + Returns the child with the requested index. + + + + Adds a node as child to this node. + an XMPNode + + + + + Adds a node as child to this node. + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + an XMPNode + + + + + Replaces a node with another one. + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + the replacement XMPNode + + + + Removes a child at the requested index. + the index to remove [1..size] + + + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + + Removes all children from the node. + + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + + Removes all qualifiers from the node and sets the options appropriate. + + + + qualifier node name to look for + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + Returns whether the node has children. + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + Returns whether the node has qualifier attached. + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + + Renders this node and the tree unter this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + + Utilities for XMPNode. + + @since Aug 28, 2006 + + + + + Private Constructor + + + + + Find or create a schema node if createNodes is false and + + the root of the xmp tree. + a namespace + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + + the parent node + + the node name to find + + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + + Follow an expanded path expression to find or create a node. + + the node to begin the search. + the complete xpath + flag if nodes shall be created + (when called by setProperty()) + the options for the created leaf nodes (only when + createNodes == true). + Returns the node if found or created or null. + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + the top-most node to delete. + + + + This is setting the value of a leaf node. + + an XMPNode + a value + + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + + the node value to set + Returns the String representation of the node value. + + + + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XmpPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + Returns the index of th + + + + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + + an alt text array node + + + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + + the array node to check if its an alt-text array + + + + Appends a language item to an alt text array. + + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + Looks for the appropriate language item in a text alternative array.item + + + an array node + + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + + @since Aug 18, 2006 + + + + + caches the correct dc-property array forms + + + + init char tables + + + + Hidden constructor + + + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + + Visit all schemas to do general fixes and handle special cases. + + the metadata object implementation + Thrown if the normalisation fails. + + + + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + the property node of the array to repair. + Forwards unexpected exceptions. + + + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + Forwards XMP errors + + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + +
+            1. If there is no dc:rights array, or an empty array -
+               Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
+            
+            2. If there is a dc:rights array but it has no x-default item -
+               Create an x-default item as a copy of the first item then apply rule #3.
+            
+            3. If there is a dc:rights array with an x-default item, 
+               Look for a double linefeed in the value.
+                A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
+                    A1. If they match then leave the x-default value alone.
+                    A2. Otherwise, append a double linefeed and 
+                        the xmpDM:copyright value to the x-default value.
+                B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
+                    B1. If they match then leave the x-default value alone.
+                    B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
+            
+            4. In all cases, delete the xmpDM:copyright property.
+            
+
+ the metadata object + the "dm:copyright"-property +
+ + + Initializes the map that contains the known arrays, that are fixed by + . + + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + @since 27.01.2006 + + + + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + + a map from a namespace URI to its registered prefix + + + + a map from a prefix to the associated namespace URI + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + If the registrations of at least one alias fails. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + @since 11.07.2006 + + + + + Static method to Serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to Serialize to + serialization options, can be null for default. + + + + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see + ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + @since 11.07.2006 + + + + + default padding + + + + The w/r is missing inbetween + + + + a set of all rdf attribute qualifier + + + + the stored serialization options + + + + the output stream to Serialize to + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + this writer is used to do the actual serialization + + + + the metadata object to be serialized. + + + + The actual serialization. + + the metadata object to be serialized + outputStream the output stream to Serialize to + the serialization options + + If case of wrong options or any other serialization error. + + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + +
+ +
+             	<ns:UnqualifiedStructProperty-1
+             		... The fields as attributes, if all are simple and unqualified
+             	/>
+             
+             	<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
+             		... The fields as elements, if none are simple and unqualified
+             	</ns:UnqualifiedStructProperty-2>
+             
+             	<ns:UnqualifiedStructProperty-3>
+             		<rdf:Description
+             			... The simple and unqualified fields as attributes
+             		>
+             			... The compound or qualified fields as elements
+             		</rdf:Description>
+             	</ns:UnqualifiedStructProperty-3>
+             
+             	<ns:UnqualifiedArrayProperty>
+             		<rdf:Bag> or Seq or Alt
+             			... Array items as rdf:li elements, same forms as top level properties
+             		</rdf:Bag>
+             	</ns:UnqualifiedArrayProperty>
+             
+             	<ns:QualifiedProperty rdf:parseType="Resource">
+             		<rdf:value> ... Property "value" 
+             			following the unqualified forms ... </rdf:value>
+             		... Qualifiers looking like named struct fields
+             	</ns:QualifiedProperty>
+            
+ +
+ + *** Consider numbered array items, but has compatibility problems. *** + Consider qualified form with rdf:Description and attributes. +
+ the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. +
+ + + Serializes a simple property. + + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + + Serializes an array property. + + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes a struct property. + + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + +
+ +
+            	<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
+            
+            	<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
+            		<rdf:Description>
+            			... Fields, same forms as top level properties
+            		</rdf:Description>
+            	</ns:UnqualifiedStructProperty>
+            
+            	<ns:ResourceStructProperty rdf:resource="URI"
+            		... Fields as attributes
+            	>
+            
+            	<ns:UnqualifiedArrayProperty>
+            		<rdf:Bag> or Seq or Alt
+            			... Array items as rdf:li elements, same forms as top level properties
+            		</rdf:Bag>
+            	</ns:UnqualifiedArrayProperty>
+            
+            	<ns:QualifiedProperty>
+            		<rdf:Description>
+            			<rdf:value> ... Property "value" following the unqualified 
+            				forms ... </rdf:value>
+            			... Qualifiers looking like named struct fields
+            		</rdf:Description>
+            	</ns:QualifiedProperty>
+            
+ +
+
+ the property node + property shall be rendered as attribute rather than tag + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. +
+ + + Writes the array start and end tags. + + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + + Writes indents and automatically includes the baseindend from the options. + number of indents to write + forwards exception + + + + Writes a char to the output. + a char + forwards writer exceptions + + + + Writes a String to the output. + a String + forwards writer exceptions + + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + + Writes a newline according to the options. + Forwards exception + + + + @since 11.08.2006 + + + + + + + + + + Private constructor, as + + + + + + see {@link XMPUtils#separateArrayItems(XMPMeta, String, String, String, + PropertyOptions, boolean)} + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + + Option flags to control the separation. + + Flag if commas shall be preserved + + + Forwards the Exceptions from the metadata processing + + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + + a schema node + + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + + opened and closing quote in a string + + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + + a char + Return the character kind. + + + + the open quote char + Returns the matching closing quote for an open quote. + + + + Add quotes to the item. + + + the array item + + the open quote character + + the closing quote character + + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + Representates an XMP XmpPath with segment accessor methods. + + @since 28.02.2006 + + + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + + Marks an array index step + + + + stores the segments of an XmpPath + + + + Append a path segment + + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + + Parser for XMP XPaths. + + @since 01.03.2006 + + + Private constructor + + + + @param path + @param pos + @throws XmpException + + + Parses a struct segment + @param pos the current position in the path + @return Retusn the segment or an errror + @throws XmpException If the sement is empty + + + Parses an array index segment. + + @param pos the xmp path + @return Returns the segment or an error + @throws XmpException thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + @param schemaNs the root namespace + @param pos the parsing position helper + @param expandedXPath the path to contribute to + @throws XmpException If the path is not valid. + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + @param qualName + a qualifier name + @throws XmpException + If the name is not conformant + + + Verify if an XML name is conformant. + + @param name + an XML name + @throws XmpException + When the name is not XML conformant + + + + This objects contains all needed char positions to parse. + + + the complete path + the end of a segment name + + + the begin of a step + + + the end of a step + + + + A segment of a parsed XmpPath. + + @since 23.06.2006 + + + + + flag if segment is an alias + + + + alias form if applicable + + + + kind of the path segment + + + + name of the path segment + + + + Constructor with initial values. + + the name of the segment + + + + Constructor with initial values. + + the name of the segment + the kind of the segment + + + Returns the kind. + + + Returns the name. + + + the flag to set + + + Returns the aliasForm if this segment has been created by an alias. + + + + + Returns the year, can be negative. + + + Returns The month in the range 1..12. + + + Returns the day of the month in the range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + Returns the time zone. + + + + Returns the ISO 8601 string representation of the date and time. + + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and Serialize the metadata + to a String, byte-array or OutputStream. + + @since 20.01.2006 + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last existing array + item. + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + Wraps all errors and exceptions that may occur. + + + + Returns the number of items in the array. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + + + + + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use to find + out the length of the array. + the new value of the array item. Has the same usage as propValue in + SetProperty(). + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XmpConst.ARRAY_LAST_ITEM to append items. + the new value of the array item. Has the same usage as + propValue in SetProperty(). + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + + + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + the value of thefield, if the field has a value. + Has the same usage as propValue in GetProperty. + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in GetProperty. + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. Has the same usage as in GetProperty. + + + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns true if the property exists. + + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + GetProperty(). + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + Returns true if the array exists, false otherwise. + + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + Returns true if the field exists. + + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty(). + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + Returns true if the qualifier exists. + + + + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + GetProperty(). + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + + These are very similar to GetProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Boolean value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns an Integer value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Long value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Double value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a XMPDateTime-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Java Calendar-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + Note: There is no SetPropertyString(), + because SetProperty() sets a string value. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a String value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as Java Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + Option flags to control the iteration. See for + details. + Returns an XMPIterator for this XMPMeta-object + considering the given options. + Wraps all errors and exceptions that may occur. + + + + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + + Determines if a name is an alias, and what it is aliased to. + + + The namespace URI of the alias. Must not be null or the empty + string. + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + + Searches for registered aliases. + + + an XML conform qname + Returns if an alias definition for the given qname to another + schema and property is registered. + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + Options for XMPSchemaRegistryImpl#registerAlias. + + @since 20.02.2006 + + + + + This is a direct mapping. The actual data type does not matter. + + + + The actual is an unordered array, the alias is to the first element of the array. + + + + The actual is an ordered array, the alias is to the first element of the array. + + + + The actual is an alternate array, the alias is to the first element of the array. + + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + + returns a s object + If the options are not consistant. + + + + + Options for XMPIterator construction. + + @since 24.01.2006 + + + + + Just do the immediate children of the root, default is subtree. + + + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + + Return just the leaf part of the path, default is the full path. + + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + + + + Options for . + + @since 24.01.2006 + + + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + + Do not reconcile alias differences, throw an exception instead. + + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + + Sets the options to the default values. + + + + Returns the requireXMPMeta. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the option "omit normalization". + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + @since 03.07.2006 + + + + + may be used in the future + + + + Updated by iText. Indicates if the property should be writted as a separate node + + + + + Default constructor + + + + + Intialization constructor + + the initialization options + If the options are not valid + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + the value to set + Returns this to enable cascaded options. + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns true if only array options are set. + + + + + Compares two options set for array compatibility. + + other options + Returns true if the array options of the sets are equal. + + + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + other options + If illegal options are provided + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + @since 24.01.2006 + + + + + Omit the XML packet wrapper. + + + + Mark packet as read-only. Default is a writeable packet. + + + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To Serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + + Use the canonical form of RDF if set. By default the compact form is used + + + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + + + Sort the struct properties and qualifier before serializing + + + + Bit indicating little endian encoding, unset is big endian + + + + Bit indication UTF16 encoding. + + + + UTF8 encoding; this is the default + + + + UTF16BE encoding + + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + + Default constructor. + + + + + Constructor using inital options + the inital options + Thrown if options are not consistant. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the baseIndent. + + + Returns the indent. + + + Returns the newline. + + + Returns the padding. + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + Returns the encoding as Java encoding String. + + + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + @since 24.01.2006 + + + + + a map containing the bit names + + + + the internal int containing all options + + + + The default constructor. + + + + + Constructor with the options bit mask. + + the options bit mask + If the options are not correct + + + + Is friendly to access it during the tests. + Returns the options. + + + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + Returns a String listing all options that are set to true by their name, + like "option1 | option4". + + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + + Resets the options. + + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + + + Returns the options as hex bitmask. + + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional -method is called. + + the options to check + Thrown if the options are invalid. + + + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + This interface is used to return info about an alias. + + @since 27.01.2006 + + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + + @since 23.01.2006 + + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + Returns the language of the alt-text item. + + + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + @since 06.07.2006 + + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + Common constants for the XMP Toolkit. + + @since 20.01.2006 + + + + + The XML namespace for XML. + + + + The XML namespace for RDF. + + + + The XML namespace for the Dublin Core schema. + + + + The XML namespace for the IPTC Core schema. + + + + The XML namespace for the IPTC Extension schema. + + + + The XML namespace for the DICOM medical schema. + + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + + The XML namespace Adobe XMP Metadata. + + + + The XML namespace for the XMP "basic" schema. + + + + The XML namespace for the XMP copyright schema. + + + + The XML namespace for the XMP digital asset management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the Photoshop custom schema. + + + + The XML namespace for the Photoshop Album schema. + + + + The XML namespace for Adobe's EXIF schema. + + + + NS for the CIPA XMP for Exif document v1.1 + + + + The XML namespace for Adobe's TIFF schema. + + + + BExt Schema + + + + RIFF Info Schema + + + + Transform XMP + + + + Adobe Flash SWF + + + + legacy Dublin Core NS, will be converted to NS_DC + + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + + The XML namespace for fields of the Dimensions type. + + + + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + + The XML namespace for fields of the ResourceEvent type. + + + + The XML namespace for fields of the ResourceRef type. + + + + The XML namespace for fields of the Version type. + + + + The XML namespace for fields of the JobRef type. + + + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + + Index that has the meaning to be always the last item in an array. + + + + Node name of an array item. + + + + The x-default string for localized properties + + + + xml:lang qualfifier + + + + rdf:type qualfifier + + + + Processing Instruction (PI) for xmp packet + + + + XMP meta tag version new + + + + XMP meta tag version old + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + @since 16.02.2006 + + + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + + + + Creates an XMPDateTime from an ISO 8601 string. + + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + When the ISO 8601 string is non-conform + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + Returns an updated XMPDateTime-object. + + + + @since 21.09.2006 + + + + + Note: This is an error code introduced by Java. + + + + This exception wraps all errors that occur in the XMP Toolkit. + + @since 16.02.2006 + + + + + the errorCode of the XMP toolkit + + + + Constructs an exception with a message and an error code. + the message + the error code + + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Creates XMPMeta-instances from an InputStream + + @since 30.01.2006 + + + + + The singleton instance of the XMPSchemaRegistry. + + + + + cache for version info + + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + + + + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into an OutputStream. + + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + + Resets the _schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNs and + "i" is the decimal representation of itemIndex. + Throws exeption if index zero is used. + + + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + The name of the field. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNs and "fNS" is the prefix for fieldNs. + Thrown if the path to create is not valid. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNs and "qNS" is the prefix for qualNs. + Thrown if the path to create is not valid. + + + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNs. + + + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + @since 21.02.2006 + + + + + Private constructor + + + + Create a single edit string from an array of strings. + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + Separate a single edit string into an array of strings. + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Forwards the Exceptions from the metadata processing + + + + + + Convert from boolean to string. + + + a boolean value + The XMP string representation of the boolean. The values used are + given by the constnts and + . + + + + Converts a string value to an int. + + + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + + + an int value + The string representation of the int. + + + + Converts a string value to a long. + + + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to a double. + + + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to an XMPDateTime. + + + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + + + an XMPDateTime + The string representation of the long. + + + + Convert from a byte array to a base64 encoded string. + + + the byte array to be converted + Returns the base64 string. + + + + Decode from Base64 encoded string to raw data. + + + a base64 encoded string + Returns a byte array containg the decoded string. + Thrown if the given string is not property base64 encoded + + + + Implementation of the IndicLigaturizer for Devanagari. + + Warning: this is an incomplete and experimental implementation of Devanagari. This implementation should not be used in production. + + + Constructor for the IndicLigaturizer for Devanagari. + + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + @author Paulo Soares + + + + Add + args: ByVal key As IComparable, ByVal data As Object + key is object that implements IComparable interface + performance tip: change to use use int type (such as the hashcode) + + + + + RestoreAfterInsert + Additions to red-black trees usually destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + RotateLeft + Rebalance the tree by rotating the nodes to the left + + + + + RotateRight + Rebalance the tree by rotating the nodes to the right + + + + + + + + + + + + + + + + + RestoreAfterDelete + Deletions from red-black trees may destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + + + + Key + + + + + Data + + + + + Determine order, walk the tree and push the nodes onto the stack + + + + + HasMoreElements + + + + + NextElement + + + + + MoveNext + For .NET compatibility + + + + + Key + + + + + Data + + + + + Color + + + + + Left + + + + + Right + + + + + Provides the base class for a generic read-only dictionary. + + + The type of keys in the dictionary. + + + The type of values in the dictionary. + + + + An instance of the ReadOnlyDictionary generic class is + always read-only. A dictionary that is read-only is simply a + dictionary with a wrapper that prevents modifying the + dictionary; therefore, if changes are made to the underlying + dictionary, the read-only dictionary reflects those changes. + See for a modifiable version of + this class. + + + Notes to Implementers This base class is provided to + make it easier for implementers to create a generic read-only + custom dictionary. Implementers are encouraged to extend this + base class instead of creating their own. + + + + + + Initializes a new instance of the + class that wraps + the supplied . + + The + that will be wrapped. + + Thrown when the dictionary is null. + + + + + Gets the number of key/value pairs contained in the + . + + The number of key/value pairs. + The number of key/value pairs contained in the + . + + + Gets a collection containing the keys in the + . + A + containing the keys. + A + + containing the keys in the + . + + + + + Gets a collection containing the values of the + . + + The collection of values. + + + Gets a value indicating whether the dictionary is read-only. + This value will always be true. + + + + Gets a value indicating whether access to the dictionary + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to dictionary. + + + + + Gets or sets the value associated with the specified key. + + + The value associated with the specified key. If the specified key + is not found, a get operation throws a + , + and a set operation creates a new element with the specified key. + + The key of the value to get or set. + + Thrown when the key is null. + + + The property is retrieved and key does not exist in the collection. + + + + This method is not supported by the + . + + The object to use as the key of the element to add. + + The object to use as the value of the element to add. + + + Determines whether the + contains the specified key. + + True if the contains + an element with the specified key; otherwise, false. + + The key to locate in the + . + + Thrown when the key is null. + + + + + This method is not supported by the . + + The key of the element to remove. + + True if the element is successfully removed; otherwise, false. + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value + associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. + This parameter is passed uninitialized. + + true if the contains + an element with the specified key; otherwise, false. + + + + This method is not supported by the + . + + The object to add to the . + + + + This method is not supported by the + . + + + + Determines whether the contains a + specific value. + + + The object to locate in the . + + + true if item is found in the ICollection; + otherwise, false. + + + + + Copies the elements of the ICollection to an Array, starting at a + particular Array index. + + The one-dimensional Array that is the + destination of the elements copied from ICollection. + The Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + This method is not supported by the + . + + The object to remove from the ICollection. + + Will never return a value. + + + + Returns an enumerator that iterates through the collection. + + + A IEnumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + For a description of this member, see . + + + The one-dimensional Array that is the destination of the elements copied from + ICollection. The Array must have zero-based indexing. + + + The zero-based index in Array at which copying begins. + + + + + Summary description for ListIterator. + + + + + Summary description for Properties. + + + + + Summary description for Util. + + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
+
diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/log.db b/采集器3.0框架封装包2023-11-01/采集器依赖包/log.db new file mode 100644 index 0000000..e029ab1 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/log.db differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/concrt140.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/concrt140.dll new file mode 100644 index 0000000..667ecc9 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/concrt140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/cvextern.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/cvextern.dll new file mode 100644 index 0000000..c33278a Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/cvextern.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/msvcp140.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/msvcp140.dll new file mode 100644 index 0000000..60f1219 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/msvcp140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/opencv_videoio_ffmpeg411_64.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/opencv_videoio_ffmpeg411_64.dll new file mode 100644 index 0000000..35ebf9c Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/opencv_videoio_ffmpeg411_64.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/sqlite3.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/sqlite3.dll new file mode 100644 index 0000000..2797682 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/sqlite3.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/vcruntime140.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/vcruntime140.dll new file mode 100644 index 0000000..46cb058 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x64/vcruntime140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/concrt140.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/concrt140.dll new file mode 100644 index 0000000..0975433 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/concrt140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/cvextern.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/cvextern.dll new file mode 100644 index 0000000..d7d801e Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/cvextern.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/msvcp140.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/msvcp140.dll new file mode 100644 index 0000000..1ff435c Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/msvcp140.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/opencv_videoio_ffmpeg411.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/opencv_videoio_ffmpeg411.dll new file mode 100644 index 0000000..1de72f2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/opencv_videoio_ffmpeg411.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/sqlite3.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/sqlite3.dll new file mode 100644 index 0000000..fcac1b2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/sqlite3.dll differ diff --git a/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/vcruntime140.dll b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/vcruntime140.dll new file mode 100644 index 0000000..528dcf2 Binary files /dev/null and b/采集器3.0框架封装包2023-11-01/采集器依赖包/x86/vcruntime140.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/BouncyCastle.Crypto.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/BouncyCastle.Crypto.dll new file mode 100644 index 0000000..9059e64 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/BouncyCastle.Crypto.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.dll new file mode 100644 index 0000000..6b0519c Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.dll.config b/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.dll.config new file mode 100644 index 0000000..a388a5b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.dll.config @@ -0,0 +1,12 @@ + + + +
+ + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.pdb b/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.pdb new file mode 100644 index 0000000..35b39f6 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/CommonUtils.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.dll new file mode 100644 index 0000000..a6560bb Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.dll.config b/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.dll.config new file mode 100644 index 0000000..497a120 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.dll.config @@ -0,0 +1,19 @@ + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.pdb b/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.pdb new file mode 100644 index 0000000..eeeea5a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/DataBridge.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..11a8f2f Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.pdb b/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.pdb new file mode 100644 index 0000000..edfc1d2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.xml new file mode 100644 index 0000000..eee718a --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/ICSharpCode.SharpZipLib.xml @@ -0,0 +1,9880 @@ + + + + ICSharpCode.SharpZipLib + + + + + An example class to demonstrate compression and decompression of BZip2 streams. + + + + + Decompress the input writing + uncompressed data to the output stream + + The readable stream containing data to decompress. + The output stream to receive the decompressed data. + Both streams are closed on completion if true. + + + + Compress the input stream sending + result data to output stream + + The readable stream to compress. + The output stream to receive the compressed data. + Both streams are closed on completion if true. + Block size acts as compression level (1 to 9) with 1 giving + the lowest compression and 9 the highest. + + + + Defines internal values for both compression and decompression + + + + + Random numbers used to randomise repetitive blocks + + + + + When multiplied by compression parameter (1-9) gives the block size for compression + 9 gives the best compression but uses the most memory. + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + BZip2Exception represents exceptions specific to BZip2 classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + An input stream that decompresses files in the BZip2 format + + + + + Construct instance for reading from stream + + Data source + + + + Get/set flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + + + + Gets a value indicating if the stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + This property always returns false + + + + + Gets the length in bytes of the stream. + + + + + Gets the current position of the stream. + Setting the position is not supported and will throw a NotSupportException. + + Any attempt to set the position. + + + + Flushes the stream. + + + + + Set the streams position. This operation is not supported and will throw a NotSupportedException + + A byte offset relative to the parameter. + A value of type indicating the reference point used to obtain the new position. + The new position of the stream. + Any access + + + + Sets the length of this stream to the given value. + This operation is not supported and will throw a NotSupportedExceptionortedException + + The new length for the stream. + Any access + + + + Writes a block of bytes to this stream using data from a buffer. + This operation is not supported and will throw a NotSupportedException + + The buffer to source data from. + The offset to start obtaining data from. + The number of bytes of data to write. + Any access + + + + Writes a byte to the current position in the file stream. + This operation is not supported and will throw a NotSupportedException + + The value to write. + Any access + + + + Read a sequence of bytes and advances the read position by one byte. + + Array of bytes to store values in + Offset in array to begin storing data + The maximum number of bytes to read + The total number of bytes read into the buffer. This might be less + than the number of bytes requested if that number of bytes are not + currently available or zero if the end of the stream is reached. + + + + + Closes the stream, releasing any associated resources. + + + + + Read a byte from stream advancing position + + byte read or -1 on end of stream + + + + An output stream that compresses into the BZip2 format + including file header chars into another stream. + + + + + Construct a default output stream with maximum block size + + The stream to write BZip data onto. + + + + Initialise a new instance of the + for the specified stream, using the given blocksize. + + The stream to write compressed data to. + The block size to use. + + Valid block sizes are in the range 1..9, with 1 giving + the lowest compression and 9 the highest. + + + + + Ensures that resources are freed and other cleanup operations + are performed when the garbage collector reclaims the BZip2OutputStream. + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking + + + + + Gets a value indicating whether the current stream supports writing + + + + + Gets the length in bytes of the stream + + + + + Gets or sets the current position of this stream. + + + + + Sets the current position of this stream to the given value. + + The point relative to the offset from which to being seeking. + The reference point from which to begin seeking. + The new position in the stream. + + + + Sets the length of this stream to the given value. + + The new stream length. + + + + Read a byte from the stream advancing the position. + + The byte read cast to an int; -1 if end of stream. + + + + Read a block of bytes + + The buffer to read into. + The offset in the buffer to start storing data at. + The maximum number of bytes to read. + The total number of bytes read. This might be less than the number of bytes + requested if that number of bytes are not currently available, or zero + if the end of the stream is reached. + + + + Write a block of bytes to the stream + + The buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + + + + Write a byte to the stream. + + The byte to write to the stream. + + + + Get the number of bytes written to output. + + + + + Get the number of bytes written to the output. + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Flush output buffers + + + + + Computes Adler32 checksum for a stream of data. An Adler32 + checksum is not as reliable as a CRC32 checksum, but a lot faster to + compute. + + The specification for Adler32 may be found in RFC 1950. + ZLIB Compressed Data Format Specification version 3.3) + + + From that document: + + "ADLER32 (Adler-32 checksum) + This contains a checksum value of the uncompressed data + (excluding any dictionary data) computed according to Adler-32 + algorithm. This algorithm is a 32-bit extension and improvement + of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + standard. + + Adler-32 is composed of two sums accumulated per byte: s1 is + the sum of all bytes, s2 is the sum of all s1 values. Both sums + are done modulo 65521. s1 is initialized to 1, s2 to zero. The + Adler-32 checksum is stored as s2*65536 + s1 in most- + significant-byte first (network) order." + + "8.2. The Adler-32 algorithm + + The Adler-32 algorithm is much faster than the CRC32 algorithm yet + still provides an extremely low probability of undetected errors. + + The modulo on unsigned long accumulators can be delayed for 5552 + bytes, so the modulo operation time is negligible. If the bytes + are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + and order sensitive, unlike the first sum, which is just a + checksum. That 65521 is prime is important to avoid a possible + large class of two-byte errors that leave the check unchanged. + (The Fletcher checksum uses 255, which is not prime and which also + makes the Fletcher check insensitive to single byte changes 0 - + 255.) + + The sum s1 is initialized to 1 instead of zero to make the length + of the sequence part of s2, so that the length does not have to be + checked separately. (Any sequence of zeroes has a Fletcher + checksum of zero.)" + + + + + + + largest prime smaller than 65536 + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the Adler32 data checksum as if no update was ever called. + + + + + Returns the Adler32 data checksum computed so far. + + + + + Updates the checksum with the byte b. + + + The data value to add. The high byte of the int is ignored. + + + + + Updates the Adler32 data checksum with the bytes taken from + a block of data. + + Contains the data to update the checksum with. + + + + Update Adler32 data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + CRC-32 with unreversed data and reversed output + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the CRC data checksum as if no update was ever called. + + + + + Returns the CRC data checksum computed so far. + + Reversed Out = true + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of bval + + Reversed Data = false + + + + Updates the CRC data checksum with the bytes taken from + a block of data. + + Contains the data to update the CRC with. + + + + Update CRC data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + CRC-32 with reversed data and unreversed output + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the CRC data checksum as if no update was ever called. + + + + + Returns the CRC data checksum computed so far. + + Reversed Out = false + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of bval + + Reversed Data = true + + + + Updates the CRC data checksum with the bytes taken from + a block of data. + + Contains the data to update the CRC with. + + + + Update CRC data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + Interface to compute a data checksum used by checked input/output streams. + A data checksum can be updated by one byte or with a byte array. After each + update the value of the current checksum can be returned by calling + getValue. The complete checksum object can also be reset + so it can be used again with new data. + + + + + Resets the data checksum as if no update was ever called. + + + + + Returns the data checksum computed so far. + + + + + Adds one byte to the data checksum. + + + the data value to add. The high byte of the int is ignored. + + + + + Updates the data checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + the number of data bytes to add. + + + + + Event arguments for scanning. + + + + + Initialise a new instance of + + The file or directory name. + + + + The file or directory name for this event. + + + + + Get set a value indicating if scanning should continue or not. + + + + + Event arguments during processing of a single file or directory. + + + + + Initialise a new instance of + + The file or directory name if known. + The number of bytes processed so far + The total number of bytes to process, 0 if not known + + + + The name for this event if known. + + + + + Get set a value indicating wether scanning should continue or not. + + + + + Get a percentage representing how much of the has been processed + + 0.0 to 100.0 percent; 0 if target is not known. + + + + The number of bytes processed so far + + + + + The number of bytes to process. + + Target may be 0 or negative if the value isnt known. + + + + Event arguments for directories. + + + + + Initialize an instance of . + + The name for this directory. + Flag value indicating if any matching files are contained in this directory. + + + + Get a value indicating if the directory contains any matching files or not. + + + + + Arguments passed when scan failures are detected. + + + + + Initialise a new instance of + + The name to apply. + The exception to use. + + + + The applicable name. + + + + + The applicable exception. + + + + + Get / set a value indicating wether scanning should continue. + + + + + Delegate invoked before starting to process a file. + + The source of the event + The event arguments. + + + + Delegate invoked during processing of a file or directory + + The source of the event + The event arguments. + + + + Delegate invoked when a file has been completely processed. + + The source of the event + The event arguments. + + + + Delegate invoked when a directory failure is detected. + + The source of the event + The event arguments. + + + + Delegate invoked when a file failure is detected. + + The source of the event + The event arguments. + + + + FileSystemScanner provides facilities scanning of files and directories. + + + + + Initialise a new instance of + + The file filter to apply when scanning. + + + + Initialise a new instance of + + The file filter to apply. + The directory filter to apply. + + + + Initialise a new instance of + + The file filter to apply. + + + + Initialise a new instance of + + The file filter to apply. + The directory filter to apply. + + + + Delegate to invoke when a directory is processed. + + + + + Delegate to invoke when a file is processed. + + + + + Delegate to invoke when processing for a file has finished. + + + + + Delegate to invoke when a directory failure is detected. + + + + + Delegate to invoke when a file failure is detected. + + + + + Raise the DirectoryFailure event. + + The directory name. + The exception detected. + + + + Raise the FileFailure event. + + The file name. + The exception detected. + + + + Raise the ProcessFile event. + + The file name. + + + + Raise the complete file event + + The file name + + + + Raise the ProcessDirectory event. + + The directory name. + Flag indicating if the directory has matching files. + + + + Scan a directory. + + The base directory to scan. + True to recurse subdirectories, false to scan a single directory. + + + + The file filter currently in use. + + + + + The directory filter currently in use. + + + + + Flag indicating if scanning should continue running. + + + + + INameTransform defines how file system names are transformed for use with archives, or vice versa. + + + + + Given a file name determine the transformed value. + + The name to transform. + The transformed file name. + + + + Given a directory name determine the transformed value. + + The name to transform. + The transformed directory name + + + + Scanning filters support filtering of names. + + + + + Test a name to see if it 'matches' the filter. + + The name to test. + Returns true if the name matches the filter, false if it does not match. + + + + NameFilter is a string matching class which allows for both positive and negative + matching. + A filter is a sequence of independant regular expressions separated by semi-colons ';'. + To include a semi-colon it may be quoted as in \;. Each expression can be prefixed by a plus '+' sign or + a minus '-' sign to denote the expression is intended to include or exclude names. + If neither a plus or minus sign is found include is the default. + A given name is tested for inclusion before checking exclusions. Only names matching an include spec + and not matching an exclude spec are deemed to match the filter. + An empty filter matches any name. + + The following expression includes all name ending in '.dat' with the exception of 'dummy.dat' + "+\.dat$;-^dummy\.dat$" + + + + + Construct an instance based on the filter expression passed + + The filter expression. + + + + Test a string to see if it is a valid regular expression. + + The expression to test. + True if expression is a valid false otherwise. + + + + Test an expression to see if it is valid as a filter. + + The filter expression to test. + True if the expression is valid, false otherwise. + + + + Split a string into its component pieces + + The original string + Returns an array of values containing the individual filter elements. + + + + Convert this filter to its string equivalent. + + The string equivalent for this filter. + + + + Test a value to see if it is included by the filter. + + The value to test. + True if the value is included, false otherwise. + + + + Test a value to see if it is excluded by the filter. + + The value to test. + True if the value is excluded, false otherwise. + + + + Test a value to see if it matches the filter. + + The value to test. + True if the value matches, false otherwise. + + + + Compile this filter. + + + + + PathFilter filters directories and files using a form of regular expressions + by full path name. + See NameFilter for more detail on filtering. + + + + + Initialise a new instance of . + + The filter expression to apply. + + + + Test a name to see if it matches the filter. + + The name to test. + True if the name matches, false otherwise. + is used to get the full path before matching. + + + + ExtendedPathFilter filters based on name, file size, and the last write time of the file. + + Provides an example of how to customise filtering. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum to include. + The maximum to include. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + The minimum to include. + The maximum to include. + + + + Test a filename to see if it matches the filter. + + The filename to test. + True if the filter matches, false otherwise. + The doesnt exist + + + + Get/set the minimum size/length for a file that will match this filter. + + The default value is zero. + value is less than zero; greater than + + + + Get/set the maximum size/length for a file that will match this filter. + + The default value is + value is less than zero or less than + + + + Get/set the minimum value that will match for this filter. + + Files with a LastWrite time less than this value are excluded by the filter. + + + + Get/set the maximum value that will match for this filter. + + Files with a LastWrite time greater than this value are excluded by the filter. + + + + NameAndSizeFilter filters based on name and file size. + + A sample showing how filters might be extended. + + + + Initialise a new instance of NameAndSizeFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + + + + Test a filename to see if it matches the filter. + + The filename to test. + True if the filter matches, false otherwise. + + + + Get/set the minimum size for a file that will match this filter. + + + + + Get/set the maximum size for a file that will match this filter. + + + + + Provides simple " utilities. + + + + + Read from a ensuring all the required data is read. + + The stream to read. + The buffer to fill. + + + + + Read from a " ensuring all the required data is read. + + The stream to read data from. + The buffer to store data in. + The offset at which to begin storing data. + The number of bytes of data to store. + Required parameter is null + and or are invalid. + End of stream is encountered before all the data has been read. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + The progress handler delegate to use. + The minimum between progress updates. + The source for this event. + The name to use with the event. + This form is specialised for use within #Zip to support events during archive operations. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + The progress handler delegate to use. + The minimum between progress updates. + The source for this event. + The name to use with the event. + A predetermined fixed target value to use with progress updates. + If the value is negative the target is calculated by looking at the stream. + This form is specialised for use within #Zip to support events during archive operations. + + + + Initialise an instance of + + + + + WindowsPathUtils provides simple utilities for handling windows paths. + + + + + Initializes a new instance of the class. + + + + + Remove any path root present in the path + + A containing path information. + The path with the root removed if it was present; path otherwise. + Unlike the class the path isnt otherwise checked for validity. + + + + PkzipClassic embodies the classic or original encryption facilities used in Pkzip archives. + While it has been superceded by more recent and more powerful algorithms, its still in use and + is viable for preventing casual snooping + + + + + Generates new encryption keys based on given seed + + The seed value to initialise keys with. + A new key value. + + + + PkzipClassicCryptoBase provides the low level facilities for encryption + and decryption using the PkzipClassic algorithm. + + + + + Transform a single byte + + + The transformed value + + + + + Set the key schedule for encryption/decryption. + + The data use to set the keys from. + + + + Update encryption keys + + + + + Reset the internal state. + + + + + PkzipClassic CryptoTransform for encryption. + + + + + Initialise a new instance of + + The key block to use. + + + + Transforms the specified region of the specified byte array. + + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + The computed transform. + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + The number of bytes written. + + + + Gets a value indicating whether the current transform can be reused. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Cleanup internal state. + + + + + PkzipClassic CryptoTransform for decryption. + + + + + Initialise a new instance of . + + The key block to decrypt with. + + + + Transforms the specified region of the specified byte array. + + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + The computed transform. + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + The number of bytes written. + + + + Gets a value indicating whether the current transform can be reused. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Cleanup internal state. + + + + + Defines a wrapper object to access the Pkzip algorithm. + This class cannot be inherited. + + + + + Get / set the applicable block size in bits. + + The only valid block size is 8. + + + + Get an array of legal key sizes. + + + + + Generate an initial vector. + + + + + Get an array of legal block sizes. + + + + + Get / set the key value applicable. + + + + + Generate a new random key. + + + + + Create an encryptor. + + The key to use for this encryptor. + Initialisation vector for the new encryptor. + Returns a new PkzipClassic encryptor + + + + Create a decryptor. + + Keys to use for this new decryptor. + Initialisation vector for the new decryptor. + Returns a new decryptor. + + + + Encrypts and decrypts AES ZIP + + + Based on information from http://www.winzip.com/aes_info.htm + and http://www.gladman.me.uk/cryptography_technology/fileencrypt/ + + + + + Constructor + + The stream on which to perform the cryptographic transformation. + Instance of ZipAESTransform + Read or Write + + + + Reads a sequence of bytes from the current CryptoStream into buffer, + and advances the position within the stream by the number of bytes read. + + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Transforms stream using AES in CTR mode + + + + + Constructor. + + Password string + Random bytes, length depends on encryption strength. + 128 bits = 8 bytes, 192 bits = 12 bytes, 256 bits = 16 bytes. + The encryption strength, in bytes eg 16 for 128 bits. + True when creating a zip, false when reading. For the AuthCode. + + + + + Implement the ICryptoTransform method. + + + + + Returns the 2 byte password verifier + + + + + Returns the 10 byte AUTH CODE to be checked or appended immediately following the AES data stream. + + + + + Not implemented. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Gets a value indicating whether the current transform can be reused. + + + + + Cleanup internal state. + + + + + An example class to demonstrate compression and decompression of GZip streams. + + + + + Decompress the input writing + uncompressed data to the output stream + + The readable stream containing data to decompress. + The output stream to receive the decompressed data. + Both streams are closed on completion if true. + + + + Compress the input stream sending + result data to output stream + + The readable stream to compress. + The output stream to receive the compressed data. + Both streams are closed on completion if true. + Block size acts as compression level (1 to 9) with 1 giving + the lowest compression and 9 the highest. + + + + This class contains constants used for gzip. + + + + + Magic number found at start of GZIP header + + + + + Flag bit mask for text + + + + + Flag bitmask for Crc + + + + + Flag bit mask for extra + + + + + flag bitmask for name + + + + + flag bit mask indicating comment is present + + + + + Initialise default instance. + + Constructor is private to prevent instances being created. + + + + GZipException represents exceptions specific to GZip classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This filter stream is used to decompress a "GZIP" format stream. + The "GZIP" format is described baseInputStream RFC 1952. + + author of the original java version : John Leuner + + This sample shows how to unzip a gzipped file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.GZip; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream inStream = new GZipInputStream(File.OpenRead(args[0]))) + using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + byte[] buffer = new byte[4096]; + StreamUtils.Copy(inStream, outStream, buffer); + } + } + } + + + + + + CRC-32 value for uncompressed data + + + + + Flag to indicate if we've read the GZIP header yet for the current member (block of compressed data). + This is tracked per-block as the file is parsed. + + + + + Flag to indicate if at least one block in a stream with concatenated blocks was read successfully. + This allows us to exit gracefully if downstream data is not in gzip format. + + + + + Creates a GZipInputStream with the default buffer size + + + The stream to read compressed data from (baseInputStream GZIP format) + + + + + Creates a GZIPInputStream with the specified buffer size + + + The stream to read compressed data from (baseInputStream GZIP format) + + + Size of the buffer to use + + + + + Reads uncompressed data into an array of bytes + + + The buffer to read uncompressed data into + + + The offset indicating where the data should be placed + + + The number of uncompressed bytes to be read + + Returns the number of bytes actually read. + + + + This filter stream is used to compress a stream into a "GZIP" stream. + The "GZIP" format is described in RFC 1952. + + author of the original java version : John Leuner + + This sample shows how to gzip a file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.GZip; + using ICSharpCode.SharpZipLib.Core; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream s = new GZipOutputStream(File.Create(args[0] + ".gz"))) + using (FileStream fs = File.OpenRead(args[0])) { + byte[] writeData = new byte[4096]; + Streamutils.Copy(s, fs, writeData); + } + } + } + } + + + + + + CRC-32 value for uncompressed data + + + + + Creates a GzipOutputStream with the default buffer size + + + The stream to read data (to be compressed) from + + + + + Creates a GZipOutputStream with the specified buffer size + + + The stream to read data (to be compressed) from + + + Size of the buffer to use + + + + + Sets the active compression level (1-9). The new level will be activated + immediately. + + The compression level to set. + + Level specified is not supported. + + + + + + Get the current compression level. + + The current compression level. + + + + Write given buffer to output updating crc + + Buffer to write + Offset of first byte in buf to write + Number of bytes to write + + + + Writes remaining compressed output data to the output stream + and closes it. + + + + + Finish compression and write any footer information required to stream + + + + + This class contains constants used for LZW + + + + + Magic number found at start of LZW header: 0x1f 0x9d + + + + + Maximum number of bits per code + + + + + Mask for 'number of compression bits' + + + + + Indicates the presence of a fourth header byte + + + + + Reserved bits + + + + + Block compression: if table is full and compression rate is dropping, + clear the dictionary. + + + + + LZW file header size (in bytes) + + + + + Initial number of bits per code + + + + + LzwException represents exceptions specific to LZW classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This filter stream is used to decompress a LZW format stream. + Specifically, a stream that uses the LZC compression method. + This file format is usually associated with the .Z file extension. + + See http://en.wikipedia.org/wiki/Compress + See http://wiki.wxwidgets.org/Development:_Z_File_Format + + The file header consists of 3 (or optionally 4) bytes. The first two bytes + contain the magic marker "0x1f 0x9d", followed by a byte of flags. + + Based on Java code by Ronald Tschalar, which in turn was based on the unlzw.c + code in the gzip package. + + This sample shows how to unzip a compressed file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.LZW; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream inStream = new LzwInputStream(File.OpenRead(args[0]))) + using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + byte[] buffer = new byte[4096]; + StreamUtils.Copy(inStream, outStream, buffer); + // OR + inStream.Read(buffer, 0, buffer.Length); + // now do something with the buffer + } + } + } + + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Creates a LzwInputStream + + + The stream to read compressed data from (baseInputStream LZW format) + + + + + See + + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + + + Moves the unread data in the buffer to the beginning and resets + the pointers. + + + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Flag indicating wether this instance has been closed or not. + + + + + SharpZipBaseException is the base exception class for SharpZipLib. + All library exceptions are derived from this. + + NOTE: Not all exceptions thrown will be derived from this class. + A variety of other exceptions are possible for example + + + + Initializes a new instance of the SharpZipBaseException class. + + + + + Initializes a new instance of the SharpZipBaseException class with a specified error message. + + A message describing the exception. + + + + Initializes a new instance of the SharpZipBaseException class with a specified + error message and a reference to the inner exception that is the cause of this exception. + + A message describing the exception. + The inner exception + + + + This exception is used to indicate that there is a problem + with a TAR archive header. + + + + + Initialise a new instance of the InvalidHeaderException class. + + + + + Initialises a new instance of the InvalidHeaderException class with a specified message. + + Message describing the exception cause. + + + + Initialise a new instance of InvalidHeaderException + + Message describing the problem. + The exception that is the cause of the current exception. + + + + Used to advise clients of 'events' while processing archives + + + + + The TarArchive class implements the concept of a + 'Tape Archive'. A tar archive is a series of entries, each of + which represents a file system object. Each entry in + the archive consists of a header block followed by 0 or more data blocks. + Directory entries consist only of the header block, and are followed by entries + for the directory's contents. File entries consist of a + header followed by the number of blocks needed to + contain the file's contents. All entries are written on + block boundaries. Blocks are 512 bytes long. + + TarArchives are instantiated in either read or write mode, + based upon whether they are instantiated with an InputStream + or an OutputStream. Once instantiated TarArchives read/write + mode can not be changed. + + There is currently no support for random access to tar archives. + However, it seems that subclassing TarArchive, and using the + TarBuffer.CurrentRecord and TarBuffer.CurrentBlock + properties, this would be rather trivial. + + + + + Client hook allowing detailed information to be reported during processing + + + + + Raises the ProgressMessage event + + The TarEntry for this event + message for this event. Null is no message + + + + Constructor for a default . + + + + + Initalise a TarArchive for input. + + The to use for input. + + + + Initialise a TarArchive for output. + + The to use for output. + + + + The InputStream based constructors create a TarArchive for the + purposes of extracting or listing a tar archive. Thus, use + these constructors when you wish to extract files from or list + the contents of an existing tar archive. + + The stream to retrieve archive data from. + Returns a new suitable for reading from. + + + + Create TarArchive for reading setting block factor + + A stream containing the tar archive contents + The blocking factor to apply + Returns a suitable for reading. + + + + Create a TarArchive for writing to, using the default blocking factor + + The to write to + Returns a suitable for writing. + + + + Create a tar archive for writing. + + The stream to write to + The blocking factor to use for buffering. + Returns a suitable for writing. + + + + Set the flag that determines whether existing files are + kept, or overwritten during extraction. + + + If true, do not overwrite existing files. + + + + + Get/set the ascii file translation flag. If ascii file translation + is true, then the file is checked to see if it a binary file or not. + If the flag is true and the test indicates it is ascii text + file, it will be translated. The translation converts the local + operating system's concept of line ends into the UNIX line end, + '\n', which is the defacto standard for a TAR archive. This makes + text files compatible with UNIX. + + + + + Set the ascii file translation flag. + + + If true, translate ascii text files. + + + + + PathPrefix is added to entry names as they are written if the value is not null. + A slash character is appended after PathPrefix + + + + + RootPath is removed from entry names if it is found at the + beginning of the name. + + + + + Set user and group information that will be used to fill in the + tar archive's entry headers. This information is based on that available + for the linux operating system, which is not always available on other + operating systems. TarArchive allows the programmer to specify values + to be used in their place. + is set to true by this call. + + + The user id to use in the headers. + + + The user name to use in the headers. + + + The group id to use in the headers. + + + The group name to use in the headers. + + + + + Get or set a value indicating if overrides defined by SetUserInfo should be applied. + + If overrides are not applied then the values as set in each header will be used. + + + + Get the archive user id. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current user id. + + + + + Get the archive user name. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current user name. + + + + + Get the archive group id. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current group id. + + + + + Get the archive group name. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current group name. + + + + + Get the archive's record size. Tar archives are composed of + a series of RECORDS each containing a number of BLOCKS. + This allowed tar archives to match the IO characteristics of + the physical device being used. Archives are expected + to be properly "blocked". + + + The record size this archive is using. + + + + + Sets the IsStreamOwner property on the underlying stream. + Set this to false to prevent the Close of the TarArchive from closing the stream. + + + + + Close the archive. + + + + + Perform the "list" command for the archive contents. + + NOTE That this method uses the progress event to actually list + the contents. If the progress display event is not set, nothing will be listed! + + + + + Perform the "extract" command and extract the contents of the archive. + + + The destination directory into which to extract. + + + + + Extract an entry from the archive. This method assumes that the + tarIn stream has been properly set with a call to GetNextEntry(). + + + The destination directory into which to extract. + + + The TarEntry returned by tarIn.GetNextEntry(). + + + + + Write an entry to the archive. This method will call the putNextEntry + and then write the contents of the entry, and finally call closeEntry() + for entries that are files. For directories, it will call putNextEntry(), + and then, if the recurse flag is true, process each entry that is a + child of the directory. + + + The TarEntry representing the entry to write to the archive. + + + If true, process the children of directory entries. + + + + + Write an entry to the archive. This method will call the putNextEntry + and then write the contents of the entry, and finally call closeEntry() + for entries that are files. For directories, it will call putNextEntry(), + and then, if the recurse flag is true, process each entry that is a + child of the directory. + + + The TarEntry representing the entry to write to the archive. + + + If true, process the children of directory entries. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases the unmanaged resources used by the FileStream and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Closes the archive and releases any associated resources. + + + + + Ensures that resources are freed and other cleanup operations are performed + when the garbage collector reclaims the . + + + + + The TarBuffer class implements the tar archive concept + of a buffered input stream. This concept goes back to the + days of blocked tape drives and special io devices. In the + C# universe, the only real function that this class + performs is to ensure that files have the correct "record" + size, or other tars will complain. +

+ You should never have a need to access this class directly. + TarBuffers are created by Tar IO Streams. +

+
+
+ + + The size of a block in a tar archive in bytes. + + This is 512 bytes. + + + + The number of blocks in a default record. + + + The default value is 20 blocks per record. + + + + + The size in bytes of a default record. + + + The default size is 10KB. + + + + + Get the record size for this buffer + + The record size in bytes. + This is equal to the multiplied by the + + + + Get the TAR Buffer's record size. + + The record size in bytes. + This is equal to the multiplied by the + + + + Get the Blocking factor for the buffer + + This is the number of blocks in each record. + + + + Get the TAR Buffer's block factor + + The block factor; the number of blocks per record. + + + + Construct a default TarBuffer + + + + + Create TarBuffer for reading with default BlockFactor + + Stream to buffer + A new suitable for input. + + + + Construct TarBuffer for reading inputStream setting BlockFactor + + Stream to buffer + Blocking factor to apply + A new suitable for input. + + + + Construct TarBuffer for writing with default BlockFactor + + output stream for buffer + A new suitable for output. + + + + Construct TarBuffer for writing Tar output to streams. + + Output stream to write to. + Blocking factor to apply + A new suitable for output. + + + + Initialization common to all constructors. + + + + + Determine if an archive block indicates End of Archive. End of + archive is indicated by a block that consists entirely of null bytes. + All remaining blocks for the record should also be null's + However some older tars only do a couple of null blocks (Old GNU tar for one) + and also partial records + + The data block to check. + Returns true if the block is an EOF block; false otherwise. + + + + Determine if an archive block indicates the End of an Archive has been reached. + End of archive is indicated by a block that consists entirely of null bytes. + All remaining blocks for the record should also be null's + However some older tars only do a couple of null blocks (Old GNU tar for one) + and also partial records + + The data block to check. + Returns true if the block is an EOF block; false otherwise. + + + + Skip over a block on the input stream. + + + + + Read a block from the input stream. + + + The block of data read. + + + + + Read a record from data stream. + + + false if End-Of-File, else true. + + + + + Get the current block number, within the current record, zero based. + + Block numbers are zero based values + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Get the current block number, within the current record, zero based. + + + The current zero based block number. + + + The absolute block number = (record number * block factor) + block number. + + + + + Get the current record number. + + + The current zero based record number. + + + + + Get the current record number. + + + The current zero based record number. + + + + + Write a block of data to the archive. + + + The data to write to the archive. + + + + + Write an archive record to the archive, where the record may be + inside of a larger array buffer. The buffer must be "offset plus + record size" long. + + + The buffer containing the record data to write. + + + The offset of the record data within buffer. + + + + + Write a TarBuffer record to the archive. + + + + + WriteFinalRecord writes the current record buffer to output any unwritten data is present. + + Any trailing bytes are set to zero which is by definition correct behaviour + for the end of a tar stream. + + + + Close the TarBuffer. If this is an output buffer, also flush the + current block before closing. + + + + + This class represents an entry in a Tar archive. It consists + of the entry's header, as well as the entry's File. Entries + can be instantiated in one of three ways, depending on how + they are to be used. +

+ TarEntries that are created from the header bytes read from + an archive are instantiated with the TarEntry( byte[] ) + constructor. These entries will be used when extracting from + or listing the contents of an archive. These entries have their + header filled in using the header bytes. They also set the File + to null, since they reference an archive entry not a file.

+

+ TarEntries that are created from files that are to be written + into an archive are instantiated with the CreateEntryFromFile(string) + pseudo constructor. These entries have their header filled in using + the File's information. They also keep a reference to the File + for convenience when writing entries.

+

+ Finally, TarEntries can be constructed from nothing but a name. + This allows the programmer to construct the entry by hand, for + instance when only an InputStream is available for writing to + the archive, and the header information is constructed from + other information. In this case the header fields are set to + defaults and the File is set to null.

+ +
+
+ + + Initialise a default instance of . + + + + + Construct an entry from an archive's header bytes. File is set + to null. + + + The header bytes from a tar archive entry. + + + + + Construct a TarEntry using the header provided + + Header details for entry + + + + Clone this tar entry. + + Returns a clone of this entry. + + + + Construct an entry with only a name. + This allows the programmer to construct the entry's header "by hand". + + The name to use for the entry + Returns the newly created + + + + Construct an entry for a file. File is set to file, and the + header is constructed from information from the file. + + The file name that the entry represents. + Returns the newly created + + + + Determine if the two entries are equal. Equality is determined + by the header names being equal. + + The to compare with the current Object. + + True if the entries are equal; false if not. + + + + + Derive a Hash value for the current + + A Hash code for the current + + + + Determine if the given entry is a descendant of this entry. + Descendancy is determined by the name of the descendant + starting with this entry's name. + + + Entry to be checked as a descendent of this. + + + True if entry is a descendant of this. + + + + + Get this entry's header. + + + This entry's TarHeader. + + + + + Get/Set this entry's name. + + + + + Get/set this entry's user id. + + + + + Get/set this entry's group id. + + + + + Get/set this entry's user name. + + + + + Get/set this entry's group name. + + + + + Convenience method to set this entry's group and user ids. + + + This entry's new user id. + + + This entry's new group id. + + + + + Convenience method to set this entry's group and user names. + + + This entry's new user name. + + + This entry's new group name. + + + + + Get/Set the modification time for this entry + + + + + Get this entry's file. + + + This entry's file. + + + + + Get/set this entry's recorded file size. + + + + + Return true if this entry represents a directory, false otherwise + + + True if this entry is a directory. + + + + + Fill in a TarHeader with information from a File. + + + The TarHeader to fill in. + + + The file from which to get the header information. + + + + + Get entries for all files present in this entries directory. + If this entry doesnt represent a directory zero entries are returned. + + + An array of TarEntry's for this entry's children. + + + + + Write an entry's header information to a header buffer. + + + The tar entry header buffer to fill in. + + + + + Convenience method that will modify an entry's name directly + in place in an entry header buffer byte array. + + + The buffer containing the entry header to modify. + + + The new name to place into the header buffer. + + + + + Fill in a TarHeader given only the entry's name. + + + The TarHeader to fill in. + + + The tar entry name. + + + + + The name of the file this entry represents or null if the entry is not based on a file. + + + + + The entry's header information. + + + + + TarException represents exceptions specific to Tar classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This class encapsulates the Tar Entry Header used in Tar Archives. + The class also holds a number of tar constants, used mostly in headers. + + + The tar format and its POSIX successor PAX have a long history which makes for compatability + issues when creating and reading files. + + This is further complicated by a large number of programs with variations on formats + One common issue is the handling of names longer than 100 characters. + GNU style long names are currently supported. + + This is the ustar (Posix 1003.1) header. + + struct header + { + char t_name[100]; // 0 Filename + char t_mode[8]; // 100 Permissions + char t_uid[8]; // 108 Numerical User ID + char t_gid[8]; // 116 Numerical Group ID + char t_size[12]; // 124 Filesize + char t_mtime[12]; // 136 st_mtime + char t_chksum[8]; // 148 Checksum + char t_typeflag; // 156 Type of File + char t_linkname[100]; // 157 Target of Links + char t_magic[6]; // 257 "ustar" or other... + char t_version[2]; // 263 Version fixed to 00 + char t_uname[32]; // 265 User Name + char t_gname[32]; // 297 Group Name + char t_devmajor[8]; // 329 Major for devices + char t_devminor[8]; // 337 Minor for devices + char t_prefix[155]; // 345 Prefix for t_name + char t_mfill[12]; // 500 Filler up to 512 + }; + + + + + The length of the name field in a header buffer. + + + + + The length of the mode field in a header buffer. + + + + + The length of the user id field in a header buffer. + + + + + The length of the group id field in a header buffer. + + + + + The length of the checksum field in a header buffer. + + + + + Offset of checksum in a header buffer. + + + + + The length of the size field in a header buffer. + + + + + The length of the magic field in a header buffer. + + + + + The length of the version field in a header buffer. + + + + + The length of the modification time field in a header buffer. + + + + + The length of the user name field in a header buffer. + + + + + The length of the group name field in a header buffer. + + + + + The length of the devices field in a header buffer. + + + + + The length of the name prefix field in a header buffer. + + + + + The "old way" of indicating a normal file. + + + + + Normal file type. + + + + + Link file type. + + + + + Symbolic link file type. + + + + + Character device file type. + + + + + Block device file type. + + + + + Directory file type. + + + + + FIFO (pipe) file type. + + + + + Contiguous file type. + + + + + Posix.1 2001 global extended header + + + + + Posix.1 2001 extended header + + + + + Solaris access control list file type + + + + + GNU dir dump file type + This is a dir entry that contains the names of files that were in the + dir at the time the dump was made + + + + + Solaris Extended Attribute File + + + + + Inode (metadata only) no file content + + + + + Identifies the next file on the tape as having a long link name + + + + + Identifies the next file on the tape as having a long name + + + + + Continuation of a file that began on another volume + + + + + For storing filenames that dont fit in the main header (old GNU) + + + + + GNU Sparse file + + + + + GNU Tape/volume header ignore on extraction + + + + + The magic tag representing a POSIX tar archive. (would be written with a trailing NULL) + + + + + The magic tag representing an old GNU tar archive where version is included in magic and overwrites it + + + + + Initialise a default TarHeader instance + + + + + Get/set the name for this tar entry. + + Thrown when attempting to set the property to null. + + + + Get the name of this entry. + + The entry's name. + + + + Get/set the entry's Unix style permission mode. + + + + + The entry's user id. + + + This is only directly relevant to unix systems. + The default is zero. + + + + + Get/set the entry's group id. + + + This is only directly relevant to linux/unix systems. + The default value is zero. + + + + + Get/set the entry's size. + + Thrown when setting the size to less than zero. + + + + Get/set the entry's modification time. + + + The modification time is only accurate to within a second. + + Thrown when setting the date time to less than 1/1/1970. + + + + Get the entry's checksum. This is only valid/updated after writing or reading an entry. + + + + + Get value of true if the header checksum is valid, false otherwise. + + + + + Get/set the entry's type flag. + + + + + The entry's link name. + + Thrown when attempting to set LinkName to null. + + + + Get/set the entry's magic tag. + + Thrown when attempting to set Magic to null. + + + + The entry's version. + + Thrown when attempting to set Version to null. + + + + The entry's user name. + + + + + Get/set the entry's group name. + + + This is only directly relevant to unix systems. + + + + + Get/set the entry's major device number. + + + + + Get/set the entry's minor device number. + + + + + Create a new that is a copy of the current instance. + + A new that is a copy of the current instance. + + + + Parse TarHeader information from a header buffer. + + + The tar entry header buffer to get information from. + + + + + 'Write' header information to buffer provided, updating the check sum. + + output buffer for header information + + + + Get a hash code for the current object. + + A hash code for the current object. + + + + Determines if this instance is equal to the specified object. + + The object to compare with. + true if the objects are equal, false otherwise. + + + + Set defaults for values used when constructing a TarHeader instance. + + Value to apply as a default for userId. + Value to apply as a default for userName. + Value to apply as a default for groupId. + Value to apply as a default for groupName. + + + + Parse an octal string from a header buffer. + + The header buffer from which to parse. + The offset into the buffer from which to parse. + The number of header bytes to parse. + The long equivalent of the octal string. + + + + Parse a name from a header buffer. + + + The header buffer from which to parse. + + + The offset into the buffer from which to parse. + + + The number of header bytes to parse. + + + The name parsed. + + + + + Add name to the buffer as a collection of bytes + + The name to add + The offset of the first character + The buffer to add to + The index of the first byte to add + The number of characters/bytes to add + The next free index in the + + + + Add name to the buffer as a collection of bytes + + The name to add + The offset of the first character + The buffer to add to + The index of the first byte to add + The number of characters/bytes to add + The next free index in the + + + + Add an entry name to the buffer + + + The name to add + + + The buffer to add to + + + The offset into the buffer from which to start adding + + + The number of header bytes to add + + + The index of the next free byte in the buffer + + + + + Add an entry name to the buffer + + The name to add + The buffer to add to + The offset into the buffer from which to start adding + The number of header bytes to add + The index of the next free byte in the buffer + + + + Add a string to a buffer as a collection of ascii bytes. + + The string to add + The offset of the first character to add. + The buffer to add to. + The offset to start adding at. + The number of ascii characters to add. + The next free index in the buffer. + + + + Put an octal representation of a value into a buffer + + + the value to be converted to octal + + + buffer to store the octal string + + + The offset into the buffer where the value starts + + + The length of the octal string to create + + + The offset of the character next byte after the octal string + + + + + Put an octal or binary representation of a value into a buffer + + Value to be convert to octal + The buffer to update + The offset into the buffer to store the value + The length of the octal string. Must be 12. + Index of next byte + + + + Add the checksum integer to header buffer. + + + The header buffer to set the checksum for + The offset into the buffer for the checksum + The number of header bytes to update. + It's formatted differently from the other fields: it has 6 digits, a + null, then a space -- rather than digits, a space, then a null. + The final space is already there, from checksumming + + The modified buffer offset + + + + Compute the checksum for a tar entry header. + The checksum field must be all spaces prior to this happening + + The tar entry's header buffer. + The computed checksum. + + + + Make a checksum for a tar entry ignoring the checksum contents. + + The tar entry's header buffer. + The checksum for the buffer + + + + The TarInputStream reads a UNIX tar archive as an InputStream. + methods are provided to position at each successive entry in + the archive, and the read each entry as a normal input stream + using read(). + + + + + Construct a TarInputStream with default block factor + + stream to source data from + + + + Construct a TarInputStream with user specified block factor + + stream to source data from + block factor to apply to archive + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking + This property always returns false. + + + + + Gets a value indicating if the stream supports writing. + This property always returns false. + + + + + The length in bytes of the stream + + + + + Gets or sets the position within the stream. + Setting the Position is not supported and throws a NotSupportedExceptionNotSupportedException + + Any attempt to set position + + + + Flushes the baseInputStream + + + + + Set the streams position. This operation is not supported and will throw a NotSupportedException + + The offset relative to the origin to seek to. + The to start seeking from. + The new position in the stream. + Any access + + + + Sets the length of the stream + This operation is not supported and will throw a NotSupportedException + + The new stream length. + Any access + + + + Writes a block of bytes to this stream using data from a buffer. + This operation is not supported and will throw a NotSupportedException + + The buffer containing bytes to write. + The offset in the buffer of the frist byte to write. + The number of bytes to write. + Any access + + + + Writes a byte to the current position in the file stream. + This operation is not supported and will throw a NotSupportedException + + The byte value to write. + Any access + + + + Reads a byte from the current tar archive entry. + + A byte cast to an int; -1 if the at the end of the stream. + + + + Reads bytes from the current tar archive entry. + + This method is aware of the boundaries of the current + entry in the archive and will deal with them appropriately + + + The buffer into which to place bytes read. + + + The offset at which to place bytes read. + + + The number of bytes to read. + + + The number of bytes read, or 0 at end of stream/EOF. + + + + + Closes this stream. Calls the TarBuffer's close() method. + The underlying stream is closed by the TarBuffer. + + + + + Set the entry factory for this instance. + + The factory for creating new entries + + + + Get the record size being used by this stream's TarBuffer. + + + + + Get the record size being used by this stream's TarBuffer. + + + TarBuffer record size. + + + + + Get the available data that can be read from the current + entry in the archive. This does not indicate how much data + is left in the entire archive, only in the current entry. + This value is determined from the entry's size header field + and the amount of data already read from the current entry. + + + The number of available bytes for the current entry. + + + + + Skip bytes in the input buffer. This skips bytes in the + current entry's data, not the entire archive, and will + stop at the end of the current entry's data if the number + to skip extends beyond that point. + + + The number of bytes to skip. + + + + + Return a value of true if marking is supported; false otherwise. + + Currently marking is not supported, the return value is always false. + + + + Since we do not support marking just yet, we do nothing. + + + The limit to mark. + + + + + Since we do not support marking just yet, we do nothing. + + + + + Get the next entry in this tar archive. This will skip + over any remaining data in the current entry, if there + is one, and place the input stream at the header of the + next entry, and read the header and instantiate a new + TarEntry from the header bytes and return that entry. + If there are no more entries in the archive, null will + be returned to indicate that the end of the archive has + been reached. + + + The next TarEntry in the archive, or null. + + + + + Copies the contents of the current tar archive entry directly into + an output stream. + + + The OutputStream into which to write the entry's data. + + + + + This interface is provided, along with the method , to allow + the programmer to have their own subclass instantiated for the + entries return from . + + + + + Create an entry based on name alone + + + Name of the new EntryPointNotFoundException to create + + created TarEntry or descendant class + + + + Create an instance based on an actual file + + + Name of file to represent in the entry + + + Created TarEntry or descendant class + + + + + Create a tar entry based on the header information passed + + + Buffer containing header information to create an an entry from. + + + Created TarEntry or descendant class + + + + + Standard entry factory class creating instances of the class TarEntry + + + + + Create a based on named + + The name to use for the entry + A new + + + + Create a tar entry with details obtained from file + + The name of the file to retrieve details from. + A new + + + + Create an entry based on details in header + + The buffer containing entry details. + A new + + + + Flag set when last block has been read + + + + + Size of this entry as recorded in header + + + + + Number of bytes read for this entry so far + + + + + Buffer used with calls to Read() + + + + + Working buffer + + + + + Current entry being read + + + + + Factory used to create TarEntry or descendant class instance + + + + + Stream used as the source of input data. + + + + + The TarOutputStream writes a UNIX tar archive as an OutputStream. + Methods are provided to put entries, and then write their contents + by writing to this stream using write(). + + public + + + + Construct TarOutputStream using default block factor + + stream to write to + + + + Construct TarOutputStream with user specified block factor + + stream to write to + blocking factor + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + true if the stream supports reading; otherwise, false. + + + + + true if the stream supports seeking; otherwise, false. + + + + + true if stream supports writing; otherwise, false. + + + + + length of stream in bytes + + + + + gets or sets the position within the current stream. + + + + + set the position within the current stream + + The offset relative to the to seek to + The to seek from. + The new position in the stream. + + + + Set the length of the current stream + + The new stream length. + + + + Read a byte from the stream and advance the position within the stream + by one byte or returns -1 if at the end of the stream. + + The byte value or -1 if at end of stream + + + + read bytes from the current stream and advance the position within the + stream by the number of bytes read. + + The buffer to store read bytes in. + The index into the buffer to being storing bytes at. + The desired number of bytes to read. + The total number of bytes read, or zero if at the end of the stream. + The number of bytes may be less than the count + requested if data is not avialable. + + + + All buffered data is written to destination + + + + + Ends the TAR archive without closing the underlying OutputStream. + The result is that the EOF block of nulls is written. + + + + + Ends the TAR archive and closes the underlying OutputStream. + + This means that Finish() is called followed by calling the + TarBuffer's Close(). + + + + Get the record size being used by this stream's TarBuffer. + + + + + Get the record size being used by this stream's TarBuffer. + + + The TarBuffer record size. + + + + + Get a value indicating wether an entry is open, requiring more data to be written. + + + + + Put an entry on the output stream. This writes the entry's + header and positions the output stream for writing + the contents of the entry. Once this method is called, the + stream is ready for calls to write() to write the entry's + contents. Once the contents are written, closeEntry() + MUST be called to ensure that all buffered data + is completely written to the output stream. + + + The TarEntry to be written to the archive. + + + + + Close an entry. This method MUST be called for all file + entries that contain data. The reason is that we must + buffer data written to the stream in order to satisfy + the buffer's block based writes. Thus, there may be + data fragments still being assembled that must be written + to the output stream before this entry is closed and the + next entry written. + + + + + Writes a byte to the current tar archive entry. + This method simply calls Write(byte[], int, int). + + + The byte to be written. + + + + + Writes bytes to the current tar archive entry. This method + is aware of the current entry and will throw an exception if + you attempt to write bytes past the length specified for the + current entry. The method is also (painfully) aware of the + record buffering required by TarBuffer, and manages buffers + that are not a multiple of recordsize in length, including + assembling records from small buffers. + + + The buffer to write to the archive. + + + The offset in the buffer from which to get bytes. + + + The number of bytes to write. + + + + + Write an EOF (end of archive) block to the tar archive. + The end of the archive is indicated by two blocks consisting entirely of zero bytes. + + + + + bytes written for this entry so far + + + + + current 'Assembly' buffer length + + + + + Flag indicating wether this instance has been closed or not. + + + + + Size for the current entry + + + + + single block working buffer + + + + + 'Assembly' buffer used to assemble data before writing + + + + + TarBuffer used to provide correct blocking factor + + + + + the destination stream for the archive contents + + + + + This is the Deflater class. The deflater class compresses input + with the deflate algorithm described in RFC 1951. It has several + compression levels and three different strategies described below. + + This class is not thread safe. This is inherent in the API, due + to the split of deflate and setInput. + + author of the original java version : Jochen Hoenicke + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Compression Level as an enum for safer use + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Creates a new deflater with default compression level. + + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION, or DEFAULT_COMPRESSION. + + if lvl is out of range. + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION. + + + true, if we should suppress the Zlib/RFC1950 header at the + beginning and the adler checksum at the end of the output. This is + useful for the GZIP/PKZIP formats. + + if lvl is out of range. + + + + Resets the deflater. The deflater acts afterwards as if it was + just created with the same compression level and strategy as it + had before. + + + + + Gets the current adler checksum of the data that was processed so far. + + + + + Gets the number of input bytes processed so far. + + + + + Gets the number of output bytes so far. + + + + + Flushes the current input block. Further calls to deflate() will + produce enough output to inflate everything in the current input + block. This is not part of Sun's JDK so I have made it package + private. It is used by DeflaterOutputStream to implement + flush(). + + + + + Finishes the deflater with the current input block. It is an error + to give more input after this method was called. This method must + be called to force all bytes to be flushed. + + + + + Returns true if the stream was finished and no more output bytes + are available. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method can also return true when the stream + was finished. + + + + + Sets the data which should be compressed next. This should be only + called when needsInput indicates that more input is needed. + If you call setInput when needsInput() returns false, the + previous input that is still pending will be thrown away. + The given byte array should not be changed, before needsInput() returns + true again. + This call is equivalent to setInput(input, 0, input.length). + + + the buffer containing the input data. + + + if the buffer was finished() or ended(). + + + + + Sets the data which should be compressed next. This should be + only called when needsInput indicates that more input is needed. + The given byte array should not be changed, before needsInput() returns + true again. + + + the buffer containing the input data. + + + the start of the data. + + + the number of data bytes of input. + + + if the buffer was Finish()ed or if previous input is still pending. + + + + + Sets the compression level. There is no guarantee of the exact + position of the change, but if you call this when needsInput is + true the change of compression level will occur somewhere near + before the end of the so far given input. + + + the new compression level. + + + + + Get current compression level + + Returns the current compression level + + + + Sets the compression strategy. Strategy is one of + DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact + position where the strategy is changed, the same as for + SetLevel() applies. + + + The new compression strategy. + + + + + Deflates the current input block with to the given array. + + + The buffer where compressed data is stored + + + The number of compressed bytes added to the output, or 0 if either + IsNeedingInput() or IsFinished returns true or length is zero. + + + + + Deflates the current input block to the given array. + + + Buffer to store the compressed data. + + + Offset into the output array. + + + The maximum number of bytes that may be stored. + + + The number of compressed bytes added to the output, or 0 if either + needsInput() or finished() returns true or length is zero. + + + If Finish() was previously called. + + + If offset or length don't match the array length. + + + + + Sets the dictionary which should be used in the deflate process. + This call is equivalent to setDictionary(dict, 0, dict.Length). + + + the dictionary. + + + if SetInput () or Deflate () were already called or another dictionary was already set. + + + + + Sets the dictionary which should be used in the deflate process. + The dictionary is a byte array containing strings that are + likely to occur in the data which should be compressed. The + dictionary is not stored in the compressed output, only a + checksum. To decompress the output you need to supply the same + dictionary again. + + + The dictionary data + + + The index where dictionary information commences. + + + The number of bytes in the dictionary. + + + If SetInput () or Deflate() were already called or another dictionary was already set. + + + + + Compression level. + + + + + If true no Zlib/RFC1950 headers or footers are generated + + + + + The current state. + + + + + The total bytes of output written. + + + + + The pending output. + + + + + The deflater engine. + + + + + This class contains constants used for deflation. + + + + + Set to true to enable debugging + + + + + Written to Zip file to identify a stored block + + + + + Identifies static tree in Zip file + + + + + Identifies dynamic tree in Zip file + + + + + Header flag indicating a preset dictionary for deflation + + + + + Sets internal buffer sizes for Huffman encoding + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Strategies for deflater + + + + + The default strategy + + + + + This strategy will only allow longer string repetitions. It is + useful for random data with a small character set. + + + + + This strategy will not look for string repetitions at all. It + only encodes with Huffman trees (which means, that more common + characters get a smaller encoding. + + + + + Low level compression engine for deflate algorithm which uses a 32K sliding window + with secondary compression from Huffman/Shannon-Fano codes. + + + + + Construct instance with pending buffer + + + Pending buffer to use + > + + + + Deflate drives actual compression of data + + True to flush input buffers + Finish deflation with the current input. + Returns true if progress has been made. + + + + Sets input data to be deflated. Should only be called when NeedsInput() + returns true + + The buffer containing input data. + The offset of the first byte of data. + The number of bytes of data to use as input. + + + + Determines if more input is needed. + + Return true if input is needed via SetInput + + + + Set compression dictionary + + The buffer containing the dictionary data + The offset in the buffer for the first byte of data + The length of the dictionary data. + + + + Reset internal state + + + + + Reset Adler checksum + + + + + Get current value of Adler checksum + + + + + Total data processed + + + + + Get/set the deflate strategy + + + + + Set the deflate level (0-9) + + The value to set the level to. + + + + Fill the window + + + + + Inserts the current string in the head hash and returns the previous + value for this hash. + + The previous hash value + + + + Find the best (longest) string in the window matching the + string starting at strstart. + + Preconditions: + + strstart + DeflaterConstants.MAX_MATCH <= window.length. + + + True if a match greater than the minimum length is found + + + + Hashtable, hashing three characters to an index for window, so + that window[index]..window[index+2] have this hash code. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + prev[index & WMASK] points to the previous index that has the + same hash code as the string starting at index. This way + entries with the same hash code are in a linked list. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + Points to the current character in the window. + + + + + lookahead is the number of characters starting at strstart in + window that are valid. + So window[strstart] until window[strstart+lookahead-1] are valid + characters. + + + + + This array contains the part of the uncompressed stream that + is of relevance. The current character is indexed by strstart. + + + + + The current compression function. + + + + + The input data for compression. + + + + + The total bytes of input read. + + + + + The offset into inputBuf, where input data starts. + + + + + The end offset of the input data. + + + + + The adler checksum + + + + + This is the DeflaterHuffman class. + + This class is not thread safe. This is inherent in the API, due + to the split of Deflate and SetInput. + + author of the original java version : Jochen Hoenicke + + + + + Resets the internal state of the tree + + + + + Check that all frequencies are zero + + + At least one frequency is non-zero + + + + + Set static codes and length + + new codes + length for new codes + + + + Build dynamic codes and lengths + + + + + Get encoded length + + Encoded length, the sum of frequencies * lengths + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + + + + Write tree values + + Tree to write + + + + Pending buffer to use + + + + + Construct instance with pending buffer + + Pending buffer to use + + + + Reset internal state + + + + + Write all trees to pending buffer + + The number/rank of treecodes to send. + + + + Compress current buffer writing data to pending buffer + + + + + Flush block to output with no compression + + Data to write + Index of first byte to write + Count of bytes to write + True if this is the last block + + + + Flush block to output with compression + + Data to flush + Index of first byte to flush + Count of bytes to flush + True if this is the last block + + + + Get value indicating if internal buffer is full + + true if buffer is full + + + + Add literal to buffer + + Literal value to add to buffer. + Value indicating internal buffer is full + + + + Add distance code and length to literal and distance trees + + Distance code + Length + Value indicating if internal buffer is full + + + + Reverse the bits of a 16 bit value. + + Value to reverse bits + Value with bits reversed + + + + This class stores the pending output of the Deflater. + + author of the original java version : Jochen Hoenicke + + + + + Construct instance with default buffer size + + + + + Inflater is used to decompress data that has been compressed according + to the "deflate" standard described in rfc1951. + + By default Zlib (rfc1950) headers and footers are expected in the input. + You can use constructor public Inflater(bool noHeader) passing true + if there is no Zlib header information + + The usage is as following. First you have to set some input with + SetInput(), then Inflate() it. If inflate doesn't + inflate any bytes there may be three reasons: +
    +
  • IsNeedingInput() returns true because the input buffer is empty. + You have to provide more input with SetInput(). + NOTE: IsNeedingInput() also returns true when, the stream is finished. +
  • +
  • IsNeedingDictionary() returns true, you have to provide a preset + dictionary with SetDictionary().
  • +
  • IsFinished returns true, the inflater has finished.
  • +
+ Once the first output byte is produced, a dictionary will not be + needed at a later stage. + + author of the original java version : John Leuner, Jochen Hoenicke +
+
+ + + Copy lengths for literal codes 257..285 + + + + + Extra bits for literal codes 257..285 + + + + + Copy offsets for distance codes 0..29 + + + + + Extra bits for distance codes + + + + + These are the possible states for an inflater + + + + + This variable contains the current state. + + + + + The adler checksum of the dictionary or of the decompressed + stream, as it is written in the header resp. footer of the + compressed stream. + Only valid if mode is DECODE_DICT or DECODE_CHKSUM. + + + + + The number of bits needed to complete the current state. This + is valid, if mode is DECODE_DICT, DECODE_CHKSUM, + DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. + + + + + True, if the last block flag was set in the last block of the + inflated stream. This means that the stream ends after the + current block. + + + + + The total number of inflated bytes. + + + + + The total number of bytes set with setInput(). This is not the + value returned by the TotalIn property, since this also includes the + unprocessed input. + + + + + This variable stores the noHeader flag that was given to the constructor. + True means, that the inflated stream doesn't contain a Zlib header or + footer. + + + + + Creates a new inflater or RFC1951 decompressor + RFC1950/Zlib headers and footers will be expected in the input data + + + + + Creates a new inflater. + + + True if no RFC1950/Zlib header and footer fields are expected in the input data + + This is used for GZIPed/Zipped input. + + For compatibility with + Sun JDK you should provide one byte of input more than needed in + this case. + + + + + Resets the inflater so that a new stream can be decompressed. All + pending input and output will be discarded. + + + + + Decodes a zlib/RFC1950 header. + + + False if more input is needed. + + + The header is invalid. + + + + + Decodes the dictionary checksum after the deflate header. + + + False if more input is needed. + + + + + Decodes the huffman encoded symbols in the input stream. + + + false if more input is needed, true if output window is + full or the current block ends. + + + if deflated stream is invalid. + + + + + Decodes the adler checksum after the deflate stream. + + + false if more input is needed. + + + If checksum doesn't match. + + + + + Decodes the deflated stream. + + + false if more input is needed, or if finished. + + + if deflated stream is invalid. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + The index into buffer where the dictionary starts. + + + The number of bytes in the dictionary. + + + No dictionary is needed. + + + The adler checksum for the buffer is invalid + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + the input. + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + The source of input data + + + The index into buffer where the input starts. + + + The number of bytes of input to use. + + + No input is needed. + + + The index and/or count are wrong. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether IsNeedingDictionary(), + IsNeedingInput() or IsFinished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + The number of bytes written to the buffer, 0 if no further + output can be produced. + + + if buffer has length 0. + + + if deflated stream is invalid. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether needsDictionary(), + needsInput() or finished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + the offset in buffer where storing starts. + + + the maximum number of bytes to output. + + + the number of bytes written to the buffer, 0 if no further output can be produced. + + + if count is less than 0. + + + if the index and / or count are wrong. + + + if deflated stream is invalid. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method also returns true when the stream is finished. + + + + + Returns true, if a preset dictionary is needed to inflate the input. + + + + + Returns true, if the inflater has finished. This means, that no + input is needed and no output can be produced. + + + + + Gets the adler checksum. This is either the checksum of all + uncompressed bytes returned by inflate(), or if needsDictionary() + returns true (and thus no output was yet produced) this is the + adler checksum of the expected dictionary. + + + the adler checksum. + + + + + Gets the total number of output bytes returned by Inflate(). + + + the total number of output bytes. + + + + + Gets the total number of processed compressed input bytes. + + + The total number of bytes of processed input bytes. + + + + + Gets the number of unprocessed input bytes. Useful, if the end of the + stream is reached and you want to further process the bytes after + the deflate stream. + + + The number of bytes of the input which have not been processed. + + + + + The current decode mode + + + + + Huffman tree used for inflation + + + + + Literal length tree + + + + + Distance tree + + + + + Constructs a Huffman tree from the array of code lengths. + + + the array of code lengths + + + + + Reads the next symbol from input. The symbol is encoded using the + huffman tree. + + + input the input source. + + + the next symbol, or -1 if not enough input is available. + + + + + This class is general purpose class for writing data to a buffer. + + It allows you to write bits as well as bytes + Based on DeflaterPending.java + + author of the original java version : Jochen Hoenicke + + + + + Internal work buffer + + + + + construct instance using default buffer size of 4096 + + + + + construct instance using specified buffer size + + + size to use for internal buffer + + + + + Clear internal state/buffers + + + + + Write a byte to buffer + + + The value to write + + + + + Write a short value to buffer LSB first + + + The value to write. + + + + + write an integer LSB first + + The value to write. + + + + Write a block of data to buffer + + data to write + offset of first byte to write + number of bytes to write + + + + The number of bits written to the buffer + + + + + Align internal buffer on a byte boundary + + + + + Write bits to internal buffer + + source of bits + number of bits to write + + + + Write a short value to internal buffer most significant byte first + + value to write + + + + Indicates if buffer has been flushed + + + + + Flushes the pending buffer into the given output array. If the + output array is to small, only a partial flush is done. + + The output array. + The offset into output array. + The maximum number of bytes to store. + The number of bytes flushed. + + + + Convert internal buffer to byte array. + Buffer is empty on completion + + + The internal buffer contents converted to a byte array. + + + + + A special stream deflating or compressing the bytes that are + written to it. It uses a Deflater to perform actual deflating.
+ Authors of the original java version : Tom Tromey, Jochen Hoenicke +
+
+ + + Creates a new DeflaterOutputStream with a default Deflater and default buffer size. + + + the output stream where deflated output should be written. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + default buffer size. + + + the output stream where deflated output should be written. + + + the underlying deflater. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + buffer size. + + + The output stream where deflated output is written. + + + The underlying deflater to use + + + The buffer size in bytes to use when deflating (minimum value 512) + + + bufsize is less than or equal to zero. + + + baseOutputStream does not support writing + + + deflater instance is null + + + + + Finishes the stream by calling finish() on the deflater. + + + Not all input is deflated + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Allows client to determine if an entry can be patched after its added + + + + + Returns the 10 byte AUTH CODE to be appended immediately following the AES data stream. + + + + + Get/set the password used for encryption. + + When set to null or if the password is empty no encryption is performed + + + + Encrypt a block of data + + + Data to encrypt. NOTE the original contents of the buffer are lost + + + Offset of first byte in buffer to encrypt + + + Number of bytes in buffer to encrypt + + + + + Initializes encryption keys based on given . + + The password. + + + + Initializes encryption keys based on given password. + + + + + Deflates everything in the input buffers. This will call + def.deflate() until all bytes from the input buffers + are processed. + + + + + Gets value indicating stream can be read from + + + + + Gets a value indicating if seeking is supported for this stream + This property always returns false + + + + + Get value indicating if this stream supports writing + + + + + Get current length of stream + + + + + Gets the current position within the stream. + + Any attempt to set position + + + + Sets the current position of this stream to the given value. Not supported by this class! + + The offset relative to the to seek. + The to seek from. + The new position in the stream. + Any access + + + + Sets the length of this stream to the given value. Not supported by this class! + + The new stream length. + Any access + + + + Read a byte from stream advancing position by one + + The byte read cast to an int. THe value is -1 if at the end of the stream. + Any access + + + + Read a block of bytes from stream + + The buffer to store read data in. + The offset to start storing at. + The maximum number of bytes to read. + The actual number of bytes read. Zero if end of stream is detected. + Any access + + + + Flushes the stream by calling Flush on the deflater and then + on the underlying stream. This ensures that all bytes are flushed. + + + + + Calls and closes the underlying + stream when is true. + + + + + Writes a single byte to the compressed output stream. + + + The byte value. + + + + + Writes bytes from an array to the compressed stream. + + + The byte array + + + The offset into the byte array where to start. + + + The number of bytes to write. + + + + + This buffer is used temporarily to retrieve the bytes from the + deflater and write them to the underlying output stream. + + + + + The deflater which is used to deflate the stream. + + + + + Base stream the deflater depends on. + + + + + An input buffer customised for use by + + + The buffer supports decryption of incoming data. + + + + + Initialise a new instance of with a default buffer size + + The stream to buffer. + + + + Initialise a new instance of + + The stream to buffer. + The size to use for the buffer + A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. + + + + Get the length of bytes bytes in the + + + + + Get the contents of the raw data buffer. + + This may contain encrypted data. + + + + Get the number of useable bytes in + + + + + Get the contents of the clear text buffer. + + + + + Get/set the number of bytes available + + + + + Call passing the current clear text buffer contents. + + The inflater to set input for. + + + + Fill the buffer from the underlying input stream. + + + + + Read a buffer directly from the input stream + + The buffer to fill + Returns the number of bytes read. + + + + Read a buffer directly from the input stream + + The buffer to read into + The offset to start reading data into. + The number of bytes to read. + Returns the number of bytes read. + + + + Read clear text data from the input stream. + + The buffer to add data to. + The offset to start adding data at. + The number of bytes to read. + Returns the number of bytes actually read. + + + + Read a from the input stream. + + Returns the byte read. + + + + Read an in little endian byte order. + + The short value read case to an int. + + + + Read an in little endian byte order. + + The int value read. + + + + Read a in little endian byte order. + + The long value read. + + + + Get/set the to apply to any data. + + Set this value to null to have no transform applied. + + + + This filter stream is used to decompress data compressed using the "deflate" + format. The "deflate" format is described in RFC 1951. + + This stream may form the basis for other decompression filters, such + as the GZipInputStream. + + Author of the original java version : John Leuner. + + + + + Create an InflaterInputStream with the default decompressor + and a default buffer size of 4KB. + + + The InputStream to read bytes from + + + + + Create an InflaterInputStream with the specified decompressor + and a default buffer size of 4KB. + + + The source of input data + + + The decompressor used to decompress data read from baseInputStream + + + + + Create an InflaterInputStream with the specified decompressor + and the specified buffer size. + + + The InputStream to read bytes from + + + The decompressor to use + + + Size of the buffer to use + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Skip specified number of bytes of uncompressed data + + + Number of bytes to skip + + + The number of bytes skipped, zero if the end of + stream has been reached + + + The number of bytes to skip is less than or equal to zero. + + + + + Clear any cryptographic state. + + + + + Returns 0 once the end of the stream (EOF) has been reached. + Otherwise returns 1. + + + + + Fills the buffer with more data to decompress. + + + Stream ends early + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + Inflater needs a dictionary + + + + + Decompressor for this stream + + + + + Input buffer for this stream. + + + + + Base stream the inflater reads from. + + + + + The compressed size + + + + + Flag indicating wether this instance has been closed or not. + + + + + Contains the output from the Inflation process. + We need to have a window so that we can refer backwards into the output stream + to repeat stuff.
+ Author of the original java version : John Leuner +
+
+ + + Write a byte to this output window + + value to write + + if window is full + + + + + Append a byte pattern already in the window itself + + length of pattern to copy + distance from end of window pattern occurs + + If the repeated data overflows the window + + + + + Copy from input manipulator to internal window + + source of data + length of data to copy + the number of bytes copied + + + + Copy dictionary to window + + source dictionary + offset of start in source dictionary + length of dictionary + + If window isnt empty + + + + + Get remaining unfilled space in window + + Number of bytes left in window + + + + Get bytes available for output in window + + Number of bytes filled + + + + Copy contents of window to output + + buffer to copy to + offset to start at + number of bytes to count + The number of bytes copied + + If a window underflow occurs + + + + + Reset by clearing window so GetAvailable returns 0 + + + + + This class allows us to retrieve a specified number of bits from + the input buffer, as well as copy big byte blocks. + + It uses an int buffer to store up to 31 bits for direct + manipulation. This guarantees that we can get at least 16 bits, + but we only need at most 15, so this is all safe. + + There are some optimizations in this class, for example, you must + never peek more than 8 bits more than needed, and you must first + peek bits before you may drop them. This is not a general purpose + class but optimized for the behaviour of the Inflater. + + authors of the original java version : John Leuner, Jochen Hoenicke + + + + + Get the next sequence of bits but don't increase input pointer. bitCount must be + less or equal 16 and if this call succeeds, you must drop + at least n - 8 bits in the next call. + + The number of bits to peek. + + the value of the bits, or -1 if not enough bits available. */ + + + + + Drops the next n bits from the input. You should have called PeekBits + with a bigger or equal n before, to make sure that enough bits are in + the bit buffer. + + The number of bits to drop. + + + + Gets the next n bits and increases input pointer. This is equivalent + to followed by , except for correct error handling. + + The number of bits to retrieve. + + the value of the bits, or -1 if not enough bits available. + + + + + Gets the number of bits available in the bit buffer. This must be + only called when a previous PeekBits() returned -1. + + + the number of bits available. + + + + + Gets the number of bytes available. + + + The number of bytes available. + + + + + Skips to the next byte boundary. + + + + + Returns true when SetInput can be called + + + + + Copies bytes from input buffer to output buffer starting + at output[offset]. You have to make sure, that the buffer is + byte aligned. If not enough bytes are available, copies fewer + bytes. + + + The buffer to copy bytes to. + + + The offset in the buffer at which copying starts + + + The length to copy, 0 is allowed. + + + The number of bytes copied, 0 if no bytes were available. + + + Length is less than zero + + + Bit buffer isnt byte aligned + + + + + Resets state and empties internal buffers + + + + + Add more input for consumption. + Only call when IsNeedingInput returns true + + data to be input + offset of first byte of input + number of bytes of input to add. + + + + FastZipEvents supports all events applicable to FastZip operations. + + + + + Delegate to invoke when processing directories. + + + + + Delegate to invoke when processing files. + + + + + Delegate to invoke during processing of files. + + + + + Delegate to invoke when processing for a file has been completed. + + + + + Delegate to invoke when processing directory failures. + + + + + Delegate to invoke when processing file failures. + + + + + Raise the directory failure event. + + The directory causing the failure. + The exception for this event. + A boolean indicating if execution should continue or not. + + + + Fires the file failure handler delegate. + + The file causing the failure. + The exception for this failure. + A boolean indicating if execution should continue or not. + + + + Fires the ProcessFile delegate. + + The file being processed. + A boolean indicating if execution should continue or not. + + + + Fires the delegate + + The file whose processing has been completed. + A boolean indicating if execution should continue or not. + + + + Fires the process directory delegate. + + The directory being processed. + Flag indicating if the directory has matching files as determined by the current filter. + A of true if the operation should continue; false otherwise. + + + + The minimum timespan between events. + + The minimum period of time between events. + + The default interval is three seconds. + + + + FastZip provides facilities for creating and extracting zip files. + + + + + Defines the desired handling when overwriting files during extraction. + + + + + Prompt the user to confirm overwriting + + + + + Never overwrite files. + + + + + Always overwrite files. + + + + + Initialise a default instance of . + + + + + Initialise a new instance of + + The events to use during operations. + + + + Get/set a value indicating wether empty directories should be created. + + + + + Get / set the password value. + + + + + Get or set the active when creating Zip files. + + + + + + Get or set the active when creating Zip files. + + + + + Gets or sets the setting for Zip64 handling when writing. + + + The default value is dynamic which is not backwards compatible with old + programs and can cause problems with XP's built in compression which cant + read Zip64 archives. However it does avoid the situation were a large file + is added and cannot be completed correctly. + NOTE: Setting the size for entries before they are added is the best solution! + By default the EntryFactory used by FastZip will set fhe file size. + + + + + Get/set a value indicating wether file dates and times should + be restored when extracting files from an archive. + + The default value is false. + + + + Get/set a value indicating whether file attributes should + be restored during extract operations + + + + + Get/set the Compression Level that will be used + when creating the zip + + + + + Delegate called when confirming overwriting of files. + + + + + Create a zip file. + + The name of the zip file to create. + The directory to source files from. + True to recurse directories, false for no recursion. + The file filter to apply. + The directory filter to apply. + + + + Create a zip file/archive. + + The name of the zip file to create. + The directory to obtain files and directories from. + True to recurse directories, false for no recursion. + The file filter to apply. + + + + Create a zip archive sending output to the passed. + + The stream to write archive data to. + The directory to source files from. + True to recurse directories, false for no recursion. + The file filter to apply. + The directory filter to apply. + The is closed after creation. + + + + Extract the contents of a zip file. + + The zip file to extract from. + The directory to save extracted information in. + A filter to apply to files. + + + + Extract the contents of a zip file. + + The zip file to extract from. + The directory to save extracted information in. + The style of overwriting to apply. + A delegate to invoke when confirming overwriting. + A filter to apply to files. + A filter to apply to directories. + Flag indicating whether to restore the date and time for extracted files. + + + + Extract the contents of a zip file held in a stream. + + The seekable input stream containing the zip to extract from. + The directory to save extracted information in. + The style of overwriting to apply. + A delegate to invoke when confirming overwriting. + A filter to apply to files. + A filter to apply to directories. + Flag indicating whether to restore the date and time for extracted files. + Flag indicating whether the inputStream will be closed by this method. + + + + Defines factory methods for creating new values. + + + + + Create a for a file given its name + + The name of the file to create an entry for. + Returns a file entry based on the passed. + + + + Create a for a file given its name + + The name of the file to create an entry for. + If true get details from the file system if the file exists. + Returns a file entry based on the passed. + + + + Create a for a file given its actual name and optional override name + + The name of the file to create an entry for. + An alternative name to be used for the new entry. Null if not applicable. + If true get details from the file system if the file exists. + Returns a file entry based on the passed. + + + + Create a for a directory given its name + + The name of the directory to create an entry for. + Returns a directory entry based on the passed. + + + + Create a for a directory given its name + + The name of the directory to create an entry for. + If true get details from the file system for this directory if it exists. + Returns a directory entry based on the passed. + + + + Get/set the applicable. + + + + + WindowsNameTransform transforms names to windows compatible ones. + + + + + The maximum windows path name permitted. + + This may not valid for all windows systems - CE?, etc but I cant find the equivalent in the CLR. + + + + In this case we need Windows' invalid path characters. + Path.GetInvalidPathChars() only returns a subset invalid on all platforms. + + + + + Initialises a new instance of + + + + + + Initialise a default instance of + + + + + Gets or sets a value containing the target directory to prefix values with. + + + + + Gets or sets a value indicating wether paths on incoming values should be removed. + + + + + Transform a Zip directory name to a windows directory name. + + The directory name to transform. + The transformed name. + + + + Transform a Zip format file name to a windows style one. + + The file name to transform. + The transformed name. + + + + Test a name to see if it is a valid name for a windows filename as extracted from a Zip archive. + + The name to test. + Returns true if the name is a valid zip name; false otherwise. + The filename isnt a true windows path in some fundamental ways like no absolute paths, no rooted paths etc. + + + + Force a name to be valid by replacing invalid characters with a fixed value + + The name to make valid + The replacement character to use for any invalid characters. + Returns a valid name + + + + Gets or set the character to replace invalid characters during transformations. + + + + + Determines how entries are tested to see if they should use Zip64 extensions or not. + + + + + Zip64 will not be forced on entries during processing. + + An entry can have this overridden if required + + + + Zip64 should always be used. + + + + + #ZipLib will determine use based on entry values when added to archive. + + + + + The kind of compression used for an entry in an archive + + + + + A direct copy of the file contents is held in the archive + + + + + Common Zip compression method using a sliding dictionary + of up to 32KB and secondary compression from Huffman/Shannon-Fano trees + + + + + An extension to deflate with a 64KB window. Not supported by #Zip currently + + + + + BZip2 compression. Not supported by #Zip. + + + + + WinZip special for AES encryption, Now supported by #Zip. + + + + + Identifies the encryption algorithm used for an entry + + + + + No encryption has been used. + + + + + Encrypted using PKZIP 2.0 or 'classic' encryption. + + + + + DES encryption has been used. + + + + + RC2 encryption has been used for encryption. + + + + + Triple DES encryption with 168 bit keys has been used for this entry. + + + + + Triple DES with 112 bit keys has been used for this entry. + + + + + AES 128 has been used for encryption. + + + + + AES 192 has been used for encryption. + + + + + AES 256 has been used for encryption. + + + + + RC2 corrected has been used for encryption. + + + + + Blowfish has been used for encryption. + + + + + Twofish has been used for encryption. + + + + + RC4 has been used for encryption. + + + + + An unknown algorithm has been used for encryption. + + + + + Defines the contents of the general bit flags field for an archive entry. + + + + + Bit 0 if set indicates that the file is encrypted + + + + + Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) + + + + + Bit 3 if set indicates a trailing data desciptor is appended to the entry data + + + + + Bit 4 is reserved for use with method 8 for enhanced deflation + + + + + Bit 5 if set indicates the file contains Pkzip compressed patched data. + Requires version 2.7 or greater. + + + + + Bit 6 if set indicates strong encryption has been used for this entry. + + + + + Bit 7 is currently unused + + + + + Bit 8 is currently unused + + + + + Bit 9 is currently unused + + + + + Bit 10 is currently unused + + + + + Bit 11 if set indicates the filename and + comment fields for this file must be encoded using UTF-8. + + + + + Bit 12 is documented as being reserved by PKware for enhanced compression. + + + + + Bit 13 if set indicates that values in the local header are masked to hide + their actual values, and the central directory is encrypted. + + + Used when encrypting the central directory contents. + + + + + Bit 14 is documented as being reserved for use by PKware + + + + + Bit 15 is documented as being reserved for use by PKware + + + + + This class contains constants used for Zip format files + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See . + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipInputStream.CanDecompressEntry. + + + + + The minimum version required to support strong encryption + + + + + The minimum version required to support strong encryption + + + + + Version indicating AES encryption + + + + + The version required for Zip64 extensions (4.5 or higher) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of Zip64 data descriptor + + + + + Size of data descriptor + + + + + Size of data descriptor + + + + + Size of central header entry (excluding variable fields) + + + + + Size of central header entry + + + + + Size of end of central record (excluding variable fields) + + + + + Size of end of central record (excluding variable fields) + + + + + Size of 'classic' cryptographic header stored before any entry data + + + + + Size of cryptographic header stored before entry data + + + + + Signature for local entry header + + + + + Signature for local entry header + + + + + Signature for spanning entry + + + + + Signature for spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for central header + + + + + Signature for central header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central directory locator + + + + + Signature for archive extra data signature (were headers are encrypted). + + + + + Central header digitial signature + + + + + Central header digitial signature + + + + + End of central directory record signature + + + + + End of central directory record signature + + + + + The original Zip specification (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) states + that file names should only be encoded with IBM Code Page 437 or UTF-8. + In practice, most zip apps use OEM or system encoding (typically cp437 on Windows). + Let's be good citizens and default to UTF-8 http://utf8everywhere.org/ + + + + + Default encoding used for string conversion. 0 gives the default system OEM code page. + Using the default code page isnt the full solution neccessarily + there are many variable factors, codepage 850 is often a good choice for + European users, however be careful about compatability. + + + + + Convert a portion of a byte array to a string. + + + Data to convert to string + + + Number of bytes to convert starting from index 0 + + + data[0]..data[count - 1] converted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + + dataconverted to a string + + + + + Convert a byte array to string + + The applicable general purpose bits flags + + Byte array to convert + + The number of bytes to convert. + + dataconverted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + The applicable general purpose bits flags + + dataconverted to a string + + + + + Convert a string to a byte array + + + String to convert to an array + + Converted array + + + + Convert a string to a byte array + + The applicable general purpose bits flags + + String to convert to an array + + Converted array + + + + Initialise default instance of ZipConstants + + + Private to prevent instances being created. + + + + + Defines known values for the property. + + + + + Host system = MSDOS + + + + + Host system = Amiga + + + + + Host system = Open VMS + + + + + Host system = Unix + + + + + Host system = VMCms + + + + + Host system = Atari ST + + + + + Host system = OS2 + + + + + Host system = Macintosh + + + + + Host system = ZSystem + + + + + Host system = Cpm + + + + + Host system = Windows NT + + + + + Host system = MVS + + + + + Host system = VSE + + + + + Host system = Acorn RISC + + + + + Host system = VFAT + + + + + Host system = Alternate MVS + + + + + Host system = BEOS + + + + + Host system = Tandem + + + + + Host system = OS400 + + + + + Host system = OSX + + + + + Host system = WinZIP AES + + + + + This class represents an entry in a zip archive. This can be a file + or a directory + ZipFile and ZipInputStream will give you instances of this class as + information about the members in an archive. ZipOutputStream + uses an instance of this class when creating an entry in a Zip file. +
+
Author of the original java version : Jochen Hoenicke +
+
+ + + Creates a zip entry with the given name. + + + The name for this entry. Can include directory components. + The convention for names is 'unix' style paths with relative names only. + There are with no device names and path elements are separated by '/' characters. + + + The name passed is null + + + + + Creates a zip entry with the given name and version required to extract + + + The name for this entry. Can include directory components. + The convention for names is 'unix' style paths with no device names and + path elements separated by '/' characters. This is not enforced see CleanName + on how to ensure names are valid if this is desired. + + + The minimum 'feature version' required this entry + + + The name passed is null + + + + + Initializes an entry with the given name and made by information + + Name for this entry + Version and HostSystem Information + Minimum required zip feature version required to extract this entry + Compression method for this entry. + + The name passed is null + + + versionRequiredToExtract should be 0 (auto-calculate) or > 10 + + + This constructor is used by the ZipFile class when reading from the central header + It is not generally useful, use the constructor specifying the name only. + + + + + Creates a deep copy of the given zip entry. + + + The entry to copy. + + + + + Get a value indicating wether the entry has a CRC value available. + + + + + Get/Set flag indicating if entry is encrypted. + A simple helper routine to aid interpretation of flags + + This is an assistant that interprets the flags property. + + + + Get / set a flag indicating wether entry name and comment text are + encoded in unicode UTF8. + + This is an assistant that interprets the flags property. + + + + Value used during password checking for PKZIP 2.0 / 'classic' encryption. + + + + + Get/Set general purpose bit flag for entry + + + General purpose bit flag
+
+ Bit 0: If set, indicates the file is encrypted
+ Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating
+ Imploding:
+ Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used
+ Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise
+
+ Deflating:
+ Bit 2 Bit 1
+ 0 0 Normal compression was used
+ 0 1 Maximum compression was used
+ 1 0 Fast compression was used
+ 1 1 Super fast compression was used
+
+ Bit 3: If set, the fields crc-32, compressed size + and uncompressed size are were not able to be written during zip file creation + The correct values are held in a data descriptor immediately following the compressed data.
+ Bit 4: Reserved for use by PKZIP for enhanced deflating
+ Bit 5: If set indicates the file contains compressed patch data
+ Bit 6: If set indicates strong encryption was used.
+ Bit 7-10: Unused or reserved
+ Bit 11: If set the name and comments for this entry are in unicode.
+ Bit 12-15: Unused or reserved
+
+ + +
+ + + Get/Set index of this entry in Zip file + + This is only valid when the entry is part of a + + + + Get/set offset for use in central header + + + + + Get/Set external file attributes as an integer. + The values of this are operating system dependant see + HostSystem for details + + + + + Get the version made by for this entry or zero if unknown. + The value / 10 indicates the major version number, and + the value mod 10 is the minor version number + + + + + Get a value indicating this entry is for a DOS/Windows system. + + + + + Test the external attributes for this to + see if the external attributes are Dos based (including WINNT and variants) + and match the values + + The attributes to test. + Returns true if the external attributes are known to be DOS/Windows + based and have the same attributes set as the value passed. + + + + Gets the compatability information for the external file attribute + If the external file attributes are compatible with MS-DOS and can be read + by PKZIP for DOS version 2.04g then this value will be zero. Otherwise the value + will be non-zero and identify the host system on which the attributes are compatible. + + + + The values for this as defined in the Zip File format and by others are shown below. The values are somewhat + misleading in some cases as they are not all used as shown. You should consult the relevant documentation + to obtain up to date and correct information. The modified appnote by the infozip group is + particularly helpful as it documents a lot of peculiarities. The document is however a little dated. + + 0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems) + 1 - Amiga + 2 - OpenVMS + 3 - Unix + 4 - VM/CMS + 5 - Atari ST + 6 - OS/2 HPFS + 7 - Macintosh + 8 - Z-System + 9 - CP/M + 10 - Windows NTFS + 11 - MVS (OS/390 - Z/OS) + 12 - VSE + 13 - Acorn Risc + 14 - VFAT + 15 - Alternate MVS + 16 - BeOS + 17 - Tandem + 18 - OS/400 + 19 - OS/X (Darwin) + 99 - WinZip AES + remainder - unused + + + + + + Get minimum Zip feature version required to extract this entry + + + Minimum features are defined as:
+ 1.0 - Default value
+ 1.1 - File is a volume label
+ 2.0 - File is a folder/directory
+ 2.0 - File is compressed using Deflate compression
+ 2.0 - File is encrypted using traditional encryption
+ 2.1 - File is compressed using Deflate64
+ 2.5 - File is compressed using PKWARE DCL Implode
+ 2.7 - File is a patch data set
+ 4.5 - File uses Zip64 format extensions
+ 4.6 - File is compressed using BZIP2 compression
+ 5.0 - File is encrypted using DES
+ 5.0 - File is encrypted using 3DES
+ 5.0 - File is encrypted using original RC2 encryption
+ 5.0 - File is encrypted using RC4 encryption
+ 5.1 - File is encrypted using AES encryption
+ 5.1 - File is encrypted using corrected RC2 encryption
+ 5.1 - File is encrypted using corrected RC2-64 encryption
+ 6.1 - File is encrypted using non-OAEP key wrapping
+ 6.2 - Central directory encryption (not confirmed yet)
+ 6.3 - File is compressed using LZMA
+ 6.3 - File is compressed using PPMD+
+ 6.3 - File is encrypted using Blowfish
+ 6.3 - File is encrypted using Twofish
+
+ +
+ + + Get a value indicating whether this entry can be decompressed by the library. + + This is based on the and + wether the compression method is supported. + + + + Force this entry to be recorded using Zip64 extensions. + + + + + Get a value indicating wether Zip64 extensions were forced. + + A value of true if Zip64 extensions have been forced on; false if not. + + + + Gets a value indicating if the entry requires Zip64 extensions + to store the full entry values. + + A value of true if a local header requires Zip64 extensions; false if not. + + + + Get a value indicating wether the central directory entry requires Zip64 extensions to be stored. + + + + + Get/Set DosTime value. + + + The MS-DOS date format can only represent dates between 1/1/1980 and 12/31/2107. + + + + + Gets/Sets the time of last modification of the entry. + + + The property is updated to match this as far as possible. + + + + + Returns the entry name. + + + The unix naming convention is followed. + Path components in the entry should always separated by forward slashes ('/'). + Dos device names like C: should also be removed. + See the class, or + + + + + Gets/Sets the size of the uncompressed data. + + + The size or -1 if unknown. + + Setting the size before adding an entry to an archive can help + avoid compatability problems with some archivers which dont understand Zip64 extensions. + + + + Gets/Sets the size of the compressed data. + + + The compressed entry size or -1 if unknown. + + + + + Gets/Sets the crc of the uncompressed data. + + + Crc is not in the range 0..0xffffffffL + + + The crc value or -1 if unknown. + + + + + Gets/Sets the compression method. Only Deflated and Stored are supported. + + + The compression method for this entry + + + + + + + Gets the compression method for outputting to the local or central header. + Returns same value as CompressionMethod except when AES encrypting, which + places 99 in the method and places the real method in the extra data. + + + + + Gets/Sets the extra data. + + + Extra data is longer than 64KB (0xffff) bytes. + + + Extra data or null if not set. + + + + + For AES encrypted files returns or sets the number of bits of encryption (128, 192 or 256). + When setting, only 0 (off), 128 or 256 is supported. + + + + + AES Encryption strength for storage in extra data in entry header. + 1 is 128 bit, 2 is 192 bit, 3 is 256 bit. + + + + + Returns the length of the salt, in bytes + + + + + Number of extra bytes required to hold the AES Header fields (Salt, Pwd verify, AuthCode) + + + + + Process extra data fields updating the entry based on the contents. + + True if the extra data fields should be handled + for a local header, rather than for a central header. + + + + + Gets/Sets the entry comment. + + + If comment is longer than 0xffff. + + + The comment or null if not set. + + + A comment is only available for entries when read via the class. + The class doesnt have the comment data available. + + + + + Gets a value indicating if the entry is a directory. + however. + + + A directory is determined by an entry name with a trailing slash '/'. + The external file attributes can also indicate an entry is for a directory. + Currently only dos/windows attributes are tested in this manner. + The trailing slash convention should always be followed. + + + + + Get a value of true if the entry appears to be a file; false otherwise + + + This only takes account of DOS/Windows attributes. Other operating systems are ignored. + For linux and others the result may be incorrect. + + + + + Test entry to see if data can be extracted. + + Returns true if data can be extracted for this entry; false otherwise. + + + + Creates a copy of this zip entry. + + An that is a copy of the current instance. + + + + Gets a string representation of this ZipEntry. + + A readable textual representation of this + + + + Test a compression method to see if this library + supports extracting data compressed with that method + + The compression method to test. + Returns true if the compression method is supported; false otherwise + + + + Cleans a name making it conform to Zip file conventions. + Devices names ('c:\') and UNC share names ('\\server\share') are removed + and forward slashes ('\') are converted to back slashes ('/'). + Names are made relative by trimming leading slashes which is compatible + with the ZIP naming convention. + + The name to clean + The 'cleaned' name. + + The Zip name transform class is more flexible. + + + + + Basic implementation of + + + + + Defines the possible values to be used for the . + + + + + Use the recorded LastWriteTime value for the file. + + + + + Use the recorded LastWriteTimeUtc value for the file + + + + + Use the recorded CreateTime value for the file. + + + + + Use the recorded CreateTimeUtc value for the file. + + + + + Use the recorded LastAccessTime value for the file. + + + + + Use the recorded LastAccessTimeUtc value for the file. + + + + + Use a fixed value. + + The actual value used can be + specified via the constructor or + using the with the setting set + to which will use the when this class was constructed. + The property can also be used to set this value. + + + + Initialise a new instance of the class. + + A default , and the LastWriteTime for files is used. + + + + Initialise a new instance of using the specified + + The time setting to use when creating Zip entries. + + + + Initialise a new instance of using the specified + + The time to set all values to. + + + + Get / set the to be used when creating new values. + + + Setting this property to null will cause a default name transform to be used. + + + + + Get / set the in use. + + + + + Get / set the value to use when is set to + + + + + A bitmask defining the attributes to be retrieved from the actual file. + + The default is to get all possible attributes from the actual file. + + + + A bitmask defining which attributes are to be set on. + + By default no attributes are set on. + + + + Get set a value indicating wether unidoce text should be set on. + + + + + Make a new for a file. + + The name of the file to create a new entry for. + Returns a new based on the . + + + + Make a new for a file. + + The name of the file to create a new entry for. + If true entry detail is retrieved from the file system if the file exists. + Returns a new based on the . + + + + Make a new from a name. + + The name of the file to create a new entry for. + An alternative name to be used for the new entry. Null if not applicable. + If true entry detail is retrieved from the file system if the file exists. + Returns a new based on the . + + + + Make a new for a directory. + + The raw untransformed name for the new directory + Returns a new representing a directory. + + + + Make a new for a directory. + + The raw untransformed name for the new directory + If true entry detail is retrieved from the file system if the file exists. + Returns a new representing a directory. + + + + ZipException represents exceptions specific to Zip classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + ExtraData tagged value interface. + + + + + Get the ID for this tagged data value. + + + + + Set the contents of this instance from the data passed. + + The data to extract contents from. + The offset to begin extracting data from. + The number of bytes to extract. + + + + Get the data representing this instance. + + Returns the data for this instance. + + + + A raw binary tagged value + + + + + Initialise a new instance. + + The tag ID. + + + + Get the ID for this tagged data value. + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Get /set the binary data representing this instance. + + The raw binary data representing this instance. + + + + The tag ID for this instance. + + + + + Class representing extended unix date time values. + + + + + Flags indicate which values are included in this instance. + + + + + The modification time is included + + + + + The access time is included + + + + + The create time is included. + + + + + Get the ID + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Test a value to see if is valid and can be represented here. + + The value to test. + Returns true if the value is valid and can be represented; false if not. + The standard Unix time is a signed integer data type, directly encoding the Unix time number, + which is the number of seconds since 1970-01-01. + Being 32 bits means the values here cover a range of about 136 years. + The minimum representable time is 1901-12-13 20:45:52, + and the maximum representable time is 2038-01-19 03:14:07. + + + + + Get /set the Modification Time + + + + + + + Get / set the Access Time + + + + + + + Get / Set the Create Time + + + + + + + Get/set the values to include. + + + + + Class handling NT date time values. + + + + + Get the ID for this tagged data value. + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Test a valuie to see if is valid and can be represented here. + + The value to test. + Returns true if the value is valid and can be represented; false if not. + + NTFS filetimes are 64-bit unsigned integers, stored in Intel + (least significant byte first) byte order. They determine the + number of 1.0E-07 seconds (1/10th microseconds!) past WinNT "epoch", + which is "01-Jan-1601 00:00:00 UTC". 28 May 60056 is the upper limit + + + + + Get/set the last modification time. + + + + + Get /set the create time + + + + + Get /set the last access time. + + + + + A factory that creates tagged data instances. + + + + + Get data for a specific tag value. + + The tag ID to find. + The data to search. + The offset to begin extracting data from. + The number of bytes to extract. + The located value found, or null if not found. + + + + + A class to handle the extra data field for Zip entries + + + Extra data contains 0 or more values each prefixed by a header tag and length. + They contain zero or more bytes of actual data. + The data is held internally using a copy on write strategy. This is more efficient but + means that for extra data created by passing in data can have the values modified by the caller + in some circumstances. + + + + + Initialise a default instance. + + + + + Initialise with known extra data. + + The extra data. + + + + Get the raw extra data value + + Returns the raw byte[] extra data this instance represents. + + + + Clear the stored data. + + + + + Gets the current extra data length. + + + + + Get a read-only for the associated tag. + + The tag to locate data for. + Returns a containing tag data or null if no tag was found. + + + + Get the tagged data for a tag. + + The tag to search for. + Returns a tagged value or null if none found. + + + + Get the length of the last value found by + + This is only valid if has previously returned true. + + + + Get the index for the current read value. + + This is only valid if has previously returned true. + Initially the result will be the index of the first byte of actual data. The value is updated after calls to + , and . + + + + Get the number of bytes remaining to be read for the current value; + + + + + Find an extra data value + + The identifier for the value to find. + Returns true if the value was found; false otherwise. + + + + Add a new entry to extra data. + + The value to add. + + + + Add a new entry to extra data + + The ID for this entry. + The data to add. + If the ID already exists its contents are replaced. + + + + Start adding a new entry. + + Add data using , , , or . + The new entry is completed and actually added by calling + + + + + Add entry data added since using the ID passed. + + The identifier to use for this entry. + + + + Add a byte of data to the pending new entry. + + The byte to add. + + + + + Add data to a pending new entry. + + The data to add. + + + + + Add a short value in little endian order to the pending new entry. + + The data to add. + + + + + Add an integer value in little endian order to the pending new entry. + + The data to add. + + + + + Add a long value in little endian order to the pending new entry. + + The data to add. + + + + + Delete an extra data field. + + The identifier of the field to delete. + Returns true if the field was found and deleted. + + + + Read a long in little endian form from the last found data value + + Returns the long value read. + + + + Read an integer in little endian form from the last found data value. + + Returns the integer read. + + + + Read a short value in little endian form from the last found data value. + + Returns the short value read. + + + + Read a byte from an extra data + + The byte value read or -1 if the end of data has been reached. + + + + Skip data during reading. + + The number of bytes to skip. + + + + Internal form of that reads data at any location. + + Returns the short value read. + + + + Dispose of this instance. + + + + + Arguments used with KeysRequiredEvent + + + + + Initialise a new instance of + + The name of the file for which keys are required. + + + + Initialise a new instance of + + The name of the file for which keys are required. + The current key value. + + + + Gets the name of the file for which keys are required. + + + + + Gets or sets the key value + + + + + The strategy to apply to testing. + + + + + Find the first error only. + + + + + Find all possible errors. + + + + + The operation in progress reported by a during testing. + + TestArchive + + + + Setting up testing. + + + + + Testing an individual entries header + + + + + Testing an individual entries data + + + + + Testing an individual entry has completed. + + + + + Running miscellaneous tests + + + + + Testing is complete + + + + + Status returned returned by during testing. + + TestArchive + + + + Initialise a new instance of + + The this status applies to. + + + + Get the current in progress. + + + + + Get the this status is applicable to. + + + + + Get the current/last entry tested. + + + + + Get the number of errors detected so far. + + + + + Get the number of bytes tested so far for the current entry. + + + + + Get a value indicating wether the last entry test was valid. + + + + + Delegate invoked during testing if supplied indicating current progress and status. + + If the message is non-null an error has occured. If the message is null + the operation as found in status has started. + + + + The possible ways of applying updates to an archive. + + + + + Perform all updates on temporary files ensuring that the original file is saved. + + + + + Update the archive directly, which is faster but less safe. + + + + + This class represents a Zip archive. You can ask for the contained + entries, or get an input stream for a file entry. The entry is + automatically decompressed. + + You can also update the archive adding or deleting entries. + + This class is thread safe for input: You can open input streams for arbitrary + entries in different threads. +
+
Author of the original java version : Jochen Hoenicke +
+ + + using System; + using System.Text; + using System.Collections; + using System.IO; + + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + static public void Main(string[] args) + { + using (ZipFile zFile = new ZipFile(args[0])) { + Console.WriteLine("Listing of : " + zFile.Name); + Console.WriteLine(""); + Console.WriteLine("Raw Size Size Date Time Name"); + Console.WriteLine("-------- -------- -------- ------ ---------"); + foreach (ZipEntry e in zFile) { + if ( e.IsFile ) { + DateTime d = e.DateTime; + Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize, + d.ToString("dd-MM-yy"), d.ToString("HH:mm"), + e.Name); + } + } + } + } + } + + +
+ + + Delegate for handling keys/password setting during compresion/decompression. + + + + + Event handler for handling encryption keys. + + + + + Handles getting of encryption keys when required. + + The file for which encryption keys are required. + + + + Get/set the encryption key value. + + + + + Password to be used for encrypting/decrypting files. + + Set to null if no password is required. + + + + Get a value indicating wether encryption keys are currently available. + + + + + Opens a Zip file with the given name for reading. + + The name of the file to open. + The argument supplied is null. + + An i/o error occurs + + + The file doesn't contain a valid zip archive. + + + + + Opens a Zip file reading the given . + + The to read archive data from. + The supplied argument is null. + + An i/o error occurs. + + + The file doesn't contain a valid zip archive. + + + + + Opens a Zip file reading the given . + + The to read archive data from. + + An i/o error occurs + + + The stream doesn't contain a valid zip archive.
+
+ + The stream doesnt support seeking. + + + The stream argument is null. + +
+ + + Initialises a default instance with no entries and no file storage. + + + + + Finalize this instance. + + + + + Closes the ZipFile. If the stream is owned then this also closes the underlying input stream. + Once closed, no further instance methods should be called. + + + An i/o error occurs. + + + + + Create a new whose data will be stored in a file. + + The name of the archive to create. + Returns the newly created + is null + + + + Create a new whose data will be stored on a stream. + + The stream providing data storage. + Returns the newly created + is null + doesnt support writing. + + + + Get/set a flag indicating if the underlying stream is owned by the ZipFile instance. + If the flag is true then the stream will be closed when Close is called. + + + The default value is true in all cases. + + + + + Get a value indicating wether + this archive is embedded in another file or not. + + + + + Get a value indicating that this archive is a new one. + + + + + Gets the comment for the zip file. + + + + + Gets the name of this zip file. + + + + + Gets the number of entries in this zip file. + + + The Zip file has been closed. + + + + + Get the number of entries contained in this . + + + + + Indexer property for ZipEntries + + + + + Gets an enumerator for the Zip entries in this Zip file. + + Returns an for this archive. + + The Zip file has been closed. + + + + + Return the index of the entry with a matching name + + Entry name to find + If true the comparison is case insensitive + The index position of the matching entry or -1 if not found + + The Zip file has been closed. + + + + + Searches for a zip entry in this archive with the given name. + String comparisons are case insensitive + + + The name to find. May contain directory components separated by slashes ('/'). + + + A clone of the zip entry, or null if no entry with that name exists. + + + The Zip file has been closed. + + + + + Gets an input stream for reading the given zip entry data in an uncompressed form. + Normally the should be an entry returned by GetEntry(). + + The to obtain a data for + An input containing data for this + + The ZipFile has already been closed + + + The compression method for the entry is unknown + + + The entry is not found in the ZipFile + + + + + Creates an input stream reading a zip entry + + The index of the entry to obtain an input stream for. + + An input containing data for this + + + The ZipFile has already been closed + + + The compression method for the entry is unknown + + + The entry is not found in the ZipFile + + + + + Test an archive for integrity/validity + + Perform low level data Crc check + true if all tests pass, false otherwise + Testing will terminate on the first error found. + + + + Test an archive for integrity/validity + + Perform low level data Crc check + The to apply. + The handler to call during testing. + true if all tests pass, false otherwise + The object has already been closed. + + + + Test a local header against that provided from the central directory + + + The entry to test against + + The type of tests to carry out. + The offset of the entries data in the file + + + + The kind of update to apply. + + + + + Get / set the to apply to names when updating. + + + + + Get/set the used to generate values + during updates. + + + + + Get /set the buffer size to be used when updating this zip file. + + + + + Get a value indicating an update has been started. + + + + + Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + + + + + Begin updating this archive. + + The archive storage for use during the update. + The data source to utilise during updating. + ZipFile has been closed. + One of the arguments provided is null + ZipFile has been closed. + + + + Begin updating to this archive. + + The storage to use during the update. + + + + Begin updating this archive. + + + + + + + + Commit current updates, updating this archive. + + + + ZipFile has been closed. + + + + Abort updating leaving the archive unchanged. + + + + + + + Set the file comment to be recorded when the current update is commited. + + The comment to record. + ZipFile has been closed. + + + + Add a new entry to the archive. + + The name of the file to add. + The compression method to use. + Ensure Unicode text is used for name and comment for this entry. + Argument supplied is null. + ZipFile has been closed. + Compression method is not supported. + + + + Add a new entry to the archive. + + The name of the file to add. + The compression method to use. + ZipFile has been closed. + The compression method is not supported. + + + + Add a file to the archive. + + The name of the file to add. + Argument supplied is null. + + + + Add a file to the archive. + + The name of the file to add. + The name to use for the on the Zip file created. + Argument supplied is null. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + The compression method to use. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + The compression method to use. + Ensure Unicode text is used for name and comments for this entry. + + + + Add a that contains no data. + + The entry to add. + This can be used to add directories, volume labels, or empty file entries. + + + + Add a directory entry to the archive. + + The directory to add. + + + + Delete an entry by name + + The filename to delete + True if the entry was found and deleted; false otherwise. + + + + Delete a from the archive. + + The entry to delete. + + + + Write an unsigned short in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Write an unsigned int in little endian byte order. + + + + + Write a long in little endian byte order. + + + + + Get a raw memory buffer. + + Returns a raw memory buffer. + + + + Get the size of the source descriptor for a . + + The update to get the size for. + The descriptor size, zero if there isnt one. + + + + Get an output stream for the specified + + The entry to get an output stream for. + The output stream obtained for the entry. + + + + Class used to sort updates. + + + + + Compares two objects and returns a value indicating whether one is + less than, equal to or greater than the other. + + First object to compare + Second object to compare. + Compare result. + + + + Represents a pending update to a Zip file. + + + + + Copy an existing entry. + + The existing entry to copy. + + + + Get the for this update. + + This is the source or original entry. + + + + Get the that will be written to the updated/new file. + + + + + Get the command for this update. + + + + + Get the filename if any for this update. Null if none exists. + + + + + Get/set the location of the size patch for this update. + + + + + Get /set the location of the crc patch for this update. + + + + + Get/set the size calculated by offset. + Specifically, the difference between this and next entry's starting offset. + + + + + Releases the unmanaged resources used by the this instance and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Read an unsigned short in little endian byte order. + + Returns the value read. + + The stream ends prematurely + + + + + Read a uint in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Search for and read the central directory of a zip file filling the entries array. + + + An i/o error occurs. + + + The central directory is malformed or cannot be found + + + + + Locate the data for a given entry. + + + The start offset of the data. + + + The stream ends prematurely + + + The local header signature is invalid, the entry and central header file name lengths are different + or the local and entry compression methods dont match + + + + + Represents a string from a which is stored as an array of bytes. + + + + + Initialise a with a string. + + The textual string form. + + + + Initialise a using a string in its binary 'raw' form. + + + + + + Get a value indicating the original source of data for this instance. + True if the source was a string; false if the source was binary data. + + + + + Get the length of the comment when represented as raw bytes. + + + + + Get the comment in its 'raw' form as plain bytes. + + + + + Reset the comment to its initial state. + + + + + Implicit conversion of comment to a string. + + The to convert to a string. + The textual equivalent for the input value. + + + + An enumerator for Zip entries + + + + + An is a stream that you can write uncompressed data + to and flush, but cannot read, seek or do anything else to. + + + + + Gets a value indicating whether the current stream supports reading. + + + + + Write any buffered data to underlying storage. + + + + + Gets a value indicating whether the current stream supports writing. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Get the length in bytes of the stream. + + + + + Gets or sets the position within the current stream. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + The sum of offset and count is larger than the buffer length. + Methods were called after the stream was closed. + The stream does not support reading. + buffer is null. + An I/O error occurs. + offset or count is negative. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type indicating the reference point used to obtain the new position. + + The new position within the current stream. + + An I/O error occurs. + The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + Methods were called after the stream was closed. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + An I/O error occurs. + Methods were called after the stream was closed. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + An I/O error occurs. + The stream does not support writing. + Methods were called after the stream was closed. + buffer is null. + The sum of offset and count is greater than the buffer length. + offset or count is negative. + + + + A is an + whose data is only a part or subsection of a file. + + + + + Initialise a new instance of the class. + + The containing the underlying stream to use for IO. + The start of the partial data. + The length of the partial data. + + + + Read a byte from this stream. + + Returns the byte read or -1 on end of stream. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + The sum of offset and count is larger than the buffer length. + Methods were called after the stream was closed. + The stream does not support reading. + buffer is null. + An I/O error occurs. + offset or count is negative. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + An I/O error occurs. + The stream does not support writing. + Methods were called after the stream was closed. + buffer is null. + The sum of offset and count is greater than the buffer length. + offset or count is negative. + + + + When overridden in a derived class, sets the length of the current stream. + + The desired length of the current stream in bytes. + The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + An I/O error occurs. + Methods were called after the stream was closed. + + + + When overridden in a derived class, sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type indicating the reference point used to obtain the new position. + + The new position within the current stream. + + An I/O error occurs. + The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + Methods were called after the stream was closed. + + + + Clears all buffers for this stream and causes any buffered data to be written to the underlying device. + + An I/O error occurs. + + + + Gets or sets the position within the current stream. + + + The current position within the stream. + An I/O error occurs. + The stream does not support seeking. + Methods were called after the stream was closed. + + + + Gets the length in bytes of the stream. + + + A long value representing the length of the stream in bytes. + A class derived from Stream does not support seeking. + Methods were called after the stream was closed. + + + + Gets a value indicating whether the current stream supports writing. + + false + true if the stream supports writing; otherwise, false. + + + + Gets a value indicating whether the current stream supports seeking. + + true + true if the stream supports seeking; otherwise, false. + + + + Gets a value indicating whether the current stream supports reading. + + true. + true if the stream supports reading; otherwise, false. + + + + Gets a value that determines whether the current stream can time out. + + + A value that determines whether the current stream can time out. + + + + Provides a static way to obtain a source of data for an entry. + + + + + Get a source of data by creating a new stream. + + Returns a to use for compression input. + Ideally a new stream is created and opened to achieve this, to avoid locking problems. + + + + Represents a source of data that can dynamically provide + multiple data sources based on the parameters passed. + + + + + Get a data source. + + The to get a source for. + The name for data if known. + Returns a to use for compression input. + Ideally a new stream is created and opened to achieve this, to avoid locking problems. + + + + Default implementation of a for use with files stored on disk. + + + + + Initialise a new instnace of + + The name of the file to obtain data from. + + + + Get a providing data. + + Returns a provising data. + + + + Default implementation of for files stored on disk. + + + + + Get a providing data for an entry. + + The entry to provide data for. + The file name for data if known. + Returns a stream providing data; or null if not available + + + + Defines facilities for data storage when updating Zip Archives. + + + + + Get the to apply during updates. + + + + + Get an empty that can be used for temporary output. + + Returns a temporary output + + + + + Convert a temporary output stream to a final stream. + + The resulting final + + + + + Make a temporary copy of the original stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The current stream. + Returns a stream suitable for direct updating. + This may be the current stream passed. + + + + Dispose of this instance. + + + + + An abstract suitable for extension by inheritance. + + + + + Initializes a new instance of the class. + + The update mode. + + + + Gets a temporary output + + Returns the temporary output stream. + + + + + Converts the temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + + Make a temporary copy of a . + + The to make a copy of. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The to open for direct update. + Returns a stream suitable for direct updating. + + + + Disposes this instance. + + + + + Gets the update mode applicable. + + The update mode. + + + + An implementation suitable for hard disks. + + + + + Initializes a new instance of the class. + + The file. + The update mode. + + + + Initializes a new instance of the class. + + The file. + + + + Gets a temporary output for performing updates on. + + Returns the temporary output stream. + + + + Converts a temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + Make a temporary copy of a stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The current stream. + Returns a stream suitable for direct updating. + If the is not null this is used as is. + + + + Disposes this instance. + + + + + An implementation suitable for in memory streams. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The to use + This constructor is for testing as memory streams dont really require safe mode. + + + + Get the stream returned by if this was in fact called. + + + + + Gets the temporary output + + Returns the temporary output stream. + + + + Converts the temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + Make a temporary copy of the original stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The original source stream + Returns a stream suitable for direct updating. + If the passed is not null this is used; + otherwise a new is returned. + + + + Disposes this instance. + + + + + Holds data pertinent to a data descriptor. + + + + + Get /set the compressed size of data. + + + + + Get / set the uncompressed size of data + + + + + Get /set the crc value. + + + + + This class assists with writing/reading from Zip files. + + + + + Initialise an instance of this class. + + The name of the file to open. + + + + Initialise a new instance of . + + The stream to use. + + + + Get / set a value indicating wether the the underlying stream is owned or not. + + If the stream is owned it is closed when this instance is closed. + + + + Close the stream. + + + The underlying stream is closed only if is true. + + + + + Locates a block with the desired . + + The signature to find. + Location, marking the end of block. + Minimum size of the block. + The maximum variable data. + Eeturns the offset of the first byte after the signature; -1 if not found + + + + Write Zip64 end of central directory records (File header and locator). + + The number of entries in the central directory. + The size of entries in the central directory. + The offset of the dentral directory. + + + + Write the required records to end the central directory. + + The number of entries in the directory. + The size of the entries in the directory. + The start of the central directory. + The archive comment. (This can be null). + + + + Read an unsigned short in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Read an int in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Read a long in little endian byte order. + + The value read. + + + + Write an unsigned short in little endian byte order. + + The value to write. + + + + Write a ushort in little endian byte order. + + The value to write. + + + + Write an int in little endian byte order. + + The value to write. + + + + Write a uint in little endian byte order. + + The value to write. + + + + Write a long in little endian byte order. + + The value to write. + + + + Write a ulong in little endian byte order. + + The value to write. + + + + Write a data descriptor. + + The entry to write a descriptor for. + Returns the number of descriptor bytes written. + + + + Read data descriptor at the end of compressed data. + + if set to true [zip64]. + The data to fill in. + Returns the number of bytes read in the descriptor. + + + + This is an InflaterInputStream that reads the files baseInputStream an zip archive + one after another. It has a special method to get the zip entry of + the next file. The zip entry contains information about the file name + size, compressed size, Crc, etc. + It includes support for Stored and Deflated entries. +
+
Author of the original java version : Jochen Hoenicke +
+ + This sample shows how to read a zip file + + using System; + using System.Text; + using System.IO; + + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + public static void Main(string[] args) + { + using ( ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) { + + ZipEntry theEntry; + const int size = 2048; + byte[] data = new byte[2048]; + + while ((theEntry = s.GetNextEntry()) != null) { + if ( entry.IsFile ) { + Console.Write("Show contents (y/n) ?"); + if (Console.ReadLine() == "y") { + while (true) { + size = s.Read(data, 0, data.Length); + if (size > 0) { + Console.Write(new ASCIIEncoding().GetString(data, 0, size)); + } else { + break; + } + } + } + } + } + } + } + } + + +
+ + + Delegate for reading bytes from a stream. + + + + + The current reader this instance. + + + + + Creates a new Zip input stream, for reading a zip archive. + + The underlying providing data. + + + + Creates a new Zip input stream, for reading a zip archive. + + The underlying providing data. + Size of the buffer. + + + + Optional password used for encryption when non-null + + A password for all encrypted entries in this + + + + Gets a value indicating if there is a current entry and it can be decompressed + + + The entry can only be decompressed if the library supports the zip features required to extract it. + See the ZipEntry Version property for more details. + + + + + Advances to the next entry in the archive + + + The next entry in the archive or null if there are no more entries. + + + If the previous entry is still open CloseEntry is called. + + + Input stream is closed + + + Password is not set, password is invalid, compression method is invalid, + version required to extract is not supported + + + + + Read data descriptor at the end of compressed data. + + + + + Complete cleanup as the final part of closing. + + True if the crc value should be tested + + + + Closes the current zip entry and moves to the next one. + + + The stream is closed + + + The Zip stream ends early + + + + + Returns 1 if there is an entry available + Otherwise returns 0. + + + + + Returns the current size that can be read from the current entry if available + + Thrown if the entry size is not known. + Thrown if no entry is currently available. + + + + Reads a byte from the current zip entry. + + + The byte or -1 if end of stream is reached. + + + + + Handle attempts to read by throwing an . + + The destination array to store data in. + The offset at which data read should be stored. + The maximum number of bytes to read. + Returns the number of bytes actually read. + + + + Handle attempts to read from this entry by throwing an exception + + + + + Perform the initial read on an entry which may include + reading encryption headers and setting up inflation. + + The destination to fill with data read. + The offset to start reading at. + The maximum number of bytes to read. + The actual number of bytes read. + + + + Read a block of bytes from the stream. + + The destination for the bytes. + The index to start storing data. + The number of bytes to attempt to read. + Returns the number of bytes read. + Zero bytes read means end of stream. + + + + Reads a block of bytes from the current zip entry. + + + The number of bytes read (this may be less than the length requested, even before the end of stream), or 0 on end of stream. + + + An i/o error occured. + + + The deflated stream is corrupted. + + + The stream is not open. + + + + + Closes the zip input stream + + + + + ZipNameTransform transforms names as per the Zip file naming convention. + + The use of absolute names is supported although its use is not valid + according to Zip naming conventions, and should not be used if maximum compatability is desired. + + + + Initialize a new instance of + + + + + Initialize a new instance of + + The string to trim from the front of paths if found. + + + + Static constructor. + + + + + Transform a windows directory name according to the Zip file naming conventions. + + The directory name to transform. + The transformed name. + + + + Transform a windows file name according to the Zip file naming conventions. + + The file name to transform. + The transformed name. + + + + Get/set the path prefix to be trimmed from paths if present. + + The prefix is trimmed before any conversion from + a windows path is done. + + + + Force a name to be valid by replacing invalid characters with a fixed value + + The name to force valid + The replacement character to use. + Returns a valid name + + + + Test a name to see if it is a valid name for a zip entry. + + The name to test. + If true checking is relaxed about windows file names and absolute paths. + Returns true if the name is a valid zip name; false otherwise. + Zip path names are actually in Unix format, and should only contain relative paths. + This means that any path stored should not contain a drive or + device letter, or a leading slash. All slashes should forward slashes '/'. + An empty name is valid for a file where the input comes from standard input. + A null name is not considered valid. + + + + + Test a name to see if it is a valid name for a zip entry. + + The name to test. + Returns true if the name is a valid zip name; false otherwise. + Zip path names are actually in unix format, + and should only contain relative paths if a path is present. + This means that the path stored should not contain a drive or + device letter, or a leading slash. All slashes should forward slashes '/'. + An empty name is valid where the input comes from standard input. + A null name is not considered valid. + + + + + This is a DeflaterOutputStream that writes the files into a zip + archive one after another. It has a special method to start a new + zip entry. The zip entries contains information about the file name + size, compressed size, CRC, etc. + + It includes support for Stored and Deflated entries. + This class is not thread safe. +
+
Author of the original java version : Jochen Hoenicke +
+ This sample shows how to create a zip file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + public static void Main(string[] args) + { + string[] filenames = Directory.GetFiles(args[0]); + byte[] buffer = new byte[4096]; + + using ( ZipOutputStream s = new ZipOutputStream(File.Create(args[1])) ) { + + s.SetLevel(9); // 0 - store only to 9 - means best compression + + foreach (string file in filenames) { + ZipEntry entry = new ZipEntry(file); + s.PutNextEntry(entry); + + using (FileStream fs = File.OpenRead(file)) { + StreamUtils.Copy(fs, s, buffer); + } + } + } + } + } + + +
+ + + Creates a new Zip output stream, writing a zip archive. + + + The output stream to which the archive contents are written. + + + + + Creates a new Zip output stream, writing a zip archive. + + The output stream to which the archive contents are written. + Size of the buffer to use. + + + + Gets a flag value of true if the central header has been added for this archive; false if it has not been added. + + No further entries can be added once this has been done. + + + + Set the zip file comment. + + + The comment text for the entire archive. + + + The converted comment is longer than 0xffff bytes. + + + + + Sets the compression level. The new level will be activated + immediately. + + The new compression level (1 to 9). + + Level specified is not supported. + + + + + + Get the current deflater compression level + + The current compression level + + + + Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + + Older archivers may not understand Zip64 extensions. + If backwards compatability is an issue be careful when adding entries to an archive. + Setting this property to off is workable but less desirable as in those circumstances adding a file + larger then 4GB will fail. + + + + Write an unsigned short in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Starts a new Zip entry. It automatically closes the previous + entry if present. + All entry elements bar name are optional, but must be correct if present. + If the compression method is stored and the output is not patchable + the compression for that entry is automatically changed to deflate level 0 + + + the entry. + + + if entry passed is null. + + + if an I/O error occured. + + + if stream was finished + + + Too many entries in the Zip file
+ Entry name is too long
+ Finish has already been called
+
+
+ + + Closes the current entry, updating header and footer information as required + + + An I/O error occurs. + + + No entry is active. + + + + + Writes the given buffer to the current entry. + + The buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Archive size is invalid + No entry is active. + + + + Finishes the stream. This will write the central directory at the + end of the zip file and flush the stream. + + + This is automatically called when the stream is closed. + + + An I/O error occurs. + + + Comment exceeds the maximum length
+ Entry name exceeds the maximum length +
+
+ + + The entries for the archive. + + + + + Used to track the crc of data added to entries. + + + + + The current entry being added. + + + + + Used to track the size of data for an entry during writing. + + + + + Offset to be recorded for each entry in the central header. + + + + + Comment for the entire archive recorded in central header. + + + + + Flag indicating that header patching is required for the current entry. + + + + + Position to patch crc + + + + + Position to patch size. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Interface.json b/采集器3.5框架封装包2023-10-26/终端/Debug/Interface.json new file mode 100644 index 0000000..5f910d5 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/Interface.json @@ -0,0 +1,163 @@ +[ + { + "Name": "获取单条队列任务", + "Type": 1, + "Url": "http://172.16.105.42:9296/api/noviewtask/GetTask?collectid={0}", + "ParametersName": [ "collectid" ] + }, + { + "Name": "获取队列任务数量", + "Type": 1, + "Url": "http://172.16.7.35:9296/api/noviewtask/GetTaskTotal", + "ParametersName": [ "collectid" ] + }, + { + "Name": "上传采集成果", + "Url": "http://172.16.7.35:9291/api/downplatform/report", + "ParametersName": [ + "data" + ] + }, + { + "Name": "上传患者基础数据", + "Url": "http://172.16.7.35:9283/api/basic/report", + "ParametersName": [] + }, + { + "Name": "上传采集器心跳数据", + "Url": "http://172.16.7.35:9111/inspection/collector/setCollectors", + "ParametersName": [ "collectors", "urlMap" ] + }, + { + "Name": "上传虚拟机心跳数据", + "Url": "http://172.16.7.35:9111/inspection/virtual/setVirtual", + "ParametersName": [ + "cpuUtilization", + "memoryAllowance", + "memoryTotal", + "uplinkRate", + "descendingRate", + "url", + "ip", + "disks" + ] + }, + { + "Name": "任务作废", + "Url": "http://172.16.7.35:9291/api/down/CancelTask", + "ParametersName": [ "taskid" ] + }, + { + "Name": "上传服务器日志", + "Url": "http://172.16.7.35:9106/file/afCollectTask/taskException", + "ParametersName": [ + "level", + "description", + "exceptionInfo", + "createTime", + "screenBase64", + "taskId", + "beginTime", + "endTime", + "takeUpTime" + ] + }, + { + "Name": "上报任务完成", + "Url": "http://172.16.7.35:9106/file/afCollectTask/taskUpdate", + "ParametersName": [ + "taskId", + "startTime", + "endTime", + "consumingTime" + ] + }, + { + "Name": "OCR识别", + "Url": "http://127.0.0.1:8090/filepath", + "ParametersName": [ + "path", + "type" + ] + }, + { + "Name": "日志记录", + "Url": "http://192.168.200.89:9106/file/afCollectTask/taskException", + "ParametersName": [ + "level", + "description", + "exceptionInfo", + "createTime", + "screenBase64", + "taskId" + ] + }, + { + "Name": "获取部署情况", + "ParametersName": [] + }, + { + "Name": "终端上报部署情况", + "ParametersName": [ "deployPackInfo" ] + }, + { + "Name": "新增&更新部署文件", + "ParametersName": [ "cType", "fName", "fContentB64" ] + }, + { + "Name": "删除部署文件", + "ParametersName": [ "cType", "fName" ] + }, + { + "Name": "请求部署", + "ParametersName": [ "cType", "iTerminal" ] + }, + { + "Name": "发起部署", + "ParametersName": [ "cType", "packB64" ] + }, + { + "Name": "启动采集器", + "Url": "", + "ParametersName": [ "iTerminal", "spyKey" ] + }, + { + "Name": "停止采集器", + "ParametersName": [ "iTerminal", "spyKey" ] + }, + { + "Name": "写入配置", + "ParametersName": [ "type", "tName", "name", "value" ] + }, + { + "Name": "获取采集器配置", + "ParametersName": [] + }, + { + "Name": "下发任务", + "ParametersName": [ "cType", "taskData" ] + }, + { + "Name": "终端报告空闲", + "ParametersName": [ "recentCollected" ] + }, + { + "Name": "采集器报告空闲", + "ParametersName": [] + }, + { + "Name": "任务失败", + "ParametersName": [] + }, + { + "Name": "答复终端号", + "ParametersName": [ "iTerminal" ] + }, + { + "Name": "上传任务失败作废的错误信息", + "Url": "http://172.16.7.35:9296/api/collector/uploadExceptionInfo", + "ParametersName": [ + "data" + ] + } +] \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Microsoft.mshtml.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/Microsoft.mshtml.dll new file mode 100644 index 0000000..70f26dc Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Microsoft.mshtml.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Newtonsoft.Json.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Newtonsoft.Json.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Newtonsoft.Json.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/Newtonsoft.Json.xml new file mode 100644 index 0000000..008e0ca --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.dll new file mode 100644 index 0000000..4a86d24 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.pdb b/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.pdb new file mode 100644 index 0000000..29e07f2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.xml new file mode 100644 index 0000000..2b2e18f --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/RabbitMQ.Client.xml @@ -0,0 +1,6929 @@ + + + + RabbitMQ.Client + + + + + Represents a TCP-addressable AMQP peer: a host name and port number. + + + Some of the constructors take, as a convenience, a System.Uri + instance representing an AMQP server address. The use of Uri + here is not standardised - Uri is simply a convenient + container for internet-address-like components. In particular, + the Uri "Scheme" property is ignored: only the "Host" and + "Port" properties are extracted. + + + + + Default Amqp ssl port. + + + + + Indicates that the default port for the protocol should be used. + + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + Ssl option. + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + + + + Construct an AmqpTcpEndpoint with "localhost" as the hostname, and using the default port. + + + + + Creates a new instance of the with the given Uri and ssl options. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Creates a new instance of the with the given Uri. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Clones the endpoint. + + A copy with the same hostname, port, and TLS settings + + + + Clones the endpoint using the provided hostname. + + Hostname to use + A copy with the provided hostname and port/TLS settings of this endpoint + + + + Retrieve or set the hostname of this . + + + + Retrieve or set the port number of this + AmqpTcpEndpoint. A port number of -1 causes the default + port number. + + + + Retrieve IProtocol of this . + + + + + Used to force the address family of the endpoint + + + + + Retrieve the SSL options for this AmqpTcpEndpoint. If not set, null is returned. + + + + + Construct an instance from a protocol and an address in "hostname:port" format. + + + If the address string passed in contains ":", it is split + into a hostname and a port-number part. Otherwise, the + entire string is used as the hostname, and the port-number + is set to -1 (meaning the default number for the protocol + variant specified). + Hostnames provided as IPv6 must appear in square brackets ([]). + + + + + Splits the passed-in string on ",", and passes the substrings to . + + + Accepts a string of the form "hostname:port, + hostname:port, ...", where the ":port" pieces are + optional, and returns a corresponding array of s. + + + + + Compares this instance by value (protocol, hostname, port) against another instance. + + + + + Implementation of hash code depending on protocol, hostname and port, + to line up with the implementation of . + + + + + Returns a URI-like string of the form amqp-PROTOCOL://HOSTNAME:PORTNUMBER. + + + This method is intended mainly for debugging and logging use. + + + + + Structure holding an AMQP timestamp, a posix 64-bit time_t. + + + When converting between an AmqpTimestamp and a System.DateTime, + be aware of the effect of your local timezone. In particular, + different versions of the .NET framework assume different + defaults. + + + We have chosen a signed 64-bit time_t here, since the AMQP + specification through versions 0-9 is silent on whether + timestamps are signed or unsigned. + + + + + + Construct an . + + Unix time. + + + + Unix time. + + + + + Provides a debugger-friendly display. + + + + Represents a version of the AMQP specification. + + + Vendor-specific variants of particular official specification + versions exist: this class simply represents the AMQP + specification version, and does not try to represent + information about any custom variations involved. + + + AMQP version 0-8 peers sometimes advertise themselves as + version 8-0: for this reason, this class's constructor + special-cases 8-0, rewriting it at construction time to be 0-8 instead. + + + + + + Construct an from major and minor version numbers. + + + Converts major=8 and minor=0 into major=0 and minor=8. Please see the class comment. + + + + + The AMQP specification major version number. + + + + + The AMQP specification minor version number. + + + + + Implement value-equality comparison. + + + + + Implement hashing as for value-equality. + + + + + Format appropriately for display. + + + The specification currently uses "MAJOR-MINOR" as a display format. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + A pluggable authentication mechanism. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + Represents Basic.GetOk responses from the server. + + Basic.Get either returns an instance of this class, or null if a Basic.GetEmpty was received. + + + + + Sets the new instance's properties from the arguments passed in. + + Delivery tag for the message. + Redelivered flag for the message + The exchange this message was published to. + Routing key with which the message was published. + The number of messages pending on the queue, excluding the message being delivered. + The Basic-class content header properties for the message. + + + + + Retrieves the Basic-class content header properties for this message. + + + + + Retrieves the body of this message. + + + + + Retrieve the delivery tag for this message. See also . + + + + + Retrieve the exchange this message was published to. + + + + + Retrieve the number of messages pending on the queue, excluding the message being delivered. + + + Note that this figure is indicative, not reliable, and can + change arbitrarily as messages are added to the queue and removed by other clients. + + + + + Retrieve the redelivered flag for this message. + + + + + Retrieve the routing key with which this message was published. + + + + Wrapper for a byte[]. May appear as values read from + and written to AMQP field tables. + + + The sole reason for the existence of this class is to permit + encoding of byte[] as 'x' in AMQP field tables, an extension + to the specification that is part of the tentative JMS mapping + implemented by QPid. + + + Instances of this object may be found as values held in + IDictionary instances returned from + RabbitMQ.Client.Impl.WireFormatting.ReadTable, e.g. as part of + IBasicProperties.Headers tables. Likewise, instances may be + set as values in an IDictionary table to be encoded by + RabbitMQ.Client.Impl.WireFormatting.WriteTable. + + + When an instance of this class is encoded/decoded, the type + tag 'x' is used in the on-the-wire representation. The AMQP + standard type tag 'S' is decoded to a raw byte[], and a raw + byte[] is encoded as 'S'. Instances of System.String are + converted to a UTF-8 binary representation, and then encoded + using tag 'S'. In order to force the use of tag 'x', instances + of this class must be used. + + + + + + Creates a new instance of the with null for its Bytes property. + + + + + Creates a new instance of the . + + The wrapped byte array, as decoded or as to be encoded. + + + + The wrapped byte array, as decoded or as to be encoded. + + + + Main entry point to the RabbitMQ .NET AMQP client + API. Constructs instances. + + + A simple example of connecting to a broker: + + + ConnectionFactory factory = new ConnectionFactory(); + // + // The next six lines are optional: + factory.UserName = ConnectionFactory.DefaultUser; + factory.Password = ConnectionFactory.DefaultPass; + factory.VirtualHost = ConnectionFactory.DefaultVHost; + factory.HostName = hostName; + factory.Port = AmqpTcpEndpoint.UseDefaultPort; + // + IConnection conn = factory.CreateConnection(); + // + IModel ch = conn.CreateModel(); + // + // ... use ch's IModel methods ... + // + ch.Close(Constants.ReplySuccess, "Closing the channel"); + conn.Close(Constants.ReplySuccess, "Closing the connection"); + + + The same example, written more compactly with AMQP URIs: + + + ConnectionFactory factory = new ConnectionFactory(); + factory.SetUri("amqp://localhost"); + IConnection conn = factory.CreateConnection(); + ... + + + Please see also the API overview and tutorial in the User Guide. + + + Note that the Uri property takes a string representation of an + AMQP URI. Omitted URI parts will take default values. The + host part of the URI cannot be omitted and URIs of the form + "amqp://foo/" (note the trailling slash) also represent the + default virtual host. The latter issue means that virtual + hosts with an empty name are not addressable. + + + + Default value for the desired maximum channel number, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for connection attempt timeout, in milliseconds. + + + + + Default value for the desired maximum frame size, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for desired heartbeat interval, in seconds, with zero meaning none (value: 60). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default password (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default user name (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default virtual host (value: "/"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + The default AMQP URI SSL protocols. + + + + + The AMQP URI SSL protocols. + + + + + Default SASL auth mechanisms to use. + + + + + SASL auth mechanisms to use. + + + + + Set to false to disable automatic connection recovery. + Defaults to true. + + + + + Set to true will enable a asynchronous consumer dispatcher which is compatible with . + Defaults to false. + + + + The host to connect to. + + + + Amount of time client will wait for before re-trying to recover connection. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + Factory function for creating the + used to generate a list of endpoints for the ConnectionFactory + to try in order. + The default value creates an instance of the + using the list of endpoints passed in. The DefaultEndpointResolver shuffles the + provided list each time it is requested. + + + + + The port to connect on. + indicates the default for the protocol should be used. + + + + + Protocol used, only AMQP 0-9-1 is supported in modern versions. + + + + + Timeout setting for connection attempts (in milliseconds). + + + + + Timeout setting for socket read operations (in milliseconds). + + + + + Timeout setting for socket write operations (in milliseconds). + + + + + Ssl options setting. + + + + + Set to false to make automatic connection recovery not recover topology (exchanges, queues, bindings, etc). + Defaults to true. + + + + + Task scheduler connections created by this factory will use when + dispatching consumer operations, such as message deliveries. + + + + + Construct a fresh instance, with all fields set to their respective defaults. + + + + + Connection endpoint. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat timeout to use when negotiating with the server (in seconds). + + + + + When set to true, background thread will be used for the I/O loop. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + The uri to use for the connection. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + When the configured hostname was not reachable. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + When the configured hostname was not reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each hostname is tried in a random order until a successful connection is + found or the list is exhausted using the DefaultEndpointResolver. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each endpoint is tried in a random order until a successful connection is + found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of endpoints. By default each endpoint will be tried + in a random order until a successful connection is found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using an IEndpointResolver. + + + The endpointResolver that returns the endpoints to use for the connection attempt. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Unescape a string, protecting '+'. + + + + + Set custom socket options by providing a SocketFactory. + + + + + Creates a new instance of the . + + Specifies the addressing scheme. + New instance of a . + + + + Useful default/base implementation of . + Subclass and override in application code. + + + Note that the "Handle*" methods run in the connection's thread! + Consider using , which exposes + events that can be subscribed to consumer messages. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + Convenience class providing compile-time names for standard exchange types. + + + Use the static members of this class as values for the + "exchangeType" arguments for IModel methods such as + ExchangeDeclare. The broker may be extended with additional + exchange types that do not appear in this class. + + + + + Exchange type used for AMQP direct exchanges. + + + + + Exchange type used for AMQP fanout exchanges. + + + + + Exchange type used for AMQP headers exchanges. + + + + + Exchange type used for AMQP topic exchanges. + + + + + Retrieve a collection containing all standard exchange types. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Convenience class providing compile-time names for standard headers. + + + Use the static members of this class as headers for the + arguments for Queue and Exchange declaration or Consumer creation. + The broker may be extended with additional + headers that do not appear in this class. + + + + + x-max-priority header + + + + + x-max-length header + + + + + x-max-length-bytes header + + + + + x-dead-letter-exchange header + + + + + x-dead-letter-routing-key header + + + + + x-message-ttl header + + + + + x-expires header + + + + + alternate-exchange header + + + + + x-priority header + + + + + x-queue-mode header. + Available modes: "default" and "lazy" + + + + + x-queue-type header. + Available types: "quorum" and "classic"(default) + + + + + x-quorum-initial-group-size header. + Use to control the number of quorum queue members + + + + + x-single-active-consumer header. + Available modes: true and false(default). + Allows to have only one consumer at a time consuming from a queue + and to fail over to another registered consumer in case the active one is cancelled or dies + + + + + x-overflow header. + Available strategies: "reject-publish" and "drop-head"(default). + Allows to configure strategy when or hits limits + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Consumer interface. Used to + receive messages from a queue by subscription. + + + See IModel.BasicConsume, IModel.BasicCancel. + + + Note that the "Handle*" methods run in the connection's + thread! Consider using QueueingBasicConsumer, which uses a + SharedQueue instance to safely pass received messages across + to user threads. + + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Common AMQP Basic content-class headers interface, + spanning the union of the functionality offered by versions + 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use . + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a + fresh instance are clear by default. + + + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + + Main interface to an AMQP connection. + + + + Instances of are used to create fresh + sessions/channels. The class is used to + construct instances. + Please see the documentation for ConnectionFactory for an example of usage. + Alternatively, an API tutorial can be found in the User Guide. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when + appropriate. + + + + + + If true, will close the whole connection as soon as there are no channels open on it; + if false, manual connection closure will be required. + + + DON'T set AutoClose to true before opening the first + channel, because the connection will be immediately closed if you do! + + + + + The maximum channel number this connection supports (0 if unlimited). + Usable channel numbers range from 1 to this number, inclusive. + + + + + A copy of the client properties that has been sent to the server. + + + + + Returns null if the connection is still in a state + where it can be used, or the cause of its closure otherwise. + + + + Applications should use the ConnectionShutdown event to + avoid race conditions. The scenario to avoid is checking + , seeing it is null (meaning the + was available for use at the time of the check), and + interpreting this mistakenly as a guarantee that the + will remain usable for a time. Instead, the + operation of interest should simply be attempted: if the + is not in a usable state, an exception will be + thrown (most likely , but may + vary depending on the particular operation being attempted). + + + + + + Retrieve the endpoint this connection is connected to. + + + + + The maximum frame size this connection supports (0 if unlimited). + + + + + The current heartbeat setting for this connection (0 for disabled), in seconds. + + + + + Returns true if the connection is still in a state where it can be used. + Identical to checking if equal null. + + + + + Returns the known hosts that came back from the + broker in the connection.open-ok method at connection + startup time. Null until the connection is completely open and ready for use. + + + + + The this connection is using to communicate with its peer. + + + + + A dictionary of the server properties sent by the server while establishing the connection. + This typically includes the product name and version of the server. + + + + + Returns the list of objects that contain information + about any errors reported while closing the connection in the order they appeared + + + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + Signalled when an exception occurs in a callback invoked by the connection. + + + This event is signalled when a ConnectionShutdown handler + throws an exception. If, in future, more events appear on + , then this event will be signalled whenever one + of those event handlers throws an exception, as well. + + + + + Raised when the connection is destroyed. + + + If the connection is already destroyed at the time an + event handler is added to this event, the event handler + will be fired immediately. + + + + + Abort this connection and all its channels. + + + Note that all active channels, sessions, and models will be closed if this method is called. + In comparison to normal method, will not throw + during closing connection. + This method waits infinitely for the in-progress close operation to complete. + + + + + Abort this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification) + + + A message indicating the reason for closing the connection + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + This method, behaves in a similar way as method with the + only difference that it explictly specifies a timeout given + for all the in-progress close operations to complete. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Close this connection and all its channels. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete. This method will not return to the caller + until the shutdown is complete. If the connection is already closed + (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + + + + + Close this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP specification). + + + A message indicating the reason for closing the connection. + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete with a timeout. If the connection is + already closed (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Create and return a fresh channel, session, and model. + + + + + Handle incoming Connection.Blocked methods. + + + + + Handle incoming Connection.Unblocked methods. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat setting to request (in seconds). + + + + + When set to true, background threads will be used for I/O and heartbeats. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + Sets or gets the AMQP Uri to be used for connections. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to the specified endpoint. + + + + + Create a connection to the specified endpoint. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Create a connection using a list of endpoints. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Advanced option. + + What task scheduler should consumer dispatcher use. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + A decoded AMQP content header frame. + + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Return all AmqpTcpEndpoints in the order they should be tried. + + + + + A decoded AMQP method frame. + + + + AMQP methods can be RPC requests, RPC responses, exceptions + (ChannelClose, ConnectionClose), or one-way asynchronous + messages. Currently this information is not recorded in their + type or interface: it is implicit in the way the method is + used, and the way it is defined in the AMQP specification. A + future revision of the RabbitMQ .NET client library may extend + the IMethod interface to represent this information + explicitly. + + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + + Common AMQP model, spanning the union of the + functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when appropriate. + + + + + Channel number, unique per connections. + + + + + Returns null if the session is still in a state where it can be used, + or the cause of its closure otherwise. + + + + Signalled when an unexpected message is delivered + + Under certain circumstances it is possible for a channel to receive a + message delivery which does not match any consumer which is currently + set up via basicConsume(). This will occur after the following sequence + of events: + + ctag = basicConsume(queue, consumer); // i.e. with explicit acks + // some deliveries take place but are not acked + basicCancel(ctag); + basicRecover(false); + + Since requeue is specified to be false in the basicRecover, the spec + states that the message must be redelivered to "the original recipient" + - i.e. the same channel / consumer-tag. But the consumer is no longer + active. + + In these circumstances, you can register a default consumer to handle + such deliveries. If no default consumer is registered an + InvalidOperationException will be thrown when such a delivery arrives. + + Most people will not need to use this. + + + + Returns true if the model is no longer in a state where it can be used. + + + + + Returns true if the model is still in a state where it can be used. + Identical to checking if equals null. + + + + When in confirm mode, return the sequence number of the next message to be published. + + + + + Signalled when a Basic.Ack command arrives from the broker. + + + + + Signalled when a Basic.Nack command arrives from the broker. + + + + + All messages received before this fires that haven't been ack'ed will be redelivered. + All messages received afterwards won't be. + + + Handlers for this event are invoked by the connection thread. + It is sometimes useful to allow that thread to know that a recover-ok + has been received, rather than the thread that invoked . + + + + + Signalled when a Basic.Return command arrives from the broker. + + + + + Signalled when an exception occurs in a callback invoked by the model. + + Examples of cases where this event will be signalled + include exceptions thrown in methods, or + exceptions thrown in delegates etc. + + + + + Notifies the destruction of the model. + + + If the model is already destroyed at the time an event + handler is added to this event, the event handler will be fired immediately. + + + + + Abort this session. + + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + In comparison to normal method, will not throw + or or any other during closing model. + + + + + Abort this session. + + + The method behaves in the same way as , with the only + difference that the model is closed with the given model close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Acknowledge one or more delivered message(s). + + + + + Delete a Basic content-class consumer. + + + + Start a Basic content-class consumer. + + + + Retrieve an individual message, if + one is available; returns null if the server answers that + no messages are currently available. See also . + + + + Reject one or more delivered message(s). + + + + Publishes a message. + + + + Routing key must be shorter than 255 bytes. + + + + + + Configures QoS parameters of the Basic content-class. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + Reject a delivered message. + + + Close this session. + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + + + + Close this session. + + The method behaves in the same way as Close(), with the only + difference that the model is closed with the given model + close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Enable publisher acknowledgements. + + + + + Creates a BasicPublishBatch instance + + + + + Construct a completely empty content header for use with the Basic content class. + + + + + Bind an exchange to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Like ExchangeBind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + Declare an exchange. + + The exchange is declared non-passive and non-internal. + The "nowait" option is not exercised. + + + + + Same as ExchangeDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + + Do a passive exchange declaration. + + + This method performs a "passive declare" on an exchange, + which verifies whether . + It will do nothing if the exchange already exists and result + in a channel-level protocol exception (channel closure) if not. + + + + + Delete an exchange. + + + + + Like ExchangeDelete but sets nowait to true. + + + + + Unbind an exchange from an exchange. + + + Routing key must be shorter than 255 bytes. + + + + + Like ExchangeUnbind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + + Bind a queue to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + Same as QueueBind but sets nowait parameter to true. + + + Routing key must be shorter than 255 bytes. + + + + + Declare a queue. + + + + Same as QueueDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + Declare a queue passively. + + The queue is declared passive, non-durable, + non-exclusive, and non-autodelete, with no arguments. + The queue is declared passively; i.e. only check if it exists. + + + + + Returns the number of messages in a queue ready to be delivered + to consumers. This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Returns the number of consumers on a queue. + This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Delete a queue. + + + Returns the number of messages purged during queue deletion. + uint.MaxValue. + + + + + Same as QueueDelete but sets nowait parameter to true + and returns void (as there will be no response from the server) + + + + + Purge a queue of messages. + + + Returns the number of messages purged. + + + + + Unbind a queue from an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Commit this session's active TX transaction. + + + + + Roll back this session's active TX transaction. + + + + + Enable TX mode for this session. + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + True if the method returned because + the timeout elapsed, not because all messages were ack'd or at least one nack'd. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received, throws an + OperationInterrupedException exception immediately. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received or the timeout + elapses, throws an OperationInterrupedException exception immediately. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false and immediate=false. + + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false + + + + + (Spec method) Convenience overload of BasicPublish. + + + + + (Spec method) Declare a queue. + + + + + (Extension method) Bind an exchange to an exchange. + + + + + (Extension method) Like exchange bind but sets nowait to true. + + + + + (Spec method) Declare an exchange. + + + + + (Extension method) Like ExchangeDeclare but sets nowait to true. + + + + + (Spec method) Unbinds an exchange. + + + + + (Spec method) Deletes an exchange. + + + + + (Extension method) Like ExchangeDelete but sets nowait to true. + + + + + (Spec method) Binds a queue. + + + + + (Spec method) Deletes a queue. + + + + + (Extension method) Like QueueDelete but sets nowait to true. + + + + + (Spec method) Unbinds a queue. + + + + + Object describing various overarching parameters + associated with a particular AMQP protocol variant. + + + + + Retrieve the protocol's API name, used for printing, + configuration properties, IDE integration, Protocols.cs etc. + + + + + Retrieve the protocol's default TCP port. + + + + + Retrieve the protocol's major version number. + + + + + Retrieve the protocol's minor version number. + + + + + Retrieve the protocol's revision (if specified). + + + + + Construct a connection from a given set of parameters, + a frame handler, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, and automatic recovery settings. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and automatic recovery settings. + + + + + Construct a protocol model atop a given session. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + This interface is provided to make creation of test doubles + for easier. + + + + + + A marker interface for entities that are recoverable (currently connection or channel). + + + + + Common AMQP Stream content-class headers interface, + spanning the union of the functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use IModel.CreateStreamProperties(). + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a fresh instance are clear by default. + + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Message header field table. + + + + + Message priority, 0 to 9. + + + + + Message timestamp. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Wrapper interface for standard TCP-client. Provides socket for socket frame handler class. + + Contains all methods that are currenty in use in rabbitmq client. + + + + Common interface for network (TCP/IP) connection classes. + + + + + Local port. + + + + + Remote port. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Provides access to the supported implementations. + + + + + Protocol version 0-9-1 as modified by Pivotal. + + + + + Retrieve the current default protocol variant (currently AMQP_0_9_1). + + + + + Container for an exchange name, exchange type and + routing key, usable as the target address of a message to be published. + + + + The syntax used for the external representation of instances + of this class is compatible with QPid's "Reply-To" field + pseudo-URI format. The pseudo-URI format is + (exchange-type)://(exchange-name)/(routing-key), where + exchange-type is one of the permitted exchange type names (see + class ExchangeType), exchange-name must be present but may be + empty, and routing-key must be present but may be empty. + + + The syntax is as it is solely for compatibility with QPid's + existing usage of the ReplyTo field; the AMQP specifications + 0-8 and 0-9 do not define the format of the field, and do not + define any format for the triple (exchange name, exchange + type, routing key) that could be used instead. + + + + + + Regular expression used to extract the exchange-type, + exchange-name and routing-key from a string. + + + + + Creates a new instance of the . + + Exchange type. + Exchange name. + Routing key. + + + + Retrieve the exchange name. + + + + + Retrieve the exchange type string. + + + + + Retrieve the routing key. + + + + + Parse a out of the given string, + using the regex. + + + + + Reconstruct the "uri" from its constituents. + + + + + Represents Queue info. + + + + + Creates a new instance of the . + + Queue name. + Message count. + Consumer count. + + + + Consumer count. + + + + + Message count. + + + + + Queue name. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + Received messages are placed in the SharedQueue as instances + of . + + + Note that messages taken from the SharedQueue may need + acknowledging with . + + + When the consumer is closed, through BasicCancel or through + the shutdown of the underlying or , + the method is called, which causes any + Enqueue() operations, and Dequeue() operations when the queue + is empty, to throw EndOfStreamException (see the comment for ). + + + The following is a simple example of the usage of this class: + + + IModel channel = ...; + QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel); + channel.BasicConsume(queueName, null, consumer); + + // At this point, messages will be being asynchronously delivered, + // and will be queueing up in consumer.Queue. + + while (true) { + try { + BasicDeliverEventArgs e = (BasicDeliverEventArgs) consumer.Queue.Dequeue(); + // ... handle the delivery ... + channel.BasicAck(e.DeliveryTag, false); + } catch (EndOfStreamException ex) { + // The consumer was cancelled, the model closed, or the + // connection went away. + break; + } + } + + + + + + Creates a fresh , + initialising the property to null + and the property to a fresh . + + + + + Creates a fresh , with + set to the argument, and set to a fresh . + + + + + Creates a fresh , + initialising the + and properties to the given values. + + + + + Retrieves the that messages arrive on. + + + + + Overrides 's implementation, + building a instance and placing it in the Queue. + + + + + Overrides 's OnCancel implementation, + extending it to call the Close() method of the . + + + + + Information about the reason why a particular model, session, or connection was destroyed. + + + The and properties should be used to determine the originator of the shutdown event. + + + + + Construct a with the given parameters and + 0 for and . + + + + + Construct a with the given parameters. + + + + + Object causing the shutdown, or null if none. + + + + + AMQP content-class ID, or 0 if none. + + + + + Returns the source of the shutdown event: either the application, the library, or the remote peer. + + + + + AMQP method ID within a content-class, or 0 if none. + + + + + One of the standardised AMQP reason codes. See RabbitMQ.Client.Framing.*.Constants. + + + + + Informative human-readable reason text. + + + + + Override ToString to be useful for debugging. + + + + + Describes the source of a shutdown event. + + + + + The shutdown event originated from the application using the RabbitMQ .NET client library. + + + + + The shutdown event originated from the RabbitMQ .NET client library itself. + + + Shutdowns with this ShutdownInitiator code may appear if, + for example, an internal error is detected by the client, + or if the server sends a syntactically invalid + frame. Another potential use is on IConnection AutoClose. + + + + + The shutdown event originated from the remote AMQP peer. + + + A valid received connection.close or channel.close event + will manifest as a shutdown with this ShutdownInitiator. + + + + + Single entry object in the shutdown report that encapsulates description + of the error which occured during shutdown. + + + + + Description provided in the error. + + + + + object that occured during shutdown, or null if unspecified. + + + + + Represents an which does the actual heavy lifting to set up an SSL connection, + using the config options in an to make things cleaner. + + + + + Upgrade a Tcp stream to an Ssl stream using the SSL options provided. + + + + + Represents a configurable SSL option, used in setting up an SSL connection. + + + + + Constructs an SslOption specifying both the server cannonical name and the client's certificate path. + + + + + Constructs an with no parameters set. + + + + + Retrieve or set the set of ssl policy errors that are deemed acceptable. + + + + + Retrieve or set the path to client certificate. + + + + + Retrieve or set the path to client certificate. + + + + + An optional client specified SSL certificate selection callback. If this is not specified, + the first valid certificate found will be used. + + + + + An optional client specified SSL certificate validation callback. If this is not specified, + the default callback will be used in conjunction with the property to + determine if the remote server certificate is valid. + + + + + Retrieve or set the X509CertificateCollection containing the client certificate. + If no collection is set, the client will attempt to load one from the specified . + + + + + Flag specifying if Ssl should indeed be used. + + + + + Retrieve or set server's Canonical Name. + This MUST match the CN on the Certificate else the SSL connection will fail. + + + + + Retrieve or set the Ssl protocol version. + + + + + Framework for constructing various types of AMQP. Basic-class application messages. + + + + + By default, new instances of BasicMessageBuilder and its subclasses will have this much initial buffer space. + + + + + Construct an instance ready for writing. + + + The is used for the initial accumulator buffer size. + + + + + Construct an instance ready for writing. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's writing to BodyStream. + + + If no instance exists, one is created, + pointing at the beginning of the accumulator. If one + already exists, the existing instance is returned. The + instance is not reset. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Framework for analyzing various types of AMQP Basic-class application messages. + + + + + Construct an instance ready for reading. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's NetworkBinaryReader reading from . + + + If no NetworkBinaryReader instance exists, one is created, + pointing at the beginning of the body. If one already + exists, the existing instance is returned. The instance is + not reset. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Interface for constructing messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Interface for constructing messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Analyzes messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Parses the message body into an instance. + + + + + Interface for constructing application messages. + + + Subinterfaces provide specialized data-writing methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Finish and retrieve the content header for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Interface for analyzing application messages. + + + Subinterfaces provide specialized data-reading methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Interface for constructing messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Finish and retrieve the content body for transmission. + + + Calling this message clears Body to null. Subsequent calls will fault. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for reading. See . + + + + + Parses the message body into an instance. + + . + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "MapMessage" wire encoding. + + + + + + Utility class for extracting typed values from strings. + + + + + Creates the protocol violation exception. + + Type of the target. + The source. + Instance of the . + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of an . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Tags used in parsing and generating StreamWireFormatting message bodies. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + + + + + + + + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + Contains all the information about a message acknowledged + from an AMQP broker within the Basic content-class. + + + The sequence number of the acknowledged message, or + the closed upper bound of acknowledged messages if multiple + is true. + + + Whether this acknoledgement applies to one message + or multiple messages. + + + Contains all the information about a message delivered + from an AMQP broker within the Basic content-class. + + + Default constructor. + + + Constructor that fills the event's properties from + its arguments. + + + The content header of the message. + + + The message body. + + + The consumer tag of the consumer that the message + was delivered to. + + + The delivery tag for this delivery. See + IModel.BasicAck. + + + The exchange the message was originally published + to. + + + The AMQP "redelivered" flag. + + + The routing key used when the message was + originally published. + + + Contains all the information about a message nack'd + from an AMQP broker within the Basic content-class. + + + The sequence number of the nack'd message, or the + closed upper bound of nack'd messages if multiple is + true. + + + Whether this nack applies to one message or + multiple messages. + + + Ignore + Clients should ignore this field. + + + Contains all the information about a message returned + from an AMQP broker within the Basic content-class. + + + The content header of the message. + + + The message body. + + + The exchange the returned message was originally + published to. + + + The AMQP reason code for the return. See + RabbitMQ.Client.Framing.*.Constants. + + + Human-readable text from the broker describing the + reason for the return. + + + The routing key used when the message was + originally published. + + + Wrap an exception thrown by a callback. + + + Access helpful information about the context in + which the wrapped exception was thrown. + + + Access the wrapped exception. + + + Describes an exception that was thrown during the + library's invocation of an application-supplied callback + handler. + + + When an exception is thrown from a callback registered with + part of the RabbitMQ .NET client library, it is caught, + packaged into a CallbackExceptionEventArgs, and passed through + the appropriate IModel's or IConnection's CallbackException + event handlers. If an exception is thrown in a + CallbackException handler, it is silently swallowed, as + CallbackException is the last chance to handle these kinds of + exception. + + + Code constructing CallbackExceptionEventArgs instances will + usually place helpful information about the context of the + call in the IDictionary available through the Detail property. + + + + + + Event relating to connection being blocked. + + + + + Access the reason why connection is blocked. + + + + Event relating to a successful consumer registration + or cancellation. + + + Construct an event containing the consumer-tag of + the consumer the event relates to. + + + Access the consumer-tag of the consumer the event + relates to. + + + + Initializes a new instance of the class. + + The tag before. + The tag after. + + + + Gets the tag before. + + + + + Gets the tag after. + + + + Experimental class exposing an IBasicConsumer's + methods as separate events. + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + + Event relating to flow control. + + + + + Access the flow control setting. + + + + + Initializes a new instance of the class. + + The name before. + The name after. + + + + Gets the name before. + + + + + Gets the name after. + + + + + Describes an exception that was thrown during + automatic connection recovery performed by the library. + + + + Thrown when the application tries to make use of a + session or connection that has already been shut + down. + + + Construct an instance containing the given + shutdown reason. + + + Thrown when the cause is an + authentication failure. + + + Thrown when no connection could be opened during a + ConnectionFactory.CreateConnection attempt. + + + Construct a BrokerUnreachableException. The inner exception is + an AggregateException holding the errors from multiple connection attempts. + + + Thrown when a SessionManager cannot allocate a new + channel number, or the requested channel number is already in + use. + + + + Indicates that there are no more free channels. + + + + + Indicates that the specified channel is in use + + The requested channel number + + + Retrieves the channel number concerned; will + return -1 in the case where "no more free channels" is + being signaled, or a non-negative integer when "channel is + in use" is being signaled. + + + Thrown when a connection to the broker fails + + + + Thrown when a session is destroyed during an RPC call to a + broker. For example, if a TCP connection dropping causes the + destruction of a session in the middle of a QueueDeclare + operation, an OperationInterruptedException will be thrown to + the caller of IModel.QueueDeclare. + + + + Construct an OperationInterruptedException with + the passed-in explanation, if any. + + + Construct an OperationInterruptedException with + the passed-in explanation and prefix, if any. + + + Retrieves the explanation for the shutdown. May + return null if no explanation is available. + + + Thrown to indicate that the peer didn't understand + the packet received from the client. Peer sent default message + describing protocol version it is using and transport parameters. + + + The peer's {'A','M','Q','P',txHi,txLo,major,minor} packet is + decoded into instances of this class. + + + + Fills the new instance's properties with the values passed in. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + The peer's high transport byte. + + + The peer's low transport byte. + + + Thrown when the likely cause is an + authentication failure. + + + Thrown to indicate that the peer does not support the + wire protocol version we requested immediately after opening + the TCP socket. + + + Fills the new instance's properties with the values passed in. + + + The client's AMQP specification major version. + + + The client's AMQP specification minor version. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Thrown when the model receives an RPC reply that it wasn't expecting. + + + + The unexpected reply method. + + + + Thrown when the model receives an RPC request it cannot satisfy. + + + + The name of the RPC request that could not be sent. + + + Thrown when the model cannot transmit a method field + because the version of the protocol the model is implementing + does not contain a definition for the field in + question. + + + The name of the unsupported field. + + + The name of the method involved. + + + Thrown when the wire-formatting code cannot encode a + particular .NET value to AMQP protocol format. + + + Construct a WireFormattingException with no + particular offender (i.e. null) + + + Construct a WireFormattingException with the given + offender + + + Object which this exception is complaining about; + may be null if no particular offender exists + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + Thrown when the server sends a frame along a channel + that we do not currently have a Session entry in our + SessionManager for. + + + The channel number concerned. + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Fill this instance from the given byte buffer stream. + + + + A type of . + + + + Returns a random item from the list. + + Element item type + Input list + + + + Subclass of ProtocolException representing problems + requiring a connection.close. + + + Socket read timeout, in milliseconds. Zero signals "infinity". + + + Socket write timeout, in milliseconds. Zero signals "infinity". + + + Read a frame from the underlying + transport. Returns null if the read operation timed out + (see Timeout property). + + + Not part of the public API. Extension of IModel to + include utilities and connection-setup routines needed by the + implementation side. + + This interface is used by the API autogeneration + process. The AMQP XML specifications are read by the spec + compilation tool, and after the basic method interface and + implementation classes are generated, this interface is + scanned, and a spec-version-specific implementation is + autogenerated. Annotations are used on certain methods, return + types, and parameters, to customise the details of the + autogeneration process. + + + + + + Sends a Connection.TuneOk. Used during connection + initialisation. + + + Handle incoming Basic.Ack methods. Signals a + BasicAckEvent. + + + Handle incoming Basic.CancelOk methods. + + + Handle incoming Basic.ConsumeOk methods. + + + Handle incoming Basic.Deliver methods. Dispatches + to waiting consumers. + + + Handle incoming Basic.GetEmpty methods. Routes the + information to a waiting Basic.Get continuation. + + Note that the clusterId field is ignored, as in the + specification it notes that it is "deprecated pending + review". + + + + Handle incoming Basic.GetOk methods. Routes the + information to a waiting Basic.Get continuation. + + + Handle incoming Basic.Nack methods. Signals a + BasicNackEvent. + + + Handle incoming Basic.RecoverOk methods + received in reply to Basic.Recover. + + + + Handle incoming Basic.Return methods. Signals a + BasicReturnEvent. + + + Handle an incoming Channel.Close. Shuts down the + session and model. + + + Handle an incoming Channel.CloseOk. + + + Handle incoming Channel.Flow methods. Either + stops or resumes sending the methods that have content. + + + Handle an incoming Connection.Blocked. + + + Handle an incoming Connection.Close. Shuts down the + connection and all sessions and models. + + + Handle an incoming Connection.OpenOk. + + + Handle incoming Connection.Secure + methods. + + + Handle an incoming Connection.Start. Used during + connection initialisation. + + + Handle incoming Connection.Tune + methods. + + + Handle an incominga Connection.Unblocked. + + + Handle incoming Queue.DeclareOk methods. Routes the + information to a waiting Queue.DeclareOk continuation. + + + Used to send a Basic.Cancel method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Consume method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Get. Basic.Get is a special + case, since it can result in a Basic.GetOk or a + Basic.GetEmpty, so this level of manual control is + required. + + + Used to send a Basic.Publish method. Called by the + public publish method after potential null-reference issues + have been rectified. + + + Used to send a Channel.Close. Called during + session shutdown. + + + Used to send a Channel.CloseOk. Called during + session shutdown. + + + Used to send a Channel.FlowOk. Confirms that + Channel.Flow from the broker was processed. + + + Used to send a Channel.Open. Called during session + initialisation. + + + Used to send a Confirm.Select method. The public + confirm API calls this while also managing internal + datastructures. + + + Used to send a Connection.Close. Called during + connection shutdown. + + + Used to send a Connection.CloseOk. Called during + connection shutdown. + + + Used to send a Connection.Open. Called during + connection startup. + + + Used to send a Connection.SecureOk. Again, this is + special, like Basic.Get. + + + Used to send a Connection.StartOk. This is + special, like Basic.Get. + + + Used to send a Exchange.Bind method. Called by the + public bind method. + + + + Used to send a Exchange.Declare method. Called by the + public declare method. + + + + Used to send a Exchange.Delete method. Called by the + public delete method. + + + + Used to send a Exchange.Unbind method. Called by the + public unbind method. + + + + Used to send a Queue.Bind method. Called by the + public bind method. + + + Used to send a Queue.Declare method. Called by the + public declare method. + + + Used to send a Queue.Delete method. Called by the + public delete method. + + + Used to send a Queue.Purge method. Called by the + public purge method. + + + Essential information from an incoming Connection.Tune + method. + + + The peer's suggested channel-max parameter. + + + The peer's suggested frame-max parameter. + + + The peer's suggested heartbeat parameter. + + + + Gets the channel number. + + + + + Gets the close reason. + + + + + Single recipient - no need for multiple handlers to be informed of arriving commands. + + + + + Gets the connection. + + + + + Gets a value indicating whether this session is open. + + + + + Multicast session shutdown event. + + + + Small ISession implementation used only for channel 0. + + + Set channel 0 as quiescing + + Method should be idempotent. Cannot use base.Close + method call because that would prevent us from + sending/receiving Close/CloseOk commands + + + + Thrown when frame parsing code detects an error in the + wire-protocol encoding of a frame. + + For example, potential MalformedFrameException conditions + include frames too short, frames missing their end marker, and + invalid protocol negotiation headers. + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + Only used to kick-start a connection open + sequence. See + + + Broadcasts notification of the final shutdown of the model. + + + Do not call anywhere other than at the end of OnSessionShutdown. + + + Must not be called when m_closeReason == null, because + otherwise there's a window when a new continuation could be + being enqueued at the same time as we're broadcasting the + shutdown event. See the definition of Enqueue() above. + + + + + Handle incoming Connection.Tune + methods. + + + Instances of subclasses of subclasses + HardProtocolException and SoftProtocolException are thrown in + situations when we detect a problem with the connection-, + channel- or wire-level parts of the AMQP protocol. + + + Retrieve the reply code to use in a + connection/channel close method. + + + Retrieve the shutdown details to use in a + connection/channel close method. Defaults to using + ShutdownInitiator.Library, and this.ReplyCode and + this.Message as the reply code and text, + respectively. + + + Small ISession implementation used during channel quiescing. + + + Manages a queue of waiting AMQP RPC requests. + + + Currently, pipelining of requests is forbidden by this + implementation. The AMQP 0-8 and 0-9 specifications themselves + forbid pipelining, but only by the skin of their teeth and + under a somewhat generous reading. + + + + + Enqueue a continuation, marking a pending RPC. + + + Continuations are retrieved in FIFO order by calling Next(). + + + In the current implementation, only one continuation can + be queued up at once. Calls to Enqueue() when a + continuation is already enqueued will result in + NotSupportedException being thrown. + + + + + Interrupt all waiting continuations. + + + There's just the one potential waiter in the current + implementation. + + + + + Retrieve the next waiting continuation. + + + It is an error to call this method when there are no + waiting continuations. In the current implementation, if + this happens, null will be returned (which will usually + result in an immediate NullPointerException in the + caller). Correct code will always arrange for a + continuation to have been Enqueue()d before calling this + method. + + + + + Normal ISession implementation used during normal channel operation. + + + Called from CheckAutoClose, in a separate thread, + when we decide to close the connection. + + + If m_autoClose and there are no active sessions + remaining, Close()s the connection with reason code + 200. + + + Replace an active session slot with a new ISession + implementation. Used during channel quiescing. + + Make sure you pass in a channelNumber that's currently in + use, as if the slot is unused, you'll get a null pointer + exception. + + + + Subclass of ProtocolException representing problems + requiring a channel.close. + + + Thrown when our peer sends a frame that contains + illegal values for one or more fields. + + + + Thrown when the connection receives a frame that it wasn't expecting. + + + + + Thrown when the protocol handlers detect an unknown class + number or method number. + + + + The AMQP content-class ID. + + + The AMQP method ID within the content-class, or 0 if none. + + + Reads an AMQP "table" definition from the reader. + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t, + x and V types and the AMQP 0-9-1 A type. + + A . + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Heartbeat frame for transmission. Reusable across connections. + + + Another overload of a Protocol property, useful + for exposing a tighter type. + + + Explicit implementation of IConnection.Protocol. + + + Try to close connection in a graceful way + + + Shutdown reason contains code and text assigned when closing the connection, + as well as the information about what initiated the close + + + Abort flag, if true, signals to close the ongoing connection immediately + and do not report any errors if it was already closed. + + + Timeout determines how much time internal close operations should be given + to complete. Negative or Timeout.Infinite value mean infinity. + + + + + + Loop only used while quiescing. Use only to cleanly close connection + + + + + We need to close the socket, otherwise attempting to unload the domain + could cause a CannotUnloadAppDomainException + + + + Broadcasts notification of the final shutdown of the connection. + + + + Sets the channel named in the SoftProtocolException into + "quiescing mode", where we issue a channel.close and + ignore everything except for subsequent channel.close + messages and the channel.close-ok reply that should + eventually arrive. + + + + Since a well-behaved peer will not wait indefinitely before + issuing the close-ok, we don't bother with a timeout here; + compare this to the case of a connection.close-ok, where a + timeout is necessary. + + + We need to send the close method and politely wait for a + reply before marking the channel as available for reuse. + + + As soon as SoftProtocolException is detected, we should stop + servicing ordinary application work, and should concentrate + on bringing down the channel as quickly and gracefully as + possible. The way this is done, as per the close-protocol, + is to signal closure up the stack *before* sending the + channel.close, by invoking ISession.Close. Once the upper + layers have been signalled, we are free to do what we need + to do to clean up and shut down the channel. + + + + + + May be called more than once. Should therefore be idempotent. + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Protocol major version (= 0) + + + Protocol minor version (= 9) + + + Protocol revision (= 1) + + + Protocol API name (= :AMQP_0_9_1) + + + Default TCP port (= 5672) + + + (= 1) + + + (= 2) + + + (= 3) + + + (= 8) + + + (= 4096) + + + (= 206) + + + (= 200) + + + (= 311) + + + (= 313) + + + (= 320) + + + (= 402) + + + (= 403) + + + (= 404) + + + (= 405) + + + (= 406) + + + (= 501) + + + (= 502) + + + (= 503) + + + (= 504) + + + (= 505) + + + (= 506) + + + (= 530) + + + (= 540) + + + (= 541) + + + Autogenerated type. AMQP specification method "connection.start". + + + Autogenerated type. AMQP specification method "connection.start-ok". + + + Autogenerated type. AMQP specification method "connection.secure". + + + Autogenerated type. AMQP specification method "connection.secure-ok". + + + Autogenerated type. AMQP specification method "connection.tune". + + + Autogenerated type. AMQP specification method "connection.tune-ok". + + + Autogenerated type. AMQP specification method "connection.open". + + + Autogenerated type. AMQP specification method "connection.open-ok". + + + Autogenerated type. AMQP specification method "connection.close". + + + Autogenerated type. AMQP specification method "connection.close-ok". + + + Autogenerated type. AMQP specification method "connection.blocked". + + + Autogenerated type. AMQP specification method "connection.unblocked". + + + Autogenerated type. AMQP specification method "channel.open". + + + Autogenerated type. AMQP specification method "channel.open-ok". + + + Autogenerated type. AMQP specification method "channel.flow". + + + Autogenerated type. AMQP specification method "channel.flow-ok". + + + Autogenerated type. AMQP specification method "channel.close". + + + Autogenerated type. AMQP specification method "channel.close-ok". + + + Autogenerated type. AMQP specification method "exchange.declare". + + + Autogenerated type. AMQP specification method "exchange.declare-ok". + + + Autogenerated type. AMQP specification method "exchange.delete". + + + Autogenerated type. AMQP specification method "exchange.delete-ok". + + + Autogenerated type. AMQP specification method "exchange.bind". + + + Autogenerated type. AMQP specification method "exchange.bind-ok". + + + Autogenerated type. AMQP specification method "exchange.unbind". + + + Autogenerated type. AMQP specification method "exchange.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.declare". + + + Autogenerated type. AMQP specification method "queue.declare-ok". + + + Autogenerated type. AMQP specification method "queue.bind". + + + Autogenerated type. AMQP specification method "queue.bind-ok". + + + Autogenerated type. AMQP specification method "queue.unbind". + + + Autogenerated type. AMQP specification method "queue.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.purge". + + + Autogenerated type. AMQP specification method "queue.purge-ok". + + + Autogenerated type. AMQP specification method "queue.delete". + + + Autogenerated type. AMQP specification method "queue.delete-ok". + + + Autogenerated type. AMQP specification method "basic.qos". + + + Autogenerated type. AMQP specification method "basic.qos-ok". + + + Autogenerated type. AMQP specification method "basic.consume". + + + Autogenerated type. AMQP specification method "basic.consume-ok". + + + Autogenerated type. AMQP specification method "basic.cancel". + + + Autogenerated type. AMQP specification method "basic.cancel-ok". + + + Autogenerated type. AMQP specification method "basic.publish". + + + Autogenerated type. AMQP specification method "basic.return". + + + Autogenerated type. AMQP specification method "basic.deliver". + + + Autogenerated type. AMQP specification method "basic.get". + + + Autogenerated type. AMQP specification method "basic.get-ok". + + + Autogenerated type. AMQP specification method "basic.get-empty". + + + Autogenerated type. AMQP specification method "basic.ack". + + + Autogenerated type. AMQP specification method "basic.reject". + + + Autogenerated type. AMQP specification method "basic.recover-async". + + + Autogenerated type. AMQP specification method "basic.recover". + + + Autogenerated type. AMQP specification method "basic.recover-ok". + + + Autogenerated type. AMQP specification method "basic.nack". + + + Autogenerated type. AMQP specification method "tx.select". + + + Autogenerated type. AMQP specification method "tx.select-ok". + + + Autogenerated type. AMQP specification method "tx.commit". + + + Autogenerated type. AMQP specification method "tx.commit-ok". + + + Autogenerated type. AMQP specification method "tx.rollback". + + + Autogenerated type. AMQP specification method "tx.rollback-ok". + + + Autogenerated type. AMQP specification method "confirm.select". + + + Autogenerated type. AMQP specification method "confirm.select-ok". + + + Autogenerated type. AMQP specification content header properties for content class "basic" + + + Base class for attributes for controlling the API + autogeneration process. + + + The specification namespace (i.e. version) that + this attribute applies to, or null for all specification + versions. + + + Causes the API generator to ignore the attributed method. + + Mostly used to declare convenience overloads of + various AMQP methods in the IModel interface. Also used + to omit an autogenerated implementation of a method which + is not required for one protocol version. The API + autogeneration process should of course not attempt to produce + an implementation of the convenience methods, as they will be + implemented by hand with sensible defaults, delegating to the + autogenerated variant of the method concerned. + + + Causes the API generator to generate asynchronous + receive code for the attributed method. + + + Causes the API generator to generate + exception-throwing code for, instead of simply ignoring, the + attributed method. + + + + + Informs the API generator which AMQP method field to + use for either a parameter in a request, or for a simple result + in a reply. + + + Informs the API generator which AMQP method to use for + either a request (if applied to an IModel method) or a reply + (if applied to an IModel method result). + + + This attribute, if placed on a parameter in an IModel + method, causes it to be interpreted as a "nowait" parameter for + the purposes of autogenerated RPC reply continuation management + and control. + + + This attribute, if placed on a method in IModel, + causes the method to be interpreted as a factory method + producing a protocol-specific implementation of a common + content header interface. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content header frame. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content body frame. + + + This attribute, placed on an IModel method, causes + what would normally be an RPC, sent with ModelRpc, to be sent + as if it were oneway, with ModelSend. The assumption that this + is for a custom continuation (e.g. for BasicConsume/BasicCancel + etc.) + + + + Simple wrapper around TcpClient. + + + + Manages a subscription to a queue. + + + This interface is provided to make creation of test doubles + for easier. + + + + + Implements a simple RPC client. + + + This class sends requests that can be processed by remote + SimpleRpcServer instances. + + + The basic pattern for accessing a remote service is to + determine the exchange name and routing key needed for + submissions of service requests, and to construct a + SimpleRpcClient instance using that address. Once constructed, + the various Call() and Cast() overloads can be used to send + requests and receive the corresponding replies. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + SimpleRpcClient client = + new SimpleRpcClient(ch, queueName); + client.TimeoutMilliseconds = 5000; // optional + + /// ... make use of the various Call() overloads + } + } + + + Instances of this class declare a queue, so it is the user's + responsibility to ensure that the exchange concerned exists + (using IModel.ExchangeDeclare) before invoking Call() or + Cast(). + + + This class implements only a few basic RPC message formats - + to extend it with support for more formats, either subclass, + or transcode the messages before transmission using the + built-in byte[] format. + + + + + + Construct an instance with no configured + Address. The Address property must be set before Call() or + Cast() are called. + + + Construct an instance that will deliver to the + default exchange (""), with routing key equal to the passed + in queueName, thereby delivering directly to a named queue + on the AMQP server. + + + Construct an instance that will deliver to the + named and typed exchange, with the given routing + key. + + + Construct an instance that will deliver to the + given address. + + + This event is fired whenever Call() detects the + disconnection of the underlying Subscription while waiting + for a reply from the service. + + See also OnDisconnected(). Note that the sending of a + request may result in OperationInterruptedException before + the request is even sent. + + + + This event is fired whenever Call() decides that a + timeout has occurred while waiting for a reply from the + service. + + See also OnTimedOut(). + + + + Retrieve or modify the address that will be used + for the next Call() or Cast(). + + This address represents the service, i.e. the destination + service requests should be published to. It can be changed + at any time before a Call() or Cast() request is sent - + the value at the time of the call is used by Call() and + Cast(). + + + + Retrieve the IModel this instance uses to communicate. + + + Retrieve the Subscription that is used to receive + RPC replies corresponding to Call() RPC requests. May be + null. + + + Upon construction, this property will be null. It is + initialised by the protected virtual method + EnsureSubscription upon the first call to Call(). Calls to + Cast() do not initialise the subscription, since no + replies are expected or possible when using Cast(). + + + + + Retrieve or modify the timeout (in milliseconds) + that will be used for the next Call(). + + + This property defaults to + System.Threading.Timeout.Infinite (i.e. -1). If it is set + to any other value, Call() will only wait for the + specified amount of time before returning indicating a + timeout. + + + See also TimedOut event and OnTimedOut(). + + + + + Sends a "jms/stream-message"-encoded RPC request, + and expects an RPC reply in the same format. + + + The arguments passed in must be of types that are + representable as JMS StreamMessage values, and so must the + results returned from the service in its reply message. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + + Sends a simple byte[] message, without any custom + headers or properties. + + + Delegates directly to Call(IBasicProperties, byte[]), and + discards the properties of the received reply, returning + only the body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[] message and IBasicProperties + header, returning both the body and headers of the received + reply. + + + Sets the "replyProperties" outbound parameter to the + properties of the received reply, and returns the byte[] + body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Both sets "replyProperties" to null and returns null when + either the request timed out or we were disconnected + before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[]/IBasicProperties RPC request, + returning full information about the delivered reply as a + BasicDeliverEventArgs. + + + This is the most general/lowest-level Call()-style method + on SimpleRpcClient. It sets CorrelationId and ReplyTo on + the request message's headers before transmitting the + request to the service via the AMQP server. If the reply's + CorrelationId does not match the request's CorrelationId, + ProtocolViolationException will be thrown. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + Sends an asynchronous/one-way message to the + service. + + + Close the reply subscription associated with this instance, if any. + + Simply delegates to calling Subscription.Close(). Clears + the Subscription property, so that subsequent Call()s, if + any, will re-initialize it to a fresh Subscription + instance. + + + + Signals that the Subscription we use for receiving + our RPC replies was disconnected while we were + waiting. + + Fires the Disconnected event. + + + + Signals that the configured timeout fired while + waiting for an RPC reply. + + Fires the TimedOut event. + + + + Implement the IDisposable interface, permitting + SimpleRpcClient instances to be used in using + statements. + + + Should initialise m_subscription to be non-null + and usable for fetching RPC replies from the service + through the AMQP server. + + + Retrieves the reply for the request with the given + correlation ID from our internal Subscription. + + Currently requires replies to arrive in the same order as + the requests were sent out. Subclasses may override this + to provide more sophisticated behaviour. + + + + Implements a simple RPC service, responding to + requests received via a Subscription. + + + This class interprets requests such as those sent by instances + of SimpleRpcClient. + + + The basic pattern for implementing a service is to subclass + SimpleRpcServer, overriding HandleCall and HandleCast as + appropriate, and then to create a Subscription object for + receiving requests from clients, and start an instance of the + SimpleRpcServer subclass with the Subscription. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + Subscription sub = new Subscription(ch, queueName); + new MySimpleRpcServerSubclass(sub).MainLoop(); + } + } + + + Note that this class itself does not declare any resources + (exchanges, queues or bindings). The Subscription we use for + receiving RPC requests should have already declared all the + resources we need. See the Subscription constructors and the + Subscription.Bind method. + + + If you are implementing a service that responds to + "jms/stream-message"-formatted requests (as implemented by + RabbitMQ.Client.Content.IStreamMessageReader), override + HandleStreamMessageCall. Otherwise, override HandleSimpleCall + or HandleCall as appropriate. Asynchronous, one-way requests + are dealt with by HandleCast etc. + + + Every time a request is successfully received and processed + within the server's MainLoop, the request message is Ack()ed + using Subscription.Ack before the next request is + retrieved. This causes the Subscription object to take care of + acknowledging receipt and processing of the request message. + + + If transactional service is enabled, via SetTransactional(), + then after every successful ProcessRequest, IModel.TxCommit is + called. Making use of transactional service has effects on all + parts of the application that share an IModel instance, + completely changing the style of interaction with the AMQP + server. For this reason, it is initially disabled, and must be + explicitly enabled with a call to SetTransactional(). Please + see the documentation for SetTransactional() for details. + + + To stop a running RPC server, call Close(). This will in turn + Close() the Subscription, which will cause MainLoop() to + return to its caller. + + + Unless overridden, ProcessRequest examines properties in the + request content header, and uses them to dispatch to one of + the Handle[...]() methods. See the documentation for + ProcessRequest and each Handle[...] method for details. + + + + + + Create, but do not start, an instance that will + receive requests via the given Subscription. + + + The instance is initially in non-transactional mode. See + SetTransactional(). + + + Call MainLoop() to start the request-processing loop. + + + + + Returns true if we are in "transactional" mode, or + false if we are not. + + + Shut down the server, causing MainLoop() to return + to its caller. + + Acts by calling Close() on the server's Subscription object. + + + + Called by ProcessRequest(), this is the most + general method that handles RPC-style requests. + + + This method should map requestProperties and body to + replyProperties and the returned byte array. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall before encoding and returning the + reply. If the ContentType is any other value, the request + is passed to HandleSimpleCall instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by ProcessRequest(), this is the most + general method that handles asynchronous, one-way + requests. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall, passing in null as the + replyWriter parameter to indicate that no reply is desired + or possible. If the ContentType is any other value, the + request is passed to HandleSimpleCast instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by the default HandleCall() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. It should fill in + replyProperties (or set it to null) and return a byte + array to send back to the remote caller as a reply + message. + + + + Called by the default HandleCast() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. + + + + Called by HandleCall and HandleCast when a + "jms/stream-message" request is received. + + + The args array contains the values decoded by HandleCall + or HandleCast. + + + The replyWriter parameter will be null if we were called + from HandleCast, in which case a reply is not expected or + possible, or non-null if we were called from + HandleCall. Use the methods of replyWriter in this case to + assemble your reply, which will be sent back to the remote + caller. + + + This default implementation does nothing, which + effectively sends back an empty reply to any and all + remote callers. + + + + + Enters the main loop of the RPC service. + + + Retrieves requests repeatedly from the service's + subscription. Each request is passed to + ProcessRequest. Once ProcessRequest returns, the request + is acknowledged via Subscription.Ack(). If transactional + mode is enabled, TxCommit is then called. Finally, the + loop begins again. + + + Runs until the subscription ends, which happens either as + a result of disconnection, or of a call to Close(). + + + + + Process a single request received from our + subscription. + + + If the request's properties contain a non-null, non-empty + CorrelationId string (see IBasicProperties), it is assumed + to be a two-way call, requiring a response. The ReplyTo + header property is used as the reply address (via + PublicationAddress.Parse, unless that fails, in which case it + is treated as a simple queue name), and the request is + passed to HandleCall(). + + + If the CorrelationId is absent or empty, the request is + treated as one-way asynchronous event, and is passed to + HandleCast(). + + + Usually, overriding HandleCall(), HandleCast(), or one of + their delegates is sufficient to implement a service, but + in some cases overriding ProcessRequest() is + required. Overriding ProcessRequest() gives the + opportunity to implement schemes for detecting interaction + patterns other than simple request/response or one-way + communication. + + + + + Enables transactional mode. + + + Once enabled, transactional mode is not only enabled for + all users of the underlying IModel instance, but cannot be + disabled without shutting down the entire IModel (which + involves shutting down all the services depending on it, + and should not be undertaken lightly). + + + This method calls IModel.TxSelect, every time it is + called. (TxSelect is idempotent, so this is harmless.) + + + + + Implement the IDisposable interface, permitting + SimpleRpcServer instances to be used in using + statements. + + + Manages a subscription to a queue. + + + This convenience class abstracts away from much of the detail + involved in receiving messages from a queue. + + + Once created, the Subscription consumes from a queue (using a + EventingBasicConsumer). Received deliveries can be retrieved + by calling Next(), or by using the Subscription as an + IEnumerator in, for example, a foreach loop. + + + Note that if the "autoAck" option is enabled (which it is by + default), then received deliveries are automatically acked + within the server before they are even transmitted across the + network to us. Calling Ack() on received events will always do + the right thing: if "autoAck" is enabled, nothing is done on an + Ack() call, and if "autoAck" is disabled, IModel.BasicAck() is + called with the correct parameters. + + + + + Creates a new Subscription in "autoAck" mode, + consuming from a named queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode and the name of the queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode, the name of the queue, and the consumer tag. + + + Retrieve the IBasicConsumer that is receiving the + messages from the server for us. Normally, you will not + need to access this property - use Next() and friends + instead. + + + Retrieve the consumer-tag that this subscription + is using. Will usually be a server-generated + name. + + + Returns the most recent value returned by Next(), + or null when either no values have been retrieved yet, the + end of the subscription has been reached, or the most + recent value has already been Ack()ed. See also the + documentation for Ack(). + + + Retrieve the IModel our subscription is carried by. + + + Returns true if we are in "autoAck" mode, where + calls to Ack() will be no-ops, and where the server acks + messages before they are delivered to us. Returns false if + we are in a mode where calls to Ack() are required, and + where such calls will actually send an acknowledgement + message across the network to the server. + + + Retrieve the queue name we have subscribed to. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + As per the IEnumerator interface definition, throws + InvalidOperationException if LatestEvent is null. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + If LatestEvent is non-null, passes it to + Ack(BasicDeliverEventArgs). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicAck with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Closes this Subscription, cancelling the consumer + record in the server. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, false, requeue). Causes LatestEvent to become + null. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, multiple, requeue). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicNack with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Retrieves the next incoming delivery in our + subscription queue. + + + Returns null when the end of the stream is reached and on + every subsequent call. End-of-stream can arise through the + action of the Subscription.Close() method, or through the + closure of the IModel or its underlying IConnection. + + + Updates LatestEvent to the value returned. + + + Does not acknowledge any deliveries at all (but in "autoAck" + mode, the server will have auto-acknowledged each event + before it is even sent across the wire to us). + + + + + Retrieves the next incoming delivery in our + subscription queue, or times out after a specified number + of milliseconds. + + + Returns false only if the timeout expires before either a + delivery appears or the end-of-stream is reached. If false + is returned, the out parameter "result" is set to null, + but LatestEvent is not updated. + + + Returns true to indicate a delivery or the end-of-stream. + + + If a delivery is already waiting in the queue, or one + arrives before the timeout expires, it is removed from the + queue and placed in the "result" out parameter. If the + end-of-stream is detected before the timeout expires, + "result" is set to null. + + + Whenever this method returns true, it updates LatestEvent + to the value placed in "result" before returning. + + + End-of-stream can arise through the action of the + Subscription.Close() method, or through the closure of the + IModel or its underlying IConnection. + + + This method does not acknowledge any deliveries at all + (but in "autoAck" mode, the server will have + auto-acknowledged each event before it is even sent across + the wire to us). + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item or the end of + the stream to become available. Usage of such a timeout is + equivalent to calling Next() with no arguments (modulo + predictable method signature differences). + + + + + Implementation of the IDisposable interface, + permitting Subscription to be used in using + statements. Simply calls Close(). + + + Implementation of the IEnumerable interface, for + permitting Subscription to be used in foreach + loops. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + Dummy implementation of the IEnumerator interface, + for permitting Subscription to be used in foreach loops; + Reset()ting a Subscription doesn't make sense, so this + method always throws InvalidOperationException. + + + A thread-safe single-assignment reference cell. + + A fresh BlockingCell holds no value (is empty). Any thread + reading the Value property when the cell is empty will block + until a value is made available by some other thread. The Value + property can only be set once - on the first call, the + BlockingCell is considered full, and made immutable. Further + attempts to set Value result in a thrown + InvalidOperationException. + + + + Retrieve the cell's value, blocking if none exists + at present, or supply a value to an empty cell, thereby + filling it. + + + + Return valid timeout value + If value of the parameter is less then zero, return 0 + to mean infinity + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Miscellaneous debugging and development utilities. + + Not part of the public API. + + + + Print a hex dump of the supplied bytes to stdout. + + + Print a hex dump of the supplied bytes to the supplied TextWriter. + + + Prints an indented key/value pair; used by DumpProperties() + Recurses into the value using DumpProperties(). + + + Dump properties of objects to the supplied writer. + + + Used internally by class Either. + + + Models the disjoint union of two alternatives, a + "left" alternative and a "right" alternative. + Borrowed from ML, Haskell etc. + + + Private constructor. Use the static methods Left, Right instead. + + + Retrieve the alternative represented by this instance. + + + Retrieve the value carried by this instance. + + + Constructs an Either instance representing a Left alternative. + + + Constructs an Either instance representing a Right alternative. + + + A class for allocating integer IDs in a given range. + + + A class representing a list of inclusive intervals + Creates an IntAllocator allocating integer IDs within the inclusive range [start, end] + + + Allocate a fresh integer from the range, or return -1 if no more integers + are available. This operation is guaranteed to run in O(1) + + + Make the provided integer available for allocation again. This operation + runs in amortized O(sqrt(range size)) time: About every sqrt(range size) + operations will take O(range_size + number of intervals) to complete and + the rest run in constant time. + + No error checking is performed, so if you double Free or Free an integer + that was not originally Allocated the results are undefined. Sorry. + + + + Subclass of BinaryReader that reads integers etc in correct network order. + + + + Kludge to compensate for .NET's broken little-endian-only BinaryReader. + Relies on BinaryReader always being little-endian. + + + + + + Construct a NetworkBinaryReader over the given input stream. + + + + + Construct a NetworkBinaryReader over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryReader over a byte[]. + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Subclass of BinaryWriter that writes integers etc in correct network order. + + + +

+ Kludge to compensate for .NET's broken little-endian-only BinaryWriter. +

+ See also NetworkBinaryReader. +

+
+
+ + + Construct a NetworkBinaryWriter over the given input stream. + + + + + Construct a NetworkBinaryWriter over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryWriter streaming into a fresh MemoryStream + provisioned with the given initialSize. + + + Helper method for extracting the byte[] contents + of a BinaryWriter over a MemoryStream, such as constructed + by TemporaryBinaryWriter. + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + A thread-safe shared queue implementation. + + + A thread-safe shared queue implementation. + + + Flag holding our current status. + + + The shared queue. + + Subclasses must ensure appropriate locking discipline when + accessing this field. See the implementation of Enqueue, + Dequeue. + + + + Close the queue. Causes all further Enqueue() + operations to throw EndOfStreamException, and all pending + or subsequent Dequeue() operations to throw an + EndOfStreamException once the queue is empty. + + + Retrieve the first item from the queue, or block if none available + + Callers of Dequeue() will block if no items are available + until some other thread calls Enqueue() or the queue is + closed. In the latter case this method will throw + EndOfStreamException. + + + + Retrieve the first item from the queue, or return + nothing if no items are available after the given + timeout + + + If one or more items are present on the queue at the time + the call is made, the call will return + immediately. Otherwise, the calling thread blocks until + either an item appears on the queue, or + millisecondsTimeout milliseconds have elapsed. + + + Returns true in the case that an item was available before + the timeout, in which case the out parameter "result" is + set to the item itself. + + + If no items were available before the timeout, returns + false, and sets "result" to null. + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item to become + available. Usage of such a timeout is equivalent to + calling Dequeue() with no arguments. See also the MSDN + documentation for + System.Threading.Monitor.Wait(object,int). + + + If no items are present and the queue is in a closed + state, or if at any time while waiting the queue + transitions to a closed state (by a call to Close()), this + method will throw EndOfStreamException. + + + + + Retrieve the first item from the queue, or return + defaultValue immediately if no items are + available + + + If one or more objects are present in the queue at the + time of the call, the first item is removed from the queue + and returned. Otherwise, the defaultValue that was passed + in is returned immediately. This defaultValue may be null, + or in cases where null is part of the range of the queue, + may be some other sentinel object. The difference between + DequeueNoWait() and Dequeue() is that DequeueNoWait() will + not block when no items are available in the queue, + whereas Dequeue() will. + + + If at the time of call the queue is empty and in a + closed state (following a call to Close()), then this + method will throw EndOfStreamException. + + + + + Place an item at the end of the queue. + + If there is a thread waiting for an item to arrive, the + waiting thread will be woken, and the newly Enqueued item + will be passed to it. If the queue is closed on entry to + this method, EndOfStreamException will be thrown. + + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Call only when the lock on m_queue is held. + + + + Implementation of the IEnumerator interface, for + permitting SharedQueue to be used in foreach loops. + + + Construct an enumerator for the given + SharedQueue. + + + Reset()ting a SharedQueue doesn't make sense, so + this method always throws + InvalidOperationException. + +
+
diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Spire.Pdf.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/Spire.Pdf.dll new file mode 100644 index 0000000..cf659e6 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Spire.Pdf.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Spire.Pdf.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/Spire.Pdf.xml new file mode 100644 index 0000000..75d2a30 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/Spire.Pdf.xml @@ -0,0 +1,71934 @@ + + + + Spire.Pdf + + + + + Class LicenseProvider. + + + + + Provides a license by a license file path, which will be used for loading license. + + License file full path. + + + + Sets the license file name, which will be used for loading license. + + License file name. + + + + Gets the current license file name. + + The license file name, the default license file name is [license.elic.xml]. + + + + Provides a license by a license file object, which will be used for loading license. + + License file object. + + + + Provides a license by a license stream, which will be used for loading license. + + License data stream. + + + + Provides a license by a license key, which will be used for loading license. + + The value of the Key attribute of the element License of you license xml file. + + + + Clear all cached license. + + + + + Load the license provided by current setting to the license cache. + + + + + Load the license provided by current setting to the license cache. + + Runtime product type + + + + This method is not intended to be used directly from your code. + + + + + + + + + + Class TraceInfo. + + + + + Show trace info. + + The class name. + The method name. + The message. + + + + Signature formatter interface. + + + + + + Sign. + + The data to be signed. + The signature. + + + + Construct a new instance. + + The ocsp server url. + + + + Construct a new instance. + + OCSP response generator. + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Construct a new instance. + + The Timestamp server url. + + + + Construct a new instance. + + Timestamp generator. + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Represents the Certificate object. + + + + + Creates new PdfCertificate from an certificate. + + The X509Certificate object. + + + + Creates new PdfCertificate from PFX file. + + The path to pfx file. + The password for pfx file. + + + + Creates new PdfCertificate from PFX file. + + The path to pfx file. + The password for pfx file. + X509KeyStorageFlags storageFlags + + + + Signature data + + The data to pfx file. + + + + Signature data + + The data to pfx file. + The password for pfx file. + + + + Signature data + + The data to pfx file. + The password for pfx file. + X509KeyStorageFlags storageFlags + + + + Gets the certificates in all storages. + + + PdfCertificate array. + + + + + Finds the certificate by subject. + + The store name. + The certificate subject. + The certificate. + + + + Finds the certificate by issuer. + + The store name. + The certificate issuer. + The certificate. + + + + Finds the certificate by serial number. + + The certification system store type. + The certificate id. + + + + + Represents a digital signature used for signing a PDF document. + + + + + Get all certificates. + + + + + Gets the signature Appearance. + + A object defines signature`s appearance. + + + + Gets or sets signature location on the page. + + + + + Gets or sets bounds of signature. + + + + + Gets or sets information provided by the signer to enable a recipient to contact + the signer to verify the signature; for example, a phone number. + + + + + Gets or sets reason of signing. + + + + + Gets or sets the physical location of the signing. + + + + + Gets or sets a value indicating certificate document or not. + NOTE: Works only with Adobe Reader 7.0.8 or higher. + + certificate document if true. + + + + Gets or sets the permission for certificated document. + + The document permission. + + + + Gets signing certificate. + + + + + Sets the alignment of signature text + + + + + Gets a value indicating whether signature visible or not. + + Signature can be set as invisible when its size is set to empty. + + + + Get Signature Datetime + + + + + Set the sign name font. + Note: This font applys to sign name when the GraphicMode is SignNameOnly or SignNameAndSignDetail. + if not set, the default font will be applied. + + + + + Set font color for the signature info + if not set, the default is black + + + + + Set the SignDetails font. + Note: if not set, the default font will be applied. + + + + + Set signature info font + + + + + The name of the person or authority signing the document, usually called signer. + + + + + Digital Signature Common name label + + + + + The name of the person or authority signing the document. + + + + + Name label + + + + + Signature Distinguished Name label + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + Flag determine whether to display the labels + + + + + Show Digital Signature,Configuer Text + + + + + The Grapphic render/display mode. + + + + + Digital Signature Graphic Type + + + + + Digital Signature Configuer Graphic file Path + + + + + Signature Image Source + + + + + Digital Signature Configuer Graphic is filled bounds. + + + + + Set or get the sign image layout. + + + + + Digital Signature Reason Label + + + + + Digital Signature Date Label + + + + + Digital Signature ContactInfo Label + + + + + Digital Signature LocationInfo Label + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The pdf certificate. + Name of the signature. + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The Signature formatter. + Name of the signature. + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The pdf certificate. + The Signature formatter. + Name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The Signature formatter. + The name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The certificate. + The signature formatter. + The name of the signature. + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The Signature formatter. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The signature formatter. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The document or loaded document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The document or loaded document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Handle content stream and resources. + + The template. + + + + check thie validity of the signature + + + + + + Check if the document was altered after signed. True if modified; otherwise false. + + + + + + Set the Sign Name Width + + + + + + The handler which generate graphics. + + + The graphics context. + The visible region is (0,0,signature bounds width,signature bounds height). + + + + + Configure custom graphics. + + the handler which generate graphics. + + + + The handler which generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Configure timestamp which must conform to RFC 3161. + + TSA url + + + + Configure timestamp which must conform to RFC 3161. + + The tsa url. + The user(account) name. + The password. + + + + Configure timestamp which must conform to RFC 3161. + + the handler which generate timestamp token + + + + The handler which generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Configure OCSP which must conform to RFC 2560. + + + OCSP url. It it's null it will be taken from the checked cert. + + + Represents an additional collection of certificates that can be searched. + if null,only use windows cert store. + + + + + Configure OCSP which must conform to RFC 2560. + + + Represents an additional collection of certificates that can be searched + if null,only use windows cert store. + + the handler which generate OCSP response. + + + + A dictionary that can be used by a signature handler to record information that captures the state of the computer environment used for signing + + + + + Specifies length of the encryption key for encryption. + + + + + The key is 40 bit long. + + + + + The key is 128 bit long. + + + + + The key is 256 bit long. + + + + + Specifies the type of encryption algorithm used. + + + + + The encryption algorithm is RC4. + + + + + The encryption algorithm is AES. + + + + + Specifies the available permissions set for the signature. + + + + + Not all permissions + + + + + Default value is 2876. A common document contains all privileges + + + + + Print the document. + + + + + Edit content. + + + + + Copy content. + + + + + Add or modify text annotations, fill in interactive form fields. + + + + + Fill form fields. (Only for 128 bits key). + + + + + Copy accessibility content. + + + + + Assemble document permission. (Only for 128 bits key). + + + + + Full quality print. + + + + + Specifies the naming a system store. + + + + + A certificate store that holds certificates with associated private keys. + + + + + Root certificates. + + + + + Certification authority certificates. + + + + + Software Publisher Certificate. + + + + + Specifies the alignment type of signature text. + + + + + Specifies the signature text is aligned to Left. + + + + + Specifies the signature text is aligned to Center. + + + + + Specifies the signature text is aligned to Right. + + + + + Specifies the available permissions on certificated document. + + + + + Disallow any changes to the document. + + + + + Only allow form fill-in actions on this document. + + + + + Only allow commenting and form fill-in actions on this document. + + + + + Signature type + + + + + The layout determine how to display the sign image. + + + + + Default. + Sign image status without any modification. + + + + + Stretch the sign image. + + + + + Modes to determine what and how to dispay the signature infomation. + + + + + Default dispaly model. + Display signature details including signer,location,date,contact infomation and reason. + + + + + Only display the signature image. + + + + + Only display the sign name. + + + + + Diaply sign name and signature details. + + + + + Diaply signature image and signature details. + + + + + Signture Configuer Graphic type + + + + + No Show Picture Signature and Text Signature + + + + + draw Picture Signature + + + + + draw Text Signature + + + + + draw Picture Signature and Information + + + + + draw Text Signature and Information + + + + + draw Information and Picture Signature + + + + + Configuer Text,Show Sign content + + + + + The object that allows to compute the MD5 hash for the input data. + + + + + Whether or not to encrypt. + + If true ,do not encrypt or encrypt + + + + Convert string to byte array. + according to the iso 8859-1 codepage. + + The string + The result byte array + + + + Create owner password byte array. + + The userPassword + The ownerPassword + The owner password array + + + + Represents the security settings of the PDF document. + + + + + Gets the owner password. + + + + + Gets the user password. + + + + + Indicate whether this pdf document was encrypted originally or not. + + + + + Decrypt user password + + + + + Decrypt user password. + + The ownerPassword + + + + Decrypt all password. + + The ownerPassword + + + + Whether is encrypted. + + If has owner password return true or false + + + + To Encrypt the PDF document with open password. + Note:If set empty string value to open password, it indicates that the PDF document can be operated without providing corresponding password. + Note: the document owner password should not be exist. + + The open password + + + + To Encrypt the PDF document with permission password and permissions. + Note:The Permission password can't be empty string. + + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + + + + To Encrypt the PDF document and set the encryption key size and permissions. + Note:If set empty string value to open password or permission password, it indicates that the PDF document can be operated without providing corresponding password. + + The open password + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + The bit length of the encryption key + + + + + To Encrypt the PDF document with open password and permission password,and set the encryption key size and permissions. + Note:If set empty string value to open password or permission password, it indicates that the PDF document can be operated without providing corresponding password. + + The open password + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + The bit length of the encryption key + The original permissionPassword of the document + + + + Gets the document's permission flags + + + + + Gets the size of the key. + + + + + Initializes a new instance of the class. + + + + + Represents a calibrated gray color, based on a CalGray colorspace. + + + + + Initializes a new instance of the class. + + The color space. + + + + Gets or sets the gray level for this color. + + The gray level of this color. + The acceptable range for this value is [0.0 1.0]. + 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Represents a CalGray colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the black point. + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. Default value: [ 0.0 0.0 0.0 ]. + + + + Gets or sets the gamma. + + + + + Gets or sets the white point. + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers XW and ZW must be positive, and YW must be equal to 1.0. + + + + Represents a calibrated RGB color, based on a CalRGB colorspace. + + + + + Initializes a new instance of the class. + + The colorspace + + + + Gets or sets the Blue value. + + The blue level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest. + + + + Gets or sets the green level for this color. + + The green level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Gets or sets the red level for this color. + + The red level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Representing a CalRGB colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the black point. + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the gamma. + + An array of three numbers [GR GG GB] specifying the gamma for the red, green, and blue components of the color space. + + + + Gets or sets the colorspace transformation matrix. + + An array of nine numbers [XA YA ZA XB YB ZB XC YC ZC] specifying the linear interpretation of the decoded A, B, and C components of the color space with respect to the final XYZ representation. + + + + Gets or sets the white point. + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. + + + + Represents the base class for all colorspaces. + + + + + Gets Pdf primitive representing the font. + + + + + Checks whether the object is similar to another object. + + The object to compare witht ehcurrent object. + True - if the objects have equal internals and can share them, False otherwise. + + + + Represents a device colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the DeviceColorSpaceType + + + + + Represents the extended color, based on a complex colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets the Colorspace + + + + + Represents an ICC color, based on an ICC colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the color components. + + An array of values that describe the color in the ICC colorspace. + The length of this array must match the value of ColorComponents property on the underlying ICC colorspace. + + + + Represents an ICC based colorspace.. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the alternate color space. + + The alternate color space to be used in case the one specified in the stream data is not supported. + + + + Gets or sets the color components. + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. As of PDF 1.4, this value must be 1, 3 or 4. + + + + Gets or sets the profile data. + + The ICC profile data. + + + + Gets or sets the range for color components. + + An array of 2 ColorComponents numbers [ min0 max0 min1 max1 ... ] specifying the minimum and maximum valid values of the corresponding color components. These values must match the information in the ICC profile. + + + + Set the Color Profile. + + ICC profile data. + + + + Represents an indexed color, based on an indexed colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the color index + + The index of the select color. + The acceptable range for this value is 0 - MaxColorIndex. + + + + Represents an indexed colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the base colorspace. + + The color space in which the values in the color table are to be interpreted. + + + + Gets or sets the index of the max color. + + The maximum index that can be used to access the values in the color table. + + + + Gets or sets the color table. + + The table of color components. + The color table data must be m * (maxIndex + 1) bytes long, where m is the number of color components in the base color space. Each byte is an unsigned integer in the range 0 to 255 that is scaled to the range of the corresponding color component in the base color space; that is, 0 corresponds to the minimum value in the range for that component, and 255 corresponds to the maximum. + + + + Gets the profile data. + + The profile data. + + + + Represents a calibrated Lab color, based on a Lab colorspace. + + + + + Initializes a new instance of the class. + + The ColorSpace. + + + + Gets or sets the a* component for this color. + + The a* component of this color. + The range for this value is defined by the Range property of the underlying Lab colorspace. + + + + Gets or sets the b* component for this color. + + The b* component of this color. + The range for this value is defined by the Range property of the underlying Lab colorspace. + + + + Gets or sets the l component for this color. + + The l component of this color. + The acceptable range for this value is [0.0 100.0]. 0.0 means the darkest color that can be achieved, and 100.0 means the lightest color. + + + + Represents a Lab colorspace + + + + + Initializes a new instance of the class. + + + + + Gets or sets BlackPoint + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the Range + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the white point + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. + + + + Represents a separation color, based on a separation colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + The acceptable range for this value is [0.0 1.0]. 0.0 means the lightest color that can be achieved, and 1.0 means the darkest color. + + + + The acceptable range for this value is [0.0 1.0]. 0.0 means the lightest color that can be achieved, and 1.0 means the darkest color. + + + + + Represents a separation colorspace + + + + + Initializes a new instance of the PdfSeparationColorSpace class. + + The name of the colorant + The base color to be used + + + + The base color to be used. + + + + + Gets or sets the alternate color spaces. + + The alternate color space to be used when the destination device does not support separation colorspace. + + + + The name of the colorant. + + + + + Gets or sets the tint transform function for the this colorspace. + + Tint transform function for the colorspace. + + + + Get the profile data. + + The profile data + + + + original glyph bounds + + + + + glyph info has only essential layout detail (this is our extension) + + + + + TrueType outline, offset glyph points + + + + + + + + TrueType outline, transform normal + + + + + + + + + + TrueType outline glyph clone + + + + + + + + append data from src to dest, dest data will changed*** + + + + + + + Initializes a new instance of the class. + + + + + Gets the identity matrix. + + The identity matrix. + + + + Element (1,1) + + + + + Element (1,2) + + + + + Element (2,1) + + + + + Element (2,2) + + + + + Element (3,1) + + + + + Element (3,2) + + + + + Initializes a new instance of the struct. + + The value that will be assigned to all components. + + + + Initializes a new instance of the struct. + + The value to assign at row 1 column 1 of the matrix. + The value to assign at row 1 column 2 of the matrix. + The value to assign at row 2 column 1 of the matrix. + The value to assign at row 2 column 2 of the matrix. + The value to assign at row 3 column 1 of the matrix. + The value to assign at row 3 column 2 of the matrix. + + + + SharpFont's TrueType Interpreter + + + + + read float, 2.14 format + + + + + + + 16.16 float format + + + + + + + Description of Glyph. + + + + + Description of GlyphMatrix. + + + + + Max width value. + + + + + Description of IFont. + + + + + Description of Glyph. + + + + + Description of TrueTypeFont. + + + + + Get the outline glyph for glyph of a given character code and name. + + + + + + + Gets the path to determine wherther you need to move the point ,return results + + character path + int startIndex + int endIndex + + + + + Recalculate line values + + + + + Get metric data from Table_hmtx.longHorMetric table + + + + + + + Convert character original data to glyph + + + + + + + + + Converter GlyphData to path + + + + + + + + + modify glyphPointF + + + + + + + + + Convert to original data to glyphData + + + + + + + matrix apply to glyph + + + + + + + + Render a simple glyf + + int glyphId + Table_glyf.header header + + + + + Get a empty outlineGlyph + + + + + + It is east asian char? + + + + + + + Get the bytes count consume form char codes string. + + The code space range list + The bytes count. + + + + Get the part matched code space ranges. + + + The code sapce ranges + + + + + + + + + + + + get the name of a glyph from its encoding value (NOT the character + + + + + + + Writes short value into the font stream + + Short value to be written + + + + Writes integer value into the font stream + + Integer value to be written + + + + Writes string value into the font stream + + String value to be written + + + + Write the bytes into the font stream + + byte array to be written + + + + Values for platformID + + + + + + Values for platformSpecificID if platform is Mac + + + + + + Values for platformSpecificID if platform is Unicode + + + + + + Values for language ID if platform is Mac + + + + + + Values for nameID + + + + + + Font dictionary. + + + + + Get the origin subtyep. + + The origin subtyep. + + + + Recreate an new unicode char + + The old char + A new unicode char + + + + Get Cmap by MapName + + + + + + + This outputs individual glyph index to character code mapping for each char. + If you are doing any work on CMap, you need to open the resulting file in Adobe Reader, + select and copy text, paste it to notepad and see if it was correctly mapped to characters. + It is especially important to do so for TestUnicode.doc. + + + + + + + Get the glyph id. + + The character id + The glyph id + + + + Get the outline of a character given the character name or src char + + + + + + + + + + It is TYPE_CMAP or TYPE_ENCODING? + + + + + + Get a glyph outline by glyphId + + + + + + + Get a glyph outline by glyphId or name + + + + + + + + + + + + + + + + + + + + + + + + + custom coordinate point + + + + + a cache of glyphs indexed by character + + + + + Character Spacing width + + + + + Set Character Spacing width + + + + + Get the glyph for a given character code and name + + the character code of this glyph + the name of this glyph or null if unknown + the name of this glyph or null if unknown + TypeEncodingCmap type + a glyph for this character + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + A class for performing LZW decoding. + + + Method to decode LZW compressed data. + The compressed data + Array to return the uncompressed data in + The number of rows the compressed data contains + The decoded data + + + Initialize the string table. + + + Write out the string just uncompressed. + the byte string for uncompressed write out + + + Add a new string to the string table. + + the byte string at the end of which the new string + will be written and which will be added to the string table + + the byte to be written to the end of the old string + + + Add a new string to the string table. + the byte string which will be added to the string table + + + Append newString to the end of oldString. + the byte string at the end of which the new string will be written + the byte to be written to the end of the old string + the byte string which is the sum of the new string and the old string + + + + The number of bits used to represent each color component + + + + + fail (by default) + + + + + return something successfully read + + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + + Summary description for DeflaterOutputStream. + + + + + Provides color caching + + + + + Provides color caching of last color + + + + + specify image quality level + + + + + default quality + + + + + high quality + + + + + find text ignorecase + + + + + Set find text + + + + + find text color + + + + + draw border pen + + + + + Initialize the page. + + The page + The needparsing + + + + Whether this page is blank. + + if blank ,return true,or false + + + + Whether this page content is blank. + + + + + + + Dispose the resources. + + + + + Dispose resource. + + The disposing + + + + Provides image render events + + + + + + + Converts an angle in degrees to radians. + + Double value of angle in degrees to convert. + The value of the angle in radians. + + + + Converts an angle in radians to degrees. + + Double value of angle in radians to convert. + The value of the angle in degrees. + + + + Bug3009,baseimage color and annot image color multiply,for annot + + + + + + + + bitmap ,rgb model to cmyk model + + + + + + + Apply the mask when the mask format is PdfArray. + + + + + + + + Apply the mask when the mask format is PdfString. + + + + + + + + According to Path to determine whether it is a straight line. If All points of X or Y are equal, then is is a straight line + + + + + + + Parse pdf array to rgb components. + + The pdf array + + + + Get Ff value from annotation dictionary + + The annotation dictionary + + + + + Get FT value from annotation dictionary + + The annotation dictionary + + + + + Parse annotation opt item to dictionary. + + The annotation dictionary + + + + + Get V value from annotation dictionary + + + + + + + More than two offsets + + string strOffset) + one offset + + + + Destructor + + + + + Clean up Memory + + + + + Creates the I font. + + Name of the font. + + + + + Match Font by fontName + + + + + + + + Add fake font to private list. + + + + + + Measure string width which the font dictionary has no width entry. + + The text string + The font size + The text sacle + The string width + + + + Get glyph by cid. + + The cid + The glyph + + + + Get the glyph id. + + The character ID + The glyph id + + + + Get descendant font. + + The descendant font + + + + Draw text of embed font to page + + Render object + + + + + + When the font has no encoding entry ,or the font descriptor`s symbolic flag + is set , which case should use the character code mapping glyph description + from the subtable + + if has no encoding entry or set symbolic flag return true + + + + Collects all the Pattern elements in the pdf document + + containing all the resources of the document + dictionary of Pattern elements + + + + Handle the text annotation widget multiline + + the anntation + the true type font + the rectangle + a text rectangle + + + + Get opttion value from PdfArray + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bug654 + + + + + + + + get PdfRecordCollection from resources + + + + + + + 根据dpi缩放后的图片 + + + + + + + + + Render inline image. + + + + + + + for Ap Resources + + + + + + + draw only a single comment + + + + + specify the quality level of decode image + + + + + specify if the Decoder if for SMask image + + + + + specify the quality level of decode image + + + + + get columns from DecodeParms + + + + + get colors from DecodeParms + + + + + Get decode arrays or softmask image from image dictionary + + + + + Get decode arrays or mask image from image dictionary + + + + + Gets Image mask. + + + + + Load image from stream. + + + + + + + Get element data from decode arrays + + + + + + + Stream stream,Bug_337 + + + + + + + Get the image decode array. + + The image decode array + + + + + + + + + + + + + + + Get deviceGray image for Filter LZWDecode + + + + + + + Get Bitmap Stream from DeviceGray Color Space + + PDFColorSpace colorspace + Stream data + int grayWidth + int grayHeight + bool mask + + + + + Get Bitmap Stream from DeviceGray Color Space + + image Stream + bool mask + + + + + Get color space name + + + + + + + + Parse colorspace. + + The colorspace + The list + + + + Get inline image colorspace. + + The colorspace + The pdf array + + + + + + + + + + + + Clip path + + + + + Determine whether there is Tj in front of Td,TD,cm,T* ,TL,Tw,Tc,Tz. if not ,you need to calculate the translation + + + + + Save the translation data + + + + + From BT,save the current Tm matrix + + + + + mapping Transform from user space to device space + + + + + mapping Transform from default user space to user space + + + + + Text leading + + + + + horizontal scaling + + + + + word spacing + + + + + Current text element + + + + + Character spacing. + + + + + Colorspace table of page resource + + + + + Pattern table of page resource + + + + + + + + + + Gets or sets the isprint. + + + + + set Box Rectangle,when dictionary FT=Tx + + + + + set FT type from form field + + + + + mapping Transform from user space to device space + + + + + Mapping transform from default user space to user space + + + + + pdf to image,reference bitmap + Bug3009,draw annot,annot is image and BM is Multiply,need backgroundimage and annot image is Multiply + + + + + Extract Signature As Images + + + + + + + Checking and processing number string. + + The curve + The points + + + + Set Rectangle from pdf command. + + + + + + Checking whether the string number is valid ,if true , processing the number. + + The number of string format + if vailded,return true,or false + + + + Checking whether the string number array is valid ,if true , processing the number. + + The array number of string format + if vailded,return true,or false + + + + Set Rectangle path from pdf command. + + + + + + set BBox for Form object. + + + + + + Apply Color + + + + + + + + + Checking and processing points. + + The points + The points + + + + Set page RotateAngle + + Current Pdf Page + + + + scale + + + + + + + + + + apply the line dash pattern + + the pen + + + + when the only one element in dash pattern is 0 the line should be unvisible . + + the dash pattern + first element is zero return true or false + + + + Get the dash pattern + + + + + Fixed zero of gaps for dash pattern,if the gap is zero,it will not be diaplayed in dash lines. + + the dash pattern + the dash offset + + + + Remove zero value of blank cap in dash pattern. + + the dash pattern + the dashOffset + + + + Set the property of pen + + the pen + the dash pattern + the dash offset + + + + Fixed zero of dashes for dash pattern.if the dash is zero,defalut value is one device pixel. + + the dash pattern + the dash offset + the pen + + + + Convert pdf dash pattern to .net dash pattern + + the scaled pen width + the dash pattern + the pen width + + + + execute do command + + + + + + Draw Type3Font + + + + + + + Get Resources obj from Xobject + + + + + + + draw page content + + + + + draw page annot + + + + + Modify Bug1801,pdf to xps(false),font whether need dispose + + + + + Get the pdf annotation. + + The annotation dictionary + The pdf annotation + + + + Parse signle annotation + + IPdfPrimitive obj + + + + + + + + + + + get form field object + + + + + + read ap content from Parent + + + + + + + + + Execute pdf command. + + + + + + Get image bounds. + + + + + initialize annot state + + + + + Render text element + + text elements + token type + + + + Render text to pdf drawing context. + + + + + + + + + whether enable highLight for formField + + + + + Incorrect entry written to dictionary(写入字典的条目不正确,少了一些项,导致绘制AP内容不正确),Bug335,107 + + + + + + highLight color for form field + + + + + draw only a single comment + + + + + Draw all annotations for the current page,and highlight + + + /// + + + + Draw one annotation for the current page,and highlight + + + + + + + + draw button for combox + + + + + + draw ComboButton for combobox annot + + + + + + + + + Draw border for must input box + + + + + + Draw highlight for form field + + + + + + Need to draw highlight? + + + + + + Is it read-only? + + + + + + + Is it required, must have a value. + + + + + + + Get annotation location + + + + + + + specify the quality level of render image + + + + + Determine whether there is Tj in front of Td,TD,cm,T* ,TL,Tw,Tc,Tz. if not ,you need to calculate the translation + + + + + Save the translation data + + + + + horizontal scaling + + + + + + + + + + specify the quality level of render image + + + + + Set rectangle path from pdf command. + + + + + + Apply Color Space,Bug-654 + + + + + + + Render the option content + + The xobject element + + + + Render OCGs contents + + The ocgs dictionary + The xobject element + + + + + + + Get form Field Name + + + + + + + Parse the element in MK entry of annotation + + The element in MK entry + + + + Draw ap dictioanry. + + The annotation element + The annotation type + The rect + + + + Get the pdf annotation. + + The annotation dictionary + The pdf annotation + + + + Is valid annotation type. + + The annotation type + The is high light + Whether is display the annotation + If valid,return true,or false + + + + + + + + + + + + read ap content from Parent + + + + + + + + + + + + + + + + Add hyperlinks. + + The annotation elements + + + + Execute pdf command. + + + + + + Render text + + The token type + The structure + The decode text + The increase width + + + + Render text element + + text elements + token type + + + + Calculate the bytes count that mapping single glyph + + The pdf font sturucture + The bytes count + + + + Render text to a single character + + The font structure + The decoded text + The increase width + + + + Render text to a string + + The pdf font structure + The decode text + The increase width + + + + Spilt undecode bytes string + + The decode string + The structure + An array of undecode byte + + + + whether to render text as a single character + + The font structure + if the text is written vertically,return true,or fales + + + + Gets the presenter. + + The presenter. + + + + Graphic stats + + + + + Gets or sets current colorsapce. + + + + + Gets or sets Stroking colorsapce. + + + + + Append hyperlink. + + The rectanglef + The url + + + + word spacing + + + + + word spacing + + + + + Render text embed font or installed system font + + + + + + + + + + + + + + + Dispose ImageBrush + + + + + used in pdf2xps when it has pattern + + + + + Create the brush + + The byte array of image for PsTextureBrush + Image transform + The presenter type + + + + + + Create the brush. + + The hatch style. + The fore color. + The back color. + The presenter type. + + + + + Dispose ImageBrush + + + + + Initializes a new instance of the BrushLayer + + The byte array of image for PsTextureBrush + Image Transform + + + + Initializes a new instance of the BrushLayer. + + A rectangular region that defines the starting and ending points of the gradient. + Start Color. + End Color. + + + + Initializes a new instance of the BrushLayer + + The hatch style. + The fore color. + The back color. + + + + Append hyper link. + + The hyper link + + + + Destructor + + + + + Clean up Memory + + + + + Loads fonts. + + + + + + + Font cache. + + + + + Global font cache. + + + + + Current instance font cache. + + + + + Taged objects(String,ArrayList). + + + + + Construct instance. + + + + + Destruct instance. + + + + + Dispose instance resources. + + + + + Clear cache(except global cache). + + + + + Store object with tag. + A tag can corresponds to multiple objects. + + The taged object. + The taged object identity. + The tag. + + + + Get the objects by a tag. + + The tag. + + The dictionary(id,tagedObject) corresponding to the tag. + If not matched,return null. + + + + + Get the objects by a tag. + + The taged object identity. + The tag. + The object corresponding to the id and tag. + + + + Add a ttfont to cache. + + The ttfont. + The font family name. + The cache duration. + + + + Add a ttfont to cache. + + The ttfont data. + The font name. + The cache duration. + + + + Add a ttfont to cache. + + The ttfont data. + The font name. + The cache duration. + whether fonts are embedded or not + + + + Fetch the ttfont. + + The font family name. + The font style. + The substitute font family name. + + if not exist matched(substituted) font,return any font. + + + + + Font cache duration. + + + + + Living in the runtime of the program. + + + + + Only living in instance. + + + + + Gets the char code + + + + + Represents 10 byte series of numbers is used to describe the visual characteristics of a given typeface. + + + + + Gets the bounding box in design units of the font. + + + + + Get mPostscriptTtFontKey + + + + + Destructor + + + + + Clean up Memory + + + + + See http://www.microsoft.com/typography/otspec/vhea.htm for more info. + + + + + Container for part of APS tree which is related to the logical structure element. + + + + + Language of the container content. + + + Probably it is not the best place to store the content language. + But for now it is the easiest way to output the text language the same way as MW does. + + + + + APS container id. + + + + + The font strikeout. + + + + + Gets the width of the outline. + + + The width of the outline. + + + + + Content of text box. + + + + + Compares the floating number. + + The value1. + The value2. + The accuracy. + return 0,val1 equal val2;return 1,val1 greater than val2;return -1,val1 less than val2; + + + + Compares the double number. + + The value1. + The value2. + The accuracy. + return 0,val1 equal val2;return 1,val1 greater than val2;return -1,val1 less than val2; + + + + Font used for the 0..127 characters. + + This value is not used as , + may be it's better to create separate enum for character hints. + + + + Font used for the East Asian characters. + Also known as East Asian. + + + + + Font used for the Complex Script characters. + + + + + Font used for characters that do not fall into any of the above ranges. + Also known as High ASCII. + + + + + Converts an APS path or a clipping region into XPS Abbreviated Syntax. + The technique is the same as in PdfPathBuilder, but Syntax of path is different + + + + + 20.1.2.2.25 nvCxnSpPr (Non-Visual Properties for a Connection Shape) + 20.1.2.2.26 nvGraphicFramePr (Non-Visual Properties for a Graphic Frame) + 20.1.2.2.27 nvGrpSpPr (Non-Visual Properties for a Group Shape) + 20.1.2.2.28 nvPicPr (Non-Visual Properties for a Picture) + 20.1.2.2.29 nvSpPr (Non-Visual Properties for a Shape) + + + + + Reads 'cNvPr' Non-Visual Drawing Properties. + + + + + Calculates position offset of the textbox content. + + + + + Applies simplified blur to the image. + + + + + Writes blend mode. + + The blend mode. + + + + Writes an image to the PDF stream. + + + + + Writes an image to the PDF stream. + + + + + Get the pdf image data. + + The pdf image data. + + + + Occurs when end page. + + + + + Represents the method that will handle an event that with event data. + + The source of the event + args that contains event data + + + + PdfRendererEndPageEventArgs is the class containg event data. + + + + + Represents the current Pdf documnet. + + + + + Represents the current Pdf page. + + + + + Whether the image data is pdf hatch data. + + The pdf image + If the image data is pdf hatch data,return true ,or false. + + + + 如果是泰文字符串,调整Glyphs中的Text。用于组合字符被拆分在三个或者两个Glyphs对象中的情况 + + + + + + 获取当前Glyphs的下一个Glyphs,两个Glyphs不一定在同一个Parent中 + + + + + + + 是否是主体字符,主体字符上下可以叠加符合要求的字符 + + + + + + + 是否是可以叠加于主体字符之上的字符[帽子字符] + + + + + + + 是否是声调字符,这种字符可以叠加在主体上,当主体字符上叠加了[帽子字符]时,叠加在帽子字符上 + + + + + + + 实现两个Glyphs的组合字符拼接 + + 当前glyphs,提供其Text结尾的字符 + 下一个可用的glyphs,提供其Text的开始字符 + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Ps.XmlDocumentBuilder,IsValidXmlChar(char c) + + + + + + + Reverse y position. + + + + + + + + + + + Gets a value indicating whether The blank distance to the left + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the top + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the right + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the bottom + of the glyph relative to the origin[0,0]. + + + + + Gets the design width of the glygh. + + + + + Gets the actual width of the glygh. + + + + + Gets the left side bearing. + + + + + Gets the right side bearing. + + + + + Gets a value indicating whether this is empty. + + + + An identity transform is one in which the output coordinates are + always the same as the input coordinates. + If this transform is anything other than the identity transform, + the type will either be the constant GENERAL_TRANSFORM or a + combination of the appropriate flag bits for the various coordinate + conversions that this transform performs. + + + A translation moves the coordinates by a constant amount in x + and y without changing the length or angle of vectors. + + + A uniform scale multiplies the length of vectors by the same amount + in both the x and y directions without changing the angle between + vectors. + This flag bit is mutually exclusive with the TypeGeneralScale flag. + + + A general scale multiplies the length of vectors by different + amounts in the x and y directions without changing the angle + between perpendicular vectors. + This flag bit is mutually exclusive with the TypeUniformScale flag. + + + This constant is a bit mask for any of the scale flag bits. + + + This flag bit indicates that the transform defined by this object + performs a mirror image flip about some axis which changes the + normally right handed coordinate system into a left handed + system in addition to the conversions indicated by other flag bits. + A right handed coordinate system is one where the positive X + axis rotates counterclockwise to overlay the positive Y axis + similar to the direction that the fingers on your right hand + curl when you stare end on at your thumb. + A left handed coordinate system is one where the positive X + axis rotates clockwise to overlay the positive Y axis similar + to the direction that the fingers on your left hand curl. + There is no mathematical way to determine the angle of the + original flipping or mirroring transformation since all angles + of flip are identical given an appropriate adjusting rotation. + + + This flag bit indicates that the transform defined by this object + performs a quadrant rotation by some multiple of 90 degrees in + addition to the conversions indicated by other flag bits. + A rotation changes the angles of vectors by the same amount + regardless of the original direction of the vector and without + changing the length of the vector. + This flag bit is mutually exclusive with the TypeGeneralRotation flag. + + + This flag bit indicates that the transform defined by this object + performs a rotation by an arbitrary angle in addition to the + conversions indicated by other flag bits. + A rotation changes the angles of vectors by the same amount + regardless of the original direction of the vector and without + changing the length of the vector. + This flag bit is mutually exclusive with the + + + This constant is a bit mask for any of the rotation flag bits. + + + This constant indicates that the transform defined by this object + performs an arbitrary conversion of the input coordinates. + If this transform can be classified by any of the above constants, + the type will either be the constant TypeIdentity or a + combination of the appropriate flag bits for the various coordinate + conversions that this transform performs. + + + This constant is used for the internal state variable to indicate + that no calculations need to be performed and that the source + coordinates only need to be copied to their destinations to + complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the translation components of the matrix (m02 and m12) need + to be added to complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the scaling components of the matrix (m00 and m11) need + to be factored in to complete the transformation equation of + this transform. If the ApplyShear bit is also set then it + indicates that the scaling components are not both 0.0. If the + ApplyShear bit is not also set then it indicates that the + scaling components are not both 1.0. If neither the ApplyShear + nor the ApplyScale bits are set then the scaling components + are both 1.0, which means that the x and y components contribute + to the transformed coordinate, but they are not multiplied by + any scaling factor. + + + This constant is used for the internal state variable to indicate + that the shearing components of the matrix (m01 and m10) need + to be factored in to complete the transformation equation of this + transform. The presence of this bit in the state variable changes + the interpretation of the ApplyScale bit as indicated in its + documentation. + + + The X coordinate scaling element of the 3x3 + affine transformation matrix. + + + The X coordinate shearing element of the 3x3 + affine transformation matrix. + + + The X coordinate of the translation element of the + 3x3 affine transformation matrix. + + + The Y coordinate shearing element of the 3x3 + affine transformation matrix. + + + The Y coordinate scaling element of the 3x3 + affine transformation matrix. + + + The Y coordinate of the translation element of the + 3x3 affine transformation matrix. + + + This field keeps track of which components of the matrix need to + be applied when performing a transformation. + @see #ApplyIdentity + @see #ApplyTranslate + @see #ApplyScale + @see #ApplyShear + + + This field caches the current transformation type of the matrix. + @see #TypeIdentity + @see #TypeTranslation + @see #TypeUniformScale + @see #TypeGeneralScale + @see #TypeFlip + @see #TypeQuadrantRotation + @see #TypeGeneralRotation + @see #TypeGeneralTransform + @see #TypeUnknown + + + Manually recalculates the state of the transform when the matrix + changes too much to predict the effects on the state. + The following table specifies what the various settings of the + state field say about the values of the corresponding matrix + element fields. + Note that the rules governing the SCALE fields are slightly + different depending on whether the SHEAR flag is also set. +
+                                 SCALE            SHEAR          TRANSLATE
+                                m00/m11          m01/m10          m02/m12
+            
+             IDENTITY             1.0              0.0              0.0
+             TRANSLATE (TR)       1.0              0.0          not both 0.0
+             SCALE (SC)       not both 1.0         0.0              0.0
+             TR | SC          not both 1.0         0.0          not both 0.0
+             SHEAR (SH)           0.0          not both 0.0         0.0
+             TR | SH              0.0          not both 0.0     not both 0.0
+             SC | SH          not both 0.0     not both 0.0         0.0
+             TR | SC | SH     not both 0.0     not both 0.0     not both 0.0
+             
+
+ + This constant is used for the internal state variable to indicate + that the translation components of the matrix (m03, m13, m23) need + to be added to complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the scaling components of the matrix (m00, m11, m22) need + to be factored in to complete the transformation equation of + this transform. If the ApplyShear bit is also set then it + indicates that the scaling components are not all 0.0. If the + ApplyShear bit is not also set then it indicates that the + scaling components are not all 1.0. If neither the ApplyShear + nor the ApplyScale bits are set then the scaling components + are both 1.0, which means that the x, y and z components contribute + to the transformed coordinate, but they are not multiplied by + any scaling factor. + + + This constant is used for the internal state variable to indicate + that the shearing components of the matrix (m01, m02, m10, m12, m20, m21) + need to be factored in to complete the transformation equation of this + transform. The presence of this bit in the state variable changes the + interpretation of the ApplyScale bit as indicated in its documentation. + + + This constant is used for the internal state variable to indicate + that the projection components of the matrix (m30, m31, m32) need + to be factored in to complete the transformation equation of this + transform. + + + This constant is used for the internal state variable to indicate + that the overall scaling component of the matrix (m33) need to be + factored in to complete the transformation equation of this transform. + + + The X coordinate scaling element of the 4x4 + affine transformation matrix. + + + The YX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The XZ coordinate shearing element of the 4x4 + affine transformation matrix. + + + The X coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The YX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Y coordinate scaling element of the 4x4 + affine transformation matrix. + + + The YZ coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Y coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The ZX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The ZY coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Z coordinate scaling element of the 4x4 + affine transformation matrix. + + + The Z coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The X projection element of the 4x4 + affine transformation matrix. + + + The Y projection element of the 4x4 + affine transformation matrix. + + + The Z projection element of the 4x4 + affine transformation matrix. + + + The overall scaling element of the 4x4 + affine transformation matrix. + + + This field keeps track of which components of the matrix need to + be applied when performing a transformation. + @see #ApplyIdentity + @see #ApplyTranslate + @see #ApplyScale + @see #ApplyShear + @see #ApplyProjection + @see #ApplyOverallScale + + + Manually recalculates the state of the transform when the matrix + changes too much to predict the effects on the state. + + + + Blend transparency whith background color. + + background color + + + + Get MacOS font folders. + + + + + + 电子签章版本号 + + + + + 版本号 + + + + + 版本持有器 + + + + + 版本号 + + + + + 没有构造的对象 + + + + + + + 版本解析 + + + + + 解析电子印章版本 + + 带解析数据,可以是字节串也可以是ASN1对象 + 带有版本的ASN1对象序列 + + + + 解析电子签章数据版本 + + 带解析数据,可以是字节串也可以是ASN1对象 + 带有版本的ASN1对象序列 + + + + 厂商自定义数据 + + + + + 自定义扩展字段标识 + + + + + 自定义扩展字段是否关键 + + 默认值FALSE + + + + + + 自定义扩展字段数据值 + + + + + 自定义属性字段序列 + + + + + 电子印章数据 + + + + + 印章信息 + + + + + 制章人对印章签名的信息 + + + + + 印章图片信息 + + + + + 图片类型 + + 代表印章图片类型,如 GIF、BMP、JPG、SVG等 + + + + + + 印章图片数据 + + + + + 图片显示宽度,单位为毫米(mm) + + + + + 图片显示高度,单位为毫米(mm) + + + + + 印章属性信息 + + + + + 单位印章类型 + + + + + 个人印章类型 + + + + + 印章类型 + + 1 - 单位印章 + 2 - 个人印章 + + + + + + 印章名称 + + + + + 签章人证书列表 + + + + + 印章制做日期 + + + + + 印章有效起始日期 + + + + + 印章有效终止日期 + + + + + 头信息 + + + + + 电子印章数据结构版本号,V4 + + + + + 电子印章数据标识符 + 固定值"ES" + + + + + 电子印章数据标识符 + + 固定值"ES" + + + + + + 电子印章数据版本号标识 + + + + + 电子印章厂商ID + + 在互联互通时,用于识别不同的软件厂商实现 + + + + + + 印章信息 + + + + + 头信息 + + + + + 电子印章标识符 + + 电子印章数据唯一标识编码 + + + + + + 印章属性信息 + + + + + 电子印章图片数据 + + + + + 自定义数据 + + + + + 电子签章数据 + + + + + 待电子签章数据 + + + + + 电子签章中签名值 + + + + + 印章签名信息 + + + + + 代表对电子印章数据进行签名的制章人证书 + + + + + 代表签名算法OID标识 + + 遵循 GM/T 006 + + + + + + 制章人的签名值 + + 制章人对电子印章格式中印章信息SES_SealInfo、制章人证书、签名算法标识符按 SEQUENCE方式组成的信息内容的数字签名 + + + + + + 待电子签章数据 + + + + + 版本信息 + + + + + 电子印章 + + + + + 签章时间信息 + + 可以是时间戳,也可以是UTCTIME时间; + + + + + + 原文杂凑值 + + + + + 原文数据的属性信息 + + 如文档ID、日期、段落、原文内容的字节数、指示信息、签章保护范围等 + + + 自行定义 + + + + + + 签章人对应的签名证书 + + + + + 签名算法标识符 + + + + + 签章者证书杂凑值列表 + + + + + 签章者证书杂凑值 + + + + + 签章者证书杂凑值 + + + + + 自定义类型 + + + + + 证书杂凑值 + + + + + 签章者证书列表 + + + + + 电子印章数据 + + + + + 印章信息 + + + + + 制章人证书 + + + + + 签名算法标识符 + + + + + 签名值 + + + + + 签章者证书信息列表 + + + + + 签章者证书列表 + + + + + 签章者证书杂凑值列表 + + + + + 印章属性 + + + + + 签章者证书信息类型: 1 - 数字证书类型 + + + + + 签章者证书信息类型: 2 - 数字证书杂凑值 + + + + + 印章类型 + + + + + 印章名称 + + + + + 签章者证书信息类型 + + + + + 签章者证书信息列表 + + SES_CertList + + + + + + 印章制做日期 + + + + + 印章有效起始日期 + + + + + 印章有效终止日期 + + + + + 印章信息 + + + + + 头信息 + + + + + 电子印章标识符 + + 电子印章数据唯一标识编码 + + + + + + 印章属性信息 + + + + + 电子印章图片数据 + + + + + 自定义数据 + + + + + 电子签章数据 + + + + + 签章信息 + + + + + 签章者证书 + + + + + 签名算法标识 + + + + + 签名值 + + + + + 对签名值的时间戳【可选】 + + + + + 签章信息 + + + + + 电子印章版本号,与电子印章版本号保持一致 + + + + + 电子印章 + + + + + 签章时间 + + + + + 原文杂凑值 + + + + + 原文数据的属性 + + + + + 自定义数据 【可选】 + + + + + 动作序列 + + 图 19 大纲节点结构 + + + + + + 【必选】 + 增加 到动作列表 + + 当此大纲节点被激活时将执行的动作,关于动作的描述详见第 14 章 + + + + 动作 + this + + + + 【必选】 + 获取 动作列表 + + 当此大纲节点被激活时将依次执行的动作,关于动作的描述详见第 14 章 + + + + 动作 + + + + 跳转的目的书签 + + 表 53 跳转动作属性 + + + + + + 【必选 属性】 + 设置 目标书签的名称,引用文档书签中的名称 + + 目标书签的名称 + this + + + + 【必选 属性】 + 获取 目标书签的名称,引用文档书签中的名称 + + 目标书签的名称 + + + + 目标区域 + + 图 75 目标区域结构 + + + + + + 【必选 属性】 + 设置 目标区域的描述方法 + + 目标区域的描述方法 + this + + + + 【必选 属性】 + 获取 目标区域的描述方法 + + 目标区域的描述方法 + + + + 【必选】 + 设置 引用跳转目标页面的标识 + + 引用跳转目标页面的标识 + this + + + + 【必选】 + 获取 引用跳转目标页面的标识 + + 引用跳转目标页面的标识 + + + + 【可选】 + 设置 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + this + + + + 【可选】 + 获取 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + + + + 【可选】 + 设置 目标区域右上角 x坐标 + + 默认值为 0 + + + + 目标区域右上角 x坐标 + this + + + + 【可选】 + 获取 目标区域右上角 x坐标 + + 默认值为 0 + + + + 目标区域右上角 x坐标 + + + + 【可选】 + 设置 目标区域左上角 y坐标 + + 默认值为 0 + + + + 目标区域左上角 y坐标 + this + + + + 【可选】 + 获取 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + + + + 【可选】 + 设置 目标区域右下角 y坐标 + + 默认值为 0 + + + + 目标区域右下角 y坐标 + this + + + + 【可选】 + 获取 目标区域右下角 y坐标 + + 默认值为 0 + + + + 目标区域右下角 y坐标 + + + + 【可选】 + 设置 目标区域页面缩放比例 + + 为 0 或不出现则按照但前缩放比例跳转,可取值范围[0.1 64.0] + + + + 目标区域页面缩放比例 + this + + + + 【可选】 + 获取 目标区域页面缩放比例 + + 为 0 或不出现则按照但前缩放比例跳转,可取值范围[0.1 64.0] + + + + 目标区域页面缩放比例 + + + + 申明目标区域的描述方法 + + 表 54 目标区域属性 + + + + + + 目标区域由左上角位置(Left,Top) + 以及页面缩放比例(Zoom)确定 + + + + + 适合整个窗口区域 + + + + + 适合窗口宽度,目标区域由Top确定 + + + + + 适合窗口高度,目标区域由Left确定 + + + + + 适合窗口内的目标区域,目标区域为 + (Left,Top,Right,Bottom)所确定的矩形区域 + + + + + 获取目标区域实例 + + 类型字符串 + 实例 + + + + 跳转动作表明同一个文档内的跳转,包括一个目的区域 + 或书签位置 + + 图 74 跳转动作结构 + + + + + + 【必选】 + 设置 跳转的目的区域 + + 跳转的目的区域 + this + + + + 【必选】 + 设置 跳转的目标书签 + + 跳转的目标书签 + this + + + + 【必选】 + 获取 跳转动作的目标 + + 可能是 CT_Dest 或 Bookmark,可以使用instanceof判断类型并转换 + + + + 跳转动作的目标 + + + + 用于描述Goto的目的地 + + + + + Movie 动作用于播放视频。 + + 图 79 播放视频动作属性 + + + + + + 【必选 属性】 + 设置 引用资源文件中定义的视频资源标识 + + 引用资源文件中定义的视频资源标识 + this + + + + 【必选 属性】 + 获取 引用资源文件中定义的视频资源标识 + + 引用资源文件中定义的视频资源标识 + + + + 【可选 属性】 + 设置 放映参数 + + 默认值为 Play + + + + 放映参数,参见 + this + + + + 【可选 属性】 + 获取 放映参数 + + 默认值为 Play + + + + 放映参数,参见 + + + + 放映参数属性 + + 表 59 放映参数属性 + + + + + + 播放 + + + + + 停止 + + + + + 暂停 + + + + + 继续 + + + + + 根据字符串类型获取 实例 + + 放映参数字符串 + 实例 + + + + 附件动作 + + 附件动作表明打开当前文档内的一个附件 + + + 图 76 附件动作结构 + + + + + + 【必选 属性】 + 设置 附件的标识(xs:IDREF) + + 附件的标识(xs:IDREF) + this + + + + 【必选 属性】 + 获取 附件的标识(xs:IDREF) + + 附件的标识(xs:IDREF) + + + + 【可选 属性】 + 设置 是否在新窗口中打开 + + true - 新窗口中打开 + this + + + + 【可选 属性】 + 获取 是否在新窗口中打开 + + true - 新窗口中打开 + + + + 动作类型 + + 表 51 动作类型属性 + + + + + + 播放音频动作 + + Sound 动作表明播放一段音频 + + + 图 78 播放音频动作结构 + + + + + + 【必选 属性】 + 设置 引用资源文件中的音频资源标识符 + + 引用资源文件中的音频资源标识符 + this + + + + 【必选 属性】 + 获取 引用资源文件中的音频资源标识符 + + 引用资源文件中的音频资源标识符 + + + + 【可选 属性】 + 设置 播放音量,取值范围[0,100] + + 播放音量,取值范围[0,100] + this + + + + 【可选 属性】 + 获取 播放音量,取值范围[0,100] + + 播放音量,取值范围[0,100] + + + + 【可选 属性】 + 设置 此音频是否需要同步播放 + + 如果此属性为 true,则 Synchronous 值无效 + + + 默认值为 false + + + + true - 同步; false - 异步 + this + + + + 【可选 属性】 + 获取 此音频是否需要同步播放 + + 如果此属性为 true,则 Synchronous 值无效 + + + 默认值为 false + + + + true - 同步; false - 异步 + + + + 【可选 属性】 + 设置 是否同步播放 + + true 表示后续动作应等待此音频播放结束后才能开始, + false 表示立刻返回并开始下一个动作 + + + + true - 同步顺序播放;false - 立刻返回开始下一个动作 + this + + + + 【可选 属性】 + 获取 是否同步播放 + + true 表示后续动作应等待此音频播放结束后才能开始, + false 表示立刻返回并开始下一个动作 + + + + true - 同步顺序播放;false - 立刻返回开始下一个动作 + + + + URI 动作 + + 图 77 URI动作属性 + + + + + + 【必选 属性】 + 设置 目标URI的位置 + + 目标URI的位置 + this + + + + 【必选 属性】 + 设置 目标URI的位置 + + 目标URI的位置 + + + + 【可选 属性】 + 设置 Base URI,用于相对地址 + + Base URI,用于相对地址 + this + + + + 【可选 属性】 + 设置 Base URI,用于相对地址 + + Base URI,用于相对地址 + + + + 动作类型结构 + + 图 73 动作类型结构 + + + + + + 【必选 属性】 + 设置 事件类型 + + 触发动作的条件,事件的具体类型见表 52 + + + + 事件类型 + this + + + + 【必选 属性】 + 获取 事件类型 + + 触发动作的条件,事件的具体类型见表 52 + + + + 事件类型 + + + + 【可选】 + 设置 多个复杂区域为该链接对象的启动区域 + + 该参数不出现时以所在图元或页面的外接矩形作为启动区域,见 9.3 + + + + 多个复杂区域为该链接对象的启动区域 + this + + + + 【可选】 + 获取 多个复杂区域为该链接对象的启动区域 + + 该参数不出现时以所在图元或页面的外接矩形作为启动区域,见 9.3 + + + + 多个复杂区域为该链接对象的启动区域 或 null + + + + 【必选】 + 设置 动作 + + 动作 + this + + + + 【必选】 + 获取 动作 + + 可通过 instanceof 判断动作的具体类型 + + + + 动作实体 + + + + 事件类型 + + 参照 52 事件类型 + + + + + + 文档打开 + + + + + 页面打开 + + + + + 单击区域 + + + + + 根据字符串获取匹配类型实例 + + 事件名称,只能是 DO,PO,CLICK + 实例 + 未知类型事件 + + + + 注释入口文件 + + 注释是板式文档形成后附加的图文信息,用户可通过鼠标和键盘 + 与进行交互。本标准中,页面内容与注释内容是份文件描述的。 + 文件的注释在注释列表文件中按照页面进行组织索引,注释的内容 + 在分页注释文件中描述。 + + + 15.1 注释入口文件 图 80 表 60 + + + + + + 【可选】 + 增加 注释所在页 + + 注释所在页 + this + + + + 根据ID获取页面注解 + + 页面ID + null或注释所在页 + + + + @Date 2021 04 20 19 20 + @return + + + + + 注释 + + 15.2 图 81 表 61 + + + + + + 【必选 属性】 + 设置 注释的标识 + + 注释的标识 + this + + + + 【必选 属性】 + 获取 注释的标识 + + 注释的标识 + + + + 【必选 属性】 + 设置 注释类型 + + 具体取值见 + + + + 注释类型 + this + + + + 【必选 属性】 + 获取 注释类型 + + 具体取值见 + + + + 注释类型 + + + + 【必选 属性】 + 设置 注释创建者 + + 注释创建者 + this + + + + 【必选 属性】 + 获取 注释创建者 + + 注释创建者 + + + + 【必选 属性】 + 设置 最近一次修改的时间 + + 最近一次修改的时间 + this + + + + 【必选 属性】 + 获取 最近一次修改的时间 + + 最近一次修改的时间 + + + + 【可选 属性】 + 设置 注释子类型 + + 注释子类型 + this + + + + 【可选 属性】 + 获取 注释子类型 + + 注释子类型 + + + + 【可选 属性】 + 设置 表示该注释对象是否显示 + + 默认值为 true + + + + 表示该注释对象是否显示,默认值为 true + this + + + + 【可选 属性】 + 获取 表示该注释对象是否显示 + + 默认值为 true + + + + 表示该注释对象是否显示,默认值为 true + + + + 【可选 属性】 + 设置 对象的Remark 信息是否随页面一起打印 + + 默认值为 true + + + + 对象的Remark 信息是否随页面一起打印 + this + + + + 【可选 属性】 + 设置 对象的Remark 信息是否随页面一起打印 + + 默认值为 true + + + + 对象的Remark 信息是否随页面一起打印 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不随页面缩放而同步缩放 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面缩放而同步缩放 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不随页面缩放而同步缩放 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面缩放而同步缩放 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不随页面旋转而旋转 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面旋转而旋转 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不随页面旋转而旋转 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面旋转而旋转 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不能被用户更改 + + 默认值为 true + + + + 对象的 Remark 信息是否不能被用户更改 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不能被用户更改 + + 默认值为 true + + + + 对象的 Remark 信息是否不能被用户更改 + + + + 【可选】 + 设置 注释说明内容 + + 注释说明内容 + this + + + + 【可选】 + 获取 注释说明内容 + + 注释说明内容 + + + + 【可选】 + 增加 注释参数 + + 键名 + 值 + this + + + + 【可选】 + 获取 一组注释参数 + + 注解参数映射表 + + + + 【必选】 + 设置 注释的静态显示效果 + + 使用页面块定义来描述 + + + + 注释的静态显示效果 + this + + + + 【必选】 + 获取 注释的静态显示效果 + + 使用页面块定义来描述 + + + + 注释的静态显示效果 + + + + 注释类型取值 + + 15.2 表 62 + + + + + 连接注释 + + + + + 路径注释,一般为图形对象,比如矩形、多边形、贝塞尔曲线等 + + + + + 高亮注释 + + + + + 签章注释 + + + + + 水印注释 + + + + + 注释所在页 + + 15.1 注释入口文件 图 80 表 60 + + + + + + 【必选 属性】 + 设置 引用注释所在页面的标识 + + 引用注释所在页面的标识 + this + + + + 【必选 属性】 + 获取 引用注释所在页面的标识 + + 引用注释所在页面的标识 + + + + 【必选】 + 设置 指向包内的分页注释文件 + + 指向包内的分页注释文件 + this + + + + 【必选】 + 获取 指向包内的分页注释文件 + + 指向包内的分页注释文件 + + + + 注释的静态呈现效果 + + 使用页面块定义来描述 + + + 15.2 图 81 表 61 + + + + + + 【必选】 + 设置 边界 + + 附录 A.4 + + + + 边界 + this + + + + 【必选】 + + 边界 + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 分页注释文件 + + 15.2 图 81 表 61 + + + + + + 【必选】 + 增加 注释对象 + + 注释对象 + this + + + + 【必选】 + 获取 注释对象列表 + + 注释对象列表 + + + + 附件列表 + + 附件列表文件的入口点在 7.5 文档根节点中定义。 + 一个OFD文件可以定义多个附件,附件列表结构如图 91 所示。 + + + 20.1 附件列表 图 91 表 72 + + + + + + 【可选】 + 增加 附件 + + 附件 + this + + + + 【可选】 + 增加 附件列表 + + 附件列表 + + + + 附件 + + 20.2 附件 图 92 表 73 + + + + + + 【必选 属性】 + 设置 附件标识 + + 附件标识 + this + + + + 【必选 属性】 + 获取 附件标识 + + 附件标识 + + + + 【必选 属性】 + 设置 附件名称 + + 附件名称 + this + + + + 【必选 属性】 + 获取 附件名称 + + 附件名称 + + + + 【可选 属性】 + 设置 附件格式 + + 附件格式 + this + + + + 【可选 属性】 + 获取 附件格式 + + 附件格式 + + + + 【可选 属性】 + 设置 创建时间 + + 创建时间 + this + + + + 【可选 属性】 + 获取 创建时间 + + 创建时间 + + + + 【可选 属性】 + 设置 修改时间 + + 修改时间 + this + + + + 【可选 属性】 + 获取 修改时间 + + 修改时间 + + + + 【可选 属性】 + 设置 附件大小 + + 以KB为单位 + + + + 附件大小,以KB为单位 + this + + + + 【可选 属性】 + 获取 附件大小 + + 以KB为单位 + + + + 附件大小,以KB为单位 + + + + 【可选 属相】 + 设置 附件是否可见 + + 默认值为 true + + + + 附件是否可见 + this + + + + 【可选 属相】 + 获取 附件是否可见 + + 默认值为 true + + + + 附件是否可见 + + + + 【可选 属性】 + 设置 附件用途 + + 默认值为 none + + + + 附件用途 + this + + + + 【可选 属性】 + 获取 附件用途 + + 默认值为 none + + + + 附件用途 + + + + 【可选】 + 设置 附件内容在包内的路径 + + 附件内容在包内的路径 + this + + + + 【可选】 + 获取 附件内容在包内的路径 + + 附件内容在包内的路径 + + + + 本标准支持书签,可以将常用位置定义为书签, + 文档可以包含一组书签。 + + 7.5 图 11 书签结构 + + + + + 书签名称 + 书签对应的文档版位置 + + + + 【必选 属性】 + 设置 书签名称 + + 书签名称 + this + + + + 【必选 属性】 + 获取 书签名称 + + 书签名称 + + + + 【必选】 + 设置 书签对应的文档版位置 + + 见表 54 + + + + 书签对应的文档版位置 + this + + + + 【必选】 + 获取 书签对应的文档版位置 + + 见表 54 + + + + 书签对应的文档版位置 + + + + 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + + + 【必选】 + 增加 书签 + + 书签 + this + + + + 【必选】 + 获取 书签列表 + + 书签列表 + + + + 文档公共数据结构 + + ————《GB/T 33190-2016》 图 6 + + + + + + 【必选】 + 设置 当前文档中所有对象使用标识的最大值。 + 初始值为 0。MaxUnitID主要用于文档编辑, + 在向文档增加一个新对象时,需要分配一个 + 新的标识符,新标识符取值宜为 MaxUnitID + 1, + 同时需要修改此 MaxUnitID值。 + + 对象标识符最大值 + this + + + + 【必选】 + 获取 当前文档中所有对象使用标识的最大值 + + 当前文档中所有对象使用标识的最大值0 + + + + 【必选】 + 设置 该文档页面区域的默认大小和位置 + + 文档页面区域的默认大小和位置 + this + + + + 【必选】 + 获取 该文档页面区域的默认大小和位置 + + 该文档页面区域的默认大小和位置 + + + + 【可选】 + 设置 公共资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9,字形和颜色空间等宜在公共资源文件中描述 + + + + 公共资源序列 + this + + + + 【可选】 + 获取 公共资源序列 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9,字形和颜色空间等宜在公共资源文件中描述 + + + + 公共资源序列路径 + + + + 【可选】 + 设置 文件资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9, + 绘制参数、多媒体和矢量图像等宜在文件资源文件中描述 + + + + 公共资源序列 + this + + + + 【可选】 + 获取 文件资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9, + 绘制参数、多媒体和矢量图像等宜在文件资源文件中描述 + + + + 文件资源序列 路径 + + + + 【可选】 + 增加 模板页序列 + + 为一些列的模板页的集合,模板页内容机构和普通页相同,描述将7.7 + + + + 模板页序列 + this + + + + 【可选】 + 获取 模板页序列 + + 为一些列的模板页的集合,模板页内容机构和普通页相同,描述将7.7 + + + + 模板页序列 (可能为空容器) + + + + 【可选】 + 设置 引用在资源文件中定义的颜色标识符 + + 有关颜色空间的描述见 8.3.1。如果不存在此项,采用RGB作为默认颜色空间 + + + + 颜色空间引用 + this + + + + 【可选】 + 获取 引用在资源文件中定义的颜色标识符 + + 有关颜色空间的描述见 8.3.1。如果不存在此项,采用RGB作为默认颜色空间 + + + + 颜色空间引用 + + + + 页面区域结构 + + ————《GB/T 33190-2016》 图 7 + + + + + + 页面物理区域 创建区域 + + 页面物理区域 左上角X坐标 + 页面物理区域 左上角Y坐标 + 页面物理区域 宽度 + 页面物理区域 高度 + + + + 【必选】 + 设置 页面物理区域 + + 左上角为页面坐标系的原点 + + + + 页面物理区域 + this + + + + 【必选】 + 设置 页面物理区域 + + 左上角为页面坐标系的原点 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【必选】 + 获取 页面物理区域 左上角为页面坐标系的原点 + + 页面物理区域 + + + + 【可选】 + 设置 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 显示区域 + this + + + + 【可选】 + 设置 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 显示区域 + + + + 【可选】 + 设置 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 版心区域 + this + + + + 【可选】 + 设置 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 版心区域 + + + + 【可选】 + 设置 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 出血区域 + this + + + + 【可选】 + 设置 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 出血区域 + + + + 文档根节点 + Document.xml + + ————《GB/T 33190-2016》 图 5 + + + + + + + 【必选】 + 设置 文档公共数据 + + 定义了页面区域、公共资源 + + + + 文档公共数据 + this + + + + 【必选】 + 获取 文档公共数据 + + 定义了页面区域、公共资源 + + + + 文档公共数据 + + + + 【必选】 + 设置 页树 + + 有关页树的描述键 7.6 + + + + 页树 + this + + + + 【必选】 + 获取 页树 + + 有关页树的描述键 7.6 + + + + 页树 + + + + 【可选】 + 设置 大纲 + + 大纲 + this + + + + 【可选】 + 获取 大纲 + + 大纲 + + + + 【可选】 + 设置 文档的权限声明 + + 文档的权限声明 + this + + + + 【可选】 + 获取 文档的权限声明 + + 文档的权限声明 + + + + 【可选】 + 设置 文档关联的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 文档关联的动作序列 + this + + + + 【可选】 + 获取 文档关联的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 文档关联的动作序列 + + + + 【可选】 + 设置 文档的视图首选项 + + 文档的视图首选项 + this + + + + 【可选】 + 获取 文档的视图首选项 + + 文档的视图首选项 + + + + 【可选】 + 设置 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + 文档的书签集 + this + + + + 【可选】 + 获取 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + 文档的书签集 + + + + 【可选】 + 设置 指向注释列表的文件 + + 有关注释描述见第 15 章 + + + + 指向注释列表的文件路径 + this + + + + 【可选】 + 获取 指向注释列表的文件 + + 有关注释描述见第 15 章 + + + + 指向注释列表的文件路径 + + + + 【可选】 + 设置 指向自定义标引列表文件 + + 有关自定义标引描述见第 16 章 + + + + 指向自定义标引列表文件路径 + this + + + + 【可选】 + 获取 指向自定义标引列表文件 + + 有关自定义标引描述见第 16 章 + + + + 指向自定义标引列表文件路径 + + + + 【可选】 + 设置 指向附件列表文件 + + 有关附件描述见第 20 章 + + + + 指向附件列表文件路径 + this + + + + 【可选】 + 获取 指向附件列表文件 + + 有关附件描述见第 20 章 + + + + 指向附件列表文件路径 + + + + 【可选】 + 设置 指向扩展列表文件 + + 有关扩展列表文件见第 17 章 + + + + 指向扩展列表文件路径 + this + + + + 【可选】 + 设置 指向扩展列表文件 + + 有关扩展列表文件见第 17 章 + + + + 指向扩展列表文件路径 + + + + 本标准支持设置文档权限声明(Permission)节点,以达到文档防扩散等应用目的。 + 文档权限声明结构如 图 9 所示。 + + 7.5 小节 CT_Permission + + + + + + 【可选】 + 设置 是否允许编辑 + + 默认值为 true + + + + true - 允许编辑; false - 不允许编辑 + this + + + + 【可选】 + 获取 是否允许编辑 + + 默认值为 true + + + + true - 允许编辑; false - 不允许编辑 + + + + 【可选】 + 设置 是否允许添加或修改标注 + + 默认值为 true + + + + true - 允许添加或修改标注; false - 不允许添加或修改标注 + this + + + + 【可选】 + 获取 是否允许添加或修改标注 + + 默认值为 true + + + + true - 允许添加或修改标注; false - 不允许添加或修改标注 + + + + 【可选】 + 设置 是否允许导出 + + 默认值为 true + + + + true - 允许导出; false - 不允许导出 + this + + + + 【可选】 + 获取 是否允许导出 + + 默认值为 true + + + + true - 允许导出; false - 不允许导出 + + + + 【可选】 + 设置 是否允许进行数字签名 + + 默认值为 true + + + + true - 允许进行数字签名; false - 不允许进行数字签名 + this + + + + 【可选】 + 获取 是否允许进行数字签名 + + 默认值为 true + + + + true - 允许进行数字签名; false - 不允许进行数字签名 + + + + 【可选】 + 设置 是否允许添加水印 + + 默认值为 true + + + + true - 允许添加水印; false - 不允许添加水印 + this + + + + 【可选】 + 获取 是否允许添加水印 + + 默认值为 true + + + + true - 允许添加水印; false - 不允许添加水印 + + + + 【可选】 + 设置 是否允许截屏 + + 默认值为 true + + + + true - 允许截屏; false - 不允许截屏 + this + + + + 【可选】 + 获取 是否允许截屏 + + 默认值为 true + + + + true - 允许截屏; false - 不允许截屏 + + + + 【可选】 + 设置 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + + 打印权限 + this + + + + 【可选】 + 获取 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + + 打印权限 + + + + 【可选】 + 设置 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + + 有效期 + this + + + + 【可选】 + 获取 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + + 有效期 + + + + 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + 7.5 图 9 文档权限声明结构 + + + + + + 【可选 必选】 + 设置 是否允许被打印 + + 默认值为 true + + + + true - 允许被打印; false - 不允许被打印 + this + + + + 【可选 必选】 + 获取 是否允许被打印 + + 默认值为 true + + + + true - 允许被打印; false - 不允许被打印 + + + + 【可选 属性】 + 设置 打印份数 + + 在 Printable 为 true 时有效,若 Printable 为 true + 并且不设置 Copies 则打印份数不受限,若 Copies 的值为负值时, + 打印份数不受限,当 Copies 的值为 0 时,不允许打印,当 Copies的值 + 大于 0 时,则代表实际可打印的份数值。 + + + 默认值为 -1 + + + + 可打印的份数 + this + + + + 【可选 属性】 + 获取 打印份数 + + 在 Printable 为 true 时有效,若 Printable 为 true + 并且不设置 Copies 则打印份数不受限,若 Copies 的值为负值时, + 打印份数不受限,当 Copies 的值为 0 时,不允许打印,当 Copies的值 + 大于 0 时,则代表实际可打印的份数值。 + + + 默认值为 -1 + + + + 可打印的份数 + + + + 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + 7.5 图 9 文档权限声明结构 + + + + + + 【可选 属性】 + 设置 有效期开始日期 + + 有效期开始日期 + this + + + + 【可选 属性】 + 获取 有效期开始日期 + + 有效期开始日期 + + + + 【可选 属性】 + 设置 有效期结束日期 + + 有效期结束日期 + this + + + + 【可选 属性】 + 获取 有效期结束日期 + + 有效期结束日期 + + + + 视图首选项 + + 本标准支持设置文档视图首选项(VPreferences)节点,以达到限定文档初始化视图 + 便于阅读的目的。 + + + 7.5 图 10 视图首选项结构s + + + + + + 【可选】 + 设置 窗口模式 + + 可选的模式列表,请参考 + + + 默认值为 None + + + + 窗口模式 + this + + + + 【可选】 + 获取 窗口模式 + + 可选的模式列表,请参考 + + + 默认值为 None + + + + 窗口模式 + + + + 【可选】 + 设置 页面布局模式 + + 可选的模式请参考 + + + 默认值为 OneColumn + + + + 页面布局模式 + this + + + + 【可选】 + 获取 页面布局模式 + + 可选的模式请参考 + + + 默认值为 OneColumn + + + + 页面布局模式 + + + + 【可选】 + 设置 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + + 标题栏显示模式 + this + + + + 【可选】 + 获取 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + + 标题栏显示模式 + + + + 【可选】 + 设置 是否隐藏工具栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏工具栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 是否隐藏菜单栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏菜单栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 是否隐藏主窗口之外的其他窗口组件 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏主窗口之外的其他窗口组件 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 文档自动缩放模式 + + 参考值 + + + + 文档自动缩放模式 + this + + + + 【可选】 + 设置 文档的缩放率 + + 文档的缩放率 + this + + + + 【可选】 + 获取 具体的缩放处理方式和值 + + 具体的缩放处理方式和值 + + + + 页面布局 + + 7.5 表 9 视图首选项 + + + + + + 单页模式 + + + + + 单列模式 + + + + + 对开模式 + + + + + 对开连续模式 + + + + + 对开靠右模式 + + + + + 对开连续靠右模式 + + + + + 窗口模式 + + 7.5 表 9 视图首选项属性 + + + 默认值为 None + + + + + + 常规模式 + + + + + 开开后全文显示 + + + + + 同时呈现文档大纲 + + + + + 同时呈现缩略图 + + + + + 同时呈现语义结构 + + + + + 同时呈现图层 + + + + + 同时呈现附件 + + + + + 同时呈现书签 + + + + + 获取窗口模式实例 + + 模式名称 + 实例 + + + + 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + 7.5 表 9 视图首选项 + + + + + + 文件名称 + + + + + 呈现元数据中的 Title 属性 + + + + + 文档的缩放率 + + 7.5 表 9 视图首选项 + + + + + + 设置 文档的缩放率 + + 文档的缩放率 + this + + + + 获取 文档的缩放率 + + 文档的缩放率 + + + + 自动缩放模式 + + 默认值为 Default + + + 7.5 表 9 视图首选项 + + + + + + 默认缩放 + + + + + 合适高度 + + + + + 合适宽度 + + + + + 合适区域 + + + + + 获取 自动缩放模式类型 + + 类型参考 + + 自动缩放模式类型 + + + + 获取工厂方式枚举的实例 + + 自动缩放模式类型 + 自动缩放模式 + + + + 缩放比例选择对象基类 + + + + + 文件对象入口,可以存在多个,以便在一个文档中包含多个版式文档 + + + + + 文档根节点文档名称 + + + + + 【必选】 + 设置文档元数据信息描述 + + 文档元数据信息描述 + this + + + + 【必选】 + 获取文档元数据信息描述 + + 文档元数据信息描述 或null + + + + 【可选】 + 设置指向文档根节点文档 + + 指向根节点文档路径 + this + + + + 【可选】 + 获取指向文档根节点文档路径 + + 指向文档根节点文档路径 + + + + 【可选】 + 获取 包含多个版本描述节点,用于定义文件因注释和其他改动产生的版本信息,见第19章 + + 版本序列 + this + + + + 【可选】 + 获取 包含多个版本描述序列 + + 包含多个版本描述序列 + + + + 【可选】 + 设置 指向该文档中签名和签章结构的路径 (见18章) + + 指向该文档中签名和签章结构的路径 + this + + + + 【可选】 + 获取 指向该文档中签名和签章结构的路径 + + 指向该文档中签名和签章结构的路径 + + + + 文档元数据信息描述 + + + + + 【必选】 + 设置文件标识符,标识符应该是一个UUID + + UUID文件标识 + this + + + + 随机产生一个UUID作为文件标识符 + + this + + + + 【必选】 + 采用UUID算法生成的由32个字符组成的文件标识。每个DocID在 + 文件创建或生成的时候进行分配。 + + 文件标识符 + + + + 【可选】 + 设置文档标题。标题可以与文件名不同 + + 标题 + this + + + + 【可选】 + 获取文档标题。标题可以与文件名不同 + + 档标题 + + + + 【可选】 + 设置文档作者 + + 文档作者 + this + + + + 【可选】 + 获取文档作者 + + 文档作者 + + + + 【可选】 + 设置文档主题 + + 文档主题 + this + + + + 【可选】 + 获取文档主题 + + 文档主题 + + + + 【可选】 + 设置文档摘要与注释 + + 文档摘要与注释 + this + + + + 【可选】 + 获取文档摘要与注释 + + 文档摘要与注释 + + + + 【可选】 + 设置文件创建日期 + + 文件创建日期 + this + + + + 【可选】 + 获取文件创建日期 + + 创建日期 + + + + 【可选】 + 设置文档最近修改日期 + + 文档最近修改日期 + this + + + + 【可选】 + 获取文档最近修改日期 + + 文档最近修改日期 + + + + 【可选】 + 文档分类,可取值如下: + + Normal——普通文档 + + + EBook——电子书 + + + ENewsPaper——电子报纸 + + + EMagzine——电子期刊 + + + 默认值为 Normal + + + + 文档分类 + this + + + + 【可选】 + 获取文档分类 + + 默认值为 Normal + + + + 文档分类 + + + + 【可选】 + 设置文档封面,此路径指向一个图片文件 + + 文档封面路径 + this + + + + 【可选】 + 获取文档封面,此路径指向一个图片文件 + + 文档封面路径 + + + + 【可选】 + 设置关键词集合 + 每一个关键词用一个"Keyword"子节点来表达 + + 关键词集合 + this + + + + 添加关键词 + + 关键词 + this + + + + 【可选】 + 获取关键词集合 + + 关键词集合或null + + + + 【可选】 + 设置创建文档的应用程序 + + 创建文档的应用程序 + this + + + + 【可选】 + 获取创建文档的应用程序 + + 创建文档的应用程序或null + + + + 【可选】 + 设置创建文档的应用程序版本信息 + + 创建文档的应用程序版本信息 + this + + + + 【可选】 + 获取创建文档的应用程序版本信息 + + 创建文档的应用程序版本信息或null + + + + 【可选】 + 设置用户自定义元数据集合。其子节点为 CustomData + + 用户自定义元数据集合 + this + + + + 【可选】 + 获取用户自定义元数据集合。其子节点为 CustomData + + 用户自定义元数据集合 + + + + 用户自定义元数据,可以指定一个名称及其对应的值 + + @author 权观宇 + @since 2019-10-01 07:38:27 + + + + + 自定元数据 + + 元数据名称 + 元数据值 + + + + 【必选】 + 获取元数据名称 + + 默认获取第一个属性作为元数据名称 + + + + 元数据名称(Name) + + + + 【必选 属性】 + 设置元数据名称 + 元数据名称(Name) + this + + + + 获取元数据值 + + 元数据值 + + + + 设置元数据的值 + + 元数据值 + this + + + + 用户自定义元数据集合。其子节点为 CustomData + + + + + 【必选】 + 增加用户自定义元数据 + + 用户自定义元数据名称 + 用户自定义元数据值 + this + + + + 【必选】 + 增加用户自定义元数据 + + 用户自定义元数据 + this + + + + 【必选】 + 获取自定义元数据集合 + + 自定义元数据集合 + + + + 获取用户自定义元数据值 + + 元数据名称 + 元数据值 + + + + 文档分类 + + + + + 普通文档 + + + + + 电子书 + + + + + 电子报纸 + + + + + 电子期刊 + + + + + * + 获取文档分类示例 + + 默认值: Normal + 文档分类值 + 实例 + + + + 关键词集合,每一个关键词用一个"Keyword"子节点来表达 + + 表 4 文档元数据属性 + + + + + + 【必选】 + 增加关键字 + + 关键字 + this + + + + @Date 2021 04 20 19 15 + @return + + + + + 主入口 + + OFD.xml + ————《GB/T 33190-2016》 图 3 + + + + + + 【必选】 + 文件格式的版本号 + + 固定值: 1.0kd + + + 参照表 3 + + + + + + 【必选】 + 文件格式子集类型,取值为"OFD",表明此文件符合本标准。 + + + + + 文件对象入口列表创建文档对象 + + 文件对象入口序列 + + + + 文件对象入口创建文档对象 + + 文件对象入口 + + + + 【必选 属性】文件格式版本号,取值为"1.0" + + 文件格式版本号 + + + + 【必选 属性】文件格式子集类型,取值为"OFD",表明此文件符合本标准。 + + OFD + + + + 【必选】增加文件对象入口。 + 文件对象入口,可以存在多个,以便在一个文档中包含多个版式文档 + + 文件对象入口 + this + + + + 【必选】 获取第一个文档入口 + + 文件对象入口(如果有多个则获取第一个) + + + + 获取指定序号的文档 + + 文档序号,从0起 + 文件对象入口(如果有多个则获取第一个) + + + + 获取所有文档入口 + + 所有文档入口 + + + + 大纲节点 + + 图 19 大纲节点结构 + + + + + + 【必选 属性】 + 设置 大纲节点标题 + + 大纲节点标题 + this + + + + 【必选 属性】 + 获取 大纲节点标题 + + 大纲节点标题 + + + + 【可选 属性】 + 设置 该节点下所有叶节点的数目参考值 + + 应该根据该节点下实际出现的子节点数为准 + + + 默认值为 0 + + + + 该节点下所有叶节点的数目参考值 + this + + + + 【可选 属性】 + 获取 该节点下所有叶节点的数目参考值 + + 应该根据该节点下实际出现的子节点数为准 + + + 默认值为 0 + + + + 该节点下所有叶节点的数目参考值 + + + + 【可选 属性】 + 在有子节点存在时有效,如果为 true, + 表示该大纲在初始状态下展开子节点; + 如果为 false,则表示不展开 + + 默认值为 true + + + + true - 展开; false - 不展开 + this + + + + 【可选 属性】 + 在有子节点存在时有效,如果为 true, + 表示该大纲在初始状态下展开子节点; + 如果为 false,则表示不展开 + + 默认值为 true + + + + true - 展开; false - 不展开 + + + + 【可选】 + 设置 当此大纲节点被激活时执行的动作序列 + + 动作序列 + this + + + + 【可选】 + 获取 当此大纲节点被激活时执行的动作序列 + + 动作序列,可能为null + + + + 【可选】 + 增加 大纲子节点 + + 该节点的子大纲节点。层层嵌套,形成树状结构 + + + + 大纲子节点 + this + + + + 【可选】 + 获取 该大纲下所有子节点 + + 该节点的子大纲节点。层层嵌套,形成树状结构 + + + + 该大纲下所有子节点 + + + + 大纲按照树形结构进行组织 + + 图 18 大纲节点结构 + + + + + + 【必选】 + 增加 大纲节点 + + 大纲节点 + this + + + + @Date 2021 04 20 19 13 + @return + + + + + 页面内容描述,该节点不存在是,表示空白页面 + + 7.7 页面对象 表 12 + + + + + + 【必选】 + 增加 层节点 + + 一页可以包含一个或多个层 + + + 注意:每个加入的层节点必须设置 ID属性。 + + + + 层节点 + this + 加入的图层对象(CT_Layer)没有设置ID属性 + + + + 【必选】 + 获取 层节点列表 + + 一页可以包含一个或多个层 + + + 注意:每个加入的层节点必须设置 ID属性。 + + + + 层节点 + + + + 模板页 + + ————《GB/T 33190-2016》 图 14 + + + + + + 【必选 属性】 + 设置 模板页的标识符,不能与已有标识符重复 + + 模板页的标识符 + this + + + + 【必选 属性】 + 获取 模板页的标识符,不能与已有标识符重复 + + 模板页的标识符 + + + + 【可选 属性】 + 设置 模板页名称 + + 模板页名称 + this + + + + 【可选 属性】 + 获取 模板页名称 + + 模板页名称 + + + + 【可选 属性】 + 设置 模板页的默认视图类型 + + 其类型描述和呈现顺序与 Layer中 Type的描述和处理一致,见表 15 + 如果页面引用的多个模板的次属性相同,则应根据引用的顺序来显示 + 先引用者先绘制 + + + 默认值为 Background + + + + 模板页的默认视图类型 + this + + + + 【可选 属性】 + 获取 模板页的默认视图类型 + + 其类型描述和呈现顺序与 Layer中 Type的描述和处理一致,见表 15 + 如果页面引用的多个模板的次属性相同,则应根据引用的顺序来显示 + 先引用者先绘制 + + + 默认值为 Background + + + + 模板页的默认视图类型 + + + + 【可选 属性】 + 设置 指向模板页内容描述文件 路径 + + 指向模板页内容描述文件 路径 + this + + + + 【可选 属性】 + 获取 指向模板页内容描述文件 路径 + + 指向模板页内容描述文件 路径 + + + + 复合对象 + + 见 第 13 章 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像标识 + + 引用资源文件中定义的矢量图像标识 + this + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像标识 + + 引用资源文件中定义的矢量图像标识 + + + + 页块结构 + + 可以嵌套 + + + 7.7 页对象 图 17 表 16 + + + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 【可选】 + 获取 当前页块内的所有页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + Tip: 从列表取出的元素可以使用instanceof 判断元素的类型 + + + + 当前页块内的所有页块 + + + + 图像对象 + + 见 10 + + + 带有播放视频动作时,见第 12 章 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 图形对象 + + 见 9.1 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 文字对象 + + + + 对象ID + + + 对象ID + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 【可选 属性】 + 设置 层类型描述 + + 默认值为 Body + + + + 层类型 + this + + + + 【可选 属性】 + 获取 层类型描述 + + 默认值为 Body + + + + 层类型 + + + + 【可选 属性】 + 设置 图层的绘制参数,引用资源文件总定义的绘制参数标识 + + 资源文件总定义的绘制参数标识 + this + + + + 【可选 属性】 + 获取 图层的绘制参数,引用资源文件总定义的绘制参数标识 + + 资源文件总定义的绘制参数标识,null表示不存在 + + + + 用于表示页块类型的接口 + + 逻辑层面表示 + + + + + + + 前景层 + + + + + 正文层 + + + + + 背景层 + + + + + 获取图层类型实例 + + 图层类型字符串 + 图层类型 + + + + 获取图层次序 + + 图层次序 + + + + 页对象 + + 页对象支持模板页描述,每一页经常要重复显示的内容可统一在模板页中描述, + 文档可以包含多个模板页。通过使用模板页可以使重复显示的内容不必出现在 + 描述每一页的页面描述内容中,而只需通过 Template 节点进行应用。 + + + 7.7 图 13 页对象结构;表 12 页对象属性 + + + + + + 【可选】 + 设置 页面区域的大小和位置,仅对该页面有效。 + + 该节点不出现时则使用模板页中的定义,如果模板页不存在或模板页中 + 没有定义页面区域,则使用文件 CommonData 中的定义。 + + + + 页面区域的大小和位置 + this + + + + 【可选】 + 获取 页面区域的大小和位置,仅对该页面有效。 + + 该节点不出现时则使用模板页中的定义,如果模板页不存在或模板页中 + 没有定义页面区域,则使用文件 CommonData 中的定义。 + + + + 页面区域的大小和位置 + + + + 【可选】 + 设置 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + 页面使用的模板页 + this + + + 模板 + this + @deprecated + + + + 【可选】 + 获取 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + 页面使用的模板页 + + @Date 2021 04 20 19 11 + @return + + + + 页面使用的模板页(第一个) + @deprecated + + + + 【可选】 + 设置 页资源 + + 指向该页使用的资源文件 + + + + 页资源路径 + this + + + + 【可选】 + 获取 页资源 + + 指向该页使用的资源文件 + + + + 页资源路径列表 + @Date 2021 04 20 19 04 + + + + 【可选】 + 设置 页面内容描述,该节点不存在时,标识空白页 + + 页面内容 + this + + + + 【可选】 + 获取 页面内容描述,该节点不存在时,标识空白页 + + 页面内容 + + + + 【可选】 + 设置 与页面关联的动作序列。 + + 当存在多个 Action对象时,所有动作依次执行。 + + + 动作列表的动作与页面关联,事件类型为 PO(页面打开,见表 52 事件类型) + + + + 动作序列 + this + + + + 【可选】 + 设置 与页面关联的动作序列。 + + 当存在多个 Action对象时,所有动作依次执行。 + + + 动作列表的动作与页面关联,事件类型为 PO(页面打开,见表 52 事件类型) + + + + 动作序列 + + + + 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + + + 【必选 属性】 + 设置 引用在文档共用数据(CommonData)中定义的模板标识符 + + 引用在文档共用数据(CommonData)中定义的模板标识符 + this + + + + 【必选 属性】 + 获取 引用在文档共用数据(CommonData)中定义的模板标识符 + + 引用在文档共用数据(CommonData)中定义的模板标识符 + + + + 【可选 属性】 + 设置 模板在页面中的呈现顺序 + + 控制模板在页面中的呈现顺序,其类型描述和呈现顺序与Layer中Type的描述和处理一直。 + + + 如果多个图层的此属性相同,则应根据其出现的顺序来显示,先出现者先绘制 + + + 默认值为 Background + + + + 模板在页面中的呈现顺序 + this + + + + 【可选 属性】 + 获取 模板在页面中的呈现顺序 + + 控制模板在页面中的呈现顺序,其类型描述和呈现顺序与Layer中Type的描述和处理一直。 + + + 如果多个图层的此属性相同,则应根据其出现的顺序来显示,先出现者先绘制 + + + 默认值为 Background + + + + 模板在页面中的呈现顺序 + + + + 页节点 + + 7.6 页树 表 11 页树属性 + + + + + 对象ID + 页面内容位置 + + + + 【必选 属性】 + 设置 页的标识符,不能与已有标识重复 + + 页的标识符 + this + + + + 【必选 属性】 + 获取 页的标识符,不能与已有标识重复 + + 页的标识符 + + + + 【必选 属性】 + 设置 页对象描述文件 + + 页对象描述文件路径 + this + + + + 【必选 属性】 + 获取 页对象描述文件 + + 页对象描述文件路径 + + + + 页树 + + 图 12 页树结构 + + + + + + + 【必选】 + 增加 叶节点 + + 一个页树中可以包含一个或多个叶节点,页顺序是 + 根据页树进行前序遍历时叶节点的顺序。 + + + + 叶节点 + this + + + + 获取页面数量 + + 页面数量 + + + + 【必选】 + 获取 叶节点序列 + + 一个页树中可以包含一个或多个叶节点,页顺序是 + 根据页树进行前序遍历时叶节点的顺序。 + + + + 叶节点序列 (大于等于 1) + + + + 获取指定页面 + 页面索引(页码 - 1) + 页节点 + + + + + 【必选 属性】 + 设置 多媒体类型 + + 支持位图图像、视频、音频 + + + + 多媒体类型 + this + + + + 【必选 属性】 + 获取 多媒体类型 + + 支持位图图像、视频、音频 + + + + 多媒体类型 + + + + 【可选 属性】 + 设置 资源的格式 + + 支持 BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页 + + + + 资源的格式 + this + + + + 【可选 属性】 + 获取 资源的格式 + + 支持 BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页 + + + + 资源的格式 + + + + 【必选】 + 设置 指向 OFD包内的多媒体文件位置 + + 指向 OFD包内的多媒体文件位置 + this + + + + 【必选】 + 获取 指向 OFD包内的多媒体文件位置 + + 指向 OFD包内的多媒体文件位置 + + + + 多媒体格式。 + + 7.9 资源 图 21 表 19 + + + + + + 位图图像 + + + + + 音频 + + + + + 视频 + + + + + 资源文件抽象类型 + + 用于代指:绘制参数、颜色空间、字形、图像、音视频等资源的都为资源类型。 + + + + + + 资源 + + 资源是绘制图元时所需数据(如绘制参数、颜色空间、字形、图像、音视频等)的集合。 + 在页面中出现的资源数据内容都保存在容器的特定文件夹内,但其索引信息保存在资源文件中。 + 一个文档可能包含一个或多个资源文件。资源根据作用范围分为公共资源和页资源,公共资源文件 + 在文档根节点中进行制定,页资源文件在页对象中进行制定。 + + + 7.9 资源 图 20 + + + + + + 【必选 属性】 + 设置 此资源文件的通用数据存储路径。 + + BaseLoc属性的意义在于明确资源文件存储位置, + 比如 R1.xml 中可以指定 BaseLoc为"./Res", + 表明该资源文件中所有数据文件的默认存储位置在 + 当前路径的 Res 目录下。 + + + + 此资源文件的通用数据存储路径 + this + + + + 【必选 属性】 + 获取 此资源文件的通用数据存储路径。 + + BaseLoc属性的意义在于明确资源文件存储位置, + 比如 R1.xml 中可以指定 BaseLoc为"./Res", + 表明该资源文件中所有数据文件的默认存储位置在 + 当前路径的 Res 目录下。 + + + + 此资源文件的通用数据存储路径 + + + + 【可选】 + 添加 资源 + + 一个资源文件可描述0到多个资源 + + + + 资源 + this + + + + 获取字体资源文件 + + 字体资源列表 + + + + 【可选】 + 获取 资源列表 + + 一个资源文件可描述0到多个资源 + + + tip:可以使用instanceof判断是哪一种资源 + + + + 资源列表 + + + + 包含了一组颜色空间的描述 + + 7.9 图 20 表 18 + + + + + + 【必选】 + 增加 颜色空间描述 + + 必须要有ID属性 + + + + 颜色空间描述,必须要有ID属性 + this + + + + 【必选】 + 获取 颜色空间描述列表 + + 颜色空间描述列表 + + + + + 【必选】 + 增加 矢量图像资源描述 + + 必须要有ID属性 + + + + 矢量图像资源描述 + this + + + + 【必选】 + 获取 矢量图像资源描述序列 + + 必须要有ID属性 + + + + 矢量图像资源描述 + + + + + 【必选】 + 增加 绘制参数描述 + + 必须要有ID属性 + + + + 绘制参数描述 + this + + + + 【必选】 + 获取 绘制参数描述序列 + + 绘制参数描述 + + + + + 【必选】 + 添加 字形描述 + + 必须要有ID属性 + + + + 字形描述 + this + + + + 【必选】 + 获取 字形描述序列 + + 必须要有ID属性 + + + + 字形描述 + + + + 包含了一组文档所有多媒体的描述 + + 7.9 图 20 表 18 + + + + + + 【必选】 + 增加 多媒体资源描述 + + 必须含有ID属性 + + + + 多媒体资源描述 + this + + + + 【必选】 + 获取 多媒体资源描述列表 + + 必须含有ID属性 + + + + 多媒体资源描述 + + + + 简单类型基类,用于提供便捷的方法实例化元素 + + + + + 使用简单类型创建一个指定名称的元素 + + 指定名称 + 简单类型元素 + + + + 如果浮点数为整数,则省略小数 + 浮点数 + 没有小数点的整数字符串 + + + + 数组,以空格来分割元素。元素可以是除ST_Loc、 + ST_Array外的数据类型,不可嵌套 + + 示例: + 1 2.0 5.0 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 元素收容 + + + + + 获取一个单位矩阵变换参数 + + 单位CTM举证 + + + + 矩阵相乘 + + 矩阵数组 + 相乘后的结果矩阵 + + + + 获取 ST_Array 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 数组长度 + + 数组长度 + + + + 反序列化为矩阵数组 + + 矩阵 + + + + 矩形区域,以空格分割,前两个值代表了该矩形的 + 左上角的坐标,后两个值依次表示该矩形的宽和高, + 可以是整数或者浮点数,后两个值应大于0 + + 示例: + 10 10 50 50 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 左上角 x坐标 + + 从左 到 右 + + + + + + 左上角 y坐标 + + 从上 到 下 + + + + + + 宽度 + + + + + 高度 + + + + + 通用构造 + + 任意类型可序列化参数 + + + + 获取 ST_Box 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 获取左上角坐标定点 + + 左上角坐标 + + + + 标识,无符号整数,应在文档内唯一。0标识无效标识符 + + 示例: + 1000 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 标识符,默认为无符号标识符 + + + + + 获取 ST_ID 实例如果参数非法则返还null + + ID字符串 + 实例 或 null + + + + 获取引用ID + 引用ID + + + + 包结构内文件的路径,"."表示当前路径,".."表示符路径 + + 约定: + 1. "、"代表根节点; + 2. 未显示指定代表当前路径; + 3. 路径区分大小写 + + + 示例: + + /Pages/P1/Content.xml + ./Res/Book1.jpg + ../Pages/P1/Res.xml + Pages/P1/Rcs.xml + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 路径 + + + + + 获取路径实例 + + 路径字符串 + 实例或null + + + + 从实例中获取 路径 + + 元素 + 路径对象 + + + + 路径分割 + + 各个子路径 + + + + 获取父母路径 + + 父母路径字符串 + + + + 获取路径的文件名称 + + 文件名称 + + + + 路径拼接 + + 路径对象 + 拼接后路径 + + + + 路径拼接 + + 路径对象 + 拼接后路径 + + + + 是否以指定字符结尾 + + 指定字符 + true 指定字符结尾;false 不以指定字符结尾 + + + + 点坐标,以格分割,前者为 x值,后者为 y值,可以是整数或浮点数 + + 示例: + 0 0 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + X坐标 + + 从左 到 右 + + + + + + y坐标 + + 从上 到 下 + + + + + + 获取 ST_Pos 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 标识符引用,无符号整数,此标识符应为文档内已定义的标识符 + + 示例: + 1000 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 获取 ST_RefID 实例如果参数非法则返还null + + 被引用的ID字符串 + 实例 或 null + + + + + + 构造复合对象 + + 对象ID + 对象 + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像的标识 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + ,其类型为 CT_VectorG,其结构如 72 所示 + + + + 引用资源文件中定义的矢量图像的标识ID + this + + + + 【必选 属性】 + 获取 引用资源文件中定义的矢量图像的标识 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + ,其类型为 CT_VectorG,其结构如 72 所示 + + + + 引用资源文件中定义的矢量图像的标识ID + + + + 矢量图像 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + + + + + + 【必选 属性】 + 设置 矢量图像的宽度 + + 超出部分做裁剪处理 + + + + 矢量图像的宽度 + this + + + + 【必选 属性】 + 获取 矢量图像的宽度 + + 超出部分做裁剪处理 + + + + 矢量图像的宽度 + + + + 【必选 属性】 + 设置 矢量图像的高度 + + 超出部分做裁剪处理 + + + + 矢量图像的高度 + this + + + + 【必选 属性】 + 获取 矢量图像的高度 + + 超出部分做裁剪处理 + + + + 矢量图像的高度 + + + + 【可选】 + 设置 缩略图 + + 指向包内的图像文件 + + + + 缩略图路径 + this + + + + 【可选】 + 获取 缩略图 + + 指向包内的图像文件 + + + + 缩略图路径 + + + + 【可选】 + 设置 替换图像 + + 用于高分辨率输出时将缩略图替换为此高分辨率的图像 + 指向包内的图像文件 + + + + 替换图像 + this + + + + 【可选】 + 获取 替换图像 + + 用于高分辨率输出时将缩略图替换为此高分辨率的图像 + 指向包内的图像文件 + + + + 替换图像 + + + + 【必选】 + 设置 内容的矢量描述 + + 内容的矢量描述 + this + + + + 【必选】 + 增加 内容的矢量描述 + + 内容的矢量描述 + this + + + + 【必选】 + 获取 内容的矢量描述 + + 内容的矢量描述 + + + + 自定义标引入口 + + 16 图 82 表 63 + + + + + + 【必选】 + 设置 自定义标引内容节点使用的类型标识 + + 自定义标引内容节点使用的类型标识 + this + + + + 【必选】 + 获取 自定义标引内容节点使用的类型标识 + + 自定义标引内容节点使用的类型标识 + + + + 设置 命名空间 + + 附录 A.9 CustomTags.xsd + + + + 命名空间 + this + + + + 获取 命名空间 + + 附录 A.9 CustomTags.xsd + + + + 命名空间 + + + + 【可选】 + 设置 指向自定义标引内容节点适用的Schema文件 + + 指向自定义标引内容节点适用的Schema文件 + this + + + + 【可选】 + 获取 指向自定义标引内容节点适用的Schema文件 + + 指向自定义标引内容节点适用的Schema文件 + + + + 【必选】 + 设置 指向自定义标引文件 + + 这类文件中通过"非接触方式"引用版式内容流中的图元和相关信息 + + 指向自定义标引文件 + this + + + + 【必选】 + 设置 指向自定义标引文件 + + 这类文件中通过"非接触方式"引用版式内容流中的图元和相关信息 + + 指向自定义标引文件 + + + + 自定义标引 + + 外部系统或用户可以添加自定义标记和信息,从而达到与其他系统、数据 + 进行交互的目的并扩展应用。一个文档可以带有多个自定义标引。 + + + 自定义标引列表的入口点在 7.5 文档根节点中定义。 + + + 标引索引文件,标引文件中通过ID引用于被引用标引对象 + 发生"非接触式(分离式)"关联。标引内容可任意扩展, + 但建议给出扩展内容的规范约束文件(schema)或命名空间。 + + 16 图 82 表 63 + + + + + + 【可选】 + 增加 自定义标引入口 + + 自定义标引入口 + this + + + + 【可选】 + 获取 自定义标引入口列表 + + 自定义标引入口列表 + + + + Initializes object by default error message. + + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + 扩展信息节点 + + 17 扩展信息 图 83 表 6 + + + + + + 【必选 属性】 + 设置 用于生成或解释该自定义对象数据的扩展应用程序名称 + + 用于生成或解释该自定义对象数据的扩展应用程序名称 + this + + + + 【必选 属性】 + 获取 用于生成或解释该自定义对象数据的扩展应用程序名称 + + 用于生成或解释该自定义对象数据的扩展应用程序名称 + + + + 【可选 属性】 + 设置 形成此扩展信息的软件厂商标识 + + 形成此扩展信息的软件厂商标识 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的软件厂商标识 + + 形成此扩展信息的软件厂商标识 + + + + 【可选 属性】 + 设置 形成此扩展信息的软件版本 + + 形成此扩展信息的软件版本 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的软件版本 + + 形成此扩展信息的软件版本 + + + + 【可选 属性】 + 设置 形成此扩展信息的日期时间 + + 形成此扩展信息的日期时间 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的日期时间 + + 形成此扩展信息的日期时间 + + + + 【可选 属性】 + 设置 引用扩展项针对的文档项目的标识 + + 引用扩展项针对的文档项目的标识 + this + + + + 【可选 属性】 + 获取 引用扩展项针对的文档项目的标识 + + 引用扩展项针对的文档项目的标识 + + + + 【必选 属性】 + 增加 属性 + + 属性 + this + + + + 【必选 属性】 + 获取 属性列表 + + 属性列表 + + + + 【必选】 + 增加 扩展数据文件所在位置 + + 用于扩展大量信息 + + + + 扩展数据文件所在位置 + this + + + + @Date 2021 04 20 19 07 + @return + + + + + 【必选】 + 增加 扩展复杂属性 + + 使用xs:anyType,用于较复杂的扩展 + + + + 扩展复杂属性 + this + + + + 【必选】 + 获取 扩展复杂属性序列 + + 使用xs:anyType,用于较复杂的扩展 + + + + 扩展复杂属性序列 + + + + 扩展信息 + + 扩展信息列表的入口文件在 7.5 文档根节点中定义。 + 扩展信息列表文件的根节点名为 Extensions,其下 + 由 0 到多个扩展信息节点(Extension)组成,扩展 + 信息列表的根节点结构如图 83 所示。 + + + + 17 扩展信息 图 83 表 64 + + + + + + 【可选】 + 增加 扩展信息节点 + + 扩展信息节点 + this + + + + 【可选】 + 获取 扩展信息节点序列 + + 扩展信息节点 + + + + 扩展信息 + + "Name Type Value" 的数值组,用于简单的扩展 + + + 17 扩展信息 图 83 表 6 + + + + + + 【必选 属性】 + 设置 扩展属性名称 + + 扩展属性名称 + this + + + + 【必选 属性】 + 获取 扩展属性名称 + + 扩展属性名称 + + + + 【可选 属性】 + 设置 扩展属性值类型 + + 扩展属性值类型 + this + + + + 【可选 属性】 + 获取 扩展属性值类型 + + 扩展属性值类型 + + + + 【必选】 + 设置 属性值 + + 属性值 + this + + + + 【必选】 + 获取 属性值 + + 属性值 + + + + 图形轮廓数据 + + 由一系列的紧缩的操作符和操作数构成 + + + 9.1 表 35 36 + + + + + + 绘制数据队列 + + + + + 解析字符串构造数据队列 + + 紧缩字符串 + 数据队列 + + + + 刷新元素 + + 默认情况下,每次调用C都将会刷新元素内容 + + + + this + + + + 定义自绘制图形边线的起始点坐标 (x,y) + + 目标点 x + 目标点 y + this + + + + 当前点移动到制定点(x,y) + + 目标点 x + 目标点 y + this + + + + 从当前点连接一条指定点(x,y)的线段,并将当前点移动到制定点 + + 目标点 x + 目标点 y + this + + + + 从当前点连接一条到点(x2,y2)的二次贝塞尔曲线, + 并将当前点移动到点(x2,y2),此贝塞尔曲线使用 + 点(x1,y1)作为其控制点 + + 控制点 x + 控制点 y + 目标点 x + 目标点 y + this + + + + 从当前点连接一条到点(x3,y3)的三次贝塞尔曲线, + 并将当前点移动到点(x3,y3),此贝塞尔曲线使用点 + (x1,y1)和点(x2,y2)作为控制点 + + 控制点 x1 + 控制点 y1 + 控制点 x2 + 控制点 y2 + 目标点 x3 + 目标点 y3 + this + + + + 从当前点连接到点(x,y)的圆弧,并将当前点移动到点(x,y)。 + rx 表示椭圆的长轴长度,ry 表示椭圆的短轴长度。angle 表示 + 椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针, + large 为 1 时表示对应度数大于180°的弧,为 0 时表示对应 + 度数小于 180°的弧。sweep 为 1 时表示由圆弧起始点到结束点 + 是顺时针旋转,为 0 时表示由圆弧起始点到结束点是逆时针旋转。 + + 椭圆长轴长度 + 椭圆短轴长度 + 旋转角度,正值顺时针,负值逆时针 + 1 时表示对应度数大于 180°的弧,0 时表示对应度数小于 180°的弧 + sweep 为 1 时表示由圆弧起始点到结束点是顺时针旋转,为 0 时表示由圆弧起始点到结束点是逆时针旋转。 + 目标点 x + 目标点 y + this + + + + SubPath 自动闭合,表示将当前点和 SubPath 的起始点用线段直连连接 + + this + + + + 撤销上一步操作 + + this + + + + 序列化为操作序列 + + 操作序列 + + + + 复制路径对象 + + 复制之后的路径对象 + + + + 图形对象 + + 图形对象具有一般图元的一切属性和行为特征。 + + + 9.1 图形对象 图 46 表 35 + + + + + + + 构造路径对象 + + 对象ID + 对象 + + + + 【可选 属性】 + 设置 图形是否被沟边 + + true - 沟边;false - 不勾边 + this + + + + 【可选 属性】 + 获取 图形是否被沟边 + + true - 沟边;false - 不勾边 + + + + 【可选 属性】 + 设置 图形是否被填充 + + true - 填充; false - 不填充 + this + + + + 【可选 属性】 + 获取 图形是否被填充 + + true - 填充; false - 不填充 + + + + 【可选 属性】 + 设置 图形的填充规则 + + 当 Fill 属性存在时出现,可选值参考 + + + 默认值为 NonZero + + + + 图形的填充规则 + this + + + + 【可选 属性】 + 获取 图形的填充规则 + + 当 Fill 属性存在时出现,可选值参考 + + + 默认值为 NonZero + + + + 图形的填充规则 + + + + 【可选】 + 设置 沟边颜色 + + 默认为黑色 + + + + 沟边颜色,颜色定义请参考 8.3.2 基本颜色 + this + + + + 【可选】 + 获取 沟边颜色 + + 默认为黑色 + + + 沟边颜色,null表示为黑色,颜色定义请参考 8.3.2 基本颜色 + + + + 【可选】 + 设置 填充颜色 + + 默认为透明色 + + + + 填充颜色,颜色定义请参考 8.3.2 基本颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 默认为透明色 + + + + 填充颜色,颜色定义请参考 8.3.2 基本颜色 + + + + 【必选】 + 设置 图形轮廓数据 + + 由一系列紧缩的操作符和操作数构成 + + + + 图形轮廓数据 + this + + + + 【必选】 + 获取 图形轮廓数据 + + 由一系列紧缩的操作符和操作数构成 + + + + 图形轮廓数据字符串 + + + + 填充颜色 + + 9.1 表 35 + + + + + + 图形的填充规则 + + 9.1 表 35 图形对象描述 + + + + + + 勾边颜色 + + 9.1 表 35 + + + + + + 区域由一系列的分路径(Area)组成,每个路径都是闭合的 + + 图 49 区域结构 + + + + + + 【必选 属性】 + 设置 定义字图形的起始点坐标 + + 定义字图形的起始点坐标 + this + + + + 【必选 属性】 + 获取 定义字图形的起始点坐标 + + 定义字图形的起始点坐标 + + + + 【必选】 + 增加 绘制指令 + + 移动点、画线、画圆弧等 + + + + 绘制指令 + this + + + + 连续绘制 + + 绘制指令 + this + + + + 【必选】 + 获取 绘制指令序列(顺序决定了绘制图形) + + 移动点、画线、画圆弧等 + + + + 绘制指令序列 + + + + 图形也可以使用 XML 负载类型的方式进行描述,这种方式主要用于 + 区域(Region)。区域由一系列的分路径(Area)组成,每个路径都是闭合的. + + 图 49 区域结构 /// + + + + + 【必选】 + 为区域增加分路径 + + 路径 + this + + + + 【必选】 + 获取 区域中所有分路径 + + 区域中所有分路径 + + + + 圆弧 + + 图 56圆弧的结构 + + + + + + 【必选 属性】 + 设置 弧线方向是否顺时针 + + true 表示由圆弧起始点到结束点是顺时针,false 表示由圆弧起始点到结束点是逆时针 + + + 对于经过坐标系上指定两点,给定旋转角度和长短轴长度的椭圆,满足条件的可能有 2 个, + 对应的圆弧有 4 条,通过 LargeArc 属性可以排除 2 条,次属性从剩余的 2 条圆弧中确定 + 一条 + + + + true - 由圆弧起始点到结束点是顺时针;false - 由圆弧起始点到结束点是逆时针 + this + + + + 【必选 属性】 + 获取 弧线方向是否顺时针 + + true 表示由圆弧起始点到结束点是顺时针,false 表示由圆弧起始点到结束点是逆时针 + + + 对于经过坐标系上指定两点,给定旋转角度和长短轴长度的椭圆,满足条件的可能有 2 个, + 对应的圆弧有 4 条,通过 LargeArc 属性可以排除 2 条,次属性从剩余的 2 条圆弧中确定 + 一条 + + + + true - 由圆弧起始点到结束点是顺时针;false - 由圆弧起始点到结束点是逆时针 + + + + 【必选 属性】 + 设置 是否是大圆弧 + + true 表示此线型对应的位角度大于 180°的弧,false 表示对应度数小于 180°的弧 + + + 对于一个给定长、短轴的椭圆以及起始点和结束点,有一大一小两条圆弧, + 如果所描述线型恰好为 180°的弧,此属性的值不被参考,可由 SweepDirection 属性确定圆弧形状 + + + + true - 此线型对应的位角度大于 180°的弧;false - 对应度数小于 180°的弧 + this + + + + 【必选 属性】 + 获取 是否是大圆弧 + + true 表示此线型对应的位角度大于 180°的弧,false 表示对应度数小于 180°的弧 + + + 对于一个给定长、短轴的椭圆以及起始点和结束点,有一大一小两条圆弧, + 如果所描述线型恰好为 180°的弧,此属性的值不被参考,可由 SweepDirection 属性确定圆弧形状 + + + + true - 此线型对应的位角度大于 180°的弧;false - 对应度数小于 180°的弧 + + + + 【必选 属性】 + 设置 按 EllipseSize 绘制的椭圆在当前坐标系下旋转的角度, + 正值为顺时针,负值为逆时针 + + [异常处理] 如果角度大于 360°,则以 360°取模 + + + + 绘制的椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针 + this + + + + 【必选 属性】 + 获取 按 EllipseSize 绘制的椭圆在当前坐标系下旋转的角度, + 正值为顺时针,负值为逆时针 + + [异常处理] 如果角度大于 360°,则以 360°取模 + + + + 绘制的椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针 + + + + 【必选 属性】 + 设置 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + this + + + + 【必选 属性】 + 设置 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 长短轴参数 + this + + + + 【必选 属性】 + 获取 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + 圆弧结束点,下一个路径起点 + this + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + X坐标 + Y坐标 + this + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + 圆弧结束点,下一个路径起点 + + + + 自动闭合到当前路径的起始点,并以该点为当前点 + + 表 37 图形对象描述方法 + + + + + + 路径操作 + + 表 37 图形对象描述方法,如:移动、划线等 + + + + + 三次贝塞尔曲线 + + 图 53 三次贝塞尔曲线结构 + + + 三次贝塞尔曲线公式 + + B(t) = (1-t)^3(P0) + 3t(1-t)^2(P1) + 3t^2(1-t)(P2) + t^3(P3) t∈[0,1] + + + + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的第一个控制点 + + 三次贝塞尔曲线的第一个控制点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的第以个控制点 + + 三次贝塞尔曲线的第一个控制点 + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的第二个控制点 + + 三次贝塞尔曲线的第二个控制点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的第二个控制点 + + 三次贝塞尔曲线的第二个控制点 + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的结束点,下一路径的起始点 + + 三次贝塞尔曲线的结束点,下一路径的起始点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的结束点,下一路径的起始点 + + 三次贝塞尔曲线的结束点,下一路径的起始点 + + + + 线段 + + 图 51 线段结构 + + + + + + 【必选 属性】 + 设置 线段的结束点 + + 线段的结束点 + this + + + + 【必选 属性】 + 获取 线段的结束点 + + 线段的结束点 + + + + 移动节点 + + 用于表示到新的绘制点指令 + + + + + + 【必选 属性】 + 设置 移动后新的当前绘制点 + + 移动后新的当前绘制点 + this + + + + 【必选 属性】 + 获取 移动后新的当前绘制点 + + 移动后新的当前绘制点 + + + + 二次贝塞尔曲线结构 + + 图 52 二次贝塞尔曲线结构 + + 二次贝塞尔曲线公式 + + B(t) = (1 - t)^2 + 2t(1 - t)(P1) + t^2(P2) + t ∈ [0,1] + + + + + + + 【必选 属性】 + 设置 二次贝塞尔曲线的控制点 + + 二次贝塞尔曲线的控制点 + this + + + + 【必选 属性】 + 获取 二次贝塞尔曲线的控制点 + + 二次贝塞尔曲线的控制点 + + + + 【必选 属性】 + 设置 二次贝塞尔曲线的结束点 + + 二次贝塞尔曲线的结束点 + this + + + + 【必选 属性】 + 获取 二次贝塞尔曲线的结束点 + + 二次贝塞尔曲线的结束点 + + + + 图像边框 + + 10 表 43 + + + + + + 【可选 属性】 + 设置 边框线宽 + + 如果为 0 则表示边框不进行绘制 + + + 默认值为 0.353 mm + + + + 边框线宽 + this + + + + 【可选 属性】 + 获取 边框线宽 + + 如果为 0 则表示边框不进行绘制 + + + 默认值为 0.353 mm + + + + 边框线宽 + + + + 【可选 属性】 + 设置 边框水平角半径 + + 默认值为 0 + + + + 边框水平角半径 + this + + + + 【可选 属性】 + 获取 边框水平角半径 + + 默认值为 0 + + + + 边框水平角半径 + + + + 【可选 属性】 + 设置 边框垂直角半径 + + 默认值为 0 + + + + 边框垂直角半径 + this + + + + 【可选 属性】 + 获取 边框垂直角半径 + + 默认值为 0 + + + + 边框垂直角半径 + + + + 【可选 属性】 + 设置 边框虚线重复样式开始的位置 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + 默认值为 0 + + + + 边框虚线重复样式开始的位置 + this + + + + 【可选 属性】 + 获取 边框虚线重复样式开始的位置 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + 默认值为 0 + + + + 边框虚线重复样式开始的位置 + + + + 【属性 可选】 + 设置 边框虚线重复样式 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + + 边框虚线重复样式 + this + + + + 【属性 可选】 + 获取 边框虚线重复样式 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + + 边框虚线重复样式 + + + + 【可选】 + 设置 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + 边框颜色 + this + + + + 【可选】 + 获取 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + 边框颜色,null表示为黑色 + + + + 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + + + 图像 + + 10 图像 图 57 表 43 + + + + + + 【必选 属性】 + 设置 引用资源文件的定义多媒体的标识 + + 引用资源文件的定义多媒体的标识 + this + + + + 【必选 属性】 + 设置 引用资源文件的定义多媒体的标识 + + 引用资源文件的定义多媒体的标识 + + + + 【可选 属性】 + 设置 可替换图像 + + 引用资源文件中定义的多媒体的标识,由于某些情况 + 如高分辨率输出进行图像替换 + + + + 可替换图像标识 + this + + + + 【可选 属性】 + 获取 可替换图像引用 + + 引用资源文件中定义的多媒体的标识,由于某些情况 + 如高分辨率输出进行图像替换 + + + + 可替换图像标识引用 + + + + 【可选 属性】 + 设置 图像蒙版 + + 引用资源文件中定义的多媒体的标识,用作蒙板的图像应是 + 与 ResourceID 指向的图像相同大小的二值图 + + + + 图像蒙版资源引用 + this + + + + 【可选 属性】 + 获取 图像蒙版资源引用 + + 引用资源文件中定义的多媒体的标识,用作蒙板的图像应是 + 与 ResourceID 指向的图像相同大小的二值图 + + + + 图像蒙版资源引用 + + + + 【可选】 + 设置 图像边框 + + 图像边框 + this + + + + 构造图片对象 + + 对象ID + 对象 + + + + 【可选】 + 设置 图像边框 + + 图像边框 + + + + OFD通用 qualified name + + 只要名称相同并且命名空间前缀保持一致就认为是同一种 qualified name + + + + + OFD元素名称 + + + + Name相同并且,只要符合命名空间前缀相同那么 + 那么认定为是相等的qualified name + + 比较对象 + true 相同;false 不同 + + + + 文件根节点 + + XML文档使用的命名空间为 http://www.ofdspec.org/2016,其表示符应为 ofd; + 应在包内各XML文档的根节点申明 defaults:ofd。 + 元素节点应使用命名空间标识符,元素属性不使用命名空间标识符。 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + + 元素名称 + 获取OFD类型元素实例 + + + + 向元素中增加OFD元素 + + 元素名称 + 元素文本 + this + + + + 设置OFD参数 + + 如果参数已经存在则修改参数 + + + 如果属性值value为null,表示删除该类元素 + + + + 元素名称 + 元素文本 + this + + + + 设置 元素名称 + + 元素名称 + this + + + + 获取OFD的元素 + + OFD元素名称 + OFD元素或null + + + + 如果属性存在则删除 + + 属性名 + true 删除成功;false 删除失败,可能是由于属性不存在 + + + + 获取OFD元素中的文本 + + 元素名称 + 文本 + + + + 设置元素 + + 如果同类型元素已经存在,那么删除原有元素 + + + + 需要设置的元素 + this + + + + @Date 2021 04 20 19 18 + + @return + + + + 【可选】 + + 设置 OFD对象标识,无符号整数,应在文档内唯一。 + + + 0标识无效标识符 + + + + OFD对象标识 + this + + + + @Data 2021 4 20 18 53 + @return + + + + + 【可选】 + + 设置 OFD对象标识,无符号整数,应在文档内唯一。 + + + 0标识无效标识符 + + + + OFD对象标识,null表示对象标识不存在 + + + + OFD元素采用OFD的命名空间,所以直接调用代理对象 + + 元素全名(含有前缀) + + + + 简单类型元素对象,用于承载 Text + + + + + 创建一个带有文本元素 + + 元素名称 + 元素值对象(可toString 序列化为字符串) + + + + 需要继承的子类实现该方法,用于在代理对象是做类型检查 + + 元素全名(含有前缀) + + + + 如果属性存在则删除 + + 属性名 + true 删除成功;false 删除失败,可能是由于属性不存在 + + + + 裁剪区域 + + 用一个图形或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + 8.4 裁剪区 表 33 + + + + + + 【可选 属性】 + 设置 引用资源文件中的绘制参数的标识 + + 线宽、结合点和端点样式等绘制特性对裁剪效果会产生影响, + 有关绘制参数的描述见 8.2 + + + + 引用资源文件中的绘制参数的标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中的绘制参数的标识 + + 线宽、结合点和端点样式等绘制特性对裁剪效果会产生影响, + 有关绘制参数的描述见 8.2 + + + + 引用资源文件中的绘制参数的标识 + + + + 【可选 属性】 + 设置 变换矩阵 + + 针对对象坐标系,对Area下包含的 Path 和 Text 进行进一步的变换 + + + + 变换矩阵 + this + + + + 【可选 属性】 + 获取 变换矩阵 + + 针对对象坐标系,对Area下包含的 Path 和 Text 进行进一步的变换 + + + + 变换矩阵 + + + + 【必选】 + 设置 裁剪对象 + + 裁剪对象可以是 CT_Text、CT_Path + + + + 裁剪对象 + this + + + + 【必选】 + 获取 裁剪对象 + + 裁剪对象可以是 CT_Text、CT_Path + + + + 裁剪对象 + + + + 可裁剪对象 + + 实现该接口代表能够作为裁剪区域进行裁剪操作 + + + 可裁剪对象为: CT_Path、CT_Text + + + 8.5 图 44 表 33 + + + + + + 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip对象时,最终裁剪区为所有 Clip区域交集。 + + + 8.5 图元对象 图 45 表 34 + + + + + + 使用一个裁剪对象初始化裁剪序列 + + 裁剪对象 + + + + 【必选】 + 增加 图元对象的裁剪区域 + + 采用对象空间坐标系 + + + + 图元对象的裁剪区域 + this + + + + 【必选】 + 获取 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区为所有 Clip 区域的交集 + + + + 图元对象的裁剪区域序列 + + + + 裁剪区 + + 裁剪区由一组路径或文字构成,用以指定页面上的一个有效绘制区域,落在裁剪区 + 意外的部分不受绘制指令的影响。 + + + 一个裁剪区可由多个分路径(Area)组成,最终的裁剪范围是各个部分路径的并集。 + 裁剪区中的数据均相对于所修饰图元对象的外界矩形。 + + + 8.4 裁剪区 图 44 表 33 + + + + + + 【必选】 + 增加 裁剪区域 + + 用一个图形对象或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + + 裁剪区域 + this + + + + 【必选】 + 设置 裁剪区域 + + 用一个图形对象或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + + 裁剪区域 + + + + 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 + + + 默认值取值为 8 + + + + + + 每个颜色通道使用的位数 + + + + + 获取 每个颜色通道使用的位数 + + 每个颜色通道使用的位数 + + + + 获取实例 + + 比特数字符串 + 实例 + + + + 获取实例 + + 比特数 + 实例 + + + + 颜色空间 + + 本标准支持 GRAY、RGB、CMYK 颜色空间。除通过 + 设置各通道使用颜色空间内的任意颜色之外,还可 + 在颜色空间内定义调色板或指定相应颜色配置文件, + 通过设置索引值进行引用。 + + + 8.3 颜色 图 24 + + + + + 颜色类型 + + + 颜色类型 + 对象ID + + + + 【必选 属性】 + 设置 颜色空间的类型 + + 可选类型 + + + + 颜色空间的类型 + this + + + + 【必选 属性】 + 获取 颜色空间的类型 + + 可选类型 + + + + 颜色空间的类型 + + + + 【可选 属性】 + 设置 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 参考 + + + + 每个颜色通道使用的位数 + this + + + + 【可选 属性】 + 获取 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 参考 + + + + 每个颜色通道使用的位数 + + + + 【可选 属性】 + 设置 指向包内颜色配置文件 + + 指向包内颜色配置文件路径 + this + + + + 【可选 属性】 + 获取 指向包内颜色配置文件 + + 指向包内颜色配置文件路径 + + + + 【可选】 + 设置 调色板 + + 调色板中颜色的索引编号从 0 开始 + + + + 调色板 + this + + + + 【可选】 + 获取 调色板 + + 调色板中颜色的索引编号从 0 开始 + + + + 调色板 + + + + 调色板中预定义的颜色 + + 调色板中颜色的索引编号从 0 开始 + + + 8.3 颜色 表 25 + + + + + + 颜色表示: + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + + + + 设置 预定义的颜色 + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + this + + + + 获取 预定义的颜色 + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + + + + 颜色空间的类型 + + 8.3.1 表 25 颜色空间属性 + + + + + + 灰度 + + + + + 红绿蓝 + + + + + 印刷颜色 + + + + + 获取实例 + 类型字符串 + 实例 + 未知的颜色空间类型 + + + + 调色板 + + 8.3 颜色 表 25 + + + 调色板中颜色的索引编号从 0 开始 + + + + + + 【必选】 + + 设置 调色板中的预定义颜色 + + + + 调色板中的预定义颜色 + this + + + + 获取 预定义位置颜色 + + 预定义位置颜色位置序号,0 开始 + 预定义位置颜色 + + + + 获取 预定义位置颜色 + + 预定义位置颜色位置序号,0 开始 + 预定义位置颜色 + + + + 【必选】 + + 获取 调色板中的预定义颜色 + + + 调色板中颜色的索引编号从 0 开始 + + + + tip:只读 + + + + 调色板中的预定义颜色列表 + + + + 颜色族 + + 用于标识属于颜色的一种,颜色可以是基本颜色、底纹和渐变 + + + 8.3.2 图 25 颜色结构 + + + + + + + 轴向渐变 + + 在轴向渐变中,颜色渐变沿着一条指定的轴线方向,轴线由起始点和结束点决定, + 与这条轴线垂直的直线上的点颜色相同。 + + + 当轴向渐变某个方向设定为延伸时(Extend 不等于 0),渐变应沿轴在该方向的延长线 + 延伸到超出裁剪区在该轴线的投影区域为止。当 MapType 为 Direct 时,延伸区域的 + 渲染颜色使用该方向轴点所在的段的颜色;否则,按照在轴线区域内的渲染规则进行渲染。 + + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 【可选 属性】 + 设置 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + this + + + + 【可选 属性】 + 获取 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + + + + 【可选 属性】 + 设置 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + this + + + + 【可选 属性】 + 获取 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + + + + 【可选 属性】 + 设置 轴线延长线方向是否继续绘制 + + 可选值参考 + + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制 + this + + + + 【可选 属性】 + 获取 轴线延长线方向是否继续绘制 + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制,选值参考 + + + + 【必选 属性】 + 设置 轴线起始点 + + 轴线起始点 + this + + + + 【必选 属性】 + 获取 轴线起始点 + + 轴线起始点 + + + + 【必选 属性】 + 设置 轴线结束点 + + 轴线结束点 + this + + + + 【必选 属性】 + 设置 轴线结束点 + + 轴线结束点 + + + + 【必选】 + 增加 段 + + 段 + this + + + + 【必选】 + 获取 段列表 + + 段列表 + + + + 基本颜色 + + 本标准中定义的颜色是一个广义的概念,包括基本颜色、底纹和渐变 + + + 基本颜色支持两种指定方式:一种是通过设定颜色个通道值指定颜色空间的某个颜色, + 另一种是通过索引值取得颜色空间中的一个预定义颜色。 + + + 由于不同颜色空间下,颜色通道的含义、数目各不相同,因此对颜色空间的类型、颜色值的 + 描述格式等作出了详细的说明,见表 27。BitsPerComponent(简称 BPC)由效时, + 颜色通道值的取值下限是 0,上限由 BitsPerComponent 决定,取值区间 [0, 2^BPC - 1] + 内的整数,采用 10 进制或 16 进制的形式表示,采用 16 进制表示时,应以"#"加以标识。 + 当颜色通道的值超出了相应区间,则按照默认颜色来处理。 + + + 8.3.2 基本颜色 图 25 表 26 + + + + + + 颜色族中的颜色 + + + + RGB颜色值 + + 其中颜色空间(CT_ColorSpace)的通道使用位数(BitsPerComponent)为 8 + + + 采用10进制表示方式 + + + + 红色 0~255 + 绿色 0~255 + 蓝色 0~255 + RGB 颜色 + + + + 【可选 属性】 + 设置 颜色值 + + 指定了当前颜色空间下各通道的取值。Value 的取值应 + 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, + 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 + 出现时,改颜色各通道的值全部为 0 + + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 颜色值 + this + + + + 【可选 属性】 + 获取 颜色值 + + 指定了当前颜色空间下各通道的取值。Value 的取值应 + 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, + 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 + 出现时,改颜色各通道的值全部为 0 + + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 颜色值 + + + + 【可选 属性】 + 设置 调色板中颜色的编号,非负整数 + + 将从当前颜色空间的调色板中取出相应索引的预定义颜色用来描绘。 + 索引从 0 开始 + + + + 调色板中颜色的编号 + this + + + + 【可选 属性】 + 获取 调色板中颜色的编号,非负整数 + + 将从当前颜色空间的调色板中取出相应索引的预定义颜色用来描绘。 + 索引从 0 开始 + + + + 调色板中颜色的编号,null表示不存在 + + + + 【可选 属性】 + 设置 引用资源文件中颜色空间的标识 + + 默认值为文档设定的颜色空间 + + + + 颜色空间的标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中颜色空间的标识 + + 默认值为文档设定的颜色空间 + + + + 颜色空间的标识,为null是请从文档中获取设定的颜色空间,参照表 6 DefaultCS + + + + 【可选 属性】 + 设置 颜色透明度 + + 范围在 0~255 之间取值。 + + + 默认为 255,完全不透明。 + + + + 颜色透明度 + this + + + + 【可选 属性】 + 获取 颜色透明度 + + 范围在 0~255 之间取值。 + + + 默认为 255,完全不透明。 + + + + 颜色透明度 0~255 + + + + 【可选】 + 设置 颜色 + + 颜色族 + this + + + + 设置 Pattern + + 样式 + this + + + + 【可选】 + 获取 颜色 + + 颜色族, null表示不存在 + + + + + 高洛德渐变 + + 高洛德渐变的基本原理是指定三个带有可选颜色的顶点,在其构成的三角形区域内 + 采用高洛德算法绘制渐变图形。 + + + 8.3.4.4 高洛德渐变 图 41 表 31 + + + + + + 【可选 属性】 + 设置 在渐变控制点所确定的部分是否填充 + + 默认值为 false(0) + + + + false - 不填充; true - 填充 + this + + + + 【可选 属性】 + 获取 在渐变控制点所确定的部分是否填充 + + 默认值为 false (0) + + + + false - 不填充; true - 填充 + + + + 【必选】 + 增加 渐变控制点 + + 至少出现三个 + + + + 渐变控制点 + this + + + + 【必选】 + 获取 渐变控制点列表 + + 至少出现三个 + + + + 渐变控制点列表 + + + + 【可选】 + 设置 渐变范围外的填充颜色 + + 应使用基本颜色 + + + + 渐变范围外的填充颜色,应使用基本颜色 + this + + + + 【可选】 + 获取 渐变范围外的填充颜色 + + 应使用基本颜色 + + + + 渐变范围外的填充颜色,应使用基本颜色 + + + + 网格高洛德渐变 + + 网格高洛德渐变是高洛德渐变的一种特殊形式, + 允许定义 4 个以上的控制点,按照每行固定的网格数(VerticesPerRow) + 形成若干行列,相邻的 4 个控制点定义一个网格单元,在 + 一个网格单元内 EdgeFlag 固定为 1,网格单元及多个单元组成的网格区域的规则如图42所示。 + + + 8.3.4.5 图 43 表 32 + + + + + + 【必选 属性】 + 设置 渐变区域内每行的网格数 + + 渐变区域内每行的网格数 + this + + + + 【必选 属性】 + 获取 渐变区域内每行的网格数 + + 渐变区域内每行的网格数 + + + + 【必选】 + 增加 渐变控制点 + + 至少出现四个 + + + + 渐变控制点,至少出现四个 + this + + + + 径向渐变 + + 8.3.4.3 径向渐变 图 35 表 30 + + + 径向渐变定义了两个离心率和倾斜角度均相同的椭圆,并在椭圆边缘连线 + 区域内进行渐变绘制的方法。具体算法是,先由起始点椭圆中心点开始绘制 + 一个起始点颜色的空心矩形,随后沿着中心点连线不断绘制离心率与倾角角度 + 相同的空心椭圆,颜色由起始点颜色逐渐渐变为结束点颜色,椭圆大小由起始点 + 椭圆主键变为结束点椭圆。 + + + 当轴向渐变某个方向设定为延伸时(Extend 不等于 0),渐变应沿轴在该方向的延长线 + 延伸到超出裁剪区在该轴线的投影区域为止。当 MapType 为 Direct 时,延伸区域的 + 渲染颜色使用该方向轴点所在的段的颜色;否则,按照在轴线区域内的渲染规则进行渲染。 + + + + + + + 【可选 属性】 + 设置 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + this + + + + 【可选 属性】 + 获取 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + + + + 【可选 属性】 + 设置 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + this + + + + 【可选 属性】 + 获取 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + + + + 【可选 属性】 + 设置 两个椭圆的离心率 + + 椭圆焦距与长轴的比值,取值范围是 [0, 1.0) + + + 默认值为 0,在这种情况下退化为圆 + + + + 两个椭圆的离心率,取值范围是 [0, 1.0) + this + + + + 【可选 属性】 + 获取 两个椭圆的离心率 + + 椭圆焦距与长轴的比值,取值范围是 [0, 1.0) + + + 默认值为 0,在这种情况下退化为圆 + + + + 两个椭圆的离心率,取值范围是 [0, 1.0),默认值为 0 + + + + 【可选 属性】 + 设置 两个椭圆的倾斜角度 + + 椭圆长轴与 x 轴正向的夹角,单位为度 + + + 默认值为 0 + + + + 两个椭圆的倾斜角度 + this + + + + 【可选 属性】 + 获取 两个椭圆的倾斜角度 + + 椭圆长轴与 x 轴正向的夹角,单位为度 + + + 默认值为 0 + + + + 两个椭圆的倾斜角度 + + + + 【必选 属性】 + 设置 起始椭圆的的中心点 + + 起始椭圆的的中心点 + this + + + + 【必选 属性】 + 获取 起始椭圆的的中心点 + + 起始椭圆的的中心点 + + + + 【必选 属性】 + 设置 结束椭圆的的中心点 + + 结束椭圆的的中心点 + this + + + + 【必选 属性】 + 获取 结束椭圆的的中心点 + + 结束椭圆的的中心点 + + + + 【可选 属性】 + 设置 起始椭圆的长半轴 + + 默认值为 0 + + + + 起始椭圆的长半轴长度 + this + + + + 【可选 属性】 + 获取 起始椭圆的长半轴 + + 默认值为 0 + + + + 起始椭圆的长半轴长度 + + + + 【必选 属性】 + 设置 结束椭圆的长半轴 + + 结束椭圆的长半轴长度 + this + + + + 【必选 属性】 + 设置 结束椭圆的长半轴 + + 结束椭圆的长半轴长度 + + + + 【可选 属性】 + 设置 轴线延长线方向是否继续绘制 + + 可选值参考 + + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制 + this + + + + 【可选 属性】 + 获取 轴线延长线方向是否继续绘制 + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制,选值参考 + + + + 【必选】 + 增加 段 + + 段 + this + + + + 【必选】 + 获取 段列表 + + 段列表 + + + + 三角单元切换的方向标志 + + 8.1.4.4 表 31 附录A.13 + + + + + + 轴线延长线方向是否继续绘制 + + 可选值为 0、1、2、3 + + + 0:不向两侧继续绘制渐变 + + + 1: 在结束点至起始点延长线方向绘制渐变 + + + 2:在起始点至结束点延长线方向绘制渐变 + + + 3:向两侧延长线方向绘制渐变 + + + 默认值为 0 + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 不向两侧继续绘制渐变 + + 默认值 + + + + + 在结束点至起始点延长线方向绘制渐变 + + + + + 在起始点至结束点延长线方向绘制渐变 + + + + + 向两侧延长线方向绘制渐变 + + + + + 类型值 + + + + + 渐变绘制的方式 + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 默认值 Direct + + + + + 渐变控制点,至少出现三个 + + 8.6.4.4 表 31 附录 A.13 P125 + + + + + + 【必选 属性】 + 设置 控制点水平位置 + + 控制点水平位置 + this + + + + 【必选 属性】 + 获取 控制点水平位置 + + 控制点水平位置 + + + + 【必选 属性】 + 设置 控制点垂直位置 + + 控制点垂直位置 + this + + + + 【必选 属性】 + 获取 控制点垂直位置 + + 控制点垂直位置 + + + + 【可选 属性】 + 设置 三角单元切换的方向标志 + + 三角单元切换的方向标志 + this + + + + 【可选 属性】 + 获取 三角单元切换的方向标志 + + 三角单元切换的方向标志 + + + + 【必选】 + 设置 控制点对应的颜色 + + 应使用基本颜色 + + + + 控制点对应的颜色,应使用基本颜色 + this + + + + 【必选】 + 获取 控制点对应的颜色 + + 应使用基本颜色 + + + + 控制点对应的颜色,应使用基本颜色 + + + + 颜色段 + + 至少出现两个 + + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + 段颜色 + + + 段坐标 + 段颜色 + + + + 【可选 属性】 + 设置 渐变段颜色位置参数 + + 用于确定 StartPoint 和 EndPoint 中的各颜色的位置值, + 取值范围是 [0, 1.0],各颜色的 Position 值应根据颜色出现 + 的顺序递增第一个 Segment 的 Position 属性默认值为 0,最后 + 一个 Segment 的 Position 属性默认值为 1.0,当不存在时, + 在空缺的区间内平局分配。 + + + 举例: Segment 个数等于 2 且不出现 Position 属性时, + 按照"0 1.0"处理;Segment 个数等于 3 且不出现 Position 属性时, + 按照"0 0.5 1.0"处理;Segment 个数等于 5 且不出现 Position 属性时, + 按照"0 0.25 0.5 0.75 1.0" 处理。 + + + + 渐变位置参数 + this + + + + 【可选 属性】 + 获取 渐变段颜色位置参数 + + 用于确定 StartPoint 和 EndPoint 中的各颜色的位置值, + 取值范围是 [0, 1.0],各颜色的 Position 值应根据颜色出现 + 的顺序递增第一个 Segment 的 Position 属性默认值为 0,最后 + 一个 Segment 的 Position 属性默认值为 1.0,当不存在时, + 在空缺的区间内平局分配。 + + + 举例: Segment 个数等于 2 且不出现 Position 属性时, + 按照"0 1.0"处理;Segment 个数等于 3 且不出现 Position 属性时, + 按照"0 0.5 1.0"处理;Segment 个数等于 5 且不出现 Position 属性时, + 按照"0 0.25 0.5 0.75 1.0" 处理。 + + + + 渐变位置参数 + + + + 【必选】 + 设置 该段的颜色 + + 应是基本颜色 + + + + 该段的颜色,应是基本颜色 + this + + + + 【必选】 + 获取 该段的颜色 + + 应是基本颜色 + + + + 该段的颜色,应是基本颜色 + + + + 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + CellContent 作为底纹对象的绘制单元,使用一种和外界没有 + 任何关联的独立的坐标空间:坐上角(0,0)为原点,X 轴向右增长, + Y 轴向下增长,单位为毫米。 + + + + + + + 【可选 属性】 + 设置 引用资源文件中缩略图图像的标识符 + + 引用资源文件中缩略图图像的标识符 + this + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 【可选 属性】 + 获取 引用资源文件中缩略图图像的标识符 + + 引用资源文件中缩略图图像的标识符 + + + + 底纹 + + 底纹是复杂颜色的一种,用于图形和文字的填充以及沟边处理。 + + + 8.3.3 底纹 图 26 表 28 + + + + + + 【必选 属性】 + 设置 底纹单元宽度 + + 底纹单元宽度 + this + + + + 【必选 属性】 + 获取 底纹单元宽度 + + 底纹单元宽度 + + + + 【必选 属性】 + 获取 底纹单元高度 + + 底纹单元高度 + this + + + + 【必选 属性】 + 获取 底纹单元高度 + + 底纹单元高度 + + + + 【可选 属性】 + 设置 X 方向底纹单元间距 + + 默认值为底纹单元的宽度。 + + + 若设定值小于底纹单元的宽度时,应按默认值处理 + + + + X 方向底纹单元间距 + this + + + + 【可选 属性】 + 设置 X 方向底纹单元间距 + + 默认值为底纹单元的宽度。 + + + 若设定值小于底纹单元的宽度时,应按默认值处理 + + + + X 方向底纹单元间距 + + + + 【可选 属性】 + 设置 Y 方向底纹单元间距 + + 默认值为底纹单元的高度。 + + + 若设定值小于底纹单元的高度时,应按默认值处理 + + + + Y 方向底纹单元间距 + this + + + + 【可选 属性】 + 获取 Y 方向底纹单元间距 + + 默认值为底纹单元的高度。 + + + 若设定值小于底纹单元的高度时,应按默认值处理 + + + + Y 方向底纹单元间距 + + + + 【可选 属性】 + 设置 底纹单元的翻转方式 + + 默认值为 Normal + + + 参考 + + + + 底纹单元的翻转方式 + this + + + + 【可选 属性】 + 获取 底纹单元的翻转方式 + + 默认值为 Normal + + + 参考 + + + + 底纹单元的翻转方式 + + + + 【可选 属性】 + 设置 底纹单元起始位置 + + 默认值为 Object:相对于对象坐标原点 + + + + 底纹单元起始位置 + this + + + + 【可选 属性】 + 设置 底纹单元起始位置 + + 默认值为 Object:相对于对象坐标原点 + + + + 底纹单元起始位置 + + + + 【可选 属性】 + 设置 底纹单元的变换矩阵 + + 用于某些需要对底纹单元进行平移旋转变换的场合, + 默认为单位矩阵;底纹呈现时先做 XStep、YStep 排列, + 然后一起做 CTM 处理 + + + + 底纹单元的变换矩阵 + this + + + + 【可选 属性】 + 获取 底纹单元的变换矩阵 + + 用于某些需要对底纹单元进行平移旋转变换的场合, + 默认为单位矩阵;底纹呈现时先做 XStep、YStep 排列, + 然后一起做 CTM 处理 + + + + 底纹单元的变换矩阵 + + + + 【必选】 + 设置 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + + 底纹单元 + this + + + + 【必选】 + 获取 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + + 底纹单元 + + + + 翻转绘制效果 + + 8.3.4 渐变 图 28 + + + + + + 普通重复 + + 具体效果见 图 28 Normal + + + + + + 竖轴对称翻转 + + 具体效果见 图 28 Column + + + + + + 横轴对称翻转 + + 具体效果见 图 28 Row + + + + + + 十字轴对称翻转 + + 具体效果见 图 28 Row And Column + + + + + + 获取 翻转绘制效果 实例 + + 效果名称 + 翻转绘制效果 + + + + 底纹单元起始绘制位置 + + 8.3.4 表 28 RelativeTo + + + + + + 相对于页面坐标的原点 + + + + + 相对于对象坐标系的原点 + + + + + 获取 底纹单元起始绘制位置 + + 绘制位置字符串 + 底纹单元起始绘制位置 + + + + 图元对象 + + 图元对象是版式文档中页面上呈现内容的最基本单元, + 所有页面显示内容。包括文字、图形、图像等,都属于 + 图元对象,或是图元对象的组合。 + + + 8.5 图元对象 图 45 表 34 + + + + + + 【必选 属性】 + 设置 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形 + this + + + + 【必选 属性】 + 设置 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形X坐标 + 外接矩形Y坐标 + 外接矩形宽度 + 外接矩形高度 + this + + + + 【必选 属性】 + 获取 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形 + + + + 【可选 属性】 + 设置 图元对象的名字 + + 图元对象的名字 + this + + + + 【可选 属性】 + 获取 + + 图元对象的名字,可能为null + + + + 【可选 属性】 + 设置 图元是否可见 + + true - 可见;false - 不见 + this + + + + 【可选 属性】 + 获取 图元是否可见 + + true - 可见;false - 不见 + + + + 【可选 属性】 + 设置 对空间内的图元变换矩阵 + + 变换矩阵 + this + + + + 【可选 属性】 + 获取 对空间内的图元变换矩阵 + + 变换矩阵 + + + + 【可选 属性】 + 设置 引用资源文件中的绘制参数标识 + + 绘制参数标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中的绘制参数标识 + + 绘制参数标识 + + + + 【可选 属性】 + 设置 绘制路径时使用的线宽 + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 绘制路径时使用的线宽 + this + + + + 【可选 属性】 + 获取 绘制路径时使用的线宽 + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 绘制路径时使用的线宽,可能为null + + + + 【可选 属性】 + 设置 线端点样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线端点样式 + this + + + + 【可选 属性】 + 获取 线端点样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线端点样式 + + + + 【可选 属性】 + 设置 线条连接样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条连接样式 + this + + + + 【可选 属性】 + 获取 线条连接样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条连接样式 + + + + 【可选 属性】 + 设置 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + Join的截断值长度 + this + + + + 【可选 属性】 + 获取 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + Join的截断值长度 + + + + 【可选 属性】 + 设置 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线开始位置 + this + + + + 【可选 属性】 + 获取 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线开始位置 + + + + 【可选 属性】 + 设置 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + this + + + + 【可选 属性】 + 获取 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + + + + 【可选 属性】 + 设置 图元对象透明度 + + 取值区间为 [0,255] + + + 默认为 0 + + + + 图元对象透明度,取值区间为 [0,255] + this + + + + 【可选 属性】 + 获取 图元对象透明度 + + 取值区间为 [0,255] + + + 默认为 255 + + + + 图元对象透明度,取值区间为 [0,255] + + + + 【可选】 + 设置 图元对象的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 图元对象的动作序列 + this + + + + 【可选】 + 设置 图元对象的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 图元对象的动作序列 + + + + 【可选】 + 设置 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区域为所有 Clip 区域的交集。 + + + + 图元对象的裁剪区域序列 + this + + + + 【可选】 + 设置 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区域为所有 Clip 区域的交集。 + + + + 图元对象的裁剪区域序列 + + + + 绘制参数 + + 绘制参数是一组用于控制绘制渲染效果的修饰参数的集合。 + 绘制参数可以被不同的图元对象所共享。 + + + 绘制参数可以继承已有的绘制参数,被继承的绘制参数称为 + 该参数的"基础绘制参数"。 + + + 图元对象通过绘制参数的标识符引用绘制参数。图元对象在引用 + 绘制参数的同时,还可以定义自己的绘制属性,图元自有的绘制属性 + 将覆盖引用的绘制参数中的同名属性。 + + + 绘制参数可通过引用基础绘制参数的方式形成嵌套,对单个绘制参数而言, + 它继承了其基础绘制参数中的所有属性,并且可以重定义其基础绘制参数中的属性。 + + + 绘制参数的作用顺序采用就近原则,即当多个绘制参数作用于同一个对象并且这些绘制参数 + 中具有相同的要素时,采用与被作用对象关系最为密切的绘制参数的要素对其进行渲染。 + 例如,当图元已经定义绘制参数时,则按定义属性进行渲染;当图元未定义绘制参数时, + 应首先按照图元定义的绘制参数进行渲染;图元未定义绘制参数时应采用所在图层的默认绘制参数 + 渲染;当图元和所在图层都没有定义绘制参数时,按照各绘制属性的默认值进行渲染。 + + + 8.2 绘制参数结构 图 22 + + + + + + 【可选 属性】 + 设置 基础绘制参数,引用资源文件中的绘制参数的标识符 + + 引用资源文件中的绘制参数的标识符 + this + + + + 【可选 属性】 + 获取 基础绘制参数,引用资源文件中的绘制参数的标识符 + + 引用资源文件中的绘制参数的标识符 + + + + 【可选 属性】 + 设置 线宽 + + 非负浮点数,指定了绘制路径绘制时线的宽度。由于 + 某些设备不能输出一个像素宽度的线,因此强制规定 + 当线宽大于 0 时,无论多小都至少要绘制两个像素的宽度; + 当线宽为 0 时,绘制一个像素的宽度。由于线宽为 0 定义与 + 设备相关,所以不推荐使用线宽为 0。 + + + 默认值为 0.353 mm + + + + 线宽 + this + 线宽必须是非负浮点数 + + + + 【可选 属性】 + 获取 线宽 + + 非负浮点数,指定了绘制路径绘制时线的宽度。由于 + 某些设备不能输出一个像素宽度的线,因此强制规定 + 当线宽大于 0 时,无论多小都至少要绘制两个像素的宽度; + 当线宽为 0 时,绘制一个像素的宽度。由于线宽为 0 定义与 + 设备相关,所以不推荐使用线宽为 0。 + + + 默认值为 0.353 mm + + + + 线宽 + + + + 【可选 属性】 + 设置 线条连接样式 + + 可选样式参照,线条连接样式的取值和显示效果之间的关系见表 + + + + 线条连接样式 + this + + + + 【可选 属性】 + 获取 线条连接样式 + + 可选样式参照,线条连接样式的取值和显示效果之间的关系见表 + + + + 线条连接样式 + + + + 【可选 属性】 + 设置 线端点样式 + + 可选样式参照,线条端点样式取值与效果之间关系见表 24 + + + + 线端点样式 + this + + + + 【可选 属性】 + 设置 线端点样式 + + 可选样式参照,线条端点样式取值与效果之间关系见表 24 + + + 默认值为 Butt + + + + 线端点样式 + + + + 【可选 属性】 + 设置 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + + 线条虚线开始位置 + this + + + + 【可选 属性】 + 获取 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + + 线条虚线开始位置 + + + + 【可选 属性】 + 设置 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + this + + + + 【可选 属性】 + 获取 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + + + + 【可选 属性】 + 设置 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + + Join的截断值长度 + this + + + + 【可选 属性】 + 获取 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + + Join的截断值长度 + + + + 【可选】 + 设置 填充颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为透明色。关于颜色的描述见 8.3 + + + + 填充颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为透明色。关于颜色的描述见 8.3 + + + + 填充颜色 + + + + 【可选】 + 设置 勾边颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为黑色。关于颜色的描述见 8.3 + + + + 勾边颜色 + this + + + + 【可选】 + 获取 勾边颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为黑色。关于颜色的描述见 8.3 + + + + 勾边颜色 + + + + 线端点样式 + + 指定一条线的端点样式。 + + + 线条端点样式取值与效果之间关系见表 24 + + 默认值为 Butt + + + + + + 根据类型字符串获取类型枚举 + + 默认值:Miter + + + + 类型字符串 + 枚举实例 + 未知的线端点样式 + + + + 线条连接样式 + + 指定了两个线的端点结合时采用的样式 + + + 线条连接样式的取值和显示效果之间的关系见表 22 + + + + + + 根据类型字符串获取类型枚举 + + 默认值:Miter + + + + 类型字符串 + 枚举实例 + 未知线条连接样式 + + + + 电子印章信息 + + 18.2.1 图 86 表 67 + + + + + + 【必选】 + 设置 指向包内的安全电子印章文件路径 + + 遵循密码领域的相关规范 + + + + 指向包内的安全电子印章文件路径 + this + + + + 【必选】 + 获取 指向包内的安全电子印章文件路径 + + 遵循密码领域的相关规范 + + + + 指向包内的安全电子印章文件路径 + + + + 签名的外观 + + 一个数字签名可以跟一个或多个外观描述关联,也可以不关联任何外观, + 其关联方式如图 88所示。 + + + 18.2.3 图 88 表 69 + + + + + + 【必选 属性】 + 设置 签章注释的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签章注释的标识 + this + + + + 【必选 属性】 + 获取 签章注释的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签章注释的标识 + + + + 【必选 属性】 + 设置 引用外观注释所在的页面的标识符 + + 引用外观注释所在的页面的标识符 + this + + + + 【必选 属性】 + 获取 引用外观注释所在的页面的标识符 + + 引用外观注释所在的页面的标识符 + + + + 【必选 属性】 + 设置 签章注释的外观边框位置 + + 可用于签章注释所在页面内的定位 + + + + 签章注释的外观边框位置 + this + + + + 【必选 属性】 + 获取 签章注释的外观边框位置 + + 可用于签章注释所在页面内的定位 + + + + 签章注释的外观边框位置 + + + + 【可选 属性】 + 设置 签章注释的外观裁剪设置 + + 签章注释的外观裁剪设置 + this + + + + 【可选 属性】 + 获取 签章注释的外观裁剪设置 + + 签章注释的外观裁剪设置 + + + + 针对一个文件的摘要节点 + + 18.2.2 签名的范围 图 87 表 68 + + + + + + 【必选 属性】 + 设置 指向包内的文件,使用绝对路径 + + 指向包内的文件,使用绝对路径 + this + + + + 【必选 属性】 + 获取 指向包内的文件,使用绝对路径 + + 指向包内的文件,使用绝对路径 + + + + 【必选】 + 设置 对包内文件进行摘要计算值的杂凑值 + + 所得的二进制摘要值进行 base64 编码 + + + + 对包内文件进行摘要计算值的杂凑值 + this + + + + 【必选】 + 获取 对包内文件进行摘要计算值的杂凑值 + + 对包内文件进行摘要计算值的杂凑值 + + + + 签名的范围 + + 18.2.2 签名的范围 图 87 表 68 + + + + + + 【可选 属性】 + 设置 摘要方法 + + 视应用场景的不同使用不同的摘要方法。 + 用于各行业应用时,应使用符合行业安全贵方的算法。 + + + + 摘要方法 + this + + + + 【可选 属性】 + 获取 摘要方法 + + 视应用场景的不同使用不同的摘要方法。 + 用于各行业应用时,应使用符合行业安全贵方的算法。 + + + + 摘要方法 + + + + 【必选】 + 增加 针对一个文件的摘要节点 + + 针对一个文件的摘要节点 + this + + + + 检查是否包含文件 + + 文件绝对路径 + true - 含有文件;false - 不含 + + + + 【必选】 + 获取 针对一个文件的摘要节点列表 + + 针对一个文件的摘要节点列表 + + + + 数字签名或安全签章在类表中的注册信息,依次签名或签章对应一个节点 + + 18.1 签名列表 图 85 表 66 + + + + + + 【必选 属性】 + 设置 签名或签章的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签名或签章的标识 + this + + + + 【必选 属性】 + 获取 签名或签章的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签名或签章的标识 + + + + 【可选 属性】 + 设置 签名节点的类型 + + 可选值参考 + + + 默认值为Seal + + + + 签名节点的类型 + this + + + + 【可选 属性】 + 获取 签名节点的类型 + + 可选值参考 + + + 默认值为Seal + + + + 签名节点的类型 + + + + 【必选 属性】 + 设置 指向包内的签名描述文件 + + 指向包内的签名描述文件 + this + + + + 【必选 属性】 + 获取 指向包内的签名描述文件 + + 指向包内的签名描述文件 + + + + 签名列表根节点 + + 签名列表问价你的入口点在 7.4 主入口中定义。 + 签名列表文件中可以包含多个签名(例如联合发文等情况),见图 85。 + 当允许下次继续添加签名时,该文件不会被包含到本次签名的 + 保护文件列表(References)中。 + + + 18.1 签名列表 图 85 表 66 + + + + + + 【可选 属性】 + 设置 安全标识的最大值 + + 作用与文档入口文件 Document.xml 中的 MaxID相同, + 为了避免在签名时影响文档入口文件,采用了与ST_ID不一样 + 的ID编码方式。 + + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 安全标识的最大值 + this + + + + 【可选 属性】 + 获取 安全标识的最大值 + + 作用与文档入口文件 Document.xml 中的 MaxID相同, + 为了避免在签名时影响文档入口文件,采用了与ST_ID不一样 + 的ID编码方式。 + + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 安全标识的最大值 + + + + 【可选】 + 增加 数字签名或安全签章在类表中的注册信息 + + 数字签名或安全签章在类表中的注册信息 + this + + + + 【可选】 + 获取 数字签名或安全签章在类表中的注册信息序列 + + 数字签名或安全签章在类表中的注册信息序列 + + + + 签名节点的类型 + + 目前规定了两个可选值 + + + 18.1 签名列表 图 85 表 66 + + + + + + 安全签章 + + 默认值 + + + + + + 纯数字签名 + + + + + 创建签名时所用的签章组件提供者信息 + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选 属性】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + this + + + + 【必选 属性】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的版本 + + 创建签名时所使用的签章组件的版本 + this + + + + 【可选 属性】 + 获取 创建签名时所使用的签章组件的版本 + + 创建签名时所使用的签章组件的版本 + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的制造商 + + 创建签名时所使用的签章组件的制造商 + this + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的制造商 + + 创建签名时所使用的签章组件的制造商 + + + + 签名描述文件的根节点 + + OFD的数字签名通过对描述文件的保护间接实现对OFD原文的保护。 + 签名结构中的签名信息(SignedInfo)是这一过程中的关键点, + 其中记录了当次数字签名保护的所有文件的二进制摘要信息,同时 + 将安全算法提供者、签名算法、签名时间、和所应用的安全印章等 + 信息也包含在此节点内。签名描述文件同时包含了签名值将要存放的 + 包内位置,一旦对该文件实施签名保护,则其对应的包内文件原文 + 以及本次签名对应的附加信息都将不可改动,从而实现依次数字签名 + 对整个原文内容的保护。签名描述文件的主要结构描述见图 86。 + + + 文件摘要文件根节点为 Signature,其子节点 SignedInfo 对应元素说明见表 67。 + + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选】 + 设置 签名要保护的原文及本次签名的相关信息 + + 签名要保护的原文及本次签名的相关信息 + this + + + + 【必选】 + 获取 签名要保护的原文及本次签名的相关信息 + + 签名要保护的原文及本次签名的相关信息 + + + + 【必选】 + 设置 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + this + + + + 【必选】 + 获取 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + + + 签名要保护的原文及本次签名相关的信息 + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + this + + + + 【必选】 + 获取 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + + + + 【可选】 + 设置 签名方法 + + 记录安全模块返回的签名算法代码,以便验证时使用 + + + + 签名方法 + this + + + + 【可选】 + 设置 签名方法 + + 记录安全模块返回的签名算法代码,以便验证时使用 + + + + 签名方法 + + + + 【可选】 + 设置 签名时间 + + 记录安全模块返回的签名时间,以便验证时使用 + + + + 签名时间 + this + + + + 【可选】 + 设置 签名时间 + + 记录安全模块返回的签名时间,以便验证时使用 + + + + 签名时间 + + + + 【必选】 + 设置 包内文件计算所得的摘要记录列表 + + 一个受本次签名保护的包内文件对应一个 Reference节点 + + + + 包内文件计算所得的摘要记录列表 + this + + + + 【必选】 + 设置 包内文件计算所得的摘要记录列表 + + 一个受本次签名保护的包内文件对应一个 Reference节点 + + + + 包内文件计算所得的摘要记录列表 + + + + 【可选】 + 增加 本签名关联的外观(用OFD中的注解表示) + + 该节点可出现多次 + + + + 本签名关联的外观 + this + + + + 【可选】 + 获取 本签名关联的外观(用OFD中的注解表示)序列 + + 该节点可出现多次 + + + + 本签名关联的外观序列 + + + + 【可选】 + 设置 电子印章信息 + + 电子印章信息 + this + + + + 【可选】 + 设置 电子印章信息 + + 电子印章信息 + + + + 摘要算法 + + + + + 默认值 + + + + + 变换描述 + + 当存在字形变换时,TextCode对象中使用字形变换节点(CGTransform)描述字符编码 + 和字形索引之间的关系。 + + + 11.4.1 变换描述 图 66 表 48 + + + + + + 【必选 属性】 + 设置 TextCode 中字符编码的起始位置 + + 从 0 开始 + + + + TextCode 中字符编码的起始位置 + this + + + + 【必选 属性】 + 获取 TextCode 中字符编码的起始位置 + + 从 0 开始 + + + + TextCode 中字符编码的起始位置 + + + + 【可选 属性】 + 设置 变换关系中字符的数量 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字符的数量,数值应大于等于 1,否则属于错误描述 + this + + + + 【可选 属性】 + 获取 变换关系中字符的数量 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字符的数量,数值应大于等于 1,否则属于错误描述 + + + + 【可选 属性】 + 设置 变换关系中字形索引的个数 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字形索引的个数 + this + + + + 【可选 属性】 + 设置 变换关系中字形索引的个数 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字形索引的个数 + + + + 【可选】 + 设置 变换后的字形索引列表 + + 变换后的字形索引列表 + this + + + + 【可选】 + 获取 变换后的字形索引列表 + + 变换后的字形索引列表 + + + + 字形适用的字符分类 + + 用于匹配替代字形 + + + 11.1 表 44 + + + 附录 A.5 CT_Font + + + + + + 符号 + + + + + 默认值 + + + + + 字形名 + + + + 【必选 属性】 + 设置 字形名 + + 字形名 + this + + + + 【必选 属性】 + 获取 字形名 + + 字形名 + + + + 【可选 属性】 + 设置 字形族名 + + 用于匹配代替字形 + + + + 字形族名 + this + + + + 【可选 属性】 + 获取 字形族名 + + 用于匹配代替字形 + + + + 字形族名 + + + + 【可选 属性】 + 设置 字形适用的字符分类 + + 可选值参考 + + + + 字形适用的字符分类 + this + + + + 【可选 属性】 + 获取 字形适用的字符分类 + 可选值参考 + + 字形适用的字符分类 + + + + 【可选 属性】 + 设置 是否是斜体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 斜体; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是斜体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 斜体; false - 正常 + + + + 【可选 属性】 + 设置 是否是粗字体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 粗体; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是粗字体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 粗体; false - 正常 + + + + 【可选 属性】 + 设置 是否是带衬线字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 带衬线;false - 正常 + this + + + + 【可选 属性】 + 获取 是否是带衬线字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 带衬线;false - 正常 + + + + 【可选 属性】 + 设置 是否是等宽字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 等宽字形;false - 正常 + this + + + + 【可选 属性】 + 设置 是否是等宽字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 等宽字形;false - 正常 + + + + 【可选】 + 设置 指向内嵌字形文件 + + 嵌入字形文件应使用 OpenType 格式 + + + + 指向内嵌字形文件路径 + this + + + + 【可选】 + 获取 指向内嵌字形文件 + + 嵌入字形文件应使用 OpenType 格式 + + + + 指向内嵌字形文件路径 + + + + 文字定位 + + 文字对象使用严格的文字定位信息进行定位 + + + 11.3 文字定位 图 61 表 46 + + + + + + 设置文字内容 + + 内容 + this + + + + 获取文字内容 + + 文字内容 + + + + 设置坐标 + + 横坐标 + 纵坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 X 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 X 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 X 坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 X 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 X 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 X 坐标;null表示采用上一个 TextCode 的 X 值 + + + + 【可选 属性】 + 设置 第一个文字的字形原点在对象坐标系下的 Y 坐标 + + 当 Y 不出现,则采用上一个 TextCode 的 Y 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形原点在对象坐标系下的 Y 坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 Y 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 Y 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 Y 坐标;null表示采用上一个 TextCode 的 Y 值 + + + + 【可选 属性】 + 设置 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值 + this + + + + 【可选 属性】 + 设置 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值数值 + this + + + + 【可选 属性】 + 获取 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值;null表示不偏移 + + + + 【可选 属性】 + 设置 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移值;null表示不偏移 + this + + + + 【可选 属性】 + 设置 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移数值 + this + + + + 【可选 属性】 + 获取 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移值;null表示不偏移 + + + + 解析delta的值,处理g的格式 + + @return + + + + 文字对象 + + 11.2 文字对象 图 59 表 45 + + + + + + 获取文字对象 + + 文字对象ID + 文字对象 TextObject + + + + 构造文字对象 + + 对象ID + 对象 + + + + 【必选 属性】 + 设置 引用资源文件中定义的字形标识 + + 引用字形资源文件路径 + this + + + + 【必选 属性】 + 设置 引用资源文件中定义的字形标识 + + ID + this + + + + 【必选 属性】 + 获取 引用资源文件路径 + + 引用字形资源文件路径 + + + + 【必选 属性】 + 设置 字号,单位为毫米 + + 字号,单位为毫米 + this + + + + 【必选 属性】 + 获取 字号,单位为毫米 + + 字号,单位为毫米 + + + + 【可选 属性】 + 设置 是否勾边 + + 默认值为 false + + + + true - 勾边;false - 不勾边 + this + + + + 【可选 属性】 + 获取 是否勾边 + + 默认值为 false + + + + true - 勾边;false - 不勾边 + + + + 【可选 属性】 + 设置 是否填充 + + 默认值为 true + + + + true - 填充;false - 不填充 + this + + + + + 【可选 属性】 + 设置 勾边宽度 + + 勾边宽度 + this + + + + 【可选 属性】 + 设置 字形在水平方向的缩放比 + + 默认值为 1.0 + + + 例如:当 HScale 值为 0.5 时表示实际显示的字宽为原来字宽的一半。 + + + + 字形在水平方向的缩放比 + this + + + + 【可选 属性】 + 获取 字形在水平方向的缩放比 + + 默认值为 1.0 + + + 例如:当 HScale 值为 0.5 时表示实际显示的字宽为原来字宽的一半。 + + + + 字形在水平方向的缩放比 + + + + 【可选 属性】 + 指定 阅读方向 + + 指定了文字排列的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 阅读方向,可选值为 + this + + + + 【可选 属性】 + 获取 阅读方向 + + 指定了文字排列的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 阅读方向,可选值为 + + + + 【可选 属性】 + 指定 字符方向 + + 指定了文字放置的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 字符方向,可选值为 + this + + + + 【可选 属性】 + 获取 字符方向 + + 指定了文字放置的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 字符方向,可选值为 + + + + 【可选 属性】 + 设置 文字对象的粗细值 + + 默认值为 400 + + + + 文字对象的粗细值,可选值 + this + + + + 【可选 属性】 + 设置 文字对象的粗细值 + + 默认值为 400 + + + + 文字对象的粗细值,可选值 + + + + 【可选 属性】 + 设置 是否是斜体样式 + + 默认值为 false + + + + true - 斜体样式; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是斜体样式 + + 默认值为 false + + + + true - 斜体样式; false - 正常 + + + + 【可选】 + 设置 填充颜色 + + 默认为黑色 + + + 填充颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 默认为黑色 + + + 填充颜色,null表示黑色 + + + + 【可选】 + 设置 勾边颜色 + + 默认为透明色 + + + + 勾边颜色 + this + + + + 【可选】 + 获取 勾边颜色 + + 默认为透明色 + + + + 勾边颜色,null为透明色 + + + + 【可选】 + 增加 指定字符编码到字符索引之间的变换关系 + + 描述见 11.4 字符变换 + + + + 字符编码到字符索引之间的变换关系 + this + + + + 【可选】 + 获取 指定字符编码到字符索引之间的变换关系序列 + + 描述见 11.4 字符变换 + + + + 字符编码到字符索引之间的变换关系序列 + + + + 【必选】 + 增加 文字内容 + + 也就是一段字符编码串 + + + 如果字符编码不在XML编码方式的字符范围之内,应采用"\"加四位 + 十六进制数的格式转义;文字内容中出现的空格也需要转义 + 若 TextCode 作为占位符使用时一律采用 ¤ (\u00A4)占位 + + + + 文字内容 + this + + + + 【必选】 + 获取 文字内容序列 + + 也就是一段字符编码串 + + + 如果字符编码不在XML编码方式的字符范围之内,应采用"\"加四位 + 十六进制数的格式转义;文字内容中出现的空格也需要转义 + 若 TextCode 作为占位符使用时一律采用 ¤ (\u00A4)占位 + + + + 文字内容序列 + + + + 方向角度 + + 11.3 文字定位 表 47 + + + + + + 可选旋转角度 0、90、180、270 + + + + + 旋转角度 + + + + + 文字对象的粗细值 + + 11.3 表 45 + + + + + + 可选值为 + 100,200,300,400,500,600,700,800,900 + + + + + 默认值 + + + + + 获取字体粗细值 + + 粗细值 + + + + 版本 + + 版本信息在独立的文件中描述,如图 90 所示。 + 版本定义结构中列出了一个 OFD 文档版本中所需的所有文件。 + + + 19.2 版本 图 90 表 71 + + + + + + 【属性 必选】 + 设置 版本标识符 + + 版本标识符 + this + + + + 【属性 必选】 + 获取 版本标识符 + + 版本标识符 + + + + 【属性 可选】 + 设置 该文件适用的格式版本 + + 该文件适用的格式版本 + this + + + + 【属性 可选】 + 获取 该文件适用的格式版本 + + 该文件适用的格式版本,null表示不存在 + + + + 【属性 可选】 + 设置 版本名称 + + 版本名称 + this + + + + 【属性 可选】 + 获取 版本名称 + + 版本名称,null表示不存在 + + + + 【属性 可选】 + 设置 创建时间 + + 创建时间 + this + + + + 【属性 可选】 + 获取 创建时间 + + 创建时间 + + + + 【必选】 + 设置 版本包含的文件列表 + + 版本包含的文件列表 + this + + + + 【必选】 + 获取 版本包含的文件列表 + + 版本包含的文件列表 + + + + 【必选】 + 设置 该版本的入口文件 + + 该版本的入口文件 + this + + + + 【必选】 + 获取 该版本的入口文件 + + 该版本的入口文件 + + + + 文件列表文件描述 + + 19.2 表 71 + + + + + 文件列表文件标识 + 文件列表文件描述 + + + + 【必选 属性】 + 设置 文件列表文件标识 + + 文件列表文件标识 + this + + + + 【必选 属性】 + 获取 文件列表文件标识 + + 文件列表文件标识 + + + + 【必选】 + 设置 文件列表文件描述 + + 文件列表文件描述 + this + + + + 【必选】 + 获取 文件列表文件描述 + + 文件列表文件描述 + + + + 版本包含的文件列表 + + 19.2 标 71 + + + + + + 【必选】 + 增加 文件列表文件描述 + + 文件列表文件描述 + this + + + + 【必选】 + 增加 文件列表文件描述 + + 文件列表文件标识 + 文件列表文件描述 + this + + + + 【必选】 + 获取 文件列表文件描述列表 + + 文件列表文件描述列表 + + + + 表 70 版本描述入口 + + + + + 创建版本描述入口 + + 默认为默认版本(Current="false") + 版本标识(不含特殊字符字符串) + 版本号 + 指向包内的版本描述文件 + + + + 【必选】 + 设置版本标识 + + 版本标识 (不含特殊字符,字符串) + this + + + + 【必选】 + 获取版本标识 + 版本标识 + + + + 【必选】 + 设置 版本号 + + 版本号 + this + + + + 【必选】 + 获取 版本号 + + 版本号, -1 表示没有 + + + + 【可选】 + 获取 是否是默认版本 + + 默认值:false + + + + true 表示是默认版本 + + + + 【可选】 + 设置 是否是默认版本 + + true 表示是默认版本 + this + + + + 【必选】 + 设置 指向包内的版本描述文件 + + 版本描述文件路径 + this + + + + 【必选】 + 设置 指向包内 的版本描述文件 + + 版本描述文件路径 + + + + 一个OFD文档可能有多个版本 + + 版本序列 + + + 图 89 版本结构列表 + + + + + + 【必选】 + 增加 版本描述入口 + + 版本描述入口 + this + + + + 【必选】 + 获取 版本描述入口列表 + + 版本描述入口列表 + + + + 静态变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 命名空间 URI,《GB/T_33190-2016》 7.1 命名空间 + + + + + 元素节点应使用命名空间标识符 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + OFD命名空间 + + + + + 通用的OFD命名空间前缀 + + + + + 使用命名空间为 http://www.ofdspec.org/2016,其表示符应为 ofd。 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + xs:date 类型日期格式化 + + + + + xs:dateTime 类型时间日期格式化 + + + + + OFD索引文件 + + + + + 文档容器名称前缀 + + + + + 文档的根节点描述文件名称 + + + + + 文档公共资源索引描述文件名称 + + + + + 文档自身资源索引描述文件名称 + + + + + 注释入口文件名称 + + + + + 附件入口文件名称 + + + + + OFD文档主入口文件名称 + + + + + + + + + + + + + + + + + + + + + + + + + 页面容器名称前缀 + + + + + 页面描述文件名称 + + + + + 记录了资源描述文件名称 + + + + + 记录了页面关联的注解对象 + + + + + 签名容器名称前缀 + + + + + 电子印章文件名 + + + + + 签名/签章 描述文件名 + + + + + 签名值文件名 + + + + + 签名列表文件名称 + + + + + Ofd文档对象 + + + + + odf文档阅读器 + + + + + 文档根节点对象,Document.xml + + + + + ofd文档所有页面 + + + + + 资源管理器 + + + + + 资源管理器 + + + + + 资源定位器 + + + + + ofd文档所有页面 + + + + + Initializes a new instance of the class. + + + + + + Get the document info. + + + + + 获取页面物理大小 + + 如果页面没有定义页面区域,则使用文件 CommonData中的定义 + + + + 页面对象 + 页面大小 + + + + 根据模板ID获取页对象 + + + + + + + Initializes a new instance of the class. + + + + + Convert a path data to a list of PsPathFigure. + + The Path data. + A list of PsPathFigure + + + + Convert line points to PsPolyLineSegment. + + The start point of the line. + The points of the line. + The PsPolyLineSegment + + + + Convert bezier curve points to PsBezierSegment. + + The start point of the bezier curve. + The points of the bezier curve. + The PsBezierSegment + + + + Convert elliptical arc points to ApsArcSegment. + + The start point of the elliptical arc. + The points of the elliptical arc. + The ApsArcSegment + + + + Get the center point of an elliptical arc. + + The start point of the elliptical arc. + The points of the elliptical arc. + The center point. + + + + Split a path data to a list of path commands. + + The Path data. + A list of path commands + + + + 指示指定的字符串是 null 还是空字符串 ("") or (" "). + + + + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd image to ps object. + + The text object. + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd path to ps object. + + The path object. + + + + The process context. + + + + + The image renderer. + + + + + The text renderer. + + + + + The path renderer. + + + + + Initializes a new instance of the class. + + + + + Render a list of ofd pages to ps pages. + + The list of ps pages. + + + + Render a ofd page to ps page. + + The ofd page to be rendered. + A ps page. + + + + Render ofd layers. + + The list of layer. + + + + Render ofd page blocks. + + The list of block. + + + + Render ofd annotation. + + The annot. + + + + Render ofd stamp annotation. + + The stamp annot. + + + The ofd document. + + + + 获取PS图片对象 + + 引用ID + The image stream. + + + + 获取PS图片对象 + + 引用ID + A ps image object. + + + + Get ps font + + 引用ID + fontStyle + The font size. + A ps font. + + + + 获取矢量图形 + + 资源ID + 矢量图形,不存在返回null + + + + Get ofd color space. + + 引用ID + A color space object. + + + + Get ofd font + + 引用ID + + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd text object to ps object. + + The text object. + + + + Render ofd text code to ps object. + + + + + + + + + + + + + + + + + + 获取最终写入的字符编码 + + + + + + + + 获取文本的字体样式 + + The ofd font. + + + + + 获取文本偏移位子 + + + + + + The ofd document. + + + + 根据模板ID获取页对象 + + + + + + + Convert ofd color to ps color. + + The ofd color. + A ps color. + + + + Convert ofd color to ps brush. + + The ofd color. + A ps brush. + + + + Convert ofd axialShd to ps brush. + + The ofd axialShd. + The rectangle. + A ps brush. + + + + Convert ofd radialShd to ps brush. + + The ofd radialShd. + A ps brush. + + + + Convert ofd pattern to ps brush. + + The ofd pattern. + A ps brush. + + + + Converts a ofd font to TtfFont + + + + + The process context. + + + + + The ofd source font. + + + + + The new embedded TTFFont. + + + + + Initializes a new instance of the class. + + + + + 构建所有页面下的字体 + + + + + + 构建当前Page下的字体 + + + + + + 构建Layers节点下的字体 + + + + + + 构建PageBlocks节点下的字体 + + + + + + Builds the font of the current text + + + + + + Build font by font data. + + + + + + Create TTFont by ofd embedded font. + + The ofd source font. + The new TTFFont + + + + Create TTFont by ofd non-embedded font. + + The ofd source font. + The new TTFont + + + + ofd字体数据写入新的ttf字体 + + The source font. + The new ttf font. + The text object. + + + + Create a cff font by font data. + + The font data. + The cff font. + + + + Create a type1 font by font data. + + The font data. + The type1 font. + + + + Create a ttf font by font data. + + + The ttf font. + + + + Is Type1 Font? + + + + + + + Save the TTFFont to the TTFont + + + + + 一对一关系,检查textObject.CGTransforms与textCode的映射关系是否正确,某些情况下不能使用textCode作为写入的字符编码 + + + + + + + Fetch font name. + + + + + + + + + + + + + + + + + + + + + + + + + + + Create ps image. + + The image bytes + The ps image + + + + Reverse y position. + + + + + + 文档容器 + + + + + 表示第几份文档,从0开始 + + + + + 获取文档索引 + + 文档编号(用于表示第几个) ,从0起 + + + + 获取文档的根节点 + + + + + 获取文档公共资源索引 + + + + + 获取文档自身资源索引对象 + + + + + 获取注释列表对象 + + + + + 获取资源容器 + + + + + 获取 数字签名存储目录 + + + + + + + + + + + + 设置 文档公共资源索引 + + 文档公共资源索引 + this + + + + 设置注释列表对象 + + 注释列表对象 + 注释列表对象 + + + + 设置 文档自身资源索引 + + 文档自身资源索引 + this + + + + 设置 文档的根节点 + + 文档的根节点 + this + + + + 获取 资源文件夹 + + 如果资源文件不存在则创建 + + + + this + + + + 获取 数字签名存储目录 + + 如果数字签名存储目录不存在则创建 + + + + 数字签名存储目录 + + + + 获取 页面存储目录 + + 如果页面存储目录则会创建 + + + + 页面存储目录 + + + + 增加资源 + + 资源 + this + + + + OFD文档对象 + + 请显示的调用Close或clean方法清除工作过程中的文件和目录 + + + + + + OFD文档主入口文件名称 + + + + + 最大文档索引 + 1 + + + + + 新建一个OFD文档 + + OFD文档 + + + + 指定路径创建或读取OFD文档容器 + + 如果容器文档已经存在,那么读取 + + + 如果文档不存在那么创建一个文档 + + + + + + + 容器初始化 + + + + + 获取 + + 文档主入口文件对象 + + + + 设置 文档主入口文件对象 + + 文档主入口文件对象 + this + + + + 新建一个文档容器 + + 新建的文档容器 + + + + 获取指定Index的文档 + + 如果文档不存在那么创建 + + + + index + 文档容器 + + + + 通过文档索引获取文档容器 + + 文档索引 + 文档容器 + + + + 获取第一个文档容器作为默认 + + 第一个文档容器 + + + + 页面目录容器 + + + + + 代表OFD中第几页 + + index 从 0 开始取 + + + + + + 获取页面索引 + + + + + 获取页面资源描述文件 + + 页面资源描述文件 + + + + 获取分页注释文件 + + 分页注释文件 + + + + 获取资源文件虚拟容器 + + 获取资源目录 + + + + 获取页面描述对象 + + 页面描述 + + + + 设置页面描述 + + 页面描述 + this + + + + 向页面中增加页面资源 + + 资源 + this + + + + 设置页面资源描述对象 + + 页面资源描述对象 + this + + + + 设置分页注释文件 + + 分页注释文件 + this + + + + 获取页面资源目录 + + 如果目录不存在则创建 + + + + 资源目录容器 + + + + 页面容器 + + + + + 最大页面索引 + 1 + + index + 1 + + + + + + + + + + + + 初始化容器 + + + + + 创建一个新的页面容器 + + 页面容器 + + + + 获取索引的页面容器 + + 页码 = index + 1 + + + + 索引(从0开始) + 指定索引页面容器 + + + + 资源目录 + + + + + 向目录中加入资源 + + 加入的资源将会被复制到指定目录,与原有资源无关 + + + + 资源 + this + + + + + + + + + + + 签名资源容器 + + + + + 表示第几个签名 + + + + 第几个签名,从1开始 + + + + 获取 电子印章文件 + + 电子印章文件 + + + + 获取 签名值文件 + + 签名值文件 + + + + 获取 签名/签章 描述文件 + + 签名/签章 描述文件 + + + + 设置 签名/签章 描述文件 + + 签名/签章 描述文件 + this + + + + 设置签名值文件 + + 签名值文件 + this + + + + 签名容器 + + + + + 签名Index最大值 + 1 + + 也就是签名容器数量,因为签名容器Index从0起算 + + + + + + 获取 签名列表文件 + + + + + 初始化容器 + + + + + 设置 签名列表文件 + + 签名列表文件 + this + + + + 创建一个签名/章虚拟容器 + + 签名/章虚拟容器 + + + + 获取指定签名容器 + + 第几个签名 + 签名容器 + + + + 虚拟容器对象 + + + + + + 文件根路径(完整路径包含当前文件名) + + + + + 目录名称 + + + + + 所属容器 + + + + + 文件缓存 + + + + + 用于保存读取到的文件的Hash + 因为读取操作导致文档加载到缓存, + 但是文件在flush时候,反序列丢失格式字符等 + 导致文件改动。 + + + + + 目录中的虚拟容器缓存 + + + + + 获取当前容器完整路径 + @return 容器完整路径(绝对路径) + + + + + + + + + + 获取虚拟容器的名称 + + 名称 + + + + 获取在容器中的绝对路径 + + 绝对路径对象 + + + + 获取该容器所属容器 + + 所属容器对象 + + + + 向虚拟容器中加入文件 + + 文件路径对象 + this + + + + 向虚拟容器加入对象 + + 文件名 + 元素对象 + this + + + + 通过文件名获取元素对象 + + 文件名 + 元素对象(不含代理) + + + + 计算获取的对象的序列化Hash值 + + 文档对象 + Hash + + + + 判断文件是否改动 + + 文件名 + 文件对象 + true - 已经被改动;false - 未改动 + + + + 获取容器中的文件对象 + + 文件名称 + 文件路径对象 + + + + + + 判断文件或对象是否存在 + + 文件名称 + true - 存在;false - 不存在 + + + + 删除整个虚拟容器 + + + + + 将缓存中的对象写入到文件系统中 + + + + + 从缓存中刷新指定容器到文件系统中 + + 容器名称 + this + + + + 从缓存将指定对象写入到文件系统中 + + 文件名称 + this + + + + 元素杯子 + + 对象序列化和反序列化工具 + + + 反序列化 向杯子中注入水 + + + 序列化把杯子中的水倒出 + + + + + + 从文件加载反序列化元素对象 + + 文件路径对象 + 反序列化的元素对象 + + + + 错误OFD文件结构和文档格式异常 + @since 2020-04-17 03:29:28 + + + + + 内容抽取器 + + + + + 解析结果接收器 + + + + + 构造文字抽取器 + + OFD解析器 + + + + 抽取指定页面内的所有文字 + + 页码,从1开始 + 页面内容的所有文本内容序列 + + + + 页块处理 + + 文本列表 + 页块列表 + + + + 获取OFD内的所有文本内容 + + OFD中所有文本内容 + + + + 遍历所有页面 + + 接受 + + + + DeltaX和DeltaY工具 + + + + + 获取Delta数据 + + OFD数组对象 + 文本长度 + 一组坐标偏移值 + + + + ofd解析器 + + + + + 资源管理器 + + + + + 因一些ofd文件无法使用ZipUtil解压缩,可以让用户自己在外面解压缩好后,传入根目录创建 + 例如用户可以使用unzip或者unar等命令行方式解压缩 + + 已经解压的OFD根目录位置,因此通过参数控制是否删除目录。 + 退出时是否删除 unzippedPathRoot 文件, true - 退出时删除;false - 不删除 + + + + 初始化reader + + + + + 获取资源管理器 + + 资源管理器获取到的对象均为只读对象 + + + + 资源管理器 + + + + 文档异常 + + + + + 错误路径异常 + @since 2020-04-09 20:05:29 + + + + + 关键字抽取 + + + + + 每毫米的point单位 + 1 point / 2.83464567 ≈ 0.35277778 mm + + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字列表 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字 + 要检索的页码,从1开始,不超过最大页码 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字列表 + 要检索的页码,从1开始,不超过最大页码 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 检查后缀匹配 + + 待匹配文本 + 关键字 + 是/否 匹配 + + + + 处理后缀匹配断字断行文本定位关键字 + + 关键字字符串 + 映射对象 + 文本定位列表 + 关键字位置列表 + TextCode位置 + TextCode文本起始位置 + 第一个文字定位 + + + + 处理前缀匹配断字断行文本定位关键字 + + 关键字字符串 + 映射对象 + 文本定位列表 + 关键字位置列表 + 定位起始位置 + 第一个文字定位 + + + + 检索下一个文本定位节点 + + 关键字字符串 + 文本定位列表 + 合并的TextCode列表 + 文本资源映射对象 + TextCode位置 + 最先匹配字符串 + 第一个匹配文字 + + + + 处理正常关键字 + + 关键字 + 映射对象 + 为转移列表 + 文字定位 + 文本索引 + + + + 获取CTM后的关键字位置 + + 文字定位 + 文本索引 + 文本资源 + 文字对象 + CTM对象 + X偏移 + Y偏移 + 文本长度 + 关键字位置 + + + + 合并坐标 + + 坐标列表 + 矩形框 + + + + 坐标转换 + + 矩阵数组 + 原始X + 原始Y + 计算后位置 + + + + 获取Matrix数据 + + ctm对象 + 矩阵对象 + + + + 合并关键字位置对象 + + 关键字 + 第一个关键字起始匹配位置 + 检索到的关键字列表 + 合并列表 + 外接矩形映射 + + + + 合并Box + + 盒子列表 + + + + 获取获取模板字典 + + 资源定位器 + Document File路径 + 文档对象 + 文件不存在异常 + 文档解析异常 + + + + 创建关键字位置对象 + + 文字定位对象 + 文本索引 + 页码 + 文字对象 + 字体属性 + X偏移 + Y偏移 + 文本长度 + 关键字对象 + + + + 获取文本宽度,单位毫米(mm) + + 文字索引 + 文本长度 + X偏移量 + 文字字号 + 文本宽度 + + + + 获取字体 + + 文字对象 + 字形对象 + 字体对象 + + + + 获取左下角位置 + + 矩形框 + 文字定位 + X偏移 + Y偏移 + 文字索引 + 左下角坐标 + + + + 预处理数据 + + OFD解析器 + 文本列表 + 外接矩形映射 + 字体映射对象 + 模板数据 + 页码 + + + + 页面块处理 + + 文本列表 + 外接矩形映射 + 字体映射对象 + 页码 + 页块列表 + + + + 获取字体映射对象 + + 资源定位器 + Document File路径 + 文档对象 + 文件不存在异常 + 文档解析异常 + + + + 关键字位置 + + @author minghu-zhang + @since 16:25 2020/9/26 + + + + + 关键字所在页码 + + + + + 矩形区域 + + + + + 所属关键字 + + + + + 文本资源 + @since 16:25 2020/9/25 + + + + + 页码 + + + + + 字体对象 + + + + + 文字对象 + + + + + @since 2020/9/25 + + + + + @since 2020/8/11 + + + + + @since 2020/8/11 + + + + + @author dltech21 + @since 2020/8/11 + + + + + @author dltech21 + @since 2020/8/11 + + + + + OFD解析器 + + + + + OFD虚拟容器对象 + + + + + 资源定位器 + + 解析路径获取资源 + + + + + + 是否已经关闭文档 + + + + + 构造一个 OFDReader + + OFD文件位置,例如:"/home/user/myofd.ofd" + OFD文件操作IO异常 + + + + 构造一个 OFDReader + + OFD文件输入流 + OFD文件操作IO异常 + + + + 因一些ofd文件无法使用ZipUtil解压缩,可以让用户自己在外面解压缩好后,传入根目录创建 + 例如用户可以使用unzip或者unar等命令行方式解压缩,因此通过参数控制是否删除目录。 + + 已经解压的OFD根目录位置 + 退出时是否删除 unzippedPathRoot 文件, true - 退出时删除;false - 不删除 + + + + 获取文档虚拟容器 + + OFD文档虚拟容器 + + + + 获取默认文档Doc_0中的签名列表文件的绝对路径 + + 签名列表文件绝对路径 + 错误OFD结构和文件格式导致结构无法解析 + + + + 获取默认的签名列表对象 + + 签名列表对象 + + + + 文档是否包含数字签名 + + true - 含有;false - 不含; + + + + 获取注解列表文件对象 + + 如果文档中没有注释文件,那么返还null + + + + 注解列表文件对象或null + + + + 获取OFD含有的总页面数量 + + 总页数 + + + + 获取页面信息 + + 页码,从1开始 + 页面信息 + + + + 获取页面物理大小 + + 如果页面没有定义页面区域,则使用文件 CommonData中的定义 + + + + 页面对象 + 页面大小 + + + + 通过页面页码获取页面对象 + + 页码,从1起 + 页面对象 + + + + 获取页面的对象ID + + 页码 + 对象ID + + + + 获取资源定位器 + + 资源定位器 + + + + 获取附件对象 + + 附件名称 + 如果附件或附件记录不存在,那么返还null + 文档结构损坏 + + + + 获取附件对象 + + 该方法不会恢复资源定位器 + + + + 附件名称 + 资源定位器 + 附件对象 + + + + 关闭文档 + + 删除工作区 + + + + 工作区删除异常 + + + + 页面信息 + + + + + 页面的物理大小 + + + + + 页面底层对象 + + + + + 页面在OFD中的对象ID + + + + + 页码,从1起 + + + + + 页面的绝对路径 + + + + + 资源定位器 + + 通过给与的资源地址获取对应的资源文件或对象 + + + + + + 路径匹配正则列表 + + + + + 资源容器 + + 该容器带有缓存功能 + + + + + + 当前目录 + + + + + 保存的路径栈 + + 每次调用Save都会入栈 + + + + + + * + 通过虚拟容器创建资源加载器 + + 创建资源加载器的同时切换路径至虚拟容器的目录 + + 虚拟容器 + + + + 保存当前工作路径 + + this + + + + 还原原有工作区 + + 如果没有保存过工作区,那么不会造成任何影响 + + + + this + + + + 转换路径对象为绝对路径字符串 + + 路径对象 + 绝对路径字符串 + + + + 路径转换为绝对路径 + + 容器路径 + 绝对路径字符串 + + + + 重置工作路径 + + 重置后将回到根路径 + + + + this + + + + 切换到制定的虚拟容器目录下 + + 虚拟容器 + this + + + + 改变目录 Change Directory + + 路径位置 + this + 路径不存在 + + + + 改变目录 Change Directory + + 路径最后如果是目录也不加 "/" + + + + 路径位置 + 已有工作目录 + this + 路径不存在 + + + + 判断路径是否存在 + + 路径集合 + true -存在,false - 不存在 + + + + 判断路径是否存在 + + 工作路径 + true -存在,false - 不存在 + + + + 打印工作目录 Print Work Directory + + 路径最后如果是目录也不加 "/" + + + + 工作目录路径 + + + + 打印工作目录 Print Work Directory + + 工作目录 + 工作目录路径 + + + + 获取以当前路径为基础的容器内绝对路径 + + 目标路径 + 容器内绝对路径 + + + + + + 获取路径下的文件 + + 路径 + 系统文件路径 + 文件或路径不存在 + + + + 通过路径获取容器 + + 路径序列 + 虚拟容器 + 路径不存在 + + + + 根据路径获取虚拟容器对象 + + 获取的同时会缓存整个容器链路 + + + + 容器目录 + 虚拟容器 + 路径不存在 + + + + 资源管理器 + + 使用ID随机访问文档中出现的资源对象 + + + 包括 公共资源序列(PublicRes) 和 文档资源序列(DocumentRes) + + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + + + 颜色空间 + + + + + 绘制参数 + + + + + 字形 + + + + + 多媒体对象 + + + + + 矢量图像 + + + + + 创建资源管理器 + + 选择默认文档(Doc_0)进行资源的加载 + + + + OFD解析器 + + + + 指定文档创建资源管理器 + + OFD解析器 + 文档序号,从0起 + + + + 获取绘制参数 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 绘制参数,不存在返回null + + + + 获取多媒体对象 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 多媒体对象,不存在返回null + + + + 获取图片资源的图片对象 + + 引用ID + 图片流 + IO异常 + + + + 获取图片对象的图像 + + 如果图片存在蒙板,那么返回蒙板后的图像 + + + + 图片对象 + 图片流(蒙板后) + 图片操作IO异常 + + + + 获取 字形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 字形,不存在返回null + + + + 获取颜色空间 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 颜色空间,不存在返回RGB + + + + 获取矢量图形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 矢量图形,不存在返回null + + + + 加载指定文档的资源 + + 由于每个文档的ID体系都是独立的, + + + 所以资源也是独立的,因此每次加载都会对上一个文档的资源进行清理。 + + + + 文档序号,从0起 + this + 文件读写异常 + 文档解析异常 + + + + 多文档资源加载 + + 文件读写异常 + 文档解析异常 + + + + 加载文档中的资源 + + 文档描述信息 + 文件读写异常 + 文档解析异常 + + + + 加载资源文文件中描述的资源对象 + + 该方法不应该抛出异常所有异常均应该被忽略以便程序继续执行 + + + + 资源加载器 + 资源文件位置 + + + + 获取资源的绝对地址 + + 资源加载器 + 资源文件的通用存储路径 + 资源文件路径 + 资源文件绝对地址 + + + + 获取文档中所有 颜色空间 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 颜色空间列表 + + + + 获取文档中所有 绘制参数 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 绘制参数 + + + + 获取文档中所有 字形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 字形 + + + + 获取文档中所有 媒体对象 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 媒体对象 + + + + 获取文档中所有 矢量图形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 矢量图形 + + + + 印章ofd的解析器 + + + + + 图片处理工具 + @since 2021-04-10 18:31:03 + + + + + 蒙版抠图 + + 根据mask中像素的颜色将原图中的像素抠掉 + + + + 原始图片 + 蒙板图片 + 扣去背景的图片对象 + + + + 创建图片 + + 图形宽度 + 图像高度 + 是否透明 + + + + 计算灰度 + + 红色通道 + 绿色通道 + 蓝色通道 + + + + 命名空间清理类 + + 用于清理已经存在的命名空间 + + @author libra19911018 + @since 2020-10-15 19:38:15 + + + + + + 命名空间变更 + @since 2020-10-15 20:01:20 + + + + + This is a abstract class base processor, it provides common functions. + + linwei + + + + pretreatment of picture + + input file stream + first node + picture location + xml namespace manager + result stream + + + + This is the interface of pre and post processors + + linwei + + + + interface for compression adapter + + linwei + + + + compress or decompress + + true if succeeded + false if failed + exceptions happen + + + + input file name + + + + + output file name + + + + + This interface defines the exposed interface of Translator + + linwei + + + Thrown whenever an error occurs during the build. + linwei + + + Thrown whenever an error occurs during the build. + linwei + + + + An XmlUrlResolver for zip packaged files + + sunqingzhi, linwei + + + + Zip archiving states + + linwei, sunqingzhi + + + + Not archiving + + + + + Waiting for an entry + + + + + Processing an entry + + + + + An XmlWriter implementation for serializing the xml stream to a zip archive. + All the necessary information for creating the archive and its entries is picked up + from the incoming xml stream and must conform to the following specification : + + TODO : XML schema + + example : + + <pzip:archive pzip:target="path"> + <pzip:entry pzip:target="relativePath"> + <-- xml fragment --< + </pzip:entry> + <-- other zip entries --< + </pzip:archive> + + + + + + The zip archive + + + + + A delegate XmlWriter that actually feeds the zip output stream. + + + + + The delegate settings + + + + + 源文件 + + + + + Source attribute of the currently processed binary file + + + + + 所有需要处理的二进制文件 + + + + + Constructor + + + + + Delegates WriteStartElement calls when the element's prefix does not + match a zip command. + + + + + + + + Delegates WriteEndElement calls when the element's prefix does not + match a zip command. + Otherwise, close the archive or flush the delegate writer. + + + + + copy binary data (currently, only picture) in to zip archive + + + + + Simple representation of elements or attributes nodes + + + + + An XmlUrlResolver for embedded resources. + + sunqingzhi, linwei + + + + This class is used to hold contants. + + linwei + linyaohu + + + + OOX file type + + linyaohu + + + + Translator factory which can judeg the input file type and initialize + + linyaohu + + + + check uof file type + + source file name + document type + + + + The event arguments passed between TranslatorLib and Add-in + + linwei + + + + This is a abstract class base Translator, it provides common functions. + + linwei + linyaohu + + + + main transform which needs the orginal File + + transform direction + xsl location + original File + File after pretreatment + output file + + + + zip the big xml file + + input xml file + zip file + + + + pretreatment of picture + + input file stream + first node + picture location + xml namespace manager + result stream + + + + pretreatment of custom xml data,OOXM to UOF + + input file stream + first node + name space manager + result stream + + + + get the embeded chart data + + chart type node (eg:c:barChart) + name space + chart data + + + + get the series name + + series node + name space + series name + + + + get the category name + + series node + name space + category name + + + + get the series' name + + chart xml file + series' name + + + + get the categories name + + chart xml file + categories name + + + + Check the chart cotains how many chart Types (Combo type) + + chart file + name space manager + chart type nodes + + + + get the title's text + + a:p + name sapce + title + + + + This class is used to handle the post processing for UOF.Currently, + we just replace the picture element with base64 content. + + sunqingzhi, linwei + + + + Zip archiving states + + linwei, sunqingzhi + + An XmlWriter implementation for serializing the xml stream to a zip archive. + All the necessary information for creating the archive and its entries is picked up + from the incoming xml stream and must conform to the following specification : + + TODO : XML schema + + example : + + <pzip:archive pzip:target="path"> + <pzip:entry pzip:target="relativePath"> + <-- xml fragment --< + </pzip:entry> + <-- other zip entries --< + </pzip:archive> + + + + + + The zip archive + + + + + A delegate XmlWriter that actually feeds the zip output stream. + + + + + The delegate settings + + + + + 源文件 + + + + + Source attribute of the currently processed binary file + + + + + 所有需要处理的二进制文件 + + + + + Constructor + + + + + Delegates WriteStartElement calls when the element's prefix does not + match a zip command. + + + + + + + + Delegates WriteEndElement calls when the element's prefix does not + match a zip command. + Otherwise, close the archive or flush the delegate writer. + + + + + copy binary data (currently, only picture) in to zip archive + + + + + Simple representation of elements or attributes nodes + + + + Thrown whenever an error occurs during the build. + + + Constructs an exception with no descriptive information. + + + Constructs an exception with a descriptive message. + The error message that explains the reason for the exception. + + + Constructs an exception with a descriptive message and a reference to the instance of the Exception that is the root cause of the this exception. + The error message that explains the reason for the exception. + An instance of Exception that is the cause of the current Exception. If is non-null, then the current Exception is raised in a catch block handling innerException. + + + Initializes a new instance of the exception class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Thrown whenever an error occurs during the build. + + + Constructs an exception with no descriptive information. + + + Constructs an exception with a descriptive message. + The error message that explains the reason for the exception. + + + Constructs an exception with a descriptive message and a reference to the instance of the Exception that is the root cause of the this exception. + The error message that explains the reason for the exception. + An instance of Exception that is the cause of the current Exception. If is non-null, then the current Exception is raised in a catch block handling innerException. + + + Initializes a new instance of the exception class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + ZipFactory provides instances of IZipReader and IZipWriter. + + + + + Provides an instance of IZipWriter. + + The path of the ZIP file to create. + + + + + Provides an instance of IZipReader. + + The path of the ZIP file to read. + + + + + ZipReader defines an abstract class to read entries from a ZIP file. + + + + + Get an entry from a ZIP file. + + The relative path of the entry in the ZIP + file. + A stream containing the uncompressed data. + + + + Close the ZIP file. + + + + + ZipWriter defines an abstract class to write entries into a ZIP file. + To add a file, first call AddEntry with the relative path, then + write the content of the file into the stream. + + + + + Adds an entry to the ZIP file (only writes the header, to write + the content use Stream methods). + + The relative path of the entry in the ZIP + file. + + + + Resolves a path by interpreting "." and "..". + + The path to resolve. + The resolved path. + + + is the palette index for pixel 3 of row 1 (i1 is lsb; i3 is msb). + + + + Initializes new PCL font definition object. + + + + + + Write font with PCL XL Font Formats. + + PCL writer. + + + + PCL font. + + TTFont + + + + Write font with PCL XL Font Formats. + + PCL writer. + + + + Constructor + + Pcl document writer. + + + + Write font with PCL XL Font Formats. + + + + + Write font with PCL XL Font Formats. + + + + + PCL only support point unit "Int16",but PsPath support point unit "Float". + 1.When filling region is very small,overlap to line("Int16" to "Float"). + If only fill(no stroke),PsPath disappear. + Bug_127/220/316/354/499,BaselineFile_8 + 2.Glyph position loss precison. + So,by scaling,advoid precison loss. + + + + + Font segment identifier. + + + + + Global TrueType Data + + + + + Null segment + + + + + Returns the encoding associated with the specified code page identifier. + + The code page identifier of the preferred encoding. + The encoding that is associated with the specified code page. + + + + Returns the encoding associated with the specified code page name. + + The code page name of the preferred encoding. + The encoding that is associated with the specified code page. + + + + + + + + + + + + Creates a font, using font definition ( that contains font type and font files ) + + + + + + + + Creates a font, using font definition and ttfReader + + + + + + + + Parses font from fontReader and fontDefinition + + + + + + + + Parse for fontSource + + + + + + Parse font form fontDefinitions and ttfReader + + + + + + + Parse for font + + + + + Parse for fontReader + + + + + + Parse for font + + + + + + + + + + + + + + Encodes table data to ASCII hexadecimal string. + + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Xps.ApsGlyphsIndicesToXpsReader + + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Ps.XmlDocumentBuilder,IsValidXmlChar(char c) + + + + + + + Get the char width + + The index + The char width + + + + Get the text rise + + The text rise + + + + check character range + + + + + + + Encode the font name,Because the font has illegal characters, Postscript does not know + + + + + + + Writes text followed by new line characters. + The string must contain only 7 bit characters. + + + + + Edge softness. + + Target image. + Width. + Height. + + + + + bug4304中,当圆弧起始点和终点在同一矩形区域,且该圆弧角度大于180度,说明该曲线的圆弧角度大于270,在绘制0区域时,由于cut点在曲线的起始点, + 在计算曲线时会漏掉该区域大于270度到曲线终点这部分曲线,该方法重新计算该部分曲线 + + + + + + + + + + 将unicode字符串转为普通字符串 + + + + + + + Whether was replaced. + + + + + Add segment. + + The record + The value + + + + Modify the segment. + + The value + + + + Adjust the paragraph after replace. + + The input segments + The replaceed text width + + + + Get charcodes. + + The unicodeString + The char code + + + + Re set text show operator. + + The text range + + + + Get the bytes per char. + + The bytes count + + + + Whether need adjust space. + + The curent segment + The pre segment + if need return ture or false + + + + To chars string + + The hex code + The string + + + + Get the font size. + + + + + + Resetting the text manager. + + The current string + + + + Add the segment before. + + The before record + The shift + + + + Add the after segment. + + The after record + The after segment + + + + Add segment. + + The record + The pdf string + + + + Modify the segment. + + The value + + + + Get charcodes. + + The unicodeString + The char code + + + + Unicode string to charcodes. + + The unicode strings + The charcodes + + + + Get unicode string. + + The bytes + The unicode string + + + + Get unicode string. + + The bytes + it is process escape character? + The unicode string + + + + Add segment. + + The record + The val + + + + Modify the segment. + + The value + + + + Get charcodes. + + The unicodeString + The char code + + + + Adjust paragraph after replaced. + + The inputsgment + The width + + + + Re set text show operator. + + The text range + + + + Specified the text extract area. + + + + + Whether is use simple extraction. + + + + + Whether is extract all texts. + + + + + Whether is use simple extraction. + default vale: false. + + + + + Whether is extract all texts. + default vale: false. + + + + + Specified the text extract area. + default vale: RectangleF.Empty. + + + + + Initialize a instance. + + + + + Initializes new instance of the + object for the specified text formatting mode. + + The isSimpleExtraction + The isExtractAllText + The extractArea + + + + rather than a steaming layout, a Pdf document is made up of several location-fixed blocks,each of which has its own font and font size + Defines different modes which can be used while converting pdf document into text. See class. + + + + + Filter the text rangles. + + The text ranges + The fitered text ranges + + + + Whether the segment is visible. + + The segment + If visible ,return true,or false + + + + Show hidden text? + + + + + Whether is show hidden texts. + default vale: false. + + + + + the current path + + + + + the current clip path + + + + + the current path location + + + + + Controls options for hiding text + + + + + Controls options for hiding text + + + + + Parses command queue and get current page all path + + + + + save to the current dictionary + + + + + 执行裁剪 + + + + + Determines whether the current text is hidden + + + + + + + Delete physical segment. + + The segment + + + + Controls options for hiding text + + + + + Show hidden text? + + + + + Index of do command + + + + + Index of each command + + + + + the current page all path + + + + + Initializes a new instance of the class. + + + + + Gets od Sets,show hidden text? + + + + + Gets od Sets,Index of do command + + + + + Gets od Sets,Index of each command + + + + + Add clip path + + + + + + Get clip paths + + + + + + The horizontal scal of current text + + + + + Get or set the horizontal scal + + + + + Set the horizontal scal value to textElement + + The text element + The font + + + + write embedFont tag + + + + + + Whether the text inside the rectangle is the hyperlink text. + + The rectangle + if inside return true or false + + + + Hand hyper glyph. + + The new position + The new size + The glyphs + The text + + + + Create new hyper glyph. + + The new position + The new size + The glyphs + The text + + + + Hand new line. + + The new position + + + + Clear current hyper glyph. + + + + + Whether the text is on same horizontal line. + + The ps matrix + if the text is on same horizontal line return true,or false + + + + Get the ps font. + + The ps glyphs + ps font + + + + Whether this page is a large page + + if current page`s width big than 1584 or height big than 1584,return ture or false + + + + Crop the ps image. + + The ps path + The ps image + The ps image + + + + Get the image clip rectanglef. + + The ps path + The rectangle array list + + + + Get the visible clip region. + + The ps path + The visible clip region + + + + Visit hyper link. + + The hyper link + + + + html Split Page Number + + + + + + + + + + html write javascript + + + + + Sort text block. + + The text block + + + + compare whether two color values are the same + + true if the same or false + + + + The class representing a result of searching designated text from PDF page. + + + + + Current text actual font name + + + + + Current text original font name + + + + + Get the actual font name + + + + + Get the original font name + + + + + Gets search text of this System.String structure. + + + + + Gets match text of this System.String structure. + + + + + Gets text which is including the searched text of this System.String structure. + + + + + Gets all the text of the line where covers the searched text of this System.String structure . + + + + + Gets page which is including the searched text of this Spire.Pdf.PdfPageBase structure. + + + + + Gets index of page which is including the searched text of this System.Int32 structure. + + + + + Gets the position of the searched text of this System.Drawing.PointF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the positions of the searched text of this System.Drawing.PointF structure. + + + + + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the size of the searched text of this System.Drawing SizeF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the sizes of the searched text of this System.Drawing SizeF structure. + + + + + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + Highlight the seached text. + + + + + Highlight the seached text. + + The hight light color. + + + + apply hight light of the seached text + + + + + Apply hight light of the seached text + + Hight light color + + + + Processing Rectangle. + + The textRect + The processed rectangle + + + + apply hight light of the seached text + + + + + apply hight light of the seached text,with unicode + + + + + + + apply hight light of the seached text + + + + + apply hight light of the seached text,with unicode + + + + + + + The class representing all the resuls of searching designated text from PDF page + + + + + Setting find text Parameters + + + + + Do not select any parameters. + + + + + Full word matching. + + + + + Ignore English character case. + + + + + Find text Cross line + The target text in one line or more(>=2) lines. + It will be remove in the future because it will be set as default ; + + + + + Regular expression matching. + + + + + Representing the way how to find text which a target text. + + + + + Find text in a page with a table. + + The page + The find areas. + The target text + The way to find + The result find text + + + + Split text ranges by a list of rectangle. + + All text ranges + The list of rectangle. + A list of split result. + + + + Find text in a page + + The page + The find area. if the value is RectangleF.Empty, area is the whole page. + The target text + The way to find + The result find text + + + + Find all text in a page + + The page + All text find in the page. + + + + Convert text coordinate, the lower-left corner is the origin of coordinates. + + The page + + + + Revert text coordinate, revert to the original page coordinate. + + The page + + + + Sort text range list by coordinate, and contact all text. + + + + + Match TextFind in the range of rectangle from the given PDF Page. + the coordinate origin is top left corner of the page. + + Provide a rangle to match textFind. + The match TextFinds. + + + Abstract base class for code point mapping classes (1-byte character encodings). + + + Code point that is used if no code point for a specific character has been found. + + + Unicode value indicating the the character is "not a character". + + + Main constructor. + @param name the name of the encoding + @param table the table ([code point, unicode scalar value]+) with the mapping + + + Extended constructor. + @param name the name of the encoding + @param table the table ([code point, unicode scalar value]+) with the mapping + @param charNameMap all character names in the encoding (a value of null will be converted + to ".notdef") + + + Builds the internal lookup structures based on a given table. + @param table the table ([code point, unicode scalar value]+) with the mapping + + + {@inheritDoc} + + + {@inheritDoc} + + + Returns the main Unicode value that is associated with the given code point in the encoding. + Note that multiple Unicode values can theoretically be mapped to one code point in the + encoding. + @param idx the code point in the encoding + @return the Unicode value (or \uFFFF (NOT A CHARACTER) if no Unicode value is at that point) + + + {@inheritDoc} + + + Returns the index of a character/glyph with the given name. Note that this + method is relatively slow and should only be used for fallback operations. + @param charName the character name + @return the index of the character in the encoding or -1 if it doesn't exist + + + {@inheritDoc} + + + {@inheritDoc} + + + The characters in WinAnsiEncoding + + + Return the glyphname from a string, + eg, glyphToString("\\") returns "backslash" + + + Return the string representation of a glyphname, + eg stringToGlyph("backslash") returns "\\" + + + + Compression method enumeration + + + + Uncompressed storage + + + Deflate compression method + + + + UnitConvertor + + + + + Gets column name according to column index. + + + + + + + 判断是否是阿拉伯数字 + + + + + + + filter character + + + + + + + [Content_Types].xml + + + + + xl/workbook.xml + + + + + xl/_rels/workbook.xml.rels + + + + + xl/sharedStrings.xml + + + + + xl/worksheets/sheet.xml + + + + + docProps/app.xml + + + + + _rels/.rels + + + + + docProps/core.xml + + + + + xl/theme/theme1.xml + + + + + xl/styles.xml + + + + + xl/worksheets/_rels/sheet.xml.rels + + + + + xl/drawings/drawing.xml + + + + + xl/drawings/_rels/drawing.xml.rels + + + + + all xml file to StringBuilder + + + + + set cell value index + + + + + all xml file to zip stream + + + + + Initializes a new instance of the class. + + + + + create sheet.xml + + + + + all drawing.xml file + + + + + create drawing.xml + + + + + begin drawing + + + + + end drawing + + + + + add image id + + + + + all image save to dictionary + + + + + add image,absolute + + + + + + + + + + add image,relative + + + + + + + + + + + + + + begin sheet + + + + + end sheet + + + + + + + + + + + + + + + save and compress all xml file to stream + + + + + + compress to zip file + + + + + dispose + + + + + write pageobject to xlsx + + + + + Unit Convertor + + + + + + + + + + save xlsx file to stream + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + pageObjects write xlsx + + + + + + + 获取行列编号(A1,A2,A2....) + + + + + + + + 单元格内容是否为空 + + + + + + + 单元格内容是否是数字 + + + + + + + 获取当前集合中文本最大高度 + + + + + + + 获取当前行的最大高度 + + + + + + + + 获取当前行的最大高度 + + + + + + + 获取当前行的最大高度 + + + + + + + 每一列额外增加的宽度值 + + + + + 每一行额外增加的宽度值 + + + + + 获取当前sheet列宽 + + + + + + + 每一列需要额外增加的宽度值 + + + + + + + 每一列需要加宽的值 + + + + + + + pageObjects write xlsx + + + + + + + + 写入border样式,返回引用的样式Id号 + + + + + + + 写入background样式,返回引用的样式Id号 + + + + + + + 把边框样式Id,填充背景样式Id,是否自动换行写入样式表中CellXfs节点,返回CellXfs节点引用的Id号 + + + + + + + + + + 获取当前列的文本在SharedStrings.xml中的字符串 + + + + + + + + + + 获取单元格内所有文本的SharedStrings.xml字符串 + + + + + + + + + + + 获取当前行所有文本的SharedStrings.xml字符串 + + + + + + + + + + 每一行的文本对象按Y坐标排列 + + + + + + + 获取当前文本的SharedStrings.xml字符串 + + + + + + + + 获取空格字符串 + + + + + + + + + 获取空格宽度 + + + + + + + + 根据空格字符串得到样式 + + + + + + + + 获取两行文本之间隔多少个空行 + + + + + + + + + enter line,换行 + + 需要换多少行 + 字符大小 + + + + + 获取所有已经被合并的行列 + + + + + + + 横向合并列,返回合并列的范围 + + + + + + + 纵向合并行,返回合并行的范围 + + + + + + + + 合并行 + + + + + + + + + 查找当前列是否被合并,返回合并的范围 + + + + + + + + + + + 查找当前列是否被合并,返回合并的范围 + + + + + + + + + 根据行列所引查找对象 + + + + + + + + + 合并单元格的文本 + + + + + + + 合并单元格的文本 + + + + + + + 单元格默认宽度 + + + + + 单元格默认高度 + + + + + 按相对位置写入图片 + + + + + + + + + 按绝对位置写入图片 + + + + + + 计算图片开始位置y在logicSheet表中的开始行索引 + + + + + + + + 计算图片开始位置y坐标点和与开始行的偏移位置 + + + + + + + + 计算图片在logicSheet表中的结束行索引 + + + + + + + + 计算图片结束位置y坐标点和与结束行的偏移位置 + + + + + + + + 计算图片在logicSheet表中的开始列索引 + + + + + + + + 计算图片开始位置x坐标点和与开始列的偏移位置 + + + + + + + + 计算图片在logicSheet表中的结束列索引 + + + + + + + + 计算图片结束位置X坐标点和与结束列的偏移位置 + + + + + + + + 按相对位置写入图片 + + + + + + + + 反转逻辑sheet,改变Y坐标起始点,从左上角开始 + + + + + + + LogicSheet最后一行没有内容,移出最后一行 + + + + + + + LogicSheet最后一行没有内容,移出最后一行 + + + + + + + 根据旧的逻辑列创建新的逻辑列 + + + + + + + 根据每一行增加的高度,更新逻辑行的高度,起始点,结束点 + 根据每一列增加的宽度,更新逻辑列的宽度,起始点,结束点 + + + + + + + 根据每一行增加的高度,更新逻辑行的高度,起始点,结束点 + + + + + + + 根据每一列增加的宽度,更新逻辑列的宽度,起始点,结束点 + + + + + + + + + + + + + + + + current file path + + + + + namespace used by xml + + + + + override theme1.xml + + + + + override styles.xml + + + + + override image/jpeg + + + + + Default image/png + + + + + Default Extension rels + + + + + Default Extension xml + + + + + override workbook.xml + + + + + override app.xml + + + + + override core.xml + + + + + override sharedStrings.xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + sheet index for create sheet + + + + + add a sheet.xml + + + + + + Drawing id for add image + + + + + add a drawing.xmlk + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + sheet count + + + + + close xml last node + + + + + sheet count + + + + + Initializes a new instance of the class. + + + + + add app.xml content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + author + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add core.xml content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + cNvPr node Id + + + + + add image,absolute + + + + + + + + + + + add image,relative + + + + + + + + + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + relationship id for reference image + + + + + add a relationship for reference image + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add value for cell + + + + + + + update all cell count + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + 文本各种字体样式,统计总数 + + + + + 文本各种字体样式,集合对象 + + + + + 单元格背景各种样式,统计总数 + + + + + 单元格边框各种样式,统计总数 + + + + + 单元格边框各种样式,集合对象 + + + + + 单元格背景各种样式,集合对象 + + + + + 单元格引用CellXfs中的节点,统计总数 + + + + + 单元格引用CellXfs中的节点,集合对象 + + + + + 设置字体样式 + + + + + + + + + + 获取设置字体样式字符串 + + + + + + 从单元格边框样式集合中,获取相同样式的索引 + + + + + + + 从单元格背景样式集合中,获取相同样式的索引 + + + + + + + 从单元格边框样式集合中,获取所有的样式字符串 + + + + + + + + + + + + + + + + 从单元格背景样式集合中,获取所有的样式字符串 + + + + + + 增加一条单元格样式引用记录 + + + + + + + + + + + 获取单元格样式所有的引用记录 + + + + + + add content styles.xml + + + + + close node + + + + + 单元格字体样式类 + + + + + 单元格字体名称 + + + + + 单元格字体样式 + + + + + 单元格字体大小 + + + + + 单元格字体颜色 + + + + + 单元格字体在样式表中的索引 + + + + + 单元格字体名称 + + + + + 单元格字体样式 + + + + + 单元格字体大小 + + + + + 单元格字体颜色 + + + + + 单元格字体在样式表中的索引 + + + + + 比较是否是相同的样式 + + + + + + + 单元格在样式表中引用的节点 + + + + + 单元格在样式表中引用的节点,索引值 + + + + + 字体样式的索引值 + + + + + 背景样式的索引值 + + + + + 边框样式的索引值 + + + + + 是否自动换行 + + + + + 文本默认居左 + + + + + 单元格在样式表中引用的节点,索引值 + + + + + 字体样式的索引值 + + + + + 背景样式的索引值 + + + + + 边框样式的索引值 + + + + + 是否自动换行 + + + + + 文本默认居左 + + + + + 比较是否是相同的样式 + + + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add themeElements content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add a sheet.xml + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + open sheet.xml + + + + + 添加宽度xml标签 + + + + + 更新宽度表Cols + + + + + + 为单元格引用一个样式 + + + + + + + 为单元格引用一个样式 + + + + + + + + + + + + + + 忽烈错误的单元格 + + + + + 合并了某些单元格 + + + + + 添加行,设置行高 + + + + + + + 结束行 + + + + + 开始sheet + + + + + 结束sheet + + + + + 合并的单元格写入mergeCells节点 + + + + + + close node + + + + + 忽烈错误的单元格写入ignoredErrors节点 + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add drawing reference for image + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + add theme1.xml refences + + + + + add styles.xml refences + + + + + add sharedStrings.xml refences + + + + + close xml last node + + + + + Relationship index + + + + + Initializes a new instance of the class. + + + + + add a relationship node + + + + + + + close node + + + + + xml version + + + + + StringBuilder + + + + + enter line + + + + + current file path + + + + + current StringBuilder stream + + + + + Initializes a new instance of the class. + + + + + + append content + + + + + + Replace string + + + + + + + close node + + + + + + override ToString(); + + + + + + Gets or sets current file path + + + + + Gets current StringBuilder stream + + + + + 字符串在此实例中的第一个匹配项的从零开始的索引 + + + + + + + 将字符串插入到此实例中的指定字符位置 + + + + + + + current file path + + + + + namespace used by xml + + + + + references app.xml file + + + + + references core.xml file + + + + + references workbook.xml file + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + close xml + + + + Force deflate algotithm even if it inflates the stored file. Off by default. + + + + Represents an entry in Zip file directory + + + + Compression method + + + Full path and filename as stored in Zip + + + Original file size + + + Compressed file size + + + Offset of header information inside Zip storage + + + Offset of file inside Zip storage + + + Size of header information + + + 32-bit checksum of entire file + + + Last modification time of file + + + User comment for file + + + True if UTF8 encoding for filename and comments, false if default (CP 437) + + + Overriden method + Filename in Zip + + + + Line orientation + + + + + Cell data type + + + + + Border direction + + + + + Cell border line style + + + + + Specifies the type of horizontal text alignment. + + + + + Specifies the text is aligned to Left. + + + + + Specifies the text is aligned to Center. + + + + + Specifies the text is aligned to Right. + + + + + Specifies the type of Vertical alignment. + + + + + Specifies the element is aligned to Top. + + + + + Specifies the element is aligned to Middle. + + + + + Specifies the element is aligned to Bottom. + + + + + Represents sound embedded into pdf document. + + + + Name of the file. + + + + Gets or sets the sampling rate, in samples per second (in Hz). + + + + + Gets or sets the number of bits per sample value per channel. + + + + + Gets or sets the encoding format for the sample data. + + + + + Gets or sets the number of sound channels. + + + + The name of the file. + + + + Gets the element. + + + + + The interface defines a 1-byte character encoding (with 256 characters). + + + Returns the encoding's name. + @return the name of the encoding + + + Maps a Unicode character to a code point in the encoding. + @param c the Unicode character to map + @return the code point in the encoding or 0 (=.notdef) if not found + + + Returns the array of character names for this encoding. + @return the array of character names + (unmapped code points are represented by a ".notdef" value) + + + Returns a character array with Unicode scalar values which can be used to map encoding + code points to Unicode values. Note that this does not return all possible Unicode values + that the encoding maps. + @return a character array with Unicode scalar values + + + + The encoding format for the sample data. + + + + + Unspecified or unsigned values in the range 0 to 2^B - 1. + + + + + Twos-complement values. + + + + + M-lawencoded samples. + + + + + A-lawencoded samples. + + + + + The number of sound channels. + + + + + One channel. + + + + + Two channels. + + + + + Enumeration that represents fit mode. + + + + + Display the page designated by page, with the coordinates (left, top) positioned + at the top-left corner of the window and the contents of the page magnified + by the factor zoom. A NULL value for any of the parameters left, top, or + zoom specifies that the current value of that parameter is to be retained unchanged. + A zoom value of 0 has the same meaning as a NULL value. + + + + + Display the page designated by page, with its contents magnified just enough + to fit the entire page within the window both horizontally and vertically. If + the required horizontal and vertical magnification factors are different, use + the smaller of the two, centering the page within the window in the other + dimension. + + + + + Display the page designated by page, with the vertical coordinate top positioned + at the top edge of the window and the contents of the page magnified + just enough to fit the entire width of the page within the window. + + + + + Display the page designated by page, with its contents magnified just enough + to fit the rectangle specified by the coordinates left,bottom,right,and top + entirely within the window both horizontally and vertically. + + + + + Pdf version 1-7 ,on page 675 + + + + + Represents an anchor in the document where bookmarks or annotations can direct when clicked. + + + + + The zero based page number. + + + + + Initializes a new instance of the class. + + The page. + + + + Initializes a new instance of the class. + + The page. + The location. + + + + Initializes a new instance of the class. + + The page. + The rectangle. + + + + Initializes a new instance of PdfDestination. + + The zero based page number. + The location in the page based on the lower-left coordinate system. + The zoom factor. + + + + Gets or sets zoom factor. + + + + + Gets or sets a page where the destination is situated. + + + + + Gets or sets mode of the destination. + + + + + Gets or sets a location of the destination. + + + + + Gets or sets a rectangle of the destination. + + + + + Gets a value indicating whether this instance is valid. + + true if this instance is valid; otherwise, false. + + + + Gets pdf primitive representing this object. + + + + + Represents specification of embedded file. + + + + file name + + + Name of the file. + The data. + + + Name of the file. + The stream. + + + + + + + Gets or sets the data. + + The data. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the MIME type of the embedded file. + + The MIME type of the embedded file. + + + + Gets or sets creation date. + + Creation date. + + + + Gets or sets modification date. + + Modification date. + + + + Gets or sets attachment relationship. + + Attachment relationship + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Modify embeddedFile data + + + + + + Attachment relationship type. + + + + + If this document specification is the original source material + for the associated content. + + + + + If this document specification represents the information used + to generate a visual rendering. + + + + + If this document specification is an alternative representation + of the content(such as audio). + + + + + If this document specification represents a supplemental representation + of the original source or data that may be easier to process. + + + + + When the relationship is unknown or cannot be described using one + of the other values. + + + + + Represents base class for file specification objects. + + + + Name of the file. + + + + Gets or sets the name of the file. + + The name of the file. + + + + Gets the element. + + + + + + Exception of this type is raised when the document contains object which are not + supported by current document standard. + + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Exception of this type is raised when annotation object is used incorrectly. + + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + General exception class. + + + + + Initializes object by default error message. + + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Base PDF document exception. + + + + + Initializes object by default error message. + + + + + Initializes object by default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + CalGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + CalRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Pdf color space class + + + + + Create ICC profile stream. + + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The ICC profile stream. + + + + + + Create color space. + If can't parse the colorSpaceObj, then return a PdfNotSupportedColorSpace instance. + + The color space IPdfPrimitive Obj. + The color space. + + + + The color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a list of color to target color space. + + The color list components. + The target color space. + The color list components in target color space. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceCMYK color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceN color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + ICCBased color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + color space by alternate + + + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + The components num. + + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + Constructors + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + PdfColorSpace alternateColorSpace + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Indexed color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table obj. + the color table bytes. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table bytes. + the color table. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + the base color space in which the values in the color table are to be interpreted. + + + + + specifies the maximum valid index value + which the color table is to be indexed by integers in the range 0 to hival. + + + + + the color table which provides the mapping between index values and + the corresponding colors in the base color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace baseColorSpace + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Lab color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + An array of four numbers [ amin amax bmin bmax ] specifying + the range of valid values for the a* and b* (B and C) components of the color space. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Not support color space. + + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Pattern color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Separation color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + the pdf document convert to docx document,set the options + + + + + Represents first-page cross-reference table and tailer in file structure. + + + + + Initializes a new instance of the class. + + + + + + + + + + The object number of the first object in the first embedded file stream group. + + + + + The location of the first object in the first embedded file stream group. + + + + + The number of embedded file stream groups referenced by this hint table. + + + + + The number of bits needed to represent the highest object number + corresponding to an embedded file stream object. + + + + + The number of bits needed to represent the greatest number + of objects in an embedded file stream group. + + + + + The number of bits needed to represent the greatest length + of an embedded file stream group, in bytes. + + + + + The number of bits needed to represent the greatest number + of shared object references in any embedded file stream group. + + + + + Per-page entries. + + + + + + + + + + The object number of the first object in the group. + + + + + The location of the first object in the group. + + + + + The number of objects in the group. + + + + + The length of the object group in bytes. + + + + + The number of shared object references. + + + + + The number of bits needed to represent the numerically greatest + shared object identifier used by the objects in the group. + + + + + Starting with item 7, each of the remaining items in this table + is a shared object identifier—that is, an index into the shared object + hint table (described in Section F.3.2, “Shared Object Hint Table”). + + + + + + + + + + The object number of the first object in the group. + + + + + The location of the first object in the group. + + + + + The number of objects in the group. + + + + + The length of the object group in bytes. + + + + + The hint table base. + + + + + The page offset hint table provides information required for locating each page. + + + + + The least number of objects in a page (including the page object itself). + + + + + The location of the first page’s page object. + + + + + The number of bits needed to represent the difference between the greatest + and least number of objects in a page. + + + + + The least length of a page in bytes. This is the least length from the beginning + of a page object to the last byte of the last object used by that page. + + + + + The number of bits needed to represent the difference between the greatest + and least length of a page, in bytes. + + + + + The least offset of the start of any content stream, relative to the beginning + of its page. (See implementation note 183 in Appendix H.) + + + + + The number of bits needed to represent the difference between the greatest + and least offset to the start of the content stream. (See implementation note 183 in Appendix H.) + + + + + The least content stream length. (See implementation note 184 in Appendix H.) + + + + + The number of bits needed to represent the difference between the greatest + and least content stream length. (See implementation note 184 in Appendix H.) + + + + + The number of bits needed to represent the greatest number of shared object references. + + + + + The number of bits needed to represent the numerically greatest shared object + identifier used by the pages (discussed further in Table F.4, item 4). + + + + + The number of bits needed to represent the numerator of the fractional position + for each shared object reference. For each shared object referenced from a page, + there is an indication of where in the page’s content stream the object is first + referenced. That position is given as the numerator of a fraction, whose denominator + is specified once for the entire document (in the next item in this table). The + fraction is explained in more detail in Table F.4, item 5. + + + + + The denominator of the fractional position for each shared object reference. + + + + + Page entries. + + + + + Add page entry. + + + + + + + Add page entry. + + + + + + + Get page object number. + + + + + + + Get page length. + + + + + + + The shared object hint table gives information required to locate shared objects. + + + + + The object number of the first object in the shared objects section (part 8). + + + + + The location of the first object in the shared objects section. + + + + + The number of shared object entries for the first page (including nonshared + objects, as noted above). + + + + + The number of shared object entries for the shared objects section, including + the number of shared object entries for the first page (that is, the value of item 3). + + + + + The number of bits needed to represent the greatest number of objects in a + shared object group. (See also implementation note 185 in Appendix H.) + + + + + The least length of a shared object group in bytes. + + + + + The number of bits needed to represent the difference between the greatest + and least length of a shared object group, in bytes. + + + + + Shared object group entries. + + + + + Add group entry. + + + + + + + + + + + + The object number of the first thumbnail image (that is, + the thumbnail image that is described by the first entry in the thumbnails section). + + + + + The location of the first thumbnail image. + + + + + The number of pages that have thumbnail images. + + + + + The number of bits needed to represent the greatest number of + consecutive pages that do not have a thumbnail image. + + + + + The least length of a thumbnail image in bytes. + + + + + The number of bits needed to represent the difference + between the greatest and least length of a thumbnail image. + + + + + The least number of objects in a thumbnail image. + + + + + The number of bits needed to represent the difference + between the greatest and least number of objects in a thumbnail image. + + + + + The object number of the first object in the thumbnail shared objects section (a subsection of part 9). + This section includes objects (color spaces, for example) that are referenced from + some or all thumbnail objects and are not referenced from any other objects. + The thumbnail shared objects are undifferentiated; + there is no indication of which shared objects are referenced from any given page’s thumbnail image. + + + + + The location of the first object in the thumbnail shared objects section. + + + + + The number of thumbnail shared objects. + + + + + The length of the thumbnail shared objects section in bytes. + + + + + Per-page entries. + + + + + Add per-page entry. + + + + + + + Get the frist object info. + + + + + The number list of consecutive pages that do not have a thumbnail image. + + + + + The length list of a thumbnail image in bytes. + + + + + The number list of objects in a thumbnail image. + + + + + The length of objects in bytes. + + + + + Represents linearization parameter dictionary in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Write linearization parameter dictionary to file stream. + + The file stream. + The file length. + The hint stream position and offset.[offset1 length1 offset2 length2] (part 5) + The object number of frist page's page object (part 6) + The offset of end of frist page. + The offset of frist entry in main cross-reference table(part 11). + + + + Represents main cross-reference table and tailer in file structure. + + + + + Represent the offset of the white-space character preceding + the first entry of the main cross-reference table,relative to + the beginning of the file. + + + + + Represent the offset of the object number 0; + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents overflow hint stream in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents linearized document. + + + + + Initializes a new instance of the class. + + + + + + + + + + Register a new object information. + + The object. + The object info. + + + + Gets object information about an object. + + The object. + The object information. + + + + Represents all elements in linearized document. + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents one part in file structure. + + + + + Get document structure. + + + + + + + + + + Get object information. + + + + + + + + + + Save a pdf object. + + + + + Write a pdf object information to the stream. + + + + + Write a pdf string information to the stream. + + + + + Write a pdf array information to the stream. + + + + + Write a pdf reference information to the stream. + + + + + Write a pdf stream information to the stream. + + + + + Write a pdf dictionary information to the stream. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Gets the dictionary of the page. + + + + + Gets all objects in the page. + + + + + Gets all objects in the page. + + + + + Gets the dictionary of the page. + + + + + Initializes a new instance of the class. + + The page object. + + + + Add inheritable property to page dictionary. + + The page dictionary. + The ancestors dictionary. + + + + Analyze page all objects. + + The page dictionary. + + + + Analyze page annots. + + The page dictionary. + + + + Analyze page beads. + + The page dictionary. + + + + Analyze page resources. + + The page dictionary. + + + + Find pdf object. + + The record. + The associated resources with the content stream. + The font dictionary. + + + + Whether the object is image. + + The object. + Tf the object is image, true. Otherwise,false + + + + Represents header in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents first-page section in file structure. + + + + + Get the page index. + + + + + Get the page index. + + + + + Get all objects. + + + + + Get shared object info groups. + + + + + Analyze objects. + + + + + Represents primary hint stream in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Build the stream content. + + The first page section part. + The remaining pages part. + The shared objects part. + The other objects part. + The stream length. + + + + Build page offset hint table. + + The first page section part. + The remaining pages part. + The table length. + + + + Build shared object hint table. + + The first page section part. + The shared objects part. + The table length. + + + + Build Thumbnail hint table. + + The other objects part. + The table length. + + + + Represents remaining pages in file structure. + + + + + Get all objects. + + + + + Get remaining page objects info Map. + + + + + Get remaining page reference shared objects Map. + + + + + Get remaining page annots objects Map. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Analyze objects. + + + + + Represents document catalog and document-level objects in file structure. + + + + + Get all objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Organize pdf objects. + + + + + Represents shared objects in file structure. + + + + + Get all objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Alloacte contiguous object number. + + + + + Analyze shared objects. + + + + + Represents other objects in file structure. + + + + + Get all objects. + + + + + Get document information all dependent objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Analyze objects. + + + + + Add pages object. + + + + + Remove pages dictionary inheritable properties + + The pages dictionary. + + + + Whether the object is Page node. + + The pdf object. + If the object is a page node, true. Otherwise,false + + + + Whether the object is catalog. + + The pdf object. + If the object is a catalog, true. Otherwise,false + + + + Update dependent indirect objects. + + The dependent indirect objects. + A node object. + + + + Update outlines dependent indirect objects. + + The dependent indirect objects. + A node object. + + + + Group object. + + + + + Get the min value from an array. + + The array. + The min value. + + + + Get the max value from an array. + + The array. + The max value. + + + + Get the max value from a list array. + + The list. + The max value. + + + + Object cliper class + + + + + 裁剪后需要删除的对象 + + + + + Initializes a new instance of the class. + + + + + + Clip object + + + + + + 对文本进行剪切 + + + + + + 对横线进行剪切 + + + + + + 对竖线进行剪切 + + + + + + 对Path路径进行剪切 + + + + + + 对图片进行剪切 + + + + + + Curve object + + + + + 宽度 + + + + + 高度 + + + + + 线宽 + + + + + 曲线颜色 + + + + + set clip rect + + + + + 曲线的数据 + + + + + Content width + + + + + Content height + + + + + Line width + + + + + set clip rect + + + + + line color + + + + + Curve data + + + + + Graphics Object + + + + + Object start point + + + + + Object start point + + + + + Object extractor + + + + + The origin document. + + + + + Ps转换器 + + + + + 页面大小 + + + + + Initializes a new instance of the class. + + + + + + Get the current page all object + + + + + + + Get the document all page all object + + + + + + Get the document all page size + + + + + + The pdf document. + + + + + Reverse y position. + + + + + y value + + + + + Image index in xlsx + + + + + ImageObject + + + + + Save get data from ps + + + + + UnitConvertor + + + + + Get object from ps + + + + + Cell fill path data + + + + + clip rectangle,save to stack + + + + + if IsNegative is true,flip clip rectangle,save to stack + + + + + The page rotate + + + + + Initializes a new instance of the class. + + + + + Get GraphicsObject from Ps model + + + + + + Reverse y position. + + + + + clip rectangle,save to stack + + + + + if IsNegative is true,flip clip rectangle,save to stack + + + + + Start visit page + + + + + + End visit page + + + + + + Start visit canvas + + + + + + Start visit arc segment + + + + + + Visit image + + + + + + Image index in xlsx + + + + + End visit canvas + + + + + + Visit glyphs,get text + + + + + + Start visit path + + + + + End visit path + + + + + + Start visit path line + + + + + + End visit path line + + + + + + Start visit poly line + + + + + + Visit poly bezier line + + + + + + Visit bezier line + + + + + + Visit line + + + + + + Horizontal line object + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Content width + + + + + height + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Image object + + + + + 图片宽度 + + + + + 图片高度 + + + + + 图片 + + + + + Image file extension + + + + + It is clip and scale image + + + + + gets or sets the affine matrix transformation to the local coordinate space. + + + + + set clip rect + + + + + clip image rectangle + + + + + Image clip x position + + + + + Content width + + + + + Content height + + + + + It is image object + + + + + Image file extension + + + + + It is clip and scale image + + + + + gets or sets the affine matrix transformation to the local coordinate space. + + + + + set clip rect + + + + + logic sheet creator + + + + + 逻辑sheet,是sheet表的抽象 + + + + + 表格对象 + + + + + path对象 + + + + + 横线对象 + + + + + 竖线对象 + + + + + 所有的线条对象(包含TableObject中的线条对象) + + + + + 图片对象 + + + + + 文本对象 + + + + + 文本对象 + + + + + 从表格对象提取每一行的文本对象 + + + + + 段落的对象 + + + + + Pdf document to xlsx document,page content layout + + + + + 页面大小 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + set object to logicSheet + + + + + 判断布局方式 + + + + + + + 以相近值起点,判断当前坐标是否在相近值的范围内 + + + 线条端点附近的列坐标 + 线条端点坐标 + 是否是线条结束位置 + + + + + 获取逻辑Sheet + + + + + + 把表格对象设置到逻辑表Sheet + + + + + 把表格对象设置到逻辑表Sheet + + + + + + 把表格对象中的行,设置到逻辑表中的行 + + + + + + + 按线条布局方式,把表格对象中的列,设置到逻辑表中的列 + + + + + + + + + 设置表格列的border到LogicColumn + + + + + + + + + 按文本布局方式,把表格对象中的列,设置到逻辑表中的列 + + + + + + + + + 表格对象中列的顶部或底部设置到逻辑表中的列 + + + + + + + + + 设置Path对象到LogicSheet + + + + + 设置Path对象到LogicSheet + + + + + + 设置横线对象到LogicSheet + + + + + 设置横线对象到LogicSheet + + + + + + 根据线条对象创建BorderObject + + + + + + + 设置竖线对象到LogicSheet + + + + + 设置竖线对象到LogicSheet + + + + + + 根据线条对象创建BorderObject + + + + + + + 设置段落对象到LogicSheet + + + + + 设置段落对象到LogicSheet + + + + + + 设置段落对象到LogicRow + + + + + + + 按行设置文本到LogicSheet + + + + + 设置表格对象中的文本到LogicSheet + + + + + 设置文本对象到LogicSheet + + + + + + 判断文本是否跨列,如果跨列,把后一列的文本追加到前一列,两列中间的Border设置为null,表示处于合并状态 + + + + + 判断当前两列是否在表格对象范围内 + + + + + + + + + + 把前后一列的文本添加到前一列 + + + + + + + 判断是否存在线条 + + + + + + + + + 判断是否是一个单独的Tj文本 + + + + + + + 获取表格对象 + + + + + + 所有的线条对象(包含TableObject中的线条对象) + + + + + + 按文本方式布局,单元格内文本存在多行多列,需要拆分为多行多列,获取表格对象中每一行的文本对象 + + + + + + 从表格对象清空所有文本对象 + + + + + 分行,只合并紧挨着的字符和文本 + + + + + + + 简单合并文本,只合并当前行紧挨着的字符和文本 + + + + + + + 获取文本对象 + + + + + + 获取段落对象 + + + + + + 获取图片对象 + + + + + + 获取横线对象 + + + + + + 获取竖线对象 + + + + + + 获取Path对象 + + + + + + 页面大小 + + + + + + 布局参数 + + + + + + 是否支持换行 + + + + + + 是否是空sheet + + + + + + 段落对象 + + + + + 获取段落的矩形范围 + + + + + 当前段落包含的文本 + + + + + 设置当前段落包含的文本 + + + + + + 设置当前段落包含的文本 + + + + + + + 获取当前段落包含的文本 + + + + + 获取段落的矩形范围 + + + + + + + + + + + + Path object + + + + + Content width + + + + + Content height + + + + + Path line width + + + + + set clip rect + + + + + fill data + + + + + fill background color + + + + + border color + + + + + Avoid directly modifying values in the array returned by this property. + For standard dashes it returns a static array. If you modify values in it, it will affect all pens with this pattern. + + + + + Content width + + + + + Content height + + + + + Path line width + + + + + set clip rect + + + + + fill data + + + + + fill background color + + + + + Cell border color + + + + + Avoid directly modifying values in the array returned by this property. + For standard dashes it returns a static array. If you modify values in it, it will affect all pens with this pattern. + + + + + Recognizer base class + + + + + Input graphics objects. + + + + + Input graphics objects. + + + + + Initializes a new instance of the class. + + + + + + Clear graphicsObject + + + + + StraightLine megre class + + + + + 第一根线条结束点与第二根线条开始点间距多少,就认为是相交的,设一个常数控制,合并为一根线 + + + + + 两根平行线之间相隔多少,就认为是同一根线的,设一个常数控制,合并为一根线 + + + + + only for to xlsx + + + + + Initializes a new instance of the class. + + + + + + Recognize all lines the current page,only for to xlsx + + + + + + + Recognize all lines the current page + + + + + + 第一根线条结束点与第二根线条开始点间距多少,就认为是相交的,合并为一根线 + + + + + + 两根平行线之间相隔多少,就认为是同一根线的,合并为一根线 + + + + + + 识别线条,拆出表格线 + + + + + + + 获取边框样式 + + + + + + + 把Path转成四根线条 + + + + + + + + + + 开始合并当前页面的线条 + + + + + + + 合并横线,按横向方向合并(多根横线y坐标值相同的情况,合并成一根或多根横线) + + + + + + + 合并横线,按纵向方向合并(多根横线存在y坐标值相近的情况,合并成一根或多根横线) + + + + + + + 起始点X不相同的情况下,前面一根横线结束点与当前横线起始点间距在一个常数范围内,合并成一根或多根横线 + + + + + + + 在Y相同,起始点X相同的情况下,也存在多根横线,这种情况先合并成一根横线 + + + + + + + 合并两根横线为一根横线 + + + + + + + + + 合并剪切范围 + + + + + + + + y坐标值相近的横线合并成一根或多根横线,相近有一个范围区间,yCoordinateStart开始,yCoordinateEnd结束 + + + + + + + + + 在起始点y相似或相近的情况下,按起始点X相同的线分别存入集合 + + + + + + + + + 合并竖线,按纵向方向合并(多根竖线X坐标值相同的情况,合并成一根或多根竖线) + + + + + + + 合并竖线,按横向方向合并(多根竖线存在x坐标值相近的情况,合并成一根或多根竖线) + + + + + + + 起始点Y不相同的情况下,前面一根竖线结束点与当前竖线起始点间距在一个常数范围内,合并成一根或多根竖线 + + + + + + + 在X相同,起始点Y相同的情况下,也存在多根竖线,这种情况先合并成一根竖线 + + + + + + + 合并两根竖线为一根竖线 + + + + + + + + + 合并剪切范围 + + + + + + + + x坐标值相近的竖线合并成一根或多根竖线,相近有一个范围区间,xCoordinateStart开始,xCoordinateEnd结束 + + + + + + + + + 在起始点x相似或相近的情况下,按起始点y相同的竖线分别存入集合 + + + + + + + + + Text object + + + + + Returns cell spacing of this font (points). + This is a vertical distance between baselines of the two glyphs. + + + + + the text size + + + + + the text + + + + + the font style + + + + + the font size + + + + + the font name + + + + + the text color + + + + + merge text after,the second text origin laction + + + + + merge text after,the second text size + + + + + the text clip rect + + + + + the affine matrix transformation to the local coordinate space + + + + + the size of each character + + + + + Returns cell spacing of this font (points). + This is a vertical distance between baselines of the two glyphs. + + + + + the char size + + + + + the text + + + + + the font style + + + + + the font size + + + + + the font name + + + + + the text color + + + + + the text clip rect + + + + + the affine matrix transformation to the local coordinate space. + + + + + the size of each character + + + + + merge text after,the second text origin laction + + + + + merge text after,the second text size + + + + + + + + + + + Vertical line object + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Content height + + + + + width + + + + + line color + + + + + end point + + + + + set clip rect + + + + + Cell border line style + + + + + the page index + + + + + the page size + + + + + The origin PdfDocumentBase. + + + + + 识别为chart后剩余的对象 + + + + + Initializes a new instance of the class. + + + + + + + + + 抽取chart的内容 + + + + + 计算当前path又包含多少个path + + + + + + + 判断是否包含曲线 + + + + + + + 筛选出chart的范围 + + + + + + + + + + + + + 获得对象的范围 + + + + + + + 从图片截取当前页面的chart的内容 + + + + + + + + Define a cross row and column merge range class,Used to merge cells + + + + + 开始行所引值 + + + + + 结束行所引值 + + + + + 开始列所引值 + + + + + 结束列所引值 + + + + + + + + + + 开始行所引值 + + + + + + 开始行所引值 + + + + + + 结束行所引值 + + + + + + 结束行所引值 + + + + + + 开始列所引值 + + + + + + 开始列所引值 + + + + + + 结束列所引值 + + + + + + 结束列所引值 + + + + + + 获取合并行列的xml字符串 + + + + + + 当前已经合并的行列是否包含当前单元格 + + + + + + + + Gets column name according to column index. + + + + + + all page convert to signle sheet + + + + + 每一页的页面对象 + + + + + 每一页的页面大小 + + + + + Initializes a new instance of the class. + + + + + + + Convert to stream + + + + + + + 合并所有页面的对象,每一页对象的Y坐标不断追加 + + + + + + 更新TableObject对象的Y坐标 + + + + + + + 更新PathObject对象的Y坐标 + + + + + + + 更新HLineObject对象的Y坐标 + + + + + + + 更新VLineObject对象的Y坐标 + + + + + + + 更新TextObject对象的Y坐标 + + + + + + + 更新ParagraphsObject对象的Y坐标 + + + + + + + 更新ImageObject对象的Y坐标 + + + + + + + 相近数值的起始,结束范围 + 比如数据: -1, 10, 15, 16, 17, 18, 29, 30, 31, 48, 49, 50, 61, 62, 80 + 前后相邻的数字小于5,认为是相近的数字 + 处理后得到结果: + 第1段数据:m_Start=-1,m_End=-1; + 第2段数据:m_Start=10,m_End=10; + 第3段数据:m_Start=15,m_End=18; + 第4段数据:m_Start=29,m_End=31; + 第5段数据:m_Start=48,m_End=50; + 第6段数据:m_Start=61,m_End=62; + 第7段数据:m_Start=80,m_End=80; + 这样每一段范围数字处理成同一行,或同一列 + + + + + 前后间隔某一个值认为是相近的数字 + + + + + 相近数值的开始范围 + + + + + 相近数值的结束范围 + + + + + 设置相近数值的开始范围 + + + + + + 设置相近数值的结束范围 + + + + + + 前后间隔某一个值认为是相近的数字 + + + + + + 获取相近数值的开始范围 + + + + + + 获取相近数值的结束范围 + + + + + + 前后间隔某一个值认为是相近的数字 + + + + + + 单元格横向起点,结束点,或两点之间距离;单元格纵向起点,结束点,或两点之间距离 + + + + + 当前行的Y坐标起始点 + + + + + 当前行的Y坐标结束点 + + + + + 当前行的所引,1开始 + + + + + 当前行包含的列 + + + + + + + + + + + + Get y coordinate point for row top + + + + + + Set y coordinate point for row top + + + + + + Get y coordinate point for row bottom + + + + + + Set y coordinate point for row bottom + + + + + + Get row index + + + + + + Set row index + + + + + + Add new Column + + + + + + + + + + + + + Get all Columns + + + + + + Get logicColumn by columnIndex + + + + + + + Get row height + + + + + + 当前行内容是否为空 + + + + + + 单元格横向起点,结束点,或两点之间距离;单元格纵向起点,结束点,或两点之间距离 + + + + + 当前列的左边的X起始点 + + + + + 当前列的右边的X结束点 + + + + + 当前列所在行的索引值,1开始 + + + + + 当前列的索引值,0开始 + + + + + 当前列的顶部边框 + + + + + 当前列的底部边框 + + + + + 当前列的左边框 + + + + + 当前列的右边框 + + + + + 当前列的背景色 + + + + + 当前列的text对象集合 + + + + + 当前列的Paragraphs对象 + + + + + Set x point to the left of the colume + + + + + + Get x point to the left of the colume + + + + + + Set x point to the right of the colume + + + + + + Get x point to the right of the colume + + + + + + Set row Index + + + + + + Get row Index + + + + + + Set Column Index + + + + + + Get Column Index + + + + + + Get the top border + + + + + + Set the top border + + + + + + Get the bottom border + + + + + + Set the bottom border + + + + + + Get the left border + + + + + + Set the left border + + + + + + Get the right border + + + + + + Set the right border + + + + + + Get the background color + + + + + + Set the background color + + + + + + Add text object to column + + + + + + Add text object to column + + + + + + Add paragraphs object to column + + + + + + Get all graphics object + + + + + + Get paragraphs object + + + + + + Get column width + + + + + + Get column text width + + + + + + 获取当前列最右边文本的结束X坐标点 + + + + + + 获取当前列最左边文本的X坐标点 + + + + + + 获取当前列文本的最大fontSize + + + + + + + + + + + + 当前列内容是否为空 + + + + + + + + + + + + + + + + 当前表格所有行 + + + + + 当前表格所有行 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获取第一行的所有列 + + + + + + + + + + + + + + + + + + + + + + + + + + 最大行索引 + + + + + + 最大列索引 + + + + + + LogicSheet的范围 + + + + + + + + + + + + logic sheet creator + + + + + 页面对象 + + + + + 线条X坐标点相近数值的起始,结束范围 + + + + + 线条Y坐标点相近数值的起始,结束范围 + + + + + Initializes a new instance of the class. + + + + + + 创建逻辑sheet + + + + + + 线条X坐标点相近数值的起始,结束范围 + + + + + + 线条Y坐标点相近数值的起始,结束范围 + + + + + + 获取所有列的X坐标 + + + + + + + 获取所有行的Y坐标 + + + + + + + 按线条方式布局,获取文本,线条的X坐标位置,包含表格线条,path线条和单个线条 + + + + + 按线条方式布局,获取文本,线条的Y坐标位置,包含表格线条,path线条和单个线条 + + + + + 按文本方式布局,获取文本,线条的X坐标位置,包含表格线条,path线条和单个线条 + + + + + 按文本方式布局,获取文本,线条的Y坐标位置,包含表格线条,path线条和单个线条 + + + + + 所有表格线的横坐标值 + + + + + + 所有path线条的横坐标值 + + + + + + 所有线条的横坐标值 + + + + + + 所有表格线的纵坐标值 + + + + + + 所有path线条的纵坐标值 + + + + + + 所有线条的Y坐标值 + + + + + + 创建逻辑列 + + + + + + + 把部分对象的X坐标值加入逻辑列,进行布局 + + + + + + + + + 把对象的X坐标值加入逻辑列,进行布局 + + + + + + + + + 创建逻辑行 + + + + + + + 把对象的Y坐标值加入逻辑行,进行布局 + + + + + + + + + 把对象的Y坐标值加入逻辑行,进行布局 + + + + + + + + + + 把HLineObject VLineObject PathObject对象的X坐标值加入逻辑列 + + + + + + + + + 把HLineObject VLineObject PathObject对象的Y坐标值加入逻辑行 + + + + + + + + + 把所有文本对象的X坐标值加入逻辑列 + + + + + + + + 把表格对象中的TextObject对象的X坐标值加入逻辑列 + + + + + + + + 把TextObject对象的X坐标值加入逻辑列 + + + + + + + + 把所有文本对象的Y坐标值加入逻辑行 + + + + + + + + 把表格对象中的TextObject对象的Y坐标值加入逻辑行 + + + + + + + + 获取表格对象每一行文本的Y坐标 + + + + + + + + + 获取每一行文本的Y坐标 + + + + + + + + 把TextObject对象的Y坐标值加入逻辑行 + + + + + + + + 获取表格对象以外的区域 + + + + + + + 获取线条坐标点相近数值的起始值 + + + + + + + + 获取表格顶部部分文本的X的坐标值 + + + + + + + + 获取表格底部部分文本的X的坐标值 + + + + + + + + 把X坐标按表格列分段 + + + + + 如果X坐标位置靠得很近,消除重复项 + + 坐标点 + 小于等于某个值,认为是重复的 + + + + + 下一个数字减上一个数字大于parameter值的索引 + + + 坐标点 + 小于等于某个值,认为是重复的 + + + + + 如果Y坐标位置靠得很近,消除重复项 + + + + + + + + 下一个数字减上一个数字大于parameter值的索引 + + + + + + + + + 获取当前集合中所有文本的矩形范围 + + + + + + + Border object + + + + + 单元格Border线宽 + + + + + 单元格Border颜色 + + + + + Cell border line style + + + + + Get border width + + + + + + Set border width + + + + + + Set border style + + + + + + Get border color + + + + + + Set border color + + + + + + Column object + + + + + 当前列的左边的X起始点 + + + + + 当前列的右边的X结束点 + + + + + 当前列所在行的索引值,1开始 + + + + + 当前列的索引值,0开始 + + + + + 当前列的顶部边框 + + + + + 当前列的底部边框 + + + + + 当前列的左边框 + + + + + 当前列的右边框 + + + + + 当前列的背景色 + + + + + 当前列的文本集合 + + + + + Set x point to the left of the colume + + + + + + Get x point to the left of the colume + + + + + + Set x point to the right of the colume + + + + + + Get x point to the right of the colume + + + + + + Set row Index + + + + + + Get row Index + + + + + + Set Column Index + + + + + + Get Column Index + + + + + + Get the top border + + + + + + Set the top border + + + + + + Get the bottom border + + + + + + Set the bottom border + + + + + + Get the left border + + + + + + Set the left border + + + + + + Get the right border + + + + + + Set the right border + + + + + + Get the background color + + + + + + Add text object to column + + + + + + Add path object to column + + + + + + Add background color to column + + + + + + Get all text object + + + + + + Get column width + + + + + + Merge text + + + + + + Row object + + + + + 当前行的Y坐标起始点 + + + + + 当前行的Y坐标结束点 + + + + + 当前行的所引,1开始 + + + + + 当前行包含的列 + + + + + Get y coordinate point for row top + + + + + + Set y coordinate point for row top + + + + + + Get y coordinate point for row bottom + + + + + + Set y coordinate point for row bottom + + + + + + Get row index + + + + + + Set row index + + + + + + Add new Column + + + + + + + Get all Columns + + + + + + Get row height + + + + + + Table Object + + + + + 线条最小宽度 + + + + + 存放当前表格的横线对象 + + + + + 存放当前表格的竖线对象 + + + + + 存放当前表格的Path对象 + + + + + 当前表格所有行 + + + + + 当前表格矩形区域 + + + + + 存放当前表格的文本对象 + + + + + Add horizontal Lines in the current table + + + + + Return all horizontal Lines in the current table + + + + + + Add vertical Lines in the current table + + + + + Return all vertical Lines in the current table + + + + + + Add pathObject in the current table + + + + + Return all pathObject in the current table + + + + + + Whether to contains obj in the current table? + + + + + + + Get the table Rect + + + + + + 与表格相交,但是属于表格范围外部的对象 + + + + + + Get all rows + + + + + + 返回每一行的起始点,结束点,高度 + + + + + + 返回每一列的起始点,结束点,宽度 + + + + + + 设置横线到列对象 + + + + + + + + + 设置竖线到列对象 + + + + + + + Fill text into table + + + + + + Fill text into table + + + + + + Which column is the text in the table + + + + + + + Which column is the text in the table + + + + + + + + Which column is the path in the table + + + + + + + + Merge cell + + + + + 根据行列所引查找对象 + + + + + + + + 获取总列数 + + + + + + 返回表格内所有文本对象 + + + + + + 返回表格内所有文本对象 + + + + + + Tables recognizer + + + + + 横线与竖线连接处,间距小于某个值,认为是相交的 + + + + + 表格对象集合 + + + + + Initializes a new instance of the class. + + + + + + Recognize table object + + + + + + + Get other graphics object than table + + + + + + 横线与竖线连接处,间距小于某个值,认为是相交的 + + + + + + 获取所有存在相交的横线 + + + + + 获取所有存在相交的竖线 + + + + + + 获取所有的文本对象 + + + + + + 获取所有的Path对象 + + + + + + 获取表格对象 + + + + + + + + 分析线条,得到表格对象 + + + + + + + + 合并成一个表格 + + + + + + + 合并成一个表格 + + + + + + + + 是否存在交叉 + + + + + + + + 竖线与横线是否交叉 + + + + + + + + 横线是否与表格相交 + + + + + + + + 竖线是否与表格相交 + + + + + + + + 判断是否是一个表格 + + + + + + + 处理表格顺序,先按表格左上角Y坐标从上到下,再按表格左上角X坐标从左到右排序 + + + + + + + 按表格左上角X坐标从左到右排序 + + + + + + + 把文本填入表格 + + + + + + + 把文本填入表格 + + + + + + + 把path填入表格 + + + + + + + 把path填入表格 + + + + + + + 合并单元格 + + + + + + 段落识别 + + + + + + + + + + + + + + + + + Get other graphics object than table + + + + + + 获取当前行,文本Y坐标最小的值 + + + + + + + 获取当前行,文本高度最大的值 + + + + + + + text recognizer + + + + + 存放当前页面所有的线条(横线)对象 + + + + + 存放当前页面所有的线条(竖线)对象 + + + + + 串联字符串数组的所有元素,其中在每个元素之间使用指定的分隔符. + + + + + 串联每一行,其中在每一行之间使用指定的分隔符. + + + + + Initializes a new instance of the class. + + graphicsObject + separatorChar + newlineChar + + + + Recognize text,简单识别,当前行紧挨着的字符和文本已经被合并了,进一步把每一行的多个文本进行合并 + + + + + + 简单识别,只合并当前行紧挨着的字符和文本 + + + + + + 获取每一行的文本对象 + + + + + + 过滤掉不需要显示的文本(旋转文本) + + + + + + + 过滤掉重叠文本 + + + + + 获取所有的横线 + + + + + + 获取所有的竖线 + + + + + + 获取所有文本对象 + + + + + + 获取除文本对象以外的所有对象 + + + + + + 按X方向,获取x1和x2之间所有的文本对象 + + + + + + + + + 按Y方向,获取y1和y2之间所有的文本对象 + + + + + + + + + 把字典转换成集合 + + + + + + + 把集合中的文本对象按文本坐标X值重新组织 + + + + + + + 把集合中的文本对象按文本坐标Y值重新组织 + + + + + + + 分别获取每一行的文本对象 + + + + + + + 按横线分段后,分别获取每一行的文本对象 + + + + + + + 把srcdictionary字典并入到destdictionary字典 + + + + + + + 把集合textObjects并入到destdictionary字典 + + + + + + + 获取字典的最大key + + + + + + + + + + + + + + 获取集合中文本最大的高度 + + + + + + + 把紧挨着的字符和文本进行合并 + + + + + + + 在同一行,起始点X相同的情况下,也存在重叠文本,合并成一个文本 + + + + + + + 重叠文本,合并成一个文本 + + + + + + + 合并两个文本,第二个文本对象合并到第一个文本对象 + + + + + + + + 拼接前后两段字符串 + + + + + + + 判断两个文本之间是否有线条,存在线条返回true,不存在线条返回false + + + + + + + + 判断竖线是否从两个文本之间穿过 + + + + + + + + y位置处是否有横线 + + + + + + + 在同一行,起始点X相同的情况下,也存在重叠文本,合并成一个文本 + + + + + + + 重叠文本中选择一个合适的文本 + + + + + + + X坐标大概重叠的文本 + + + + + + + X坐标相似,最后一段文本 + + + + + + + + Common method + + + + + 在布局中多个文本靠得很近,会造成重复性的多列,设一个常数控制 + + + + + 在布局中多个文本靠得很近,会造成重复性的多行,设一个常数控制 + + + + + 在布局中多个线条靠得很近,会造成重复性的多列,设一个常数控制 + + + + + 在布局中多个线条靠得很近,会造成重复性的多行,设一个常数控制 + + + + + 字体为Arial,大小为1的情况下,空格宽度大约为0.277F,单位point + + + + + 字体为Arial,大小为1的情况下,空格高度大约为1.15F,单位point + + + + + + + + + + Get font name + + + + + + + Check whether it is number + + + + + + + 判断是否是贝塞儿曲线 + + + + + + + Descending sort + + + + + + + Descending sort + + + + + + + 根据number相近值的范围进行分段 + + + + + + + + 根据number相近值的范围进行分段 + + + + + + + + 添加从左往右标识. + + + + + + + 判断是否在当前行 + + + + + + + + + + 判断是否在当前列 + + + + + + + + + 比较颜色 + + + + + + + + Convert PsPath to RectangleF + + + + + + + PDF-based ISO standards require that integer values in a PDF do not exceed the range of integer values in 32 bit systems. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是否转到多个sheet + + + + + + + 是否显示重叠文本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 对图片只做剪切,不缩放图片,把剪贴范围的比例缩放到和原始图片比例一致,再剪贴图片,这样避免图片模糊 + + + + + + + 设置图片在原文档原始的剪切范围,起始,结束位置,高宽 + + + + + + + 对图片做剪切,先把图片比列缩放到和剪贴范围的比例(100%)一致,再剪贴图片,图片会存在模糊情况 + + + + + + This class provides support for converting ofd into pdf or image. + + + + + Gets the document page count. + + + + + Initializes a new instance of the class. + + The path to source ofd file. + + + + Initializes a new instance of the class. + + The ofd file stream. + + + + Save ofd document to pdf. + + A relative or absolute path for the file. + + + + Save ofd document to pdf. + + The pdf file stream. + + + + Saves OFD document page as image + + Page index + Returns page as Image + + + + Saves OFD document page as image + + Page index + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + The embedded font conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to embedded font document. + + The out file path. + + + + Convert to embedded font document. + + The out stream. + + + + The embedded font builder. + + + + + Construct an new provider + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + This class provides support for converting PDF into an XPS Document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Converts a range of the pdf document to word. + + The pdf document. + The word stream. + The start index. + the end index. + + + + Converts the specified pdf document to word. + + The pdf document. + The word stream. + + + + Convert to doc/docx document. + + The out file stream. + + + + Convert to doc/docx document. + + The out file stream. + Is docs or doc. + + + + Convert to doc/docx document. + + The out file name. + + + + Convert to doc/docx document. + + The out file name. + Is docs or doc. + + + + Creates the PDF document. + + + + + + Adds the document properties. + + The doc properties. + + + + Draws to PDF. + + The images. + The PdfNewDocument. + + + + Convert pdf document to excel. + + The pdf document. + The out stream. + + + + Convert pdf document to excel. + + The pdf documentBase. + The start index. + The end index. + The out stream. + + + + Get Recognize Objects + + + + + + + + + 是否转到多个sheet + + + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to linearized pdf document. + + The out file path. + + + + Convert to linearized pdf document. + + The out stream. + + + + Construct a new instance. + + + + + + The Pdf/X1A:2001 standard provider. + + + + + The embedded font builder. + + + + + the text color builder + + + + + the image color builder + + + + + The transparency builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A1A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + The transparency builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A1B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + The transparency builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2U standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3U standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The pdf standard options. + + + + + Force convert. + + + + + Other image color modes convert to cmyk mode + + + + + Handle image instructions current resources,rgb color to cmyk color for image + + + + + + + + Handle image instructions current resources,rgb color to cmyk color for image + + + + + + + + + Check if it is a image resource + + + + + + + It is contains mask image resource + + + + + + + It is contains smask image resource + + + + + + + Converter image data to cmyk mode + + + + + + Create inline image to new dictionary + + + + + + + + Creates a new image dictionary,by the specified image dictionary + + + + + + + + + add image dictionary to resources,by specified resource name + + + + + + + + Find resource by specified resource name + + The resource name. + The associated resources with the The content stream. + The image dictionary. + + + + Convert image color space to cmyk color space. + + The image samples. + The image width. Byte boundaries are ignored, except that each row of sample data must begin on a byte boundary. + If the number of data bits per row is not a multiple of 8, the end of the row is padded with extra bits to fill out the last byte + The number of bits used to represent each color component. + The color space. + + The image samples with cmyk color space and bitsPerComponent is 8. + + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + Document utils. + + + + + Repair document page tree. + + The pdf processing context. + + + + Repair document embedded files. + + The pdf element. + The pdf processing context. + + + + Remove document embedded files. + + The pdf processing context. + + + + Remove document JavaScript actions. + + The pdf processing context. + + + + Remove document permissions. + + The pdf processing context. + + + + Remove document outlines. + + The pdf processing context. + + + + Remove document catalog "AA" entry. + + The pdf processing context. + + + + Remove document openAction. + + The pdf processing context. + + + + Remove document Names. + + The pdf processing context. + + + + Remove document spiderInfo. + + The pdf processing context. + + + + Remove document structTreeRoot. + + The pdf processing context. + + + + Remove document needAppearances. + + The pdf processing context. + + + + Add default RGB profile outputIntents if catalog has no outputIntents. + + The pdf processing context. + + true, if exist outputIntents, replace with default RGB OutputIntents. + false, if exist outputIntents, return. + + + + + Create default CMYK profile outputIntents. + + The document catalog. + The pdf processing context. + + true, if exist outputIntents, replace with default CMYK OutputIntents. + false, if exist outputIntents, return. + + + + + Create output intent dictionary describing the color characteristics of output devices. + + The output intent subtype + + A human-readable text string containing additional information or comments + about the intended target device or production condition. + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The output intent dictionary. + + + + Annotations utils. + + + + + Apply standard to annotations. + + The pdf element. + The pdf processing context. + Permitted annotation type list. + + + + Other color modes convert to cmyk mode + + + + + Stroking color space stack. + + + + + Nonstroking color space stack. + + + + + Current stroking color space. + + + + + Current nonstroking color space. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle color space/color instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Parse color operands in instruction. + + The color operands. + The color space. + The color components. + + + + Convert cmyk components to operands in instruction. + + The cmyk components + The color operands in instruction + + + + File structure utils. + + + + + Fonts utils. + + + + + Graphics utils. + + + + + Remove jpeg2000 filter. + + The pdf element. + The pdf processing context. + + + + Apply standard to optional content group. + + The pdf processing context. + + + + Remove optional content group. + + The pdf processing context. + + + + Remove prohibited entries with Image. + An Image dictionary shall not contain the "Alternates" key or the "OPI" key. + If an image dictionary contains the "Interpolate" key, its value shall be false. + + The pdf element. + The pdf processing context. + + + + remove color space in the resources + + + + + + + Interactive forms utils. + + + + + Add empty AP dictionary if field has no ap. + + The pdf element. + The pdf processing context. + + + + Remove signature field value. + + The pdf element. + The pdf processing context. + + + + Logical structure utils. + + + + + Indicates that the file conforms to the tagged PDF conventions. + + The pdf processing context. + + + + Create struct tree root. + + The pdf processing context. + + + + Find all page objects. + + The page tree. + All page objects. + + + + Process page box(MediaBox,TrimBox) + + + + + + + Only remove structParents from current page dictionary + + + + + + + Pdf metadata utils. + + + + + Predefined properties in document info. + + + + Serializes an XMPMeta object as RDF into an OutputStream. + a metadata object + an OutputStream to write the serialized RDF to. + + + + Remove custom properties. + + The pdf processing context. + + + + Generate standard metadata. + + The pdf processing context. + + + + Generate default standard metadata. + + The default standard metadata. + + + + Generate standard metadata. + + The origin metadata. + The default standard metadata.. + + + + Clone properties. + + The namespace URI. + The origin metadata. + The target metadata. + + + + Ensure document information dictionary entries and + their analogous XMP properties shall be equivalent. + + The metadata stream. + The document information dictionary. + + + + Get the date of ISO8601 format. + + the date in the format D:YYYYMMDDHHmmSSOHH'mm' + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Transparency utils. + + + + + Remove transparency group. + A "Group" object with an "S" key with a value of Transparency + shall not be included in a form XObject. + + The pdf element. + The pdf processing context. + + + + Remove graphics state transparency. + + The associated resources with the The content stream. + + + + Remove SMask. + + The associated resources with the The content stream. + + + + Remove image SMask. + + The associated resources with the The content stream. + + + + Pdf color space class + + + + + Create ICC profile stream. + + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The ICC profile stream. + + + + + Get min value. + + The values. + The min value. + + + + Create color space. + If can't parse the colorSpaceObj, then return a PdfNotSupportedColorSpace instance. + + The color space IPdfPrimitive Obj. + The color space. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Not support color space. + + + + + DeviceGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + DeviceRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + DeviceCMYK color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + CalGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + CalRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Lab color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + ICCBased color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + color space colorspace by alternate + + + + + Constructors + + + + + Constructors + + PdfColorSpace alternateColorSpace + + + + Is conversion to cmyk supported + + true/false + + + + Pattern color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Indexed color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table obj. + the color table bytes. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table bytes. + the color table. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + the base color space in which the values in the color table are to be interpreted. + + + + + specifies the maximum valid index value + which the color table is to be indexed by integers in the range 0 to hival. + + + + + the color table which provides the mapping between index values and + the corresponding colors in the base color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace baseColorSpace + + + + Is conversion to cmyk supported + + true/false + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Separation color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + DeviceN color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The device independent color space builder. + + + + + The ICC profile for DeviceGray. + + + + + The ICC profile for DeviceRGB. + + + + + The ICC profile for DeviceCMYK. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle device color space which associated to instructions. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle device color space which associated to resources. + + The content stream. + The associated resources with the The content stream. + + + + Handle device color space which associated to "ColorSpace" resources. + + The associated "ColorSpace" resources with the The content stream. + + + + Handle device color space which associated to "XObject" resources. + + The associated "XObject" resources with the The content stream. + + + + Add ICCBased color space resource. + + The resource name. + The ICCBased color space. + The associated resources with the The content stream. + + + + Convert color space to device-independent. + + The color space. + The device-independent color space + + If the color space is device color space or exist device color space, + then convert to device-independent color space, return true. + Otherwise,return false. + + + + + Convert color space to device-independent. + + The color space. + The device-independent color space + + If the color space is device color space or exist device color space, + then convert to device-independent color space, return true. + Otherwise,return false. + + + + + Create the ICCBased color space for DeviceCMYK. + + The ICCBased color space for DeviceCMYK. + + + + Create the ICCBased color space for DeviceRGB. + + The ICCBased color space for DeviceRGB. + + + + Create the ICCBased color space for DeviceGray. + + The ICCBased color space for DeviceGray. + + + + The pdf embedded font builder. + + + + + Current font dictionary. + + + + + Font dictionary stack. + + + + + Current font structure. + + + + + Font structure stack. + + + + + Key: The font dictionary, Value: The font structure. + + + + + Key: The font structure., Value: The ttf font. + + + + + Key: The font structure., Value: The char code to unicode mapping. + + + + + Tw WordSpace stack. + + + + + Tf FontSize stack. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle text instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Build font structure + + The font dictionary. + The font structure. + + + + Find font dictionary. + + The font resource name. + The associated resources with the The content stream. + The font dictionary. + + + + Build embed truetype font. + + The origin font. + The embed truetype font. + + + + Convert origin bytes to literal string bytes. + Diffrence between literal string bytes and origin bytes, + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + The literal string bytes. + + + + Generate "CIDSet" dictionary entry. + + The char code to unicode mapping. + The CIDSet pdf stream. + + + + Generate "ToUnicode" dictionary entry. + + The char code to unicode mapping. + The cmap pdf stream. + + + + Generate "DW" dictionary entry. + + The char code to unicode mapping. + The font program reader. + The pdf array. + + + + Check font dictionary. + + The font dictionary. + + + + + Check Simple font. + + The font dictionary. + + + + + Create font subset tag. + + The font subset tag + + + + Whether is font subset. + + The PostScript name of the font. + + + + + Image width. + + + + + Image Height. + + + + + The color space in the image dictionary. + Note: It may not represent the actually color space of the image When the color space + of the image data is not equal to the color space item in the dictionary. + + + + + Get softmask image from image dictionary + + + + + Get mask image from image dictionary + + + + + Gets image mask. + + + + + The decode in the image dictionary. + Note: It may not represent the actually decode of the image When the color space + of the image data is not equal to the color space item in the dictionary. + + + + + Get Matte from image dictionary, pdf937 for SMask image. + + + + + Constructors + + Image dictionary + The image is an inline image or not. + + + + Decode sample data which is represented as a sequence of bytes. + + The image color space. + The image decode. + The number of bits used to represent each color component. + The sample data which is represented as a sequence of bytes. + + + + Decode image components with the row range. + + The start row index + The end row index. + The color space of image components. + The decode of image components. + The number of bits used to represent each color component. + The image color components. + + Sample data is represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 255. + The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in turn, + is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a color component value, + given with high-order bit first; units of 16 bits are given with the most significant byte first. Byte boundaries are ignored, + except that each row of sample data must begin on a byte boundary. If the number of data bits per row is not a multiple of 8, + the end of the row is padded with extra bits to fill out the last byte. + + + + + Decode image components with the row range. + + The start row index + The end row index. + The color space of color components. + The number of bits used to represent each color component. + The image color components. + + Sample data is represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 255. + The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in turn, + is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a color component value, + given with high-order bit first; units of 16 bits are given with the most significant byte first. Byte boundaries are ignored, + except that each row of sample data must begin on a byte boundary. If the number of data bits per row is not a multiple of 8, + the end of the row is padded with extra bits to fill out the last byte. + + + + + Encode image components. + + The image components. + The image width. + The image height. + The image color space. + The number of bits used to represent each color component. + + + + Encode color space components. + + The image components. + The image width. + The image height. + The image color space. + The number of bits used to represent each color component. + + + + Decode image + + + + + Get the default Decode arrays for use with the various color spaces. + The image’s Decode array specifies a linear mapping of each integer component value + to a number that would be appropriate as a component value in the image’s color space. + + The coloe space. + The number of bits used to represent each color component. + The default decode arrays. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + Scale image. + + The image. + The result image width. + The result image height. + The result image. + + + + Map rgb components to color + + The rgb color components. + The color. + + + + Combine source image with mask image. + /// Source image. + Mask image. + The result image. + + + + Combine source image with smask image. + + Source image. + SMask image. + The result image. + + + + The pdf document process context. + + + + + The file structure. + + + + + The file info. + + + + + The violation message. + + + + + The current stack. + + + + + Content stream and Resources mappings. + Reference 3.7.2 Resource Dictionaries. + + + + + The file structure. + + + + + The file info. + + + + + Construct a new processing context. + + The file structure. + + + + Push the current pdf element. + + The current pdf element. + + + + Pop the current pdf element. + + The current pdf element + + + + Get content stream and Resources. + + Content stream and Resources mappings. + + + + Construct resources which is associated with a content stream. + Reference 3.7.2 Resource Dictionaries. + + + + + Add violation message. + + The violation message. + + + + Clone document. + + The origin document. + + + + Clone pdf element. + + The origin pdf element. + The origin file structure. + The main objects map. + new pdf element. + + + + Clone pdf string. + + The origin pdf string. + new pdf string. + + + + Clone pdf number. + + The origin pdf number. + new pdf number. + + + + Clone pdf boolean. + + The origin pdf boolean. + new pdf boolean. + + + + Clone pdf name. + + The origin pdf name. + new pdf name. + + + + Clone pdf null. + + The origin pdf null. + new pdf null. + + + + Clone pdf array. + + The origin pdf array. + The origin file structure. + The main objects map. + new pdf array. + + + + Clone pdf dictionary. + + The origin pdf dictionary. + The origin file structure. + The main objects map. + new pdf dictionary. + + + + Clone pdf stream. + + The origin pdf stream. + The origin file structure. + The main objects map. + new pdf stream. + + + + Clone pdf reference. + + The origin pdf reference. + The origin file structure. + The main objects map. + new pdf reference. + + + + The pdf document processor. + + + + + The pdf process provider. + + + + + Construct a new excutor. + + The pdf process provider. + + + + Generate the pdf standard document. + + The origin document. + The out file path. + + + + Generate the pdf standard document. + + The origin document. + The out stream. + + + + Process the pdf document. + + The pdf processing context. + + + + Visit elemet and excute rules on the pdf element. + + The pdf element. + The pdf processing context. + The main object list. + + + + Handle content stream and resources. + + The pdf processing context. + + + + Set document info. + + The pdf document. + + + + Create file identifiers. + + The file identifiers. + + + + The pdf process provider base class. + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Excute after visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Excute after visit the document. + + The pdf processing context. + + + + The pdf transparency builder. + + + + + Remove graphics state transparency. + + The associated resources with the The content stream. + + + + Find font dictionary. + + The font resource name. + The associated resources with the The content stream. + The font dictionary. + + + + Handle graphics state transparency operate. + + The associated resources with the The content stream. + + + + Convert color space to target color space. + + + + + Target color space. + + + + + Stroking color space stack. + + + + + Nonstroking color space stack. + + + + + Current stroking color space. + + + + + Current nonstroking color space. + + + + + Target color space. + + + + + Construct a new instance. + + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle color space/color instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Parse color space operands in instruction. + + + + + + + + Convert target color space to operand in instruction. + + The color space operand. + + + + Parse color operands in instruction. + + The color operands. + The color space. + The color components. + + + + Convert color components to operands in instruction. + + The color components + The color operands in instruction + + + + Handle resources. + + The content stream. + The associated resources with the The content stream. + + + + Handle image resources. + + + The associated image resources with the The content stream. + + The image is an inline image or not. + + + + Whether the image supports conversion. Temp!!! + + The image dictionary. + + + + Handle image resources. + + + The shading resources with the The content stream. + + + + + The gray color space provider. + + + + + The color space builder. + + + + + Construct an new provider + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The gray pdf conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to gray pdf document. + + The out file path. + + + + Convert to gray pdf document. + + The out stream. + + + + The pdf standard conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to pdf/a1b standard document. + + The out file path. + + + + Convert to pdf/a1b standard document. + + The out stream. + + + + Convert to pdf/a1a standard document. + + The out file path. + + + + Convert to pdf/a1b standard document. + + The out stream. + + + + Convert to pdf/a2b standard document. + + The out file path. + + + + Convert to pdf/a2b standard document. + + The out stream. + + + + Convert to pdf/a2u standard document. + + The out file path. + + + + Convert to pdf/a2u standard document. + + The out stream. + + + + Convert to pdf/a2a standard document. + + The out file path. + + + + Convert to pdf/a2a standard document. + + The out stream. + + + + Convert to pdf/a3b standard document. + + The out file path. + + + + Convert to pdf/a3b standard document. + + The out stream. + + + + Convert to pdf/a3u standard document. + + The out file path. + + + + Convert to pdf/a3u standard document. + + The out stream. + + + + Convert to pdf/a2a standard document. + + The out file path. + + + + Convert to pdf/a3a standard document. + + The out stream. + + + + Convert to pdf/x1a2001 standard document. + + The out file path. + + + + Convert to pdf/x1a2001 standard document. + + The out stream. + + + + Flatten form. + + + + + This class provides support for converting PDF into an OFD Document. + + + + + Converts the specified PdfDocument to Ofd. + + The pdf document. + The ofd stream. + + + + Converts a range page of the PdfDocument to Ofd. + + The pdf document. + The ofd stream. + The start index. + The end index. + + + + Adds the document properties. + + The doc properties. + + + + Pdf to excel,the options use line layout + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines. + + + + + This value is true if you wrap the text of an object in Microsoft Excel + + + + + If you wan to display overlapping text,set the parameter to true + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines. + + + + + This value is true if you wrap the text of an object in Microsoft Excel + + + + + If you wan to display overlapping text,set the parameter to true + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + This value is true if you wrap the text of an object in Microsoft Excel + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + This value is true if you wrap the text of an object in Microsoft Excel + If you wan to display overlapping text,set the parameter to true + + + + the pdf document convert to xlsx document,set the options + + + + + Pdf to excel,the options use text layout + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + If you wan to display overlapping text,set the parameter to true + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + If you wan to display overlapping text,set the parameter to true + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + If you wan to display overlapping text,set the parameter to true + + + + This class provides support for converting PDF into an XPS Document. + + + + + + + + + + + + + The license protected. + + + + + The pdf document. + + + + + The zoom factor. + + + + + Whether support east asian font. + + + + + Whether to dispose font. + + + + + Whether to render enmbed font as ttf. + + + + + Whether is the colorspace image. + + + + + Whether is a new page. + + + + + The pdf page tatal rotate angle(pageRotate + userRotate). + + + + + Whether to draw annotation. + + + + + Whether to draw page content. + + + + + Whether is hight light. + + + + + The annotation dictionary. + + + + + Image zoom factor. + + + + + Support east asian font. + + + + + Dispose font. + + + + + Render embed font as ttf. + + + + + Colorspace image. + + + + + whether is a new page. + + + + + Gets or sets. + + + + + The pdf page tatal rotate angle(pageRotate + userRotate). + + + + + Draw annotation. + + + + + Draw page content. + + + + + Hightlight. + + + + + The annotation dictionary. + + + + + Construct a new instance. + + The pdf document. + + + + Create empty bitmap. + + The width in pixels. + The height in pixels. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + A System.Drawing.Imaging.Bitmap. + + + + Create empty metafile. + + The width in pixels. + The height in pixels. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + + + + Create empty metafile. + + A System.IO.Stream that contains the data for this System.Drawing.Imaging.Metafile. + The width in pixels. + The height in pixels. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + + + + Convert pdf page to bitmap by ps mode. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Convert pdf page to bitmap. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Convert pdf page to metafile. + + The page index. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + If the page is restricted,return null. + + + + + Convert pdf page to metafile. + + The page index. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + A System.IO.Stream that contains the data of a System.Drawing.Imaging.Metafile + which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + If the page is restricted,return null. + + + + + Convert pdf page to bitmap by ps mode. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Get the scale. + + The page + The scale value + + + + Render pdf multiply color page to image. + + The System.Drawing.Graphics graphics. + The page index. + The Spire.Pdf.General.Render.Page. + + + + Render pdf page to image. + + The SSystem.Drawing.Graphics graphics. + The Spire.Pdf.General.Render.Page. + The resources,Spire.Pdf.General.Render.PdfElement.PdfPageResources resources. + The Spire.Pdf.General.Render.PdfElement.PdfRecordCollection + The System.Drawing.Image + + + + Fill rectangle. + + The graphics + The rectanlgef + + + + Get the page index + + The page + The page index + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + disposed is false ,Releases all resources + + + + + Convert pdf document to postscript. + + The pdf document. + The out stream. + + + + Convert pdf document to postscript. + + The pdf document. + The start index. + The end index. + The out stream. + + + + Adds the document properties. + + The doc properties. + + + + Convert pdf document to pcl. + + The pdf document. + The out stream. + + + + Convert pdf document to pcl. + + The pdf document. + The start index. + The end index. + The out stream. + + + + Pdf to Html, Set Parameter + + + + + + + + + + The license protected. + + + + + The pdf document. + + + + + The font cache. + + + + + ??? + + + + + Construct a new instance. + + The pdf document. + + + + Convert pdf page to a PsPage. + + The page index. + A PsPage. If the page is restricted,return null. + + + + Convert a range page of the document to svg. + + The pdf document. + Main out file. + Is svg file header. + The start index. + The end index. + A list of byte. + + + + Convert the document to svg. + + The pdf document. + Main out file. + Is svg file header. + A list of byte. + + + + This class provides support for converting PDF into an XPS Document. + + + + + Converts a range page of the PdfDocument to Xps. + + The pdf document. + The xps stream. + The start index. + The end index. + + + + Converts the specified PdfDocument to Xps. + + The pdf document. + The xps stream. + + + + Creates the PDF document. + + + + + + Adds the document properties. + + The doc properties. + + + + A number tree is similar to a name tree, except that its keys are integers + instead of strings and are sorted in ascending numerical order. + + + + + The root node. + + + + + Find key's value. + + The key. + The node. + The value + + + + Remove key/value. + + The key. + The node. + + + + + Add key/value to node. + + The key. + The value. + The node. + + + + Add key/value to kids. + + The key. + The value. + The kids. + The limits. + + + + Add key/value to nums. + + The key. + The value. + The nums. + + + + Create new leaf node and add key/value. + + The key. + The value. + The least key in limits. + The greatest key in limits. + The leaf node. + + + + check key is between limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return true. + + + + + check key is less than the least value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + check key is large than greatest value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + Generate + + The node. + The list which keys are sorted in ascending numerical order. + + + + A number tree is similar to a name tree, except that its keys are integers + instead of strings and are sorted in ascending numerical order. + + + + + The root node. + + + + + Find key's value. + + The key. + The node. + The value + + + + Remove key/value. + + The key. + The node. + + + + + Add key/value to node. + + The key. + The value. + The node. + + + + Add key/value to kids. + + The key. + The value. + The kids. + The limits. + + + + Add key/value to nums. + + The key. + The value. + The nums. + + + + Create new leaf node and add key/value. + + The key. + The value. + The least key in limits. + The greatest key in limits. + The leaf node. + + + + check key is between limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return true. + + + + + check key is less than the least value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + check key is large than greatest value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + Generate + + The node. + The list which keys are sorted in ascending numerical order. + + + + Rectangles are used to describe locations on a page and + bounding boxes for a variety of objects. + + + + + The lower-left x. + + + + + The lower-left y. + + + + + The upper-right x. + + + + + The upper-right y. + + + + + Decodes data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Implements the ASCIIHexDecode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Decompresses stream data. + + Stream data to be decompressed. + Decompressed stream data. + + + + No compression. + + + + + Compresses data using the zlib or deflate compression method, + reproducing the original text or binary data. + + + + + Compresses data using the LZW compression method, reproducing + the original text or binary data. + + + + + Compresses data using the ASCII85 compression method, reproducing + the original text or binary data. + + + + + Compresses data using the ASCIIHex compression method, reproducing + the original text or binary data. + + + + + Compresses data using the RunLength compression method, reproducing + the original text or binary data. + + + + + Decompresses data encoded using a DCT (discrete cosine transform) + technique based on the JPEG standard, reproducing image sample + data that approximates the original data. + + + + + Decompresses data encoded using the zlib / deflate + compression method, reproducing the original text or binary + data. + + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + inner class, implementation of jpeg image decoding + + + + + image pixel data + + + + + parameters of image for decompression + + + + + Construct a new decoder object + + + + + Strean with decompressed data + + + + + image pixel data + + + + + parameters of image for decompression + + + + + parameters of image for decompression + + + + + + The Stream. + + + + + The attached tags. + + + + + Image color space + Note: Ignore if is not image. + + + + + Image width. + Note: Ignore if is not image. + + + + + Image height. + Note: Ignore if is not image. + + + + + Decode data encoded using the zlib/deflate compression method. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data using the zlib/deflate compression method. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + The Stream. + + + + + The attached tags. + + + + + Image color space + Note: Ignore if is not image. + + + + + Image width. + Note: Ignore if is not image. + + + + + Image height. + Note: Ignore if is not image. + + + + + Initialize the new instance of the class. + + The pdf stream. + + + + Get decoded data. + + + + + Get decoded data. + + The encoded data. + The filter name. + The decode parameter dictionary. + + + + The Stream. + + + + + Encode stream data. + + + The name of a filter to be applied in processing the stream data. + + + The parameter dictionary used by the filter specified by Filter. + + + + + Pdf version. + + + + + Implements PDF string object. + 1.Text String: + Used for human-readable characters,such as text annotations,bookmark + names,article names and document information.Thes strings are encode- + d using either PDFDocEncoding or UTF-16BE with a leading byte-order + marker. + 2.PDFDoc String: + Used for characters and glyphs that are represented in a single byte, + using PDFDocEncoding.This type,which reflects a more specific encoding + than the text string type. + 3.ASCII String: + Used for characters that are represented in a single byte using ASCII + encoding.Because 7-bit U.S. ASCII is a strict subset of PDFDocEncoding, + this value may also be considered to be in that encoding. + 4.Byte String: + Used for binary data represented as a series of 8-bit bytes,where each + byte can be any value representable in 8 bits. The string may represent + characters or glyphs but the encoding is not known. The bytes of the st- + ring may not represent characters. This type is used for data such as + MD5 hash values,signature certificates and Web Capture identification values. + + + + + Auto encoding by the characters set. + + + + + ASCII encoding. + + + + + PDFDoc encoding. + + + + + UTF16 big endian encoding. + + + + + The written byte sequence of the string. + If written way is Literal,the byte sequence include escape characters. + If written way is Hexadecimal,each pair bytes in the byte sequence define one byte of string. + !!!Note:Must be not null. + + + + + String be written in hexadecimal form. + + + + + The character strings that are encoded + + + + + A series of bytes—unsigned integer values in the range 0 to 255. + Don't include escape characters or hexadecimal defined. + !!!Note:if null,not generate from written bytes or set new value. + + + + + Construct string. + + + + + Construct string. + + A bytes sequence. + + + + Construct string. + + A bytes sequence. + String be written in hexadecimal form. + + + + Construct string. + + A characters string. + The encoding which the characters string are encoded. + + + + Construct string. + + A date. + + + + Get bytes. + + A bytes sequence. + + + + Set bytes. + + A bytes sequence. + String be written in hexadecimal form. + + + + Set bytes. + + A bytes sequence. + + + + Get text. + + A characters string. + + + + Set text. + + A characters string. + The encoding which the characters string are encoded. + + + + Get a date. + + a date + + + + Set a date which is an ASCII string of the form (D:YYYYMMDDHHmmSSOHH'mm'). + + A date. + + + + Gets or sets the integer value of the specified object. + + + + + The encryptor. + + + + + The obj number. + + + + + Decrypts the specified encryptor. + + The encryptor. + The current object number. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + The encryptor. + The current object number. + With "(" ..")" + The literal string bytes. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + With "(" ..")" + The literal string bytes. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + With "(" ..")" + The literal string bytes. + + + + + + + Decode the literal string bytes. + the literal string bytes has existed escape characters. + + The literal string bytes. + The encryptor. + The current object number. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the literal string bytes. + the literal string bytes has existed escape characters. + + The literal string bytes. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the hexadecimal string bytes. + the hexadecimal string bytes define a byte by each pair of hexadecimal digits. + + The hexadecimal string bytes. + The encryptor. + The current object number. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the hexadecimal string bytes. + the hexadecimal string bytes define a byte by each pair of hexadecimal digits. + + The hexadecimal string bytes. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + + Convert a char sequence to a byte sequence(one byte to one char). + + The string which one char represent one byte. + The byte sequence. + + + + Convert a byte sequence to a char sequence(one byte to one char). + + The byte sequence. + The string which one char represent one byte. + + + + Convert a byte sequence to a char sequence(one byte to one char). + + The byte sequence. + byte range:0 length. + The string which one char represent one byte. + + + + Encoding for text strings in a PDF document outside the document's + content streams + + + + + Map to unicode code point. + Note: 0 which not first element represent undefined code point in PDFDocEncoding. + + + + + Map to unicode char. + Note: '\0' which not first element represent undefined code point in PDFDocEncoding. + + + + + Decode all the bytes in the specified byte array into a string. + + The byte array containing the sequence of bytes to decode. + A string containing the results of decoding the specified sequence of bytes. + + + + Decode all the bytes in the specified byte array into a string. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + A string containing the results of decoding the specified sequence of bytes. + + + + Get bytes. + + A string. + The encoded bytes using PDFDocEncoding. + + + + Check whether exist character which are not represented in a single byte using PDFDocEncoding. + + A string. + + true,exist character which is out of character set; + otherwise, false. + + + + + Begin an inline image object. + + + + + Begin the image data for an inline image object. + + + + + End an inline image object. + + + + + The filter array to be applied in processing the stream data. + + + + + The parameter dictionary array used by the filters specified by Filter. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + The data of the stream. + + + + + Initializes a new instance of the class. + + The dictionary. + The data of the stream. + + + + Initializes a compressed pdfstream. + + The dictionary of the stream. + The data of the stream. + The pdfstream> + + + + Get the encoded stream. + + + + + Get decoded data. + + The decoded data. + + + + Set encoded data. + + The new encode data. + The filetrs of the encoded data. + The decodeParmsArray of the filters. + + + + Generate a stream writer. + If the stream is compressed, decompress it frist. + + A writer of the stream. + + + + Forbidden filter item used in the stream. + + + + + Clone pdfStream. + + The source pdf stream. + + + + Add filters to the stream. + + The filetrs of the encoded data. + The decodeParmsArray of the filters. + + + + Add a filter to the stream. + + The filter name. + The decode parms. + + + + Clear the stream data. + + + + + Saves the object using the specified writer. + + The writer. + + + + Gets a value indicating whether the object was encrypted. + + + + + Gets a value indicating whether this is decrypted. + + true if decrypted; otherwise, false. + + + + Decrypts the data using the specified encryptor. + + The encryptor. + The current object number. + + + + Encrypts the stream content. + + The data. + The writer. + The encrypted content. + + + + Image Format + + + + + Convert string to a byte array. + + String data + Byte array. + + + + Shows the text on the next line and sets word and character spacings. + + The word spacing. + The char spacing. + The text. + if set to true the text should be in hex. + + + + Shows the text on the next line and sets word and character spacings. + + The word spacing. + The char spacing. + The text. + + + + Begins text. + + + + + Ends text. + + + + + Begins start markup sequence text. + + The name of the markup sequence. + + + + Begins start markup sequence text. + + The name of the markup sequence. + + + + Ends markup sequence text. + + + + + Writes comment to the file. + + + + + + 1 G ,Pen Color + + + + + + 1 g ,Pen Color + + + + + + Set the rgb color + + The color + + + + Set the border width. + + The width + + + + Writes the text. + + The text. + if set to true the text is in hex. + + + + Writes the text. + + The text. + + + + Writes the text. + + The text. + if set to true the text is in hex. + + + + Writes the specified text. + + The text. + + + + Writes the specified data. + + The data. + + + + read bi data + + + + + + + + + Parse an inline image. An inline image starts with BI (already + read, contains a dictionary until ID, and then image data until + EI. + + + + + + Represents page tree. + + + + + Represents page tree node. + + + + + Represents page leaf node. + + + + + The dictionary. + + + + + The ancestors in the hierarchy. + + + + + Initialize a new instance. + + + + + Initialize a new instance. + + The dictionary. + The ancestors in the hierarchy. + + + + Get property. + + The key. + Inheritable. + The value. + + + + Implements the base class for all functions. + + + + + Gets the element. + + + + + + Implements Type 2 (Exponential Interpolation) Functions. + + + + + Initializes a new instance of the class. + + init + + + + Gets or sets the function result when x = 0. + + + + + Gets or sets the function result when x = 1. + + + + + Gets or sets the Exponent. + + + + + The document. + + + + + The objects that has already been visited. + + + + + Construct a new instance. + + The digest method. + + + + Get digest value. + + The digest value. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + + Digest the Pdf object. + + The object to digest. + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents GoToE action in the PDF. + + + + + Represents GoTo3DView action in the PDF. + + + + + Represents Trans action in the PDF. + + + + + Represents Rendition action in the PDF. + + + + + Represents SetOCGState action in the PDF. + + + + + Represents JavaScript action in the PDF. + + + + + Represents ImportData action in the PDF. + + + + + Represents ResetForm action in the PDF. + + + + + Represents SubmitForm action in the PDF. + + + + + Represents Named action in the PDF. + + + + + Represents Sound action in the PDF. + + + + + Represents Movie action in the PDF. + + + + + Represents Hide action in the PDF. + + + + + Represents URI action in the PDF. + + + + + Represents Thread action in the PDF. + + + + + Represents Launch action in the PDF. + + + + + Represents GoToR action in the PDF. + + + + + Represents GoTo action in the PDF. + + + + + Represents action in the PDF. + + + + + Gets or sets the next action to be performed after the action. + + + + + Represents the class for build annotation ap objects. + + + + + The enter character. + + + + + The new line character. + + + + + The space character. + + + + + The appearance string builder. + + + + + The normal stream. + + + + + Constructors an instance. + + + + + Initialize object. + + + + + Build an object. + + The dictionary + + + + Set the property. + + The key + The value + + + + Draw path and stroking . + + The path data. + + + + Add path data. + + The points data + + + + Append data. + + The data + + + + Move to anthor point + + The point x + The point y + + + + Line to anthor point. + + The point x + The point y + + + + Stroking path. + + + + + Fill path. + + + + + Append space character. + + + + + Append a new line character. + + + + + Store state. + + + + + Restore state. + + + + + end build. + + + + + Represents 3D annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Watermark annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents TrapNet annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents PrinterMark annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Screen annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Movie annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Sound annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents FileAttachment annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Popup annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Ink annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Caret annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Stamp annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents StrikeOut annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Squiggly annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Underline annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Highlight annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents polyline annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents polygon annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents circle annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents square annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents line annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents free text annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents link annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents text annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents annotation in the PDF. + + + + + If set, do not display or print the annotation or allow it to interact with the user, + regardless of its annotation type or whether an annotation handler is available. + In cases where screen space is limited, the ability to hide and show annotations + selectively can be used in combination with appearance streams to + display auxiliary pop-up information similar in function to online help systems. + + + + + The annotation dictionary. + + + + + an unsigned 32-bit integer containing flags specifying various characteristics. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents widget annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + The added annotations. + + + + + The updated annotations. + + + + + The deleted annotations. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Get page annotations except widget annotation. + + The document. + The page object. + + + + + The document changed. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Digest document. + + + + + Widget annotation to Form field Mapping in signing document. + + + + + Widget annotation to Form field Mapping in current document. + + + + + The added annotations. + + + + + The updated annotations. + + + + + The deleted annotations. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Get page widget annotations. + + The document. + The page object. + + + + + Hashes the form field. + + + + + + + + + The added pages. + + + + + The updated pages. + + + + + The deleted pages. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + Whether the signature is validated. + + + + The pdf digital signature validator. + + + + + + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The signing document. + + + + + The current document. + + + + + The digest method. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Whether currentObject is incremental updated of signingObject. + + The signing object. + The current object. + + + + + Compare bytes. + + + + + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + No changes to the document are permitted; + any change to the document invalidates the signature. + + + + + Permitted changes are filling in forms, instantiating + page templates, and signing;other changes invalidate the signature. + + + + + Permitted changes are the same as for 2,as well as annotation creation, + deletion,and modification;other changes invalidate the signature. + + + + + The access permissions granted for this document. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + The signing document. + + + + + The current document. + + + + + The digest method. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + Validate signature. + + The signature. + The document. + + + + + Create signature deformatter. + + The signature. + The signature deformatter. + + + + Get the document at the time of signing. + + The signature. + The document. + + + + + Compare the signed and current version of the document. + + The signing document. + The current document. + The signature reference dictionary. + The signature digest value. + + + + Get signature content. + + The document. + The byte range. + The signature content. + + + + Read bytes to buffer from document stream. + + + + + + + + + + + Get incremental update objects. + + The signing document. + The current document. + + + + + Signature properties. + + + + + inner dictionary. + + + + + Set the name of the preferred signature handler to use when validating this signature. + (Required) + + the name of the preferred signature handler. + + + + Set a name that describes the encoding of the signature value. + (Required) + + a name that describes the encoding of the signature value. + + + + Set the X.509 certificate used when signing and verifying signatures that use public-key cryptography. + (Required when SubFilter is adbe.x509.rsa_sha1) + + the X.509 certificate. + + + + Set the X.509 certificate chain used when signing and verifying signatures that use public-key cryptography. + (Required when SubFilter is adbe.x509.rsa_sha1) + + the X.509 certificate chain. + + + + Set signature length. + (Option) + Default, signature need to call twice "Sign" method, one is to calculate signature length. + If the signature length is known, avoid to calculate signature length by "Sign" method. + The signature length. + + the signature length. + + + + Set the name of the software module used to create the signature. + (Option) + + the name of the software module. + + + + Signature formatter. + + + + + Signature properties. + + + + + Sign. + + The data to be signed. + The signature. + + + + Signature deformatter. + + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + Pdf pkcs1 signature implementation. + + + + + The signing certificate. + + + + + The signature properties. + + + + + Parameters for the encoding of the signature. + + + + + Construct a new instance. + + The signing certificate. + + + + Sign. + + The data to be signed. + The signature. + + + + Pdf pkcs7 signature implementation. + + + + + The signing certificate. + + + + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Represents an additional collection of certificates that can be searched + by the chaining engine when validating a certificate chain. + + + + + The signature properties. + + + + + Parameters for the encoding of the signature. + + + + + The service which generate OCSP response. + + + + + The provider which generate timestamp token. + + + + + Represents an additional collection of certificates that can be searched + by the chaining engine when validating a certificate chain. + + + + + Construct a new instance. + + The signing certificate. + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Sign. + + The data to be signed. + The signature. + + + + Find certificate in store. + + The serial number. + The name of the certificate authority. + The certificate. + + + + The certificate chain. + + + + + Sha1 oid. + + + + + if encapsulate is true a copy of the message will be included in the signature. + + + + + The signing certificate. + + + + + + Construct a new instance. + + The signing certificate. + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Sign. + + The data to be signed. + The signature. + + + + Time Stamp service implementation which must conform to RFC 3161. + + + + + Construct an instance of a TSAClient. + + Time Stamp Authority URL. + + + + Construct an instance of a TSAClient. + + Time Stamp Authority URL. + user(account). + password. + + + + Construct an instance of a TSAClient. + Note the token size estimate is updated by each call, as the token + size is not likely to change(as long as we call the same TSA using + the same imprint length). + + Time Stamp Authority URL. + user(account). + password + estimated size of received time stamp token (DER encoded). + + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + + data imprint to be time-stamped + encoded TSA signed data of the timeStampToken + + + + + + + TSA response, raw bytes (RFC 3161 encoded) + + + + Ocsp http service implementation. + + + + + Construct a new instance. + + The ocsp server url. + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + OCSP service interface. + + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Timestamp provider interface. + + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Provide a custom signature appearance implemation. + + + + + The signature. + + + + + The Grapphic render/display mode. + + + + + label of name + + + + + The content to the left of property reason + + + + + label of location + + + + + label of contactInfo + + + + + label of date + + + + + the SignName font. + Note: if not set, the default font will be applied. + + + + + the SignDetails font. + Note: if not set, the default font will be applied. + + + + + The label of The name of the person or authority signing the document. + + + + + The label of signature's reason + + + + + The label of signature's location + + + + + The label of signature's contactInfo + + + + + The label of signature's date + + + + + font color for the signature info + if not set, the default is black + + + + + The Grapphic render/display mode. + + + + + Set or get the sign image layout. + + + + + the SignName font. + Note: if not set, the default font will be applied. + + + + + the SignDetails font. + Note: if not set, the default font will be applied. + + + + + Initialize a new instance. + + The signature. + + + + Generate custom signature appearance by a graphics context. + + A graphics context of signature appearance. + + + + Provide a custom signature appearance interface + + + + + Generate custom signature appearance by a graphics context. + + A graphics context of signature appearance. + + + + Pdf ordinary signature maker. + A document can contain One or more ordinary signatures. + + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + Initialize a new instance. + + The pdf document object + The signature formatter. + + + + Pdf MDP (modification detection and prevention) signature maker. + A document can contain only one MDP signature, it must be the first signed in the document. + It enables the author to specify what changes are permitted to be made the document and + what changes invalidate the author’s signature. + + + + + No changes to the document are permitted; + any change to the document invalidates the signature. + + + + + Permitted changes are filling in forms, instantiating page templates, + and signing; other changes invalidate the signature. + + + + + Permitted changes are the same as for 2, as well as annotation creation, + deletion, and modification; other changes invalidate the signature + + + + + The access permissions granted for this document. + + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + The access permissions granted for this document. + Validate values: + PdfMDPSignatureMaker.Level1Permissions/PdfMDPSignatureMaker.Level2Permissions/PdfMDPSignatureMaker.Level3Permissions + + + + + Find or Create a Perms dictionary + The DocMDP transform method is used to detect modifications relative to a signature field + that is signed by the author of a document (the person applying the first signature). + + + + + (Optional; PDF 1.5) An array of signature reference dictionaries (see Table 8.103). + + + + + + The signing certificate. + + + + + Construct a new instance. + + The signing certificate. + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + A name that describes the encoding of the signature value. + + + + + Construct a new instance. + + + A name that describes the encoding of the signature value. + + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + The pdf signature. + + + + + The signature dictionary. + + + + + The name of the preferred signature handler to use when validating this signature. + + + + + A name that describes the encoding of the signature value. + + + + + The X.509 certificate chain used when signing and verifying signatures that use public-key cryptography. + + + + + The name of the person or anthority signing the document + this value should be used only when it is not possible to extract the name from the signature + for example, from the certificat of the signer + + + + + + The time of signing. Depending on the signature handler + this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server + + + + + Gets or sets the physical location of the signing. + + + + + Gets or sets reason of signing. + The reason for the signing, such as ( I agree … ). + + + + + Gets or sets a phone number of signer + Information provided by the signer to enable a recipient to contact the signer to verify the signature; for example, a phone number. + + + + + The name of the software module used to create the signature. + + + + + Initialize a new instance. + + + + + Initialize a new instance. + + The signature dictionary. + + + + Pdf signatue maker. + + + + + Signature formatter. + + + + + The signature. + + + + + The pdf document object + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + The content to the left of property name + + + + + The content to the left of property distinguishedName + + + + + The content to the left of property reason + + + + + The content to the left of property location + + + + + The content to the left of property contactInfo + + + + + The content to the left of property date + + + + + Prior to Acrobat 6.0, signature appearances were manipulated at run-time in order to display the validity of the signature. + The validity was shown as a graphic icon and with an additional, optional text message. The manipulated portions of the + signature appearance were contained in layers n1, n3 and n4. Beginning with version 6, Acrobat does not maintain support + for signature appearances that can be manipulated, though legacy signatures with these appearances may continue to display + correctly. Use of layers n1, n3, and n4 is not recommended. + + + + + Initialize a new instance. + + The pdf document object + The signature formatter. + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + The name of the person or anthority signing the document + this value should be used only when it is not possible to extract the name from the signature + for example, from the certificat of the signer + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + It is recommended to use "D:{0:yyyyMMddHHmmss}" to format the datetime,for example:String.Format("D:{0:yyyyMMddHHmmss}",DateTime.Now) + The time of signing. Depending on the signature handler + this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server + + + + + + The CPU host name or physical location of the signing. + + + + + + The reason for the signing, such as ( I agree … ). + + + + + + Information provided by the signer to enable a recipient to contact the signer to verify the signature + for example, a phone number. + + + + + + The content to the left of property name + + + + + + The content to the left of property distinguishedName + + + + + + The content to the left of property reason + + + + + + The content to the left of property location + + + + + + The content to the left of property contactInfo + + + + + + The content to the left of property date + + + + + + Only for compatibility old version. + Whether move away signature validity visualizations in document. + Default true. + + + false, display signature validity visualizations in document. + true, move away signature validity visualizations in document. + + + + + Make signature. + + The signature filed name. + + + + Make signature. + + The signature filed name. + Implement a custom signature appearance. + + + + Make signature. + + The signature filed name. + The page index. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + The location of the annotation on the page. + + + + Make signature. + + The signature filed name. + The page index. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + Implement a custom signature appearance. + + + + Generate signature normal appearance. + + The widget annotation. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + + + + Generate top-level XObject. + + The widget annotation. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + The top-level XObject. + + + + Generate second-level XObject. + + The width. + The height. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + The second-level XObject. + + + + Generate n0 layer. + Background layer. + + The width. + The height. + The n0 Background layer. + + + + Generate n1 layer. + Validity layer, used for the unknown and valid state;contains, for instance, a yellow question mark. + + The width. + The height. + The n1 layer. + + + + Generate n2 layer. + Signature appearance,containing information about the signature. This can be text or an XObject + that represents signature. + + The width. + The height. + + The n2 layer. + + + + Generate n3 layer. + Validity layer, containing a graphic that represents the validity of the signature when the signature is validate. + + The width. + The height. + The n3 layer. + + + + Generate n4 layer. + Text layer, for a text presentation of the state of the signature. + + The width. + The height. + The n4 layer. + + + + 添加额外无效字符长度处理两次签名长度一致,pdf-3547 + + + + + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + Write the start position of byteRange + + + + + Write the start position of digestValue + + + + + Handles the BeginSave event of the pdf signature dictionary object. + + The source of the event. + The events arguments. + + + + The signature value + When ByteRange is present + the value is a hexadecimal string representing the value of the byte range digest. + If ByteRange is not present + the value is an object digest of the signature dictionary + + + + + + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + + Calculate signature length + + + + + + Event handler of document saved. + + The source of the event. + The events arguments. + + + + Write the signature "ByteRange" value + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + + Write the signature "ByteRange" value + + + + + + + + + Write the signature "Contents" value + When ByteRange is present + the value is a hexadecimal string representing the value of the byte range digest. + If ByteRange is not present + the value is an object digest of the signature dictionary + + + + + + Modes to determine what and how to dispay the signature infomation. + + + + + Default dispaly model. + Display signature details including signer,location,date,contact infomation and reason. + + + + + Only display the signature image. + + + + + Only display the sign name. + + + + + Diaply sign name and signature details. + + + + + Diaply signature image and signature details. + + + + + Specifies the alignment type of signature text. + + + + + Specifies the signature text is aligned to Left. + + + + + Specifies the signature text is aligned to Center. + + + + + Specifies the signature text is aligned to Right. + + + + + The layout determine how to display the sign image. + + + + + Default. + Sign image status without any modification. + + + + + Stretch the sign image. + + + + + Represents Push Button terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is push button field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Check Box terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is checkbox field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Radio Button terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is radio button field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Choice terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is choice field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Text terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is text field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents field hierarchy which contain field dictionary and the ancestors. + + + + + The dictionary. + + + + + The ancestors in the hierarchy. + + + + + The field dictionary. + + + + + The root field dictionary. + + + + + Initialize a new instance. + + The field full name. + + + + Initialize a new instance. + + The field dictionary. + The ancestors in the hierarchy. + + + + Get field full name. + + + + + + Get field full name. + + The field dictionary. + The ancestors in the hierarchy. + The field full name. + + + + Whether contains property. + + The key. + Inheritable. + + If contain the property, true. + Otherwise, false. + + + + + Get property. + + The key. + Inheritable. + The value. + + + + Set property. + + The key. + The value. + + + + Represents terminal field in the PDF Form. + + + + + The assoiated form. + + + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + The field hierarchy. + + + + + The full name. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Get all widget annotation. + + + + + + Add field's widget annotation. + + The field. + The page of widget annotation. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + The widget annotation. + + + + Whether exist widget annotation entries in field dictionary. + + + If the contents of the field dictionary and the annotation dictionary can be merged into a single dictionary, true. + Otherwise, false. + + + + + Clone and remove widget annotation entries from field dictionary. + + The widget annotation dictionary. + + + + Merge widget annotation entries to field dictionary. + + The field dictionary. + The widget annotation + + + + Add page widget annotation. + + The page dictionary. + The new widget annotation dictionary. + + + + Replace page widget annotation. + + The old widget annotation dictionary. + The new widget annotation dictionary. + + + + Used to gathering information interactively from the user. + + + + + The assoiated document. + + + + + The assoiated document. + + + + + The form dictionary. + + + + + Initialize a new instance. + + + + + Get all fields. + + + + + + Find fields. + + The full name. + The matched fields. + + + + Create signature field. + + The full name. + The new signature field. + + + + + Get field dictionary list. + + The array. + The field dictionary list. + + + + Represents signature field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is signature field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + PDF’s logical structure facilities provide a mechanism for incorporating + structural information about a document’s content into a PDF file. Such + information might include, for example, the organization of the document into + chapters and sections or the identification of special elements such as figures, + tables, and footnotes. The logical structure facilities are extensible, allowing + applications that produce PDF files to choose what structural information to + include and how to represent it, while enabling PDF consumers to navigate a file + without knowing the producer’s structural conventions. + + + + + Construct a new PDF's logical structure. + + + + + Construct PDF's logical structure. + + The structure tree root. + + + + Append structure type element. + + The structure type. + The pdf structure type element. + + + + Get the children structure elements. + + The pdf structure type element list. + + + + Create PDF's logical structure. + + The pdf document. + return new logical structure. + + + + Get PDF's logical structure. + + The pdf document. + + Return PDF's logical structure.If null,the pdf document has not PDF's logical structure. + + + + + A number tree used in finding the structure elements to which content items belong. + + + + + A name tree that maps element identifiers to the structure elements. + + + + + A dictionary that maps the names of structure types used + in the document to their approximate equivalents in the set of standard structure types. + + + + + A dictionary that maps name objects designating attribute classes to + the corresponding attribute objects or arrays of attribute objects + + + + + Represents the Pdf Artifact property list. + + + + + Gets or sets the artifact type + + + + + Gets or sets top of the artifact’s bounding box. + + + + + Gets or sets left of the artifact’s bounding box. + + + + + Gets or sets Bottom of the artifact’s bounding box. + + + + + Gets or sets Bottom of the artifact’s bounding box. + + + + + Gets or sets the subtype of the artifact + + + + + Gets or sets top edge of the page + + + + + Gets or sets left edge of the page + + + + + Gets or sets Bottom edge of the page + + + + + Gets or sets Bottom edge of the page + + + + + Represents the standard struct types. + + + + + Represents the Pdf mark information. + + + + + A flag indicating whether the document conforms to Tagged PDF conventions. + + + + + Represents the Pdf user property. + + + + + The attribute information is held in one or more attribute objects + associated with the structure element. + + + + + Represents the pdf structure marked-content identifier or + marked-content reference, object reference. + + + + + Represents the pdf structure node. + + + + + Represents the pdf structure element. + + + + + The structure type. + + + + + The element identifier. + + + + + The current revision number of this structure element. + + + + + The title of the structure element. + + + + + A language identifier specifying the natural language + for all text in the structure element except where + overridden by language specifications for nested structure elements or marked content. + + + + + An alternate description of the structure element and + its children in human-readable form, which is useful + when extracting the document’s contents in support of + accessibility to users with disabilities or for other purposes. + + + + + The expanded form of an abbreviation. + + + + + Text that is an exact replacement for the structure element + and its children. This replacement text (which should apply + to as small a piece of content as possible) is useful when + extracting the document’s contents in support of accessibility + to users with disabilities or for other purposes. + + + + + Get the children of this structure element. + + + The children of this structure element. + The value of list may be one of the following objects: + structure element or marked-content identifier or + marked-content reference, object reference. + + + + + Append structure type element. + + The structure type. + The pdf structure type element. + + + + Begin a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + The role or significance of the sequence. + + + + Begin a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + The role or significance of the sequence. + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + End a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + + + + Reference struct content. + + + The page object representing the page on which the graphics objects in the marked-content sequence are rendered. + + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + Reference struct content. + + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + BookletLayout. + + + + + The bookletSubset mode. + Default value BothSides. + + + + + The booklet binding mode. + Default value Left. + + + + + Get or set BookletBinding,default value Left. + + + + + Initializes a new instance of the PdfSinglePageLayout class + + + + + Get page content bound in paper content bound. + + The paper printable content bound. + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when booklet Binding is Left or Right. + + The paper content bound. + The page content bound. + + + + Get page content bound when scaling booklet binding is LiftHigh or RightHigh + + The paper content bound. + The page bound. + The page content bound. + + + + Pdf print to booklet subset mode + + + + + Print BothSides. + + + + + Only print Front Side.. + + + + + Only print Reverse Side. + + + + + Pdf print to booklet binding mode + + + + + Left Binding + + + + + Right Binding. + + + + + LeftHigh Binding. + + + + + RightHigh Binding. + + + + + Multi pages to one paper layout. + + + + + Multiple pages order in paper layout. + + + + + A value indicating whether the pages has the page border. + + + + + The number of rows for the paper layout. + + + + + The number of columns for the paper layout. + + + + + The spacing between pages and pages,measured in hundredths of an inch. + + + + + Get or set the number of columns for paper layout. + + + + + Get or set the number of rows for paper layout. + + + + + Get or set a value indicating whether the pages has the page border. + + + + + Get or set the order of pages in the paper layout. + + + + + Initializes a new instance of the PdfMultiPageLayout class. + + + + + Get the page content bounds in paper content bound. + + The paper content bound. + The page content bound in paper content bound. + + + + Get the page bounds in horizontal layout. + + the paper content bound + The page bounds. + + + + Get the page bounds in horizontal reverse layout. + + The paper content bound. + The page bounds. + + + + Get the page bounds in vertical layout. + + The paper content bound. + The page bounds. + + + + Get the page bounds in vertical reverse layout. + + The paper content bound. + The page bounds. + + + + Get the page content bounds in paper bound. + + The page bounds. + The page content bounds. + + + + Multi pages order in the Paper layout. + + + + + Horizontal and from left to right + + + + + Horizontal and from right to left + + + + + Vertical and from left to right + + + + + Vertical and from right to left + + + + + Split one page to multi papers layout. + + + + + Initializes a new instance of the PdfSplitPageLayout class + + + + + Get page bounds. + + The page bound. + The paper content bound. + A List collection abount the page bounds. + + + + One page to one paper layout. + + + + + Page scaling mode,default value FitSize. + + + + + Custom scaling(unit:percent),default value 100f. + + + + + A value indicating whether automatic portrait and landscape. + Default value false. + + + + + Get or set page scaling mode,default value FitSize. + + + + + Get or set custom scaling(unit:percent),default value 100f. + + + + + Get or set a value indicating whether automatic portrait and landscape. + Default value false. + + + + + Initializes a new instance of the PdfSinglePageLayout class + + + + + Get page content bound in paper content bound. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is FitSize. + + The paper content bound. + The page content bound. + + + + Get page content bound when scaling mode is ActualSize. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is CustomSacle. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is ShrinkOverSized. + + The paper content bound. + The page bound. + The page content bound. + + + + Pdf Print Page Scale type + + + + + Adaptive content size. + + + + + The actual size of the content. + + + + + Shrink oversized pages. + + + + + Custom scale. + + + + + Represents information about page size. + The PaperSize's width and height,unit:in hundredths of an inch. + + + + + Letter format. + + + + + Note format. + + + + + Legal format. + + + + + A0 format. + + + + + A1 format. + + + + + A2 format. + + + + + A3 format. + + + + + A4 format. + + + + + A5 format. + + + + + A6 format. + + + + + A7 format. + + + + + A8 format. + + + + + A9 format. + + + + + A10 format. + + + + + B0 format. + + + + + B1 format. + + + + + B2 format. + + + + + B3 format. + + + + + B4 format. + + + + + B5 format. + + + + + ArchE format. + + + + + ArchD format. + + + + + ArchC format. + + + + + ArchB format. + + + + + ArchA format. + + + + + The American Foolscap format. + + + + + HalfLetter format. + + + + + 11x17 format. + + + + + Ledger format. + + + + + The page print to paper. + + + + + Pdf document printSetting. + + + + + Pdf document object. + + + + + The current pages array index in m_pages. + + + + + The printed pages array, it's elements value is document page index. + + + + + Initializes a new instance of the PdfPrinter class. + + Pdf document printSetting. + Pdf document object. + + + + Print Preview. + + + + + Print document. + + + + + Begin print page. + + + + + + + Query page setting. + + + + + + + Print Page. + + + + + + + End print. + + + + + + + Begin print page for one page to one paper. + + + + + Query page setting for one page to one paper. + + + + + + Print one page to one paper. + + + + + + Get the scale page bound. + + The page base + The paper bound + The scale page bound + + + + Begin print page for print to booklet. + + + + + Query page setting for print to booklet. + + + + + + Print document to booklet. + + + + + + Begin print page for multiple pages to one paper. + + + + + Query page setting for multiple pages to one paper. + + + + + + Print multiple pages to one paper. + + + + + + Current page image. + + + + + Current page bound. + + + + + Split bounds of current page. + + + + + Split bound index of current page. + + + + + Paper content bound. + + + + + Begin print page for one page to multiple papers. + + + + + Query page setting for one page to multiple papers. + + + + + + Print one page to multiple papers. + + + + + + Initialize print. + + + + + Get page metafile. + + Document page index. + Page Image. + + + + Get paper margin bound which according paperSettings. the paperSettings + is the attribute of PrintPageEventArgs.PageSettings. (Unit: hundredths of an inch) + PrinterUnit.Display is hundredths of an inch. + + Paper set. + Is consider hard margin. + + If the considerHardXY is true,get the paper content bound arrcording to the printable area. + Otherwise the considerHardXY is false,get the paper content bound according to the whole piece of paper. + Paper content bound(Unit:hundredths of an inch). + + + + + Get page bound. + + Page bound(Unit:PrinterUnit.Display). + + + + Print the pdf page to the paper's bound using uniform mode. + + Provides data for the print page event. + The pdf page. + The pape content bound(Unit:PrinterUnit.Display). + + + + Print the page bound of pdf page image to the paper's bound using fill mode. + + Provides data for the print page event. + The pdf page image. + The pdf page bound(Unit:PrinterUnit.Display). + The pdf page split bound(Unit:PrinterUnit.Display). + The paper's bound(Unit:PrinterUnit.Display). + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Provides data for paper setting event. + + + + + Get current paper index,from 1. + + + + + Gets the paper source trays that are available on the printer. + + + + + Get or set current paper source on the printer. + + + + + Initializes a new instance. + + Current paper index. + paper source trays that are available on the printer. + Current paper source on the printer. + + + + Represents the method that handles paper setting event. + + The source of the event. + The event data + + + + The page print settings. + + + + + Defines a reusable object that sends output to a printer. + + + + + Page layout mode. + + + + + One page to one paper layout. + + + + + Multi-page to one paper layout. + + + + + One page to multi-paper layout. + + + + + Booklet layout. + + + + + The user has specified print pages save in the array. + + + + + User Set Margins + + + + + when user set margins,should be use UserSetMargins instead of paperSettings.Margins(default:false;when user set,m_blUserSetMargins=true) + + + + + Defines a reusable object that sends output to a printer. + + + + + Get or set the name of printer which is on printing pdf document. + + + + + Get or set the document name to display (for example, in a print status dialog box or printer queue) while printing the document. + + + + + Get or set the size of a piece of paper. + + + + + Get or set the number of copies of the document to print. + + + + + Get or set a value indicating whether the page should be printed in color. + true if the page should be printed in color; otherwise, false. The default + is determined by the printer. + + + + + Get or set a value indicating whether the printed document is collated. + + + + + Get or set a value indicating whether the page is printed in landscape or portrait orientation. + Returns: + True if the page should be printed in landscape orientation; otherwise, false. + + + + + Get or set the print controller that guides the printing process. + + + + + Get a value indicating whether the printer supports double-sided printing. + + + + + Get or set the printer setting for double-sided printing. + + + + + Get or set the printer resolution kind. + + + + + Get the pagenumber which you choose as the start page to printing. + + + + + Get the pagenumber which you choose as the final page to printing. + + + + + Gets a value indicating whether the System.Drawing.Printing.PrinterSettings.PrinterName property designates a valid printer. + + + + + Get the user has specified print pages. + + + + + Get or set page layout mode. + + + + + Get one page to one paper layout. + + + + + Get multi-page to one paper layout. + + + + + Get one page to multi-paper layout. + + + + + Get booklet layout. + + + + + Occurs immediately before print each paper. + Note: Ignore on MacOS/Linux platform. + + + + + Occurs when the Spire.pdf.PdfDocument.Print() method is called + and before the first page of the document prints. + + + + + Occurs when the last page of the document has printed. + + + + + Occurs when the output to print for the current page is needed. + + + + + Occurs immediately before each Spire.pdf.PdfDocument.PrintSettings.PrintPage + event. + + + + + Initializes a new instance of the PdfPrintSetting class. + + + + + Set print page range. + + From page. + To page. + + + + Set print some pages. + + Selection pages. + + + + Select one page to one paper layout. + Default pageScalingMode = PdfSinglePageScalingMode.FitSize, autoPortraitOrLandscape = true, customScaling = 100f. + + + + + Select one page to one paper layout. + + Page scaling mode. + + + + Select one page to one paper layout. + + Page scaling mode. + Indicating whether automatic portrait and landscape. + + + + Select one page to one paper layout. + + Page scaling mode. + Indicating whether automatic portrait and landscape. + Custom scaling(unit:percent),default value 100f.Valid only if pageScalingMode== PdfSinglePageScalingMode.CustomScale. + + + + Select muti page to one paper layout. + Default rows = 2, columns = 2, hasPageBorder = false, pageOrder = PdfMultiPageOrder.Horizontal. + + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + A value indicating whether the pages has the page border. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + A value indicating whether the pages has the page border. + Multiple pages order. + + + + Select split page to muti paper layout. + + + + + Select booklet layout. + + + + + Select booklet layout. + + The mode of BookletSubset. + + + + Select booklet layout. + + The mode of BookletBinding. + + + + Select booklet layout. + + The mode of BookletSubset. + The mode of BookletBinding. + + + + Set paper margins,measured in hundredths of an inch. + + Paper margin top(unit:hundredths of an inch). + Paper margin bottom(unit:hundredths of an inch). + Paper margin left(unit:hundredths of an inch). + Paper margin right(unit:hundredths of an inch). + + + + return user set Margins + + + + + + when user set margins,should be use UserSetMargins instead of paperSettings.Margins + + + + + Set printing to file. + + File name. + + + + Trig before each System.Drawing.Printing.PrintDocument.PrintPage. + + The source of the event. + A System.Drawing.Printing.QueryPageSettingsEventArgs that contains the event data. + + + + User set event in begin print. + + The source of the event. + A System.Drawing.Printing.PrintEventArgs that contains the event data. + + + + User set event when the last page of the document has printed. + + The source of the event. + A System.Drawing.Printing.PrintEventArgs that contains the event data. + + + + User set event in print page. + + The source of the event. + A System.Drawing.Printing.PrintPageEventArgs that contains the event data. + + + + User set event in query page setting. + + The source of the event. + A System.Drawing.Printing.QueryPageSettingsEventArgs that contains the event data. + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Pdf print pages layout mode. + + + + + One page to one paper. + + + + + Multiple pages to one paper. + + + + + One page to multiple papers. + + + + + Print to booklet. + + + + + Specifies a printer resolution kind. + + + + + High resolution. + + + + + Medium resolution. + + + + + Low resolution. + + + + + Draft-quality resolution. + + + + + Custom resolution. + + + + + The document’s labeling ranges. + + + + + Decimal arabic numerals style to be used for the numeric portion of each page label. + + + + + Uppercase roman numerals style to be used for the numeric portion of each page label. + + + + + Lowercase roman numerals style to be used for the numeric portion of each page label. + + + + + Uppercase letters style to be used for the numeric portion of each page label. + + + + + Lowercase letters style to be used for the numeric portion of each page label. + + + + + The number tree which is the PageLabels entry in the document catalog. + + + + + The number tree which is the PageLabels entry in the document catalog. + + + + + Construct a new instance. + + + + + Construct a new instance. + + The document’s labeling ranges. + + + + Add labeling range which is a series of consecutive pages using the same numbering system. + + + the page index of the first page in the labeling range. + + + The numbering style to be used for the numeric portion of each page label. + As follow: + Decimal_Arabic_Numerals/Uppercase_Roman_Numerals/Lowercase_Roman_Numerals/Uppercase_Letters/Lowercase_Letters + + + The label prefix for page labels in the labeling range. + + + + + Add labeling range which is a series of consecutive pages using the same numbering system. + + + the page index of the first page in the labeling range. + + + The numbering style to be used for the numeric portion of each page label. + As follow: + Decimal_Arabic_Numerals/Uppercase_Roman_Numerals/Lowercase_Roman_Numerals/Uppercase_Letters/Lowercase_Letters + + + The label prefix for page labels in the labeling range. + + + The value of the numeric portion for the first page label in the range. + Subsequent pages are numbered sequentially from this value, which must be greater than or equal to 1. Default value: 1. + + + + + Get page label. + + The page index. + The page label. + + + + Get page label. + + The page index. + the page index of the first page in the labeling range. + The labeling characteristics for the pages in the labeling range. + The page label. + + + + Get the numeric portion for the page label in the range. + + The number. + The numbering style to be used for the numeric portion of each page label. + The numeric portion for the page label in the range. + + + The number. + UpperCase or LowerCase + The roman numerals style number. + + + + Convert number to letters style. + + The number. + UpperCase or LowerCase + The letters style number. + + + + Represents the pdf application data, used to store private data. + + + + + The application data dictionary. + + + + + The pdf application data dictionary. + + + + + The private data of application data dictionary. + The vaild type: string Dictionary. + + + + + Initialize a pdf piece instance. + + The piece dictionary + + + + Initialize a pdf piece instance. + + The content + + + + Initialize instance. + + The content + + + + Itialize instance. + + The application data + + + + Get the pdf application data dictionary. + + The pdf application data dictionary + + + + Pdf dictionary to dictionary. + + The pdf dictionary + The dictioanry + + + + Pdf array to list. + + The array + The list + + + + Represents the pdf piece info can used to hold private application datas. + + + + + Represents the piece info dictionary. + + + + + Represents the application datas. + + + + + Get the application datas. + + + + + Initialize a pdf piece info instance. + + The piece info dictionary + + + + Initialize a pdf piece info instance. + + + + + Initialize instance. + + + + + Add application data. + + The application name + The private data + + + + Remove the application data. + + The application name + + + + Get the piece info dictionary. + + + + + The booklet options + + + + + The booklet subset + + + + + Initializes a new instance of the class. + + + + + + + Set the booklet subset,only support both sides + + + + + The booklet subset + + + + + The result in document should be printed on both sides of paper. + + + + + Compress contents records. + + The list of records. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Save graphics state. + + + + + Restore graphics state. + + + + + Whether the line widths are equal. + + The record. + true, when the same. + + + + Trim the record operands. + + The record + + + + + Trim the operand if contains .00 + + + + + + + Optimize the font data + + The pdf object. + + + + Optimize the font data + + The font dictionary. + + + + Convert to non-embedded font. + + The font dictionary. + + + + Destructor + + + + + Closes the document. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Reads 4 bytes from the byte array + + Corresponding value + + + + Reads 8 bytes from the byte array + + Corresponding value + + + + Read 4 bytes from the byte array + + Corresponding string value + + + + Read 2 bytes from the byte array + + Corresponding integer value + + + + Get table bytes + + + + + + + + Indicates the common table list + + + + + Update the font data. + + + + + + + Get the font table entry. + + + + + + + + Calulates the check sum value. + + + + + + + Optimize the font. + + The font dictionary. + + + + Optimize the font. + + The font dictionary. + + + + Optimize type0 font + + + + + + + Get the local table last index + + The font dictionary. + + + + + Set the font tables. + + + + + + + + + + Calculate the local and hmtx table length. + + + + + + + + + Update the embedded subset font Name based on the PDF specification. + + + + + + + Compress image pdf stream. + + The pdf object. + + + + Compress image pdf stream. + + The image pdf stream. + The result image. + + + + Remove metadata item. + + The image pdf stream. + + + + Resize image. + + The image pdf stream. + true, when resize sucess. + + + + Compress jpeg image. + + The image pdf stream. + true, if compression sucess; Otherwise, false. + + + + Compress image with JPXDecode. + + The image pdf stream. + + + + Get the image interpolation. + + + + + + + Check whether filter is DCTFilter. + + The image pdf stream + Is DCTFilter, return true; otherwise, return false. + + + + Decode the pdfstream to image. + + The image pdf stream + The result image. + + + + Compress pdf stream with flate filter. + + The pdf stream + Compression success, return true; otherwise, return false. + + + + Destructor + + + + + Closes the document. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + The compression provider. + + + + + The pdf compression options. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Excute after visit the document. + + The pdf processing context. + + + + The class can be used to set some options when do merge operation. + + + + + Gets or sets a value indicates whether to merge the fields with the same name into one field. + + + + + Represents a booklet creator, which allows to create a booklet from a Pdf document. + + + + + Thie method creates a booklet + + The loaded document. + The out file + Size of the page. + + + + Thie method creates a booklet + + The loaded document. + The out stream + Size of the page. + + + + Thie method creates a booklet + + The loaded document. + The out stream + Size of the page. + BookletOptions bookletOptions + Delegate for handling event when the begin drawing page in a booklet. + Delegate for handling event when the end drawing page in a booklet. + + + + + Gets the next pair of page indeces. + + The current iteration index. + The pages count. + if set to true if the result in document should be printed + on both sides of paper. + + An array of integers that holds the indices. + + + + + define a pdf table column + + + + + columns index + + + + + columns index + + + + + Text in table + + + + + Gets or sets the font compression options. + + + + + Gets or sets the image compression options. + + + + + Represents the image quality. + + + + + Gets or sets the compressed image quality. + + Default value is 60. + + + + The origin document. + + + + + The compression options. + + + + + The compression options. + + + + + Initializes a new instance of the class. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Compress document. + + The out file path. + + + + The number of indirect objects. + + + + + The original stream object. + + + + + Initializes a new instance of the class. + + + + + Gets the Image Boundary location. + + + + + Gets the Image,save to stream. + + + + + Gets the image name. + + + + + The number of indirect object. + + + + + The original stream object. + + + + + Initializes a new instance of the class. + + + + + Get all image information on the page. + + The pdf page. + + + + Replace image. + + The original image info. + The new replace image. + + + + Delete an image. + + The information of the image to be delete. + + + + Delete an image. + + The information of the image to be delete. + whether to delete the image resource. + + + + The class can be used to merge pdf documents + + + + + List of inputDocuments + + + + + Merges the specified source documents and return destination document. + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + Some options when do merge operation. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + Some options when do merge operation. + + + + CommonMerge + + + + + + + + define a pdf table row + + + + + columns index + + + + + All columns in the current row + + + + + columns index + + + + + All columns in the current row + + + + + define a pdf table + + + + + table index + + + + + + + + + + + + + + + All rows in the current table + + + + + table index + + + + + All rows in the current table + + + + + + + + + + + + + + + + + Get the current table row count + + + + + + Get the current table column count + + + + + + Get value from the current table + + the row index,the index starts at 0 + the column index,the index starts at 0 + the text + + + + Represent the pdf table extractor. + + + + + 获取当前页面对象 + + + + + Return PdfTable + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance of the class. + + + + + + Extract table from the pdf document + + pageIndex + An array of PdfTable. + + + + TableObject to PdfTable + + + + + + + Create table,fill text + + the current table index + the current row index + the current column index + the current column text + + + + Find tables that on the current page + + + + + + + Represent the pdf text extractor. + + + + + The page. + + + + + Represents an instance. + + The page + + + + Extract the page text. + + The options. + The Extracted Text. + + + + Extract text. + + The extract options + The exteracted text + + + + Process rectanglef. + + The area + The rectanglef + + + + Represents the text replace. + + + + + The page. + + + + + The command delegate. + + + + + The commands. + + + + + Represents an instance. + + The page + + + + Replaces the text in the page page. + + The old text. + The new text. + + + + Replaces all the text in the page page. + + The old text + The new text + + + + Update object stream. + + The recodr collection + + + + Get text paragraph replacer. + + The old text + The text edit options + The text paragraph replacer + + + + Clear the commands. + + + + + Whether the string contains chinese. + + The string + if contains,return true + + + + Get the text font instance. + + The text manager + The abstract text range + The value + The text font instance + + + + Unicodes to char codes. + + The unicode string + The font structure + it is process escape character? + The char codes + + + + Get the font resource name. + + The font resource name + + + + Build the font. + + The font size + The font resource dictionary + The text + + + + Get the font name. + + The abstract text range + The string + The font name + + + + Set width to font. + + The true type font + + + + Wether is contains current font resource. + + The font reource + if contains.return true.or false + + + + Get the font dictionary + + The font resource dictioary + The font dictionary + + + + Whether the physical text segments belongs page. + + The page resource + The physical text segments resource + Belongs page return true,or false + + + + Flush physical text segments. + Do not support the form text now ,so delete the form physical text segments. + + The text ranger + The page + + + + The horizontal alignment. + + + + + The vertical alignment. + + + + + Get the replaced text width. + + The replaced text width + + + + Charcodes to chars. + + The str + The chars + + + + Represent the pdf text extract context. + + + + + Specified the text extract area. + + + + + Whether is use simple extraction. + + + + + Whether is extract all texts. + + + + + Show hidden text? + + + + + Whether is use simple extraction. + default vale: false. + + + + + Whether is extract all texts. + default vale: false. + + + + + Whether is show hidden texts. + default vale: false. + + + + + Specified the text extract area. + default vale: RectangleF.Empty. + + + + + Initialize a new instance. + + + + + Represents base class for all action types. + + + + + Gets or sets the next action to be performed after the action represented by this instance. + + + + + Represents collection of actions. + + + + + Adds the specified action. + + The action. + action + + + + Inserts the action at the specified position. + + The index. + The action. + + + + Gets the index of the action. + + The action. + action + + + + Determines whether the action is contained within collection. + + The action. + + Value, indicating the presents of the action in collection. + + + + + Clears this collection. + + + + + Removes the specified action. + + The action. + + + + Removes the action at the specified position. + + The index. + + + + Initializes a new instance of the class. + + + + + Represents the form action base class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether fields contained in + collection will be included for resetting or submitting. + + + If Include property is true, only the fields in this collection will be reset or submitted. + If Include property is false, the fields in this collection are not reset or submitted + and only the remaining form fields are reset or submitted. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + + true if include; otherwise, false. + + + + Gets the fields. + + The fields. + + + + Represents an action which goes to a destination in the current document. + + + + + Initializes a new instance of the class. + + The destination to jump to. + + + + Initializes a new instance of the class. + + The page to jump to. + + + + Gets or sets the destination. + + The destination. + + + + Initializes a new instance of the class. + + The destination to jump to. + + + + Gets or sets the destination. + + The destination. + + + + Represents an action which performs java script action in pdf document. + + + + + Initializes a new instance of the class. + + The java script code. + A string value representing valid javascript code to be executed. + + + + Gets or sets the javascript code to be executed when this action is executed. + + A string value representing valid javascript code to be executed. + + + + The Adobe Built-in JavaScript + + + + + Get a AFNumber_Format string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate. + The formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed + The currency style - not used + The currency symbol + True to prepend the currency symbol; false to display on the end of the number + + + + Get a AFNumber_Keystroke string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate. + The formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed + The currency style - not used + The currency symbol + True to prepend the currency symbol; false to display on the end of the number + + + + Get a AFRange_Validate string + + Indicate the use of the greater than comparison + The value to be used in the greater than comparison + Indicate the use of the less than comparison + The value to be used in the less than comparison + + + + Get a AFPercent_Format string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate + + + + Get a AFPercent_Keystroke string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate + + + + Get a AFDate_FormatEx string + + Must be one of: "m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yymm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM" + + + + Get a AFDate_KeystrokeEx string + + Must be one of: "m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yymm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM" + + + + Get a AFTime_Format string + + The time format: 0 = 24HR_MM [ 14:30 ], 1 = 12HR_MM [ 2:30 PM ], 2 = 24HR_MM_SS [ 14:30:15 ], 3 = 12HR_MM_SS [ 2:30:15 PM ] + + + + Get a AFTime_Keystroke string + + The time format: 0 = 24HR_MM [ 14:30 ], 1 = 12HR_MM [ 2:30 PM ], 2 = 24HR_MM_SS [ 14:30:15 ], 3 = 12HR_MM_SS [ 2:30:15 PM ] + + + + Get a AFSpecial_Format string + + The type of formatting to use:0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN + + + + Get a AFSpecial_Format string + + The type of formatting to use:0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN + + + + Get a AFSimple_Calculate string + + Must be one of "AVG", "SUM", "PRD", "MIN", "MAX" + The name list of the fields to use in the calculation + + + + Represents an action which launches an application or opens or prints a document. + + + + + Initializes a new instance of the class. + + Name of the file to be launched. + + + + Initializes a new instance of the class. + + Name of the file to be launched. + Name of the file to be launched. + Name of the path type. + + + + Gets or sets file to be launched. + + + + + Indicates the target document should be opened in a new window or not. + + + + + Represents an action which perfoms the named action. + + + + + Gets or sets the destination. + + The object representing destination of an action. + + + + Initializes a new instance of the class. + + The object representing destination of an action. + + + + Represents additional actions of the annotations. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + annotations active area. + + The mouse down action. + + + + Gets or sets the action to be performed when the mouse button is released + inside the annotations active area.. + + The mouse up action. + + + + Gets or sets the action to be performed when the annotation receives the + input focus. + + The got focus action. + + + + Gets or sets the action to be performed when the annotation loses the + input focus. + + The lost focus action. + + + + Represents an action for the document. + + + + + Gets or sets the action to execute when the document is opened. + + A specifying the action to be executed when documents opens in the viewer. + + + + Gets or sets the action to be performed before the document is closed. + + A object specifying the action to be executed before the document is closed. + + + + Gets or sets the java script action to be performed before the document is saved. + + A object specifying the action to be executed before the document is saved. + + + + Gets or sets the jave script action to be performed after the document is saved. + + A object specifying the action to be executed after the document is saved. + + + + Gets or sets the action to be performed before the document is printed. + + A object specifying the action to be executed before the document is printed. + + + + Gets or sets the action to be performed after the document is printed. + + A object specifying the action to be executed after the document is printed. . + + + + Represents an embedded go-to action which allows jumping to or from a PDF file that is embedded in another PDF file. + + + + + Indicates the target document should be opened in a new window or not. + + + + + The target document name. + + + + + The destination in the target document to jump to. + + + + + Initialize a new instance of PdfEmbeddedGoToAction. + + The target PDF file name to be opened. + The destination. + If true, the target PDF would be opened in a new window.Otherwise false. + + + + Represents actions to be performed as response to field events. + + + + + Initializes a new instance of the class. + + The annotation actions. + + + + Gets or sets the JavaScript action to be performed when the user types a keystroke + into a text field or combo box or modifies the selection in a scrollable list box. + This action can check the keystroke for validity and reject or modify it. + + A object specifying the action to be executed when the user types a keystroke. + + + + Gets or sets the JavaScript action to be performed before the field is formatted + to display its current value. + + A object specifying the action to be executed for formating the field value. + + + + Gets or sets the JavaScript action to be performed + This action can check the new value for validity. + + A object specifying the action to be executed for validating the field value. + + + + Gets or sets the JavaScript action to be performed to recalculate the value + of this field when that of another field changes. + + A object specifying the action to be executed for calculating the field value. + + + + Gets or sets the action to be performed when the mouse button is released + inside the fields area. + + A descendant specifying the action to be executed when the mouse button is released inside the field's area. + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + fields area. + + A descendant specifying the action to be executed when the mouse button is pressed inside the field's area. + + + + Gets or sets the action to be performed when the field receives the + input focus. + + A descendant specifying the action to be executed when the field receives the input focus. + + + + Gets or sets the action to be performed when the field loses the + input focus. + + A descendant specifying the action to be executed when the field losts the input focus. + + + + Represents Pdf form's reset action. + + This action allows a user to reset the form fields to their default values. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether fields contained in Fields + collection will be included for resetting. + + true if include; otherwise, false. + + If Include property is true, only the fields in this collection will be reset. + If Include property is false, the fields in this collection are not reset + and only the remaining form fields are reset. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + + + + + Represents the sound action. + + + + + Initializes a new instance of the class. + + Name of the sound file. + + + + Gets or sets the volume at which to play the sound, in the range -1.0 to 1.0. + + The volume of the sound. + + + The name of the sound file. + + + + Gets or sets the sound. + + represents the sound. + + + + Gets or sets a value whether to play the sound synchronously or asynchronously. + If this flag is true, the viewer application retains control, allowing no further + user interaction other than canceling the sound, until the sound has been + completely played. Default value: false. + + true if synchronous; otherwise, false. + + + + Gets or sets a value indicating whether to repeat the sound indefinitely. + If this entry is present, the property is ignored. Default value: false. + + true if repeat; otherwise, false. + + + + Gets or sets a value indicating whether to mix this sound with any other + sound already playing. If this flag is false, any previously playing sound is + stopped before starting this sound; this can be used to stop a repeating + sound. Default value: false. + + true if mix; otherwise, false. + + + + Represents Pdf form's submit action. + + This type of action allows a user to go to a resource on the Internet, tipically a hypertext link. + + + + Initializes a new instance of the class. + + The URL. + + + An string value specifying the full URI for the internet resource. + + + + Gets or sets the HTTP method. + + The HTTP method. + + + + If set, any submitted field values representing dates are converted to the + standard format. The interpretation of a form field as a date is not specified + explicitly in the field itself but only in the JavaScript code that processes it. + + + true if use canonical date time format when submit data; otherwise, false. + + + + + Gets or sets a value indicating whether to submit mouse pointer coordinates. If set, + the coordinates of the mouse click that caused the submit-form action are transmitted + as part of the form data. + + true if submit coordinates; otherwise, false. + + + + Gets or sets a value indicating whether to submit fields without value. + If set, all fields designated by the Fields collection and the + flag are submitted, regardless of whether they have a value. For fields without a + value, only the field name is transmitted. + + + true if submit fields without value or the empty ones; otherwise, false. + + + + + Gets or sets a value indicating whether to submit form's incremental updates. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the submitted FDF file includes the contents of all incremental + updates to the underlying PDF document. If clear, the incremental updates are + not included. + + + true if incremental updates should be submitted; otherwise, false. + + + + + Gets or sets a value indicating whether to submit annotations. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the submitted FDF file includes all markup annotations in the + underlying PDF document. If clear, markup annotations are not included. + + true if annotations should be submitted; otherwise, false. + + + + Gets or sets a value indicating whether to exclude non user annotations form submit + data stream. Meaningful only when the form is being submitted in Forms Data Format + and the property is set to true. + + + true if non user annotations should be excluded; otherwise, false. + + + + + Gets or sets a value indicating whether to include form to submit data stream. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the property is a file name containing an embedded file + stream representing the PDF file from which the FDF is being submitted. + + true if form should be embedded to submit stream; otherwise, false. + + + + Gets or sets the submit data format. + + The submit data format. + + + + Gets or sets a value indicating whether fields contained in Fields + collection will be included for submitting. + + true if include; otherwise, false. + + If Include property is true, only the fields in this collection will be submitted. + If Include property is false, the fields in this collection are not submitted + and only the remaining form fields are submitted. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + If the field has Export property set to false it will be not included for + submitting in any case. + + + + + Represents an action which resolves unique resource identifier. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The unique resource identifier. + + + + Gets or sets the unique resource identifier. + + The unique resource identifier. + + + + Specifies the file path type. + + + + + Specifies the file location with out including the domain name. + + + + + Specifies the location, including the domain name. + + + + + Specifies the available named actions supported by the viewer. + + + + + Navigate to first page. + + + + + Navigate to last page. + + + + + Navigate to next page. + + + + + Navigate to previous page. + + + + + Specifies the available data formats for submitting the form data. + + + + + If clear, the Fields array specifies which fields to + include in the submission. + + + + + If set, all fields designated by the Fields array and the Include/ + Exclude flag are submitted, regardless of whether they have a value. + For fields without a value, only the + field name is transmitted. + + + + + Meaningful only if the SubmitPDF and XFDF flags are clear. If set, + field names and values are submitted in HTML Form format. If + clear, they are submitted in Forms Data Format + + + + + If set, field names and values are submitted using an HTTP GET + request. If clear, they are submitted using a POST request. This flag + is meaningful only when the ExportFormat flag is set; if ExportFormat + is clear, this flag must also be clear. + + + + + If set, the coordinates of the mouse click that caused the submitform + action are transmitted as part of the form data. + + + + + Meaningful only if the SubmitPDF flags are clear. If set, + field names and values are submitted as XML Forms Data Format . + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF file includes the contents + of all incremental updates to the underlying PDF document, + as contained in the Differences entry in the FDF dictionary. + If clear, the incremental updates are not included. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF file includes all markup + annotations in the underlying PDF document. + If clear, markup annotations are not included. + + + + + If set, the document is submitted as PDF, using the + MIME content type application/pdf (described in Internet RFC + 2045, Multipurpose Internet Mail Extensions (MIME), Part One: + Format of Internet Message Bodies; see the Bibliography). If set, all + other flags are ignored except GetMethod. + + + + + If set, any submitted field values representing dates are + converted to the standard format described. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and + ExportFormat flags are clear) and the IncludeAnnotations flag is + set. If set, it includes only those markup annotations whose T entry + matches the name of the current user, as determined + by the remote server to which the form is being submitted. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF excludes the F entry. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the F entry of the submitted FDF is a file + specification containing an embedded file stream representing the + PDF file from which the FDF is being submitted. + + + + + Represents the activation states for the 3D annotation. + + + + + Gets or sets the activation mode for the annotation. + + + + + Gets or sets the deactivation mode for the annotation. + + + + + Gets or sets the activation state for the annotation. + + + + + Gets or sets the deactivation state for the annotation. + + + + + Gets or sets a value indicating whether the toolbar should be displayed when the annotation is activated or not. + + If true, a toolbar should be displayed by default when the annotation is activated and given focus. If false, a toolbar should not be displayed by default. + + + + Gets or sets a value indicating whether the UI for managing the 3D artwork should be displayed when the annotation is activated. + + If true, the user interface should be made visible when the annotation is activated. If false, the user interface should not be made visible by default. + + + + Initializes the new instance of class. + + + + + Represents the lighting to apply for the 3D artwork. + + + + + Gets or sets the type of the animation. + + + + + Gets or sets the play count. + + + + + Gets or sets the rendering opacity. + A positive number specifying the time multiplier to be used when running the animation. A value greater than one shortens the time it takes to play the animation, or effectively speeds up the animation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + PDF 3D Animation Type. + + + + Represents the background appearance for 3D artwork. + + + + + Gets or sets the background color. + + The object specifying the background color for the 3D artwork. + + + + Gets or sets a value indicating how the background is applied. + + True if the background is applied to entire annotation, false if the background is applied to annotation's 3D view box only. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifying the background color for the 3D artwork. + + + + Initializes a new instance of the class. + + + + + + Represents the clipping portion of the 3D artwork for the purpose of showing artwork cross sections. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the center of the cutting plane. + A three element array specifying the center of rotation on the cutting plane in world space coordinates. + + + + + Gets or sets the cutting plane color. + + + + + Gets or sets the intersection color. + + + + + Gets or sets a value indicating whether the intersection of cutting plane with 3D artwork is visible. + + + + + Gets or sets the cutting plane opacity. + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + + Gets or sets the orientation of the cutting plane. + A three-element array specifying the orientation of the cutting plane in world space, where each value represents the orientation in relation to the X, Y, and Z axes, respectively. + If the array has more than 3 elements, only the first 3 will be considered. Exactly one of the values must be null, indicating an initial state of the cutting plane that is perpendicular to the corresponding axis and clipping all geometry on the positive side of that axis. The other two values must be numbers indicating the rotation of the plane, in degrees, around their corresponding axes. The order in which these rotations are applied should match the order in which the values appear in the array. + + + + + Represents the collection of objects. + + + + + Adds the specified value. + + The value. + + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of. + + The value. + + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The value. + + + + Gets or sets the at the specified index. + + + + + Represents the lighting scheme for the 3D artwork. + + + + + Gets or sets the Lighting style of the 3D artwork. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifies the style of the 3D artwork. + + + + Represents the particular areas of 3D artwork and the opacity and visibility with which individual nodes are displayed. + + + + + Gets or sets a value indicating whether the node is visible or not. + + True if the node is visible. + + + + Gets or sets the node name. + + The name of the 3D node. + + + + Gets or sets the cutting plane opacity. + + A number indicating the opacity of the cutting plane using a standard additive blend mode. + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + Gets or sets the 3D transformation matrix. + + A 12-element 3D transformation matrix that specifies the position and orientation of this node, relative to its parent, in world coordinates. + If the array has more than 12 elements, only the first 12 will be considered. + + + + Initializes a new instance of the class. + + + + + Represents a collection of objects. + + + + + Adds the specified value. + The value. + + + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of. + + The value. + + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The value. + + + + Gets or sets the at the specified index. + + + + + Represents the mapping of 3D camera co-ordinates onto the target coordinate system of the annotation. + + + + + Gets or sets the type of the projection. + + + + + Gets or sets the projection ClipStyle. + + + + + Gets or sets the scale mode for ortho graphic projections. + + + + + Gets or sets the far clipping distance. + + + + + Gets or sets the field of view. + + + + + Gets or sets the near clipping distance. + + + + + Gets or sets the projection scaling. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Pdf3D Projection Type. + + + + Represents the rendering mode of the 3D artwork. + + + + + Gets or sets the type of the projection. + + + + + Gets or sets the Auxiliary color. + + + + + Gets or sets the Face color. + + + + + Gets or sets the crease value. + The crease value is specified in degrees, from 0 to 360. + + + + + Gets or sets the rendering opacity. + + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifies the rendering style of the 3D artwork. + + + + Represents a attributes to be applied to the virtual camera associated with a 3D annotation. + + + + + Gets or sets the background for this view. + + + + + Gets or sets the 3D transformation matrix. + + A 12-element 3D transformation matrix that specifies a position and orientation of the camera in world coordinates. + If the array has more than 12 elements, only the first 12 will be considered. + + + + Gets or sets the center of orbit for 3D artwork. + + A non-negative number indicating a distance in the camera coordinate system along the z axis to the center of orbit for this view. + If this value is negative, the viewer application must determine the center of orbit. + + + + Gets the list of cross sections for this view. + A list of PDF3DCrossSection objects available for this view. + + + + + Gets or sets the view's external name. + + The external name of the view, suitable for presentation in a user interface. + + + + Gets or sets the view's internal name. + + + + + Gets or sets the Creates a new page and adds it as the last page of the document scheme for this view. + + + + + Gets the list of 3D nodes for this view. + + A list of PDF3DNode objects available for this view. + + + + Gets or sets the projection for this view. + + + + + Gets or sets the rendering mode for this view. + + + + + Gets or sets a value indicating whether nodes specified in the Nodes collection are returned to their original states (as specified in the 3D artwork) before applying transformation matrices and opacity settings specified in the node dictionaries. + + + + + Gets or sets the name of the view node. + + The view node in the content stream defines all the properties for viewing the 3D artwork. If both ViewNodeName and CameraToWorldMatrix are specified, then ViewNodeName takes precedence. + + + + Initializes a new instance of the class. + + + + + Represents a collection of Pdf3DView objects. + + + + + Adds the specified value. + + The value. + Pdf3DView + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of the Pdf3DView object. + + The value. + Pdf3DView + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The Pdf3DView object. + + + + Gets or sets the at the specified index. + + Pdf3DView + + + + Specifies an activation state of the 3D annotation. + + + + + Represents that the state in which the artwork has been read and a run-time instance of + the artwork has been created. In this state, it can be rendered but script-driven + real-time modifications (that is, animations) are disabled. + + + + + Represents that the artwork is instantiated, and it is being modified in real time to + achieve some animation effect. In the case of keyframe animation, the artwork is + live while it is playing and then reverts to an instantiated state when playing + completes or is stopped. + + + + + Specifies the available modes for activating a 3D annotation. + + + + + Represents that the annotation should be activated as soon as the page containing + the annotation is opened. + + + + + Represents that the annotation should be activated as soon as any part of the page + containing the annotation becomes visible. + + + + + Represents that the annotation should remain inactive until explicitly activated + by a script or user action. + + + + + Specifies the available modes for deactivating a 3D annotation. + + + + + Represents that the annotation should be deactivated as soon as the page is closed. + + + + + Represents that the annotation should be deactivated as soon as the page containing + the annotation becomes invisible. + + + + + Represents that the annotation should remain active until explicitly deactivated by a + script or user action. + + + + + Specifies the available states upon deactivating a 3D annotation. + + + + + Represents the initial state of the artwork before it has been used in any way. + + + + + Represents that the state in which the artwork has been read and a run-time instance of + the artwork has been created. In this state, it can be rendered but script-driven + real-time modifications (that is, animations) are disabled. + + + + + Represents that the artwork is instantiated, and it is being modified in real time to + achieve some animation effect. In the case of keyframe animation, the artwork is + live while it is playing and then reverts to an instantiated state when playing + completes or is stopped. + + + + + Specifies the available styles for applying light to 3D artwork. + + + + + The Lights as specified in the 3D artwork. + + + + + The lighting specified in the 3D artwork is ignored. + + + + + Three blue-grey infinite lights. + + + + + Three light-grey infinite lights. + + + + + One yellow, one aqua, and one blue infinite light. + + + + + Three grey infinite lights. + + + + + One red, one green, and one blue infinite light. + + + + + Three blue infinite lights. + + + + + Three red infinite lights. + + + + + Six grey infinite lights aligned with the major axes. + + + + + Three grey infinite lights and one light attached to the camera. + + + + + Single infinite light attached to the camera. + + + + + Specifies the available clipping style of the 3D annotation. + + + + + Represents the Clipping style. + + + + + Represents the Clipping style. + + + + + Specifies the available Ortho projection scaling mode of the 3D annotation. + + + + + Scale to fit the width of the annotation. + + + + + Scale to fit the height of the annotation. + + + + + Scale to fit the lesser of width or height of the annotation. + + + + + Scale to fit the greater of width or height of the annotation. + + + + + No scaling should occur due to binding. + + + + + Specifies the available projection type of the 3D annotation. + + + + + Represents Orthographic projection + + + + + Represents Perspective projection. + + + + + Specifies the available rendering style of the 3D artwork. + + + + + Displays textured and lit geometric shapes. In the case of artwork + that conforms to the Universal 3D File Format specification, these + shapes are triangles. + + + + + Displays textured and lit geometric shapes (triangles) with single + color edges on top of them. + + + + + Displays textured and lit geometric shapes (triangles) with an added + level of transparency. + + + + + Displays textured and lit geometric shapes (triangles) with an added + level of transparency, with single color opaque edges on top of it. + + + + + Displays the bounding box edges of each node, aligned with the axes + of the local coordinate space for that node. + + + + + Displays bounding boxes faces of each node, aligned with the axes of + the local coordinate space for that node, with an added level of transparency. + + + + + Displays bounding boxes edges and faces of each node, aligned with the axes of + the local coordinate space for that node, with an added level of transparency. + + + + + Displays only edges in a single color. + + + + + Displays only edges, though interpolates their color between their two vertices + and applies lighting. + + + + + Displays edges in a single color, though removes back-facing and obscured edges. + + + + + Displays only vertices in a single color. + + + + + Displays only vertices, though uses their vertex color and applies lighting. + + + + + Displays silhouette edges with surfaces, removes obscured lines. + + + + + Displays silhouette edges with lit and textured surfaces, removes obscured lines. + + + + + Displays silhouette edges with lit and textured surfaces and an additional emissive + term to remove poorly lit areas of the artwork. + + + + + Specifies the available animation style for rendering the 3D artwork. + + + + + Represents that the Keyframe animations should not be driven directly by + the viewer application. This value is used by documents that are intended + to drive animations through an alternate means, such as JavaScript. + + + + + Represents that the Keyframe animations are driven linearly from beginning to end. + This animation style results in a repetitive playthrough of the animation, + such as in a walking motion. + + + + + Represents that the Keyframe animations should oscillate along their time range. + This animation style results in a back-and-forth playing of the animation, + such as exploding or collapsing parts. + + + + + Represents the annotation with associated action. + + + + + Initializes a new instance of the class. + + Bounds of the annotation. + The Pdf action. + + + + Represents base class for link annotations with associated action. + + + + + Gets or sets the action for the link annotation. + + The action to be executed when the link is activated. + + + + Initializes a new instance of the class. + + Bounds of the annotation. + + + + Initializes a new instance of the class. + + Bounds specifies the location of the drawn text. + The specifies an action to be executed when the link is activated. + + + + Represents the states of an annotation's appearance. + + + + + Gets or sets the active state template. + + The object specifies an active state template. + + + + Gets or sets the inactive state. + + The object specifies an inactive state template. + + + + Gets or sets the mapping name of the active state. + + String specifies the mapping name of the active state. + + + + Gets or sets the mapping name of the inactive state. + + String specifies the mapping name of the inactive state. + + + + Initializes a new instance of the class. + + + + + Represents the appearance of an annotation. + + + + + Gets or sets object which applied to annotation in normal state. + + + + + Gets or sets object which applied to the annotation on hovering the mouse. + + + + + Gets or sets object which applied to an annotation when mouse button is pressed. + + + + + Initializes a new instance of the class. + + The object specifies the annotation. + + + + Represents extended appearance of the annotation. It has two states such as On state and Off state. + + + + + Gets the normal appearance of the annotation. + + The object specifies the normal appearance of the annotation. + + + + Gets the appearance when mouse is hovered. + + The object specifies the annotation appearance when the mouse is hovered on it. + + + + Gets the pressed state annotation. + + The appearance in pressed state. + + + + Initializes a new instance of the class. + + + + + The pdf fixed print dictionary. + + + + + The dictionary. + + + + + Initialize an instance. + + + + + Initializes annotation object. + + + + + Set the matrix. + + The matrix + + + + Set the horizontal translation. + + The horizontal + + + + Set the vertical translation. + + The vertiacl + + + + Gets the element. + + The element + + + + Gets or sets the rectangular diffecences + + + + + Gets or sets the user who created the annotation. + + + + + Gets or sets the annotation's subject. + + + + + Represents a line annotation. + + + + + To specifying Caption Type + + + + + To specifying author + + + + + To specifying subject + + + + + Gets or sets whether the line annotation caption should be displayed. + + true if the line caption should be displayed, otherwise false. + + + + Gets or sets Leader Line + + + + + Gets or sets Leader Line Extension + + + + + Gets or sets Border style of the Line Annotation. + + A enumeration member specifying the border style for the line. + + + + Gets or sets the style used for the beginning of the line. + + A enumeration member specifying the begin style for the line. + + + + Gets or sets the style used for the end of the line. + + A enumeration member specifying the end style for the line. + + + + Gets or sets the line caption text type. + + A enumeration member specifying the line caption type. + + + + Gets or sets LineIntent + + + + + Gets or sets Inner Color of the PdfLine + + + + + Gets or sets Background Color of the PdfLine + + + + + To specifying author + + + + + To specifying subject + + + + + Initializes new instance of class. + + The line points. + + + + Initializes new instance of class. + + The line points. + The line caption text. + + + + Initializes new instance of class. + + Bounds of the annotation. + + + + Represents the border style of the Line annotation. + + + + + Gets or sets the width. + + The line border width. + + + + Gets or sets the border style. + + The line border style. + + + + Gets or sets the Line Dash + + The line border dash array. + + + + Initializes a new instance of the class. + + + + + Represents the base class for link annotations. + + + + + Initializes new instance of class. + + + + + Initializes new instance of class. + + Bounds of the annotation. + + + + Represents the 3D annotation for a PDF document. + + + + + The crossTable + + + + + Gets the list of available views for the current 3D artwork. + + + + + Gets or sets the default view. + + The default view. + + + + Gets or sets the code to execute when the 3D artwork is instantiated. + Javascript code to be executed when the 3D artwork is instantiated. + + + + + Gets or sets the activation options for the annotation. + + Defines the times at which the annotation should be activated and deactivated and the state of the 3D artwork instance at those times. + + + + Gets a 3d viedo file from Pdf3DAnnotation + + + + Filename with Full path + + + + Initializes a new instance of the class. + + Bounds of the annotation. + + + Bounds of the annotation. + Name of the sound file. + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents Ink annotation in the PDF. + + + + + Initialize a new instance. + + annotation points position + The annotation points position, defining the location of the annotation + on the page in default user space units. + + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Gets or sets the annotation opacity. + The opacity is given in decimal, 1 is full opacity, 0 is no opacity. + + + + + Represents the ink annotation class. + + + + + The ink list. + + + + + The crossTable + + + + + The dictionary + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents the polygon annotation. + + + + + The radius. + + + + + The appearance. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The vertice coordinates. + + + + + The date and time when the annotation was most recently modified. + + + + + The border effect. + + + + + Gets or sets appearance of the annotation. + + + + + Initialize a new instance of PdfPolygonAnnotation. + + The page + The polygon vertices + + + + Get the vertices + + Return vertices + + + + Get the radius. + + The radius + + + + Generate cloud border arctangle. + + The polygon points + The rectangles + The start angles in degrees + The sweep angles in degrees + + + + Reseting the graphics matrix. + + + + + Draw the ap content. + + + + + Represents the poly line annotation. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The radius. + + + + + The appearance. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The vertice coordinates. + + + + + Gets or sets appearance of the annotation. + + + + + Initialize instance. + + + + + + + + + + Create rectangle. + + + + + Initialize a new instance of PdfPolygonAnnotation. + + The page + The polygon vertices + + + + Draw the ap content. + + + + + + + + + + + Represents the Rubber Stamp annotation for a PDF document. + + + + + internal varable for the rubberstamp annotation icon + + + + + Annotation's appearance. + + + + + The annotation`s creater + + + + + The annotation`s creat time + + + + + The annotation`s subject. + + + + + Gets or sets the annotation's icon. + + A enumeration member specifying the icon for the annotation when it is displayed in closed state. + + + + Gets or sets appearance of the annotation. + + + + + Gets or set the name of the annotation,the entry is deleted by default when the + input value is an empty string + + + + + Gets or sets the annotation's subject. + + + + + Gets or sets the creation date. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + RectangleF structure that specifies the bounds of the annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the rubber stamp annotation. + + + + Initializes annotation object. + + + + + Saves an annotation. + + + + + The water mark annotation. + + + + + The fixed print dictionary. + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the fixed print annotation. + + + + Set the matrix. + + The matrix + + + + Set the horizontal translation. + + The horizontal + + + + Set the vertical translation. + + The vertiacl + + + + Initializes annotation object. + + + + + Saves an annotation. + + + + + Represents the class for text web link annotation. + + + + + Gets or sets the Url address. + + + + + Initializes a new instance of the class. + + + + + Draws a Text Web Link on the Page + + The page where the annotation should be placed. + The location of the annotation. + Pdf Layout result + + + + Draw a Text Web Link on the Graphics + + The object specifies where annotation should be placed.. + The location of the annotation. + + + + Add annotation to page. + + The page + The advance + + + + Represents the text markup annotation. + + + + + Gets or sets TextMarkupAnnotationType . + + + + + Gets or sets text markup color. + + + + + Initializes new instance of class. + + + + + Initializes new instance of class. + + The markup annotation title. + The string specifies the text of the annotation. + The string specifies the markup text of the annotation. + The location of the markup text annotation. + The specifies the text appearance of the markup text annotation. + + + + Initializes new instance of class. + + The title of the annotation. + The text of the annotation. + The bounds of the annotation. + The font of the annotation. + + + + Initializes new instance of class. + + The title of the annotation. + The text of the annotation. + The bounds of the annotation. + + + + Initializes new instance of class. + + The bounds of the annotation. + + + + Represents the base class for loaded annotation classes. + + + + + Represents the Form field identifier + + + + + Gets and sets the Page. + + + + + Sets the name of the field. + + New name of the field. + + + + Represents the attachment annotation from the loaded document. + + + + + Gets or sets the icon of the annotation. + + + + + Gets the attachment file name of the annotation. + + + + + Represents the loaded caret annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + An array that describing the numerical differences between the annotation rectganle entry + and the actual boundaries + + + + + specifying a symbol + + + + + Gets or sets the symbol + + + + + Gets or sets the rectangular diffecences array + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Set the rectangular differences array + + An float array + + + + Gets the symbol + + The symbol + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true or false + + + + Check the validity of the number in array + + The array + Validity return true or false + + + + Represents the loaded document link annotation class. + + + + + Gets or Sets the destination of the annotation. + + + + + Represents the loaded file link annotation class. + + + + + Gets or sets the filename of the annotation. + + + + + Represents the free text annotation widget. + + + + + An array that describing the numerical differences between the annotation rectganle entry + and the actual boundaries + + + + + Gets or sets the date and time when the annotation was most recently modified. + + + + + Gets or sets the rectangular diffecences array + + + + + Gets a name describing the intent of the free text annotation. + + + + + Get the line ending style + + + + + Get the callout line + + + + + Gets the border width. + + + + + Gets the border color + + + + + Gets the border style + + + + + Gets the rectangular diffecences array + + An float array + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true ,or false + + + + Check the validity of the number in array + + The array + Validity return true ,or false + + + + Represents the loaded line annotation class. + + + + + To specifying author + + + + + To specifying subject + + + + + Gets or sets the back color of the annotation. + + + + + Gets or sets the begin line style of the annotation. + + + + + Gets or sets the caption type of the annotation. + + + + + Gets or sets the end line style of the annotation. + + + + + Gets or sets the inner line color of the annotation. + + + + + Gets or sets the leader line of the annotation. + + + + + Gets the endpoint of the annotation, it's at the bottom left + The origin of coordinate system corresponds to the lower-left corner of page.The positive x axis extends horizontally to the right and the positive y axis vertically upward + + + + + Gets the startpoint of the annotation, it's at the bottom left + The origin of coordinate system corresponds to the lower-left corner of page.The positive x axis extends horizontally to the right and the positive y axis vertically upward + + + + + Gets or sets the leader ext of the annotation. + + + + + Gets the line border of the annotation. + + + + + Gets or sets the line caption of the annotation. + + + + + Gets or sets the line intent of the annotation. + + + + + To specifying author + + + + + To specifying subject + + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Get begin line style point data. + + The point array data + + + + Get end line style point data. + + The point array data + + + + Get open arrow style data. + + The point + The point array data + + + + Represents the loaded markup annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Gets or sets the primary markup annotation + + + + + Gets or set the rely type + + + + + Gets or sets the intent + + + + + Gets or sets the rich content + + + + + Gets the popup annotation + + + + + Gets or sets the annotation's author. + + + + + Gets or sets the date and time when the annotation was created. + + + + + Gets or sets the annotation's subject. + + + + + Gets the opacity value to be used. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Sets the name of the annotation,the entry is deleted by default when the input + value is an empty string + + New name of the annotation. + + + + Get the promary markup annotation + + The promary markup annotation + + + + Gets the rely type,deauflt value is MarkupAnnotationRelyType.R + + The rely type + + + + Gets teh rich content + + rich content + + + + Gets the popup annotation + + The popup annotation + + + + Gets the annotation's author. + + + + + + Gets the date and time when the annotation was created. + + The time when the annotation was created + + + + Gets the intent + + The intent + + + + Gets the opacity + + The opacity + + + + Gets the annotation's subject. + + The annotation's subject + + + + Represents the loaded text PolygonAndPolyLine annotation class. + + + + + CrossTable + + + + + Dictionary + + + + + The vertice coordinates. + + + + + Gets or sets the inner line color of the annotation. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Get the vertices + + Return vertices + + + + Set the vertices + + The pointf array + + + + Check the vertices is valid + + The points + if vaild ,return true,or false + + + + Gets back color of the annotation. + + The back color. + + + + Set the inner line color + + The pdf rgb color + + + + Represents the loaded text Polygon annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Get or set the intent + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Gets the intent + + The intent + + + + Represents the loaded text Polygon annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Get or set the intent + + + + + Get or set the line ending style + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Gets the intent + + The intent + + + + Gets the intent + + The intent + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Build data. + + The ap builder + + + + Represents the loaded pop up annotation class. + + + + + Gets or sets the open option of the popup annotation. + + + + + Gets or sets the icon of the annotation. + + + + + Represents the loaded rubber stamp annotation class. + + + + + Gets or sets the icon of the annotation. + + + + + Represents the loaded sound annotation class. + + + + + Gets or sets the sound of the annotation. + + + + + Gets the filename of the annotation. + + + + + Gets or sets the icon of the annotation. + + + + + The crossTable + + + + + The dictionary + + + + + Gets or sets the inner line color of the annotation. + + + + + Gets or sets the rectangular diffecences array + + + + + Gets back color of the annotation. + + The back color. + + + + Set the inner line color + + The pdf rgb color + + + + Gets the rectangular diffecences array + + An float array + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true ,or false + + + + Check the validity of the number in array + + The array + Validity return true ,or false + + + + Represents the PdfLoadedStyledAnnotation. + + + + + Gets or sets the color. + + The color. + + + + Gets or sets the text. + + The text. + + + + + Gets or sets the annotation's border. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the annotation flags. + + + + + The author of the annotation. + + + + + The state of the annotation. + + + + + The stateModel of the annotation. + + + + + Gets the annotation's state. + + + + + Gets the annotation's stateModel. + + + + + Gets the iconname value to be used. + + + + + Gets the open option of the popup annotation. + + + + + Represents the loaded text markup annotation class. + + + + + Gets or sets the annotation Type. + + + + + Gets or sets the color. + + + + + Represents the loaded text web link annotation class. + + + + + Gets or sets the Url. + + + + + Represents the loaded unique resource identifier annotation class. + + + + + Gets or sets the unique resource identifier text of the annotation. + + + + + The water mark annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the fixed print annotation. + + + + Initializes annotation object. + + + + + Represents the loaded web link annotation class. + + + + + Specifies the name of an icon to be used in displaying the sound annotation. + + + + + Speaker icon of sound link. + + + + + Microphone icon of sound link. + + + + + Specifies the type of icon to be used in displaying file attachment annotations. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Specifies the enumeration of the annotation flags. + + + + + Default value. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Specifies the enumeration of popup annotation icons. + + + + + Indicates note popup annotation. + + + + + Indicates comment popup annotation. + + + + + Indicates help popup annotation. + + + + + Indicates insert popup annotation. + + + + + Indicates key popup annotation. + + + + + Indicates new paragraph popup annotation. + + + + + Indicates paragraph popup annotation. + + + + + Specifies the enumeration of popup annotation icons. + + + + + Indicates note text annotation. + + + + + Indicates comment text annotation. + + + + + Indicates help text annotation. + + + + + Indicates insert text annotation. + + + + + Indicates key text annotation. + + + + + Indicates new paragraph text annotation. + + + + + Indicates paragraph text annotation. + + + + + Specifies the enumeration of rubber stamp annotation icons. + + + + + Indicates additional names rubber stamp annotation + + + + + Indicates approved rubber stamp annotation + + + + + Indicates AsIs rubber stamp annotation + + + + + Indicates confidential rubber stamp annotation + + + + + Indicates departmental rubber stamp annotation + + + + + Indicates draft rubber stamp annotation + + + + + Indicates experimental rubber stamp annotation + + + + + Indicates expired rubber stamp annotation + + + + + Indicates final rubber stamp annotation + + + + + Indicates for comment rubber stamp annotation + + + + + Indicates for public release rubber stamp annotation + + + + + Indicates not approved rubber stamp annotation + + + + + Indicates not for public release rubber stamp annotation + + + + + Indicates sold rubber stamp annotation + + + + + Indicates topsecret rubber stamp annotation + + + + + Specifies the Line Ending Style to be used in the Line annotation. + + + + + Indicates Square + + + + + Indicates Circle + + + + + Indicates Diamond + + + + + Indicates OpenArrow + + + + + Indicates ClosedArrow + + + + + Indicates None + + + + + Indicates ROpenArrow + + + + + Indicates Butt + + + + + IdicaIndicatestes RClosedArrow + + + + + Indicates Slash + + + + + Specifies the Line Border Style is to be used in the Line annotation. + + + + + Indicates Solid + + + + + Indicates Dashed + + + + + Indicates Beveled + + + + + Indicates Inset + + + + + Indicates Underline + + + + + Specifies the Line Intent Style is to be used in the Line annotation. + + + + + Indicates Line Arrow as intent of the line annotation + + + + + Indicates LineDimension as intent of the line annotation + + + + + Specifies the Line Caption Type is to be used in the Line annotation. + + + + + Specifies the Style of the Text Markup Annotation + + + + + The Text Markup Annotation Type is Highlight. + + + + + The Text Markup Annotation Type is Underline. + + + + + The Text Markup Annotation Type is Squiggly. + + + + + The Text Markup Annotation Type is StrikeOut. + + + + + Specifies the annotation types. + + + + + Highlight type annotation. + + + + + Underline type annotation. + + + + + StrikeOut type annotation. + + + + + Squiggly type annotation. + + + + + AnnotationStates type. + + + + + TextAnnotation type. + + + + + LinkAnnotation type. + + + + + DocumentLinkAnnotation type. + + + + + FileLinkAnnotation type. + + + + + FreeTextAnnotation type. + + + + + LineAnnotation type. + + + + + SquareandCircleAnnotation type. + + + + + PolygonandPolylineAnnotation type. + + + + + TextMarkupAnnotation type. + + + + + CaretAnnotation type. + + + + + RubberStampAnnotation type. + + + + + LnkAnnotation type. + + + + + PopupAnnotation type. + + + + + FileAttachmentAnnotation type. + + + + + SoundAnnotation type. + + + + + MovieAnnotation type. + + + + + ScreenAnnotation type. + + + + + WidgetAnnotation type. + + + + + PrinterMarkAnnotation type. + + + + + TrapNetworkAnnotation type. + + + + + WatermarkAnnotation type. + + + + + TextWebLinkAnnotation type. + + + + + 3DAnnotation type. + + + + + No annotation. + + + + + Polygon Annotation type + + + + + PolyLine Annotation type + + + + + Square Annotation type + + + + + Ink Annotation type + + + + + Circle Annotation type + + + + + polygon annotation intent type + + + + + Indicates that the annotaiton is intended to function as a cloud + + + + + Indicates that the annotaiton is intended to function as dimension + + + + + polyLine annotation intent type + + + + + Indicates that the annotaiton is intended to function as dimension + + + + + Represents the base class for annotation objects. + + + + + The name of the annotation. + + + + + The ModifiedDate of the annotation. + + + + + Gets or sets the background of the annotations icon when closed. + The title bar of the annotations pop-up window. + The border of a link annotation. + + The color. + + + + Gets annotation's modified date. + + + + + Gets or sets annotation's border. + + + + + + Gets or sets location of the annotation. + + + + + Gets or sets the name of the annotation. + Note: The annotation name, a text string uniquely identifying it among all the annotations on its page. + + + + + Gets or sets size of the annotation. + + + + + Gets a page which this annotation is connected to. + + + + + Gets or sets content of the annotation. + + + + + Gets or sets annotation flags. + + + + + Set ap dictionary. + + + + + Build appearance dictionary. + + The appearance dictionary + + + + Represents the appearance of an annotation's border. + + + + + Gets or sets a horizontal corner radius. + + + + + Gets or sets a vertical corner radius. + + + + + Gets or sets the width of annotation's border. + + A float value specifying the width of the annotation's border. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A float value specifying the width of the annotation's border. + + + + Initializes a new instance of the class. + + A float value specifying the width of the annotation's border. + A float value specifying the horizontal corner radius value. + A float value specifying the vertical corner radius value. + + + + Represents collection of objects. + + + + + Gets the object at the specified position. + + The index value of the annotation in the collection. + Annotation object at the specified position. + + + + Initializes a new instance of the class. + + + + + Creates new annotation collection for the specified page. + + Page which collection is created for. + + + + Adds a new annotation to collection. + + The new annotation to be added to collection. + Position of the annotation in collection. + + + + Cleares the collection. + + + + + Searches the collection for the specified annotation. + + The annotation to search for. + True, if annotation is contained in collection. Otherwise - false. + + + + Searches the collection for the specified annotation. + + The Annotation to search. + Index of the element in the collection, if exists, or -1 if the element does not exist in the collection. + + + + Inserts annotation to the collection at the specified index. + + Index where to insert the element. + The annotation to insert in the collection. + + + + Removes the element at the specified field. + + The index of the element to remove. + + + + Removes the element from the collection. + + The element to remove. + + + + Represents an attachment annotation. + + + + + Gets or Sets attachment's icon. + + A enumeration member specifying the icon for the annotation when it is displayed in closed state. + + + A string value specifying the full path to the file to be embedded in the PDF file. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded in the PDF file. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded in the PDF file. + A byte array specifying the content of the annotation's embedded file. + If both FileName and FileContent are specified, the FileContent takes precedence. + + + The rectangle. + A string value specifying the full path to the file to be embedded in the PDF file. + The stream specifying the content of the annotation's embedded file. + If both FileName and FileContent are specified, the FileContent takes precedence. + + + + Represents annotation object with holds link on another location within a document. + + + + + Gets or sets the destination of the annotation. + + + + + Initializes new instance. + + Bounds of the annotation. + + + + Initializes new instance. + + Bounds of the annotation. + Destination of the annotation. + + + + Represents a base class for file attachment annotation. + + + + + The crossTable + + + + + Gets or sets file name of the annotation. + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents the annotation link to external file. + + + + A string value specifying the full path to the file to be embedded. + + + + Gets or sets the action. + + The action to be executed when the annotation is activated. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded. + + + + Represents a Base class for popup annotation which can be either in open or closed state. + + + + + Gets or sets icon style. + + + + + Gets or sets value whether annotation is initially open or closed + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + The string specifies the annotation text. + + + + Represents the sound annotation. + + + + + Gets or sets the icon to be used in displaying the annotation. + + The enumeration member specifying the icon for the annotation. + + + + Gets or sets the sound. + + The object specified a sound for the annotation. + + + The string specifies the file name of the sound annotation. + + + RectangleF structure that specifies the bounds of the annotation. + The string specifies the file name of the sound annotation. + + + + Represents the Uri annotation + + + + + Gets or sets the Uri address. + + + + + Gets or sets the action. + + The object specifies the action of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + unique resource identifier path. + + + + return text from image by OCR. + + + + + + + This extractor keeps track of the current Y position of each string. If it detectsthat the y position has changed, it inserts a line break into the output.If the PDF extractor text in a non-top-to-bottom fashion, this will result in the text not being a true representation of how it appears in the PDF. + + The Extracted Text. + + + + Represents the utility class to store information about Images and its location. + + + + + The number of indirect objects. + + + + + The original stream object. + + + + + Gets the Image Boundary location. + + + + + Gets the Image,save to stream. + + + + + Gets the Image index. + + + + + The number of indirect object. + + + + + The original stream object. + + + + + Whether the current image contains SMask entry + + The current image stream obejct + if has return true or false + + + + dispose the image resources + + + + + Pdf to html Set Parameter + + + + + In 1000 The Split Page + + + + + In 1000 The Split Page,default 1000 + + + + + wheather embedded image + + + + + Pdf to Html, Set Parameter + + + + + Writes the doc Comment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Get file Folder + + + + + write doc comment + + + + + + + Save file Relative Path + + + + + + + Save file folder + + + + + + + write doc comment + + + + + + Represents the path data reader. + + + + + Gets a value indicating whether this is EOF. + + true if EOF; otherwise, false. + + + + Gets text length. + + + + + Gets or sets the position. + + The position. + + + + Initializes a new instance of the PathDataReader class. + + + + + + Reads the symbols + + Symbol + + + + Gets the next symbol + + Symbol + + + + Gets the next symbol position. + + The next symbol position + + + + Updates the current position of the reader + + Length of the path data + + + + Reads the float value from the path data + + float value + True if the next value is float + + + + Reads the pint form the path data + + Point value + True if the next parameter is point + + + + Reads the points from the path data + + Points + + + + Checks if the current character is symbol + + True if the character is a symbol + + + + Reads the Name of the element + + XPS data + Reader position + Name + + + + Reads the boolean value from the Data + + XPS data + Reader position + True if the next value is boolean + + + + Reads the float from the data. + + XPS data + Reader position + float value + + + + Reads the point from the data + + XPS data + Reader position + point + + + + Reads the matrix from the data + + XPS data + Reader position + Matrix + + + + + Find item by searching in the .rels file + + + The index of item + + + + Get item from alternate content + + alternate content data + the type of item + the item + + + + Enumerator representing the available XPS elements. + + + + + Create a new ttf glyph. + + The ttf font + The glyph index + A new ttf glyph info + + + + Add char code to glyph info. + + The microsft + The glyph info + The char code + + + + Whether exsit glyph char code + + The true type reader + The glyph index + The char code + if exsit return true or false + + + + Bug897 + + + + + + + Converts the alternateContent graphics to PDF graphics. + + + + + + Converts the choice graphics to PDF graphics. + + + + + + Converts the fallback graphics to PDF graphics. + + + + + + Converts the baloo graphics to PDF graphics. + + + + + + Get the base image and mask image + + + + + + + + The index of the profile in the xps archive + + + + + The data of icc proifle + + + + + The number of color components + + + + + Initialize a new ICCProfile + + The index of the profile in the xps archive + The data of icc proifle + The number of color components + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Free users can only add up to 10 pages + + + + + Represents a base class for all barcode types. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Set the barcode text. + + + + Gets or sets the back color of the barcode. + + + + + Gets or sets the bar color of the barcode. + + + + + Gets or sets the text color of the barcode text. + + + + + Gets or sets the narrow bar width. + + + + + Gets or Sets the barcode text. + + + + + Gets or sets the location to render barcode in the PDF Document. + + + + + Gets or sets the empty area which is to be allocated around the barcode. + + + + + Gets or sets the bar height. + + + + + Gets the size of the barcode. + + + + + Gets or sets the rectangular area occupied by the barcode. + + + + + Represents the general barcode exception class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + User defined error message. + + + + Initializes a new instance of the class. + + User defined error message. + The inner exception. + + + + Represents the Class for specifying Quiet zones around the barcode. + + + + + Gets or sets the quiet zones at the right side of the barcode. + + + + + Gets or sets the quiet zones at Top of the barcode. + + + + + Gets or sets the quiet zones at the left side of the barcode. + + + + + Gets or sets the quiet zones at bottom of the barcode. + + + + + Gets or sets the quiet zones around the bar code. + + + + + Check whether all the margin values are equal. + + + + + Represents a Codabar barcode. + + This symbology allows the encoding of strings of up to 16 digits, 10 numeric digits (0 through 9) and + 6 special non alpha characters ("+", "-", "$", "/", ":", "."). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code11 barcode. + + Only the following symbols are allowed in a Code 11 barcode: 0 1 2 3 4 5 6 7 8 9 - + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + The Barcode Text. + + + + Represents a Code128A barcode. + + Only the following symbols are allowed in a Code 128 A barcode: NUL (\x00) SOH (\x01) STX (\x02) ETX (\x03) EOT (\x04) ENQ (\x05) ACK (\x06) BEL (\x07) BS (\x08) HT (\x09) LF (\x0A) VT (\x0B) FF (\x0C) CR (\x0D) SO (\x0E) SI (\x0F) DLE (\x10) DC1 (\x11) DC2 (\x12) DC3 (\x13) DC4 (\x14) NAK (\x15) SYN (\x16) ETB (\x17) CAN (\x18) EM (\x19) SUB (\x1A) ESC (\x1B) FS (\x1C) GS (\x1D) RS (\x1E) US (\x1F) SPACE ! # $ % ' * + , - . 0 1 2 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^ _ FNC1 (\xF0) FNC2 (\xF1) FNC3 (\xF2) FNC4 + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code128B Barcode. + + Only the following symbols are allowed in a Code 128 B barcode:SPACE ! " # $ % ' ( ) * + , - . / 0 12 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL (\x7F) FNC1 (\xF0) FNC2 (\xF1) FNC3 (\xF2) FNC4 (\xF3) SHIFT (\xF4). + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code128C barcode. + + Only the following symbols are allowed in a Code 128C barcode: 0 1 2 3 4 5 6 7 8 9 FNC1 (\xF0). Code 128 C encodes only numeric symbols at double density, each pair of digits is encoded using a single symbol. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code32 barcode. + + Only the following symbols are allowed in a Code 32 barcode: 1 2 3 4 5 6 7 8 9 0. The barcode length is 9 digits (8 user defined digits + 1 check digit). + Code 32 barcodes are also known as Italian Pharmacode barcodes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code39 barcode. + + Only the following symbols are allowed in a Code 39 barcode:Only the following symbols are allowed in a Code 39 barcode: 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - . $ / + % SPACE + All alphabetic characters are uppercase. If lowercase characters are required, then a Code 39 Extended barcode must be used. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code39 Extended barcode. + Code 39 Extended is designed to encode 128 full ASCII characters. + + All 128 ASCII characters can be encoded in an extended Code 39 barcode + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code93 barcode. + + Only the following symbols are allowed in a Code 93 barcode: 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - . $ / + % SPACE + All alphabetic characters are uppercase. If lowercase characters are required, then a Code 93 Extended barcode must be used. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a code93 extended barcode. + + All 128 ASCII characters can be encoded in an extended Code 93 barcode. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents the Base class for all the Single dimensional barcodes + + + + + Initializes the new instance of + + + + + Gets or sets the Text font. + + + + + Gets or sets the text display location. + + + + + + The Default value is false. + + + + Gets or sets a value indicating whether to enable to check digit calculation in the generated barcode or not. + + The Default value is True. + + + + Gets or sets the gap between the barcode and the displayed text. + + + + + Gets or sets the alignment of the text displayed on the barcode. + + Default value is Center. + + + + Gets or sets a value indicating whether [encode start stop symbols]. + + + true if [encode start stop symbols]; otherwise, false. + + + + + Draws the barcode on the at the specified region. + + The pdf page. + The barcode region. + + + + Draws the barcode on the at the specified location. + + The pdf page. + The barcode location. + + + + Draws the barcode on the at the specified location with the size. + + The pdf page. + The barcode location. + The barcode size. + + + + Exports the barcode as image. + The barcode image. + + + + + Specifies the barcode text display location. + + + + + Displays, no text. + + + + + Displays text, above the barcode. + + + + + Displays text, at the bottom of the barcode. + + + + + Specifies the barcode text alignment. + + + + + Displays the readable text on the left side of the barcode. + + + + + Displays the readable text at the center of the barcode. + + + + + Displays the readable text on the right side of the barcode. + + + + + Represents attachments of the Pdf document. + + + + Name of the file. + + + Name of the file. + The data to be attached as a file. + + + Name of the file. + The stream. + + + + Represents a collection of the attachment objects. + + + + + Initializes a new instance of the class. + + + + + Gets attachment by its index in the collection. + + Index of the attachment. + Attachment object by its index in the collection. + + + + Adds the specified attachment. + + The attachment. + Position of the inserted attachment. + + + + Adds the specified attachment. + + The attachment. + The associated document. + The relationship between attachment and associated document. + Position of the inserted attachment. + + + + Adds the specified attachment. + + The attachment. + Position of the inserted attachment. + + + + Inserts the specified index. + + The index. + The attachment. + + + + Removes the specified attachment. + + The attachment. + + + + Removes attachment at the specified index. + + The index. + + + + Indexes the of attachment. + + The attachment. + + + + + Determines whether + + The attachment. + + if it contains the specified attachment, set to true. + + + + + Clears the collection. + + + + + Gets the element. + + + + + Represents a fields which is calculated before the document saves. + + + + + Gets or sets the bounds of the field. + + The bounds value. + + + + Gets or sets the size of the field. + + The size of the field. + + + + Gets or sets the location of the field. + + The location. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the brush. + + The brush. + + + + Gets or sets the pen. + + The pen. + + + + Gets or sets the string format. + + The string format. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + + Represents class to display creation date of the document. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Gets or sets the format string. + + The format string. + + + + Represents date automated field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + A object that is used to fill the string. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Gets or sets the format string. + + The format string. + + + + Represents class which displays destination page's number. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Get and sets the PdfLoadedPage + + + + + Gets or sets the page. + + The page. + + + + Represent automatic field which contains document's author name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which value is dynamically evaluated. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents class which can concatenate multiple automatic fields into single string. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + A object that is used to fill the string. + + + + Initializes a new instance of the class. + + The wide-character string to be drawn. + The list of objects. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + The list of objects. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + A object that is used to fill the string. + The wide-character string to be drawn. + The list of objects. + + + + Gets or sets the text. + + The wide-character string to be drawn. + + + + Gets or sets the automatic fields. + + The automatic fields. + + + + Represents automatic field which has the same value within the + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Gets or sets the number style. + + The number style. + + + + Represents automatic field which has the same value within the + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents total page count automatic field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Gets or sets the number style. + + The number style. + + + + Represents page number field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display number of pages in section. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display page number within a section. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which has the same value + in the whole document. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which value can be evaluated in the moment of creation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + A collection specifies the viewing and organizational characteristics + of portable collections.The intent of portable collections is to present, + sort, and search collections of related document,such as email archives, + photo collections, and engineering bidsets. + + + + + A collection dictionary which specifies the viewing and organizational + characteristics of portable collections. + + + + + The embeddedFiles name tree which the file attachments comprising a collection. + + + + + (Required if the collection has folders; ExtensionLevel3) + An indirect reference to the folder dictionary that is the + single common ancestor of all other folders in a portable + collection. + + + + + Get the document collection associated files + + + + + Get the document collection associated field names + + + + + Construct an instance. + + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Construct an instance. + + The collections dictionary. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Add a local file. + + The local file path. + + + + Add a stream. + + The file name of the stream. + The stream. + + + + Add an attachment. + + The attachment. + + + + Add a custom field. + + Custom field name. + Custom field display name. + Custom field type. + + + + Add a file related field. + + File related field name. + File related field display name. + File related field type. + + + + Sort embedded files with field names. + + The names of fields that the PDF viewer application + uses to sort the items in the collection. + Specifies whether the items in the collection are sorted + in ascending order. + + + + Clear all files and folders. + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Create default dictionary + + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Custom field type. + + + + + The field data is stored as a PDF text string. + + + + + The field data is stored as a PDF date string. + + + + + The field data is stored as a PDF number. + + + + + File related field Type. + + + + + The field data is file name of the embedded file stream. + + + + + The field data is the description of the embedded file stream. + + + + + The field data is the modification date of the embedded file stream. + + + + + The field data is the creation date of the embedded file stream. + + + + + The field data is the size of the embedded file stream. + + + + + A folder for the purpose of organizing files into a hierarchical structure. + The structure is represented by a tree with a single root folder acting as + the common ancestor for all other folders and files in the collection. + + + + + A collection dictionary which specifies the viewing and organizational + characteristics of portable collections. + + + + + The embeddedFiles name tree which the file attachments comprising a collection. + + + + + (Required;ExtensionLevel3)A non-negative integer value + representing the unique folder identification number.Two folders + shall not share the same ID value. + The folder ID value appears as part of the name tree key of any file + associated with this folder.A detailed description of the association + between folder and files can be found after this table. + + + + + (Required;ExtensionLevel3)A file name representing the name of the + folder.Two sibling folders shall not share the same name following + case normalization. + Note:Descriptions of file name and case normalization follow this + table. + + + + + (Required for child folders; ExtensionLevel3) + An indirect reference to the parent folder of this folder. + This entry shall be absent for a root folder. + + + + + (Required if the folder has any descendents; ExtensionLevel3) + An indirect reference to the first child folder of this folder. + + + + + (Required for all but the last item at each level; ExtensionLevel3) + An indirect reference to the next sibling folder at this level. + + + + + Construct an instance. + + The folder name. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Construct an instance. + + The collections dictionary. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Add a local file into this folder. + + The local file path. + + + + Add a stream into this folder. + + The file name of the stream. + The stream. + + + + Delete the file in this folder. + + The file. + + + + Get the files in this folder. + + The file list in this folder. + + + + Create an subfolder. + + The subfolder name. + The PdfFolder. + + + + Delete an subfolder. + + The subfolder name. + + + + Get the subfolders of this folder. + + The subfolder list in this folder. + + + + Whether has subfolders. + + True or False + + + + Clear this folder. + + + + + Add local folder into this folder. + + The local folder path. + + + + Add an attachment into this folder. + + The attachment. + + + + Create default dictionary + + + + + + Generate foler ID which A non-negative integer value + representing the unique folder identification number. + Two folders shall not share the same ID value. + + The Unique folder ID. + + + + Get all folder ID which include current folder's ID and child folders's ID. + + The folder ID list. + + + + Two sibling folders shall not share the same name. + + The new child folder name. + True: no same name. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Each instance of this class represents + an bookmark node in the bookmark tree. + + + + + Gets or sets the outline destination. + + + + + Gets or sets the outline title. + + The outline title is the text, + which appears in the outline tree as a tree node. + + + + Gets or sets the color. + + + + + Gets or sets the text style. + + + + + It's true,expand node + It's false,collapse node + + + + + Gets or sets the Action for the Outline. + + + + + This class plays two roles: it's a base class for all bookmarks + and it's a root of a bookmarks tree. + + + + + Gets number of the elements in the collection. + + + + + Gets the at the specified index. + + index + + + + Creates and adds an outline. + + The title of the new outline. + The outline created. + + + + Determines whether the specified outline is a direct descendant of the outline base. + + The outline. + + true if the specified outline is a direct descendant of the outline base; + otherwise, false. + + + + + Removes the specified bookmark from the document. + + The title of the outline. + + + + Removes the specified bookmark from the document at the specified index. + + The index. + + + + Removes all the bookmark from the document. + + + + + Inserts a new outline at the specified index. + + The index. + The title of the new outline. + The new outline. + + + + + Gets the element. + + + + + + Allows to choose outline text style. + + + + + Regular text style. + + + + + Italic text style. + + + + + Bold text style. + + + + + Represents loaded bookmark class. + + + + + Gets or sets the outline destination. + + + + + Gets or sets the outline title. + + The outline title is the text, + which appears in the outline tree as a tree node. + + + + Gets or sets the color. + + + + + Gets or sets the text style. + + + + + The class can be used to set some options when do convert operation. + + + + + Pdf document to xlsx document,page content layout + + + + + Gets or sets a value indicates whether to use the high qulity image when convert xps to pdf. + + + + + Gets or sets a value indicates whether to use the high quality embedded svg when convert pdf to html. + + + + + Gets or sets a value indicates whether to use invariant culture mode when convert pdf to xps. + + + + + Gets or sets a value indicates whether to use PS mode to convert pdf to xps, doc. + + + + + Gets or sets a value indicates whether to use PS mode to convert pdf to img. + + + + + Gets or sets a value indicates whether to image background transparent pdf to img. + + + + + Gets or sets a value indicates whether to use the embedded svg in the result file when convert pdf to html. + + + + + Gets or sets a value indicates the count of page contents in one html file when convert pdf to html, works only when UseEmbeddedSvgMode property is set to false. + + + + + Gets or sets a value indicates whether to embed image data in the result file when convert pdf to html, works only when UseEmbeddedSvgMode property is set to false. + + + + + Gets or sets a value indicates the output svg's width in pixel unit, -1 means use the orignal width. + + + + + Gets or sets a value indicates the output svg's height in pixel unit, -1 means use the orignal width. + + + + + Gets or sets a value indicates whether whether to use flow recognition mode to convert pdf to doc(docx). + + + + + Pdf document to xlsx document,the xlsx options + + + + + Find Text in PDF file by absolute position or operator order.default is true. + + + + + Set pdf to image convert options. + + Indicates whether to use PS mode. + + + + Set pdf to image convert options. + + Alpha values rang from 0 to 255 + + + + Set pdf to xlsx convert options + the parameter is:the implementation class the xlsxOptions class + The implementation class:XlsxLineLayoutOptions or XlsxTextLayoutOptions + + + + + + Set pdf to xps convert options. + Default usePsMode = true,useInvariantCulture = false,useHighQualityImg = false. + + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + Indicates whether to use invariant culture. + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + Indicates whether to use invariant culture. + Indicates whether to use the high qulity image. + + + + Set pdf to doc convert options. + Default usePsMode = true. + + + + + Set pdf to doc convert options. + + Indicates whether to use PS mode. + + + + Set pdf to doc convert options. + + Indicates whether to use PS mode. + Indicates whether to use flow recognition mode. + + + + Set xps to pdf convert options. + Default useHighQualityImg = false. + + + + + Set xps to pdf convert options. + + Indicates whether to use the high qulity image. + + + + Set pdf to html convert options. + Default useEmbeddedSvg = true, useEmbeddedImg = false, maxPageOneFile = 500, useHighQualityEmbeddedSvg=true. + + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + Indicates the count of page contents in one html file, works only when useEmbeddedSvg is set to false. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + Indicates the count of page contents in one html file, works only when useEmbeddedSvg is set to false. + Indicates whether to use the high quality embedded svg in html file, works only when useEmbeddedSvg is set to true. + + + + Set pdf to svg options. + Default wPixel = -1f, hPixel = -1f, -1f means no change. + + + + + Set pdf to svg options. + + The output svg's width in pixel unit, -1f means no change. + + + + Set pdf to svg options. + + The output svg's width in pixel unit, -1f means no change. + The output svg's height in pixel unit, -1f means no change. + + + + The document piece info. + + + + + Indicates whether to use the high qulity image when convert document + + + + + Pdf to Html, Set Parameter + + + + + Get or Set Allow Create Form. + + + + + Indicates whether use invariant culture mode to convert pdf document. + + + + + Set some options when do convert operation. + + + + + Set,Get Current active pdf object + + + + + Get document PdfConformanceLevel + + + + + Gets the collection of document attachments displayed on a PDF page. + + + + + Gets the bookmarks. + + + + + Gets or sets the color space for page that will be created. + + + + + Gets or sets document's information and properties. + + + + + Gets the additional document's actions. + + + + + Gets the loaded form. + + + + + Page labels. + + + + + Gets or set the document piece info. + + + + + Gets the pages. + + + + + Gets the fonts which are available in the PDF document. + + Retruns the fonts which are used in the PDF document. + + + + Gets or sets the desired level of stream compression. + + All new objects should be compressed with this level of the compression. + + + + Gets the security parameters of the document. + + + + + Gets or sets a viewer preferences object controlling the way the document is to be + presented on the screen or in print. + + + + + Gets or sets the action to execute when the document is opened. + + + + + Gets or sets the action to be performed after the document is printed. + + A object specifying the action to be executed after the document is printed. . + + + + Gets or sets the jave script action to be performed after the document is saved. + + A object specifying the action to be executed after the document is saved. + + + + Gets or sets the action to be performed before the document is closed. + + A object specifying the action to be executed before the document is closed. + + + + Gets or sets the action to be performed before the document is printed. + + A object specifying the action to be executed before the document is printed. + + + + Gets or sets the java script action to be performed before the document is saved. + + A object specifying the action to be executed before the document is saved. + + + + Gets the template of pdf document + + + + + Indicates whether enable font cache. + + + + + Indicates the document is encrypted or not. + + + + + Indicates the document is a PDF Portfolio or not. + + + + + Optional content properties + + + + + The pdf collections. + + + + The path to source pdf file. + This constructor imports an existing pdf file into the document object. It automatically populates the Pages collection with the pages of the given document. + + + + Initializes a new instance of the class. + + The path to source PDF document. + The password (user or owner) of the encrypted document. + + + + Setting up the Pdf docuement standard,but Pdf/A2A standards are not suppored + + + + + + Initializes a new instance of the class. + + The byte array with the file content. + + + + Initializes a new instance of the class. + + The byte array with the file content. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance of the class. + + The stream with the file. + + + + Initializes a new instance. + + The stream with the file. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance of the class. + + The path to source pdf file. + This constructor imports an existing pdf file into the document object. It automatically populates the Pages collection with the pages of the given document. + + + + Initializes a new instance of the class. + + The path to source PDF document. + The password (user or owner) of the encrypted document. + + + + Load a xps bytes array. + + the xps byte array + + + + Load a xps file. + + + + + + Load a xps stream. + + + + + + Load a svg file. + + A relative or absolute path for the svg file + + + + Load a svg stream. + + A Svg file stream + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + paper size + PdfHtmlLayoutFormat layoutFormat + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + paper size + PdfHtmlLayoutFormat layoutFormat + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + Page setting + PdfHtmlLayoutFormat layoutFormat + + by default false, when load Html DOM timeout(PdfHtmlLayoutFormat.LoadHtmlTimeout),convert uncompleted Html DOM to pdf. + if true,until Html DOM load completed,then convert to pdf. + + + + + Load htmlSourceCode to Pdf + + htmlSourceCode + Auto detect page break + PdfPageSettings setting + PdfHtmlLayoutFormat layoutFormat + + + + Load htmlSourceCode to Pdf + + htmlSourceCode + Auto detect page break + PdfPageSettings setting + PdfHtmlLayoutFormat layoutFormat + + by default false, when load Html DOM timeout(PdfHtmlLayoutFormat.LoadHtmlTimeout),convert uncompleted Html DOM to pdf. + if true,until Html DOM load completed,then convert to pdf. + + + + + add free version infomation + + + + + apply limit for free version + + + + + Initializes a new instance of the class. + + The byte array with the file content. + + + + Initializes a new instance of the class. + + The stream with the file. + + + + Initializes a new instance of the class. + + The byte array with the file content. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance. + + The stream with the file. + The password (user or owner) of the encrypted document. + + + + Thie method creates a booklet + + The loaded document filename. + The page width + The page height + if set to true if the result in document should be printed + + + + Thie method creates a booklet + + The loaded document filename. + The page width + The page height + if set to true if the result in document should be printed + Delegate for handling event when the begin drawing page in a booklet. + Delegate for handling event when the end drawing page in a booklet. + + + + Verify pdf document regarding signature. + + Signature field name. + Signature is validated return true,otherwise false + + + + Get pdf document regarding signature. + + Signature field name. + + + + Whether the file is password protected. + + The file name + if password protected,return true,or false + + + + Indicates whthere contains extended right. + + + + + Removes the extended right. + + + + + Save the document to the specified stream. + + + The stream which default saved to the FileFormat.PDF format. + + + + + Convert the document to streams with the file format. + + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to streams with the file format. + + The start index. + The end index. + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to an stream with the file format. + + + The stream with the file format. + + + The file format. + FileFormat.SVG is not supported, because SVG file has no paging,so can't be saved to a stream. + + + + + Saves PDF document to file. + + A relative or absolute path for the file + + + + Saves PDF document to file. + + A relative or absolute path for the file + File format for the file + + + + Saves PDF document to PDF or other Format files. + Current only supports save PDF document to SVG and PDF + + A relative or absolute path for the file + The start page index.The index starts at 0 + The end page index. + File format for the file + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image,Set image Dpi + + Page with page index to save as image + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + Saves PDF document page as image,Set PdfImageType and image Dpi + + Page index + PdfImageType type + + X resolution + + + Y resolution + + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + The zoom factor + The write warning + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + The zoom factor + Returns page as Image + + + + Saves PDF document page as image + + Page index + PdfImageType type + Returns page as Image + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + The resulting clone must be of the same type as or a compatible type to the original instance. + + + + Appends the specified loaded document to this one. + + The loaded document. + + + + Appends a new page to this one. + + The new page. + + + + Imports a page. + + The loaded document. + The page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page index in the result document. + The page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The last created page in the result document. + + + + Merges the specified source documents and return destination document. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merges the PDF documents specified by the paths. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + The array of string paths. + A new PDF document containing all merged documents. + + + + Merges the PDF documents specified by the Stream. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + + + + + + Merges the PDF documents specified by the paths. + + + + A new PDF document containing all merged documents. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + + + + Splits a PDF file to many PDF files, each of them consists of one page from the source file. + + Template for destination file names. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Splits a PDF file to many PDF files, each of them consists of + one page from the source file. + + Template for destination file + names. + The number that is use as a start + point for the page numbering. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + remove document's javaScript + + if True remove succesfully,else remove the failure or document doesn't have JavaScript + + + + Print preview. + + Print preview control + + + + Print document. + + The print settings. + + + + Print settings. + + + + + Get the print settings. + + + + + Print document. + + + + + when export text,if have image ,will call IOCR and add text to export content. + + + + + + Closes the document. + + The document is disposed after calling the Close method. So, the document can not be saved if Close method was invoked. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Set the path to the folder where the custom font is located. + + the folder path. + + + + Clear the path of the folder where the custom font is located. + + + + + Represent common PdfDocumentBase classes. + + + + + Whether forbid warning when convert to Pdf/A Pdf/X + !!! Temp solution + + + + + specify whether to use high quality images + + + + + Pdf to Html, Set Parameter + + + + + + + + + + Free users can only add up to 10 pages + + + + + Internal variable to store the private font collection. + + + + + Optional content properties + + + + + The conformance level. + + + + + Page labels. + + + + + Gets the fonts which are available in the PDF document. + + Retruns the fonts which are used in the PDF document. + + + + Gets or sets a template that is applied to all pages in the document. + + The specifying the default template for the document. + + + + Gets the pages. + + + + + Gets the table extractor of the document. + + + + + Gets the security parameters of the document. + + + + + Gets or sets document's information and properties. + + + + + Gets or sets a viewer preferences object controlling the way the document is to be + presented on the screen or in print. + + + + + Gets or sets the desired level of stream compression. + + All new objects should be compressed with this level of the compression. + + + + Gets or sets the internal structure of the PDF file. + + + + + Get the PDF file structure. + + + + + Gets the additional document's actions. + + The specifying the document action. + + + + Gets the bookmarks. + + + + + Gets the Private Font Collection + + + + + Optional content properties + + + + + The pdf collections + + + + + Splits a PDF file to many PDF files, each of them consists of one page from the source file. + + Template for destination file names. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Splits a PDF file to many PDF files, each of them consists of + one page from the source file. + + Template for destination file + names. + The number that is use as a start + point for the page numbering. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Merges the specified source documents and return destination document. + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merges the PDF documents specified by the paths. + + The array of string paths. + A new PDF document containing all merged documents. + + + + Adds an object to a collection of the objects that will be disposed during document closing. + + The object that will be disposed during document closing. + + + + Convert the document to an stream with the file format. + + + The stream with the file format. + + + The file format. + FileFormat.SVG is not supported, because SVG file has no paging,so can't be saved to an stream. + + + + + Convert the document to streams with the file format. + + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to streams with the file format. + + The start index. + The end index. + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + + Returns page as Image + + + + Saves PDF document page as image,set Dpi + + Page with page index to save as image + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image,set Dpi + + Page with page index to save as image + + X resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + + Y resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + Returns page as Image + + + + Saves PDF document page as image + + Page index + PdfImageType type + Returns page as Image + + + + Saves PDF document page as image,Set PdfImageType and image Dpi + + Page index + PdfImageType type + + X resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + + Y resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + Returns page as Image + + + + Save a range page of the document to the specified stream. + + The stream. + The start index. + The end index. + + + A relative or absolute path for the file + The start page index. + The end page index. + + + + Saves the document to the specified filename. + + The filename. + + + + Save a range page of the document to xps as stream. + + The strart index. + The end index. + The xps stream. + + + + Save the document to xps as stream. + + The xps stream. + + + A relative or absolute path for the file + The start page index. + The end page index. + + + + Save a range page of the document to svg as stream[]. + + The start index. + The end index. + Stream collection. + + + + Save the document to svg as stream[]. + + Stream collection + + + + Save a range page of the document to html stream. + + The start index. + The end index. + The html stream. + + + + Save the document to html stream. + + The html stream. + + + + Convert pdf document to pcl. + + The start index. + The end index. + The out stream. + + + + Convert pdf document to pcl. + + The start index. + The end index. + The out stream. + + + + Save a range page of the document to doc as stream[]. + + The start index. + The end index. + The doc stream. + Is doc or docx. + + + + Save the document to doc as stream[]. + + The doc stream. + Is docs or doc. + + + + Convert pdf document to excel. + + The start index. + The end index. + The out stream. + + + + Save the document to excel as stream. + + The excel stream. + + + + Save the document to ofd as stream. + + The ofd stream. + + + + Save a range page of the document to ofd as stream. + + The strart index. + The end index. + The ofd stream. + + + + Closes the document. Releases all common resources. + + + + + Closes the document. + + if set to true the document should close its stream as well. + + + + Saves the document to the specified stream. + + The stream object where PDF document will be saved. + + + + Imports a page. + + The loaded document. + The page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page index in the result document. + The page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The last created page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The page index in the result document when startIndex == endIndex. + The last created page in the result document. + + + + Handle action annotation. + + The page corresponsedance + The page + + + + Free version Imports 10 pages range from a loaded document. + + + + + Merge same font when merge document. Bug_4941 + + The resource dictionary. + The document font map. + + + + Compare bytes. + + + + + + + + + + + + + + Appends the specified loaded document to this one. + + The loaded document. + + + + Import Original Document Destinations to new Document Catalog->Names -> Dests. + Quote page to this document Catalog->Names -> Dests -> Names + + Original Document + + + + Merge OCProperties + + + + + + + + + + + + + Merge D Item + + + + + + + + Whether the page exist the field + + The page + The field + If exist return true or false + + + + This class represents a set of the properties that define the internal structure of PDF file. + + + + + PDF Document object + + + + + read pdf file + + + + + Initializes a new instance of the class. + + + + + PDF Document object + + + + + read pdf file + + + + + Gets or sets the version of the PDF document. + + The document version. + + + + Gets or sets a value indicating whether [incremental update]. + + true if [incremental update]; otherwise, false. + + + + Gets or sets the type of PDF cross-reference. + + Please see the description of for more details. + + + + Gets the value indicating whether the PDF document is tagged one or not. + + If true PDF document is tagged, otherwise false. + + + + + + + + + + Tagged PDF's standard structure types + + + + + A generic block-level element or group of elements + + + + + A generic inline portion of text having no particular inherent characteristics + + + + + An item of graphical content + + + + + Represents the document's structure tree root dictionary + + + + + Build struct tree root before saved. + + + + + Represents the structure element + + + + + The parent struct element + + + + + The parent tree root + + + + + Build struct element before saved. + + + + + Delegate for handling event when drawing page in a booklet. + + The sender of the event. + The arguments of the event. + This event is raised when starting/finished drawing a page of the source file in a booklet. + + + + Represents DrawPageInBooklet Event arguments. + + + + + Gets the page of the source file. + + + + + Gets the index of the source page, basing on 0. + + + + + Gets the page of the booklet. + + + + + Gets the index of the booklet page, basing on 0. + + + + + Specifies the type of file format. + + + + + Specifies plain PDF file format. + + + + + Specifies Linearized PDF file format. + + + + + Specifies the different way of presenting the document at the client browser. + + + + + Send the generated document to the client browser and will open document inside browser or using application associated with .pdf extension externally. + + + + + Send the generated document to the client browser and presents an option to save the document to disk or open inside the browser. + + + + + Specifies the available PDF versions to save a PDF document. + + + + + PDF version 1.0. + + + + + PDF version 1.1. + + + + + PDF version 1.2. + + + + + PDF version 1.3. Adobe Acrobat 4. + + + + + PDF version 1.4. Adobe Acrobat 5. + + + + + PDF version 1.5. Adobe Acrobat 6. + + + + + PDF version 1.6. Adobe Acrobat 7. + + + + + PDF version 1.7. Adobe Acrobat 8. + + + + + Specifies the type of the PDF cross-reference. + + Default value is CrossReferenceStream + + + + The cross-reference table contains information that permits random access to indirect objects within the file so that the entire file need not be read to locate any particular object. The structure is useful for incremental updates, since it allows a new cross-reference section to be added to the PDF file, containing entries only for objects that have been added or deleted. Cross-reference is represented by cross-reference table. The cross-reference table is the traditional way of representing reference type. + + + + + Cross-reference is represented by cross-reference stream. Cross-reference streams are stream objects, and contain a dictionary and a data stream. + This leads to more compact representation of the file data especially along with the compression enabled. + This format is supported by PDF 1.5 version and higher only. + + + + + Specifies the Pdf document's Conformance-level. + + + + + Specifies Default / No Conformance. + + + + + This PDF/A ISO standard [ISO 19005-1:2005] is based on Adobe PDF version 1.4 + and This Level B conformance indicates minimal compliance to ensure that the + rendered visual appearance of a conforming file is preservable over the long term. + + + + + This PDF/X-1a:2001 ISO standard [ISO 15930-1] is based on Adobe PDF version 1.3 + which uses only CMYK + Spot Color and this compliance to ensure that the + contents will be reliably reproduced in the repress environment. + + + + + PDF/A-1a ensures the preservation of a document's logical structure and con-tent text stream in natural reading order. + + + + + PDF/A-2a standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check. + + + + + PDF/A-2b standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check. + + + + + PDF/A-3a standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check + + + + + PDF/A-3b standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check + + + + + Specifies the different page scaling option that shall be selected when a print dialog is displayed for this document. + + Default value is AppDefault. + + + + Indicates the conforming readers default print scaling. + + + + + Indicates no page scaling. + + + + + Defines data compression level. + + + + + Pack without compression. + + + + + Use high speed compression, reduce of data size is low. + + + + + Something middle between normal and BestSpeed compressions. + + + + + Use normal compression, middle between speed and size. + + + + + Pack better but require a little more time. + + + + + Use best compression, slow enough. + + + + + Gets or sets a value indicating whether this is editable. + + true if editable; otherwise, false. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value. + + + + Gets the first selected item in the list. + + The selected item. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the text alignment. + + The text alignment. + This property is meaningful for fields containing variable text only. + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Gets the name. + + The name. + + + + Gets the form. + + The form. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + The mapping name. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + if the field is read only, set to true. + + + + Gets or sets a value indicating whether this is required. + + true if required; otherwise, false. + + + + Gets or sets the tool tip. + + The tool tip. + + + + Gets the page. + + The page. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Represents form's field with style parameters. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Draws a button. + + The g. + The paint params. + The image. + The format. + + + + Calculate the text position + + the rectangle + the pdfStringFormat + the PdfFontBase + + + + Represents form field with appearance custom support. + + + + + Gets the appearance. + + The appearance. + + + + Represents button field in the PDF form. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the button. + + + + Gets or sets the caption text. + + The caption text. + + + + Gets or sets the button layout mode. + + + + + Gets or sets the text displayed when the mouse button is pressed within the annotation's active area, only available in Push mode. + + + + + Gets or sets the text displayed when the user rolls the cursor into the annotation's active area without pressing the mouse button, only available in Push mode. + + + + + Defining the icon layout. + + + + + Gets or sets the widget annotation's normal icon displayed when it is not interacting with the user. + + + + + Gets or sets the widget annotation's alternate icon displayed when the mouse button is pressed within its active area, only available in Push mode. + + + + + Gets or sets the widget annotation's rollover icon displayed when the user rolls the cursor into its active area without pressing the mouse button, only available in Push mode. + + + + + Adds Print action to current button field. + Clicking on the specified button will trigger the Print Dialog Box. + + + + + Represents the button icon layout options. + + + + + Gets or sets the circumstances under which the icon shall be scaled inside the annotation rectangle. + + + + + Gets or sets an array of two numbers between 0.0 and 1.0 indicating the fraction of leftover space to allocate at the left and bottom of the icon. + + + + + If true, indicates that the button appearance should be scaled to fit fully within the bounds of the annotation without taking into consideration the line width of the border. + + + + + Gets or sets the type of scaling to use. + + + + + Represents the type of scaling to use. + + + + + Scale the icon to fill the annotation rectangle exactly, without regard to its original aspect ratio. + + + + + Scale the icon to fit the width or height of the annotation rectangle while maintaining the icon's original aspect ratio. + + + + + Represents the button layout mode. + + + + + No icon; caption only. + + + + + No caption; icon only. + + + + + Caption below the icon. + + + + + Caption above the icon. + + + + + Caption to the right of the icon. + + + + + Caption to the left of the icon, + + + + + Caption overlaid directly on the icon. + + + + + Represtents the circumstances under which the icon shall be scaled inside the annotation rectangle. + + + + + Always scale. + + + + + Scale only when the icon is bigger than the annotation rectangele. + + + + + Scale only when the icon is smaller than the annotation rectangle. + + + + + Never scale. + + + + + Represents check box field in the PDF form. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the check box field. + + + + Gets or sets a value indicating whether this is checked. + + true if checked; otherwise, false. + + + + Represents base class for field which can be in checked and unchecked states. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the check box field. + + + + Gets or sets the style. + + The object specifies the style of the check box field. + + + + Represents combo box field in the PDF Form. + + + + + Initializes a new instance of the class. + + Page the field to be placed on. + The name of the field. + + + + Gets or sets a value indicating whether this is editable. + + true if editable; otherwise, false. + + + + Represents field of the Pdf document's interactive form. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Initializes a new instance of the class. + + Field Dictionary + + + + Gets the name. + + The name. + + + + Gets the form. + + The form. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + The mapping name. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + if the field is read only, set to true. + + + + Gets or sets a value indicating whether this is required. + + true if required; otherwise, false. + + + + Gets or sets the tool tip. + + The tool tip. + + + + Gets the page. + + The page. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Save the field apprearance + + The text + + + + Gets the element. + + + + + + Represents collection of the Pdf fields. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + + + Gets the with thier field name. + + + + + Adds the specified field. + + The field item which is added in the PDF form. + The field to be added on the page. + + + + Inserts the the field at the specified index. + + The index of the field. + The field which should be inserted at the specified index. + + + + Determines whether field is contained within the collection. + + Check whether object is present in the field collection or not. + + true if field is present in the collection, otherwise, false. + + + + + Gets the index of the field. + + The object whose index is requested. + Index of the field in collection. + + + + Removes the specified field in the collection. + + The object to be removed from collection. + + + + Removes field at the specified position. + + The index where to remove the item. + + + + Clears the form field collection. + + + + + Gets the element. + + + + + + Represents interactive form of the Pdf document. + + + + + Set a value to enabled form field highLight + + + + + pdfviewer fill,a form field needs to override ap + + + + + Merge the fields with the same name into one field or not + + + + + Initializes a new instance of the class. + + + + + Gets the fields. + + The Form fields. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Gets or sets a value indicating whether the form is read only. + + true if the form is read only; otherwise, false. + + + + Gets or sets a value indicating whether [field auto naming]. + + + + + Gets or sets a value indicating whether the viewer must generate appearances for fields. + + true if viewer must generate appearance; otherwise, false. + + + + Gets the element. + + + + + + Represents a collection of form fields. + + + + + Initializes a new instance of the class. + + + + + Represents list box field of the PDF form. + + + + + Initializes a new instance of the class. + + Page the field to be placed on. + The name of the field. + + + + Gets or sets a value indicating whether the field is multiselectable. + + true if multiselectable; otherwise, false. + + + + Represents base class form's list fields. + + + + + Internal variable to store CommitOnSelChange flag. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + + + + Gets the items. + + The items. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value. + + + + Gets the first selected item in the list. + + The selected item. + + + + Gets or sets the flag indicating if a new value selected is committed immediately without waiting to leave the field. + + + + + Represents an item of the list fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The item text, it is displayed in the list. + The item value, it is exported when form content is exported. + + + + Gets or sets the text. + + The text of the list item field. + + + + Gets or sets the value. + + The value of the list item field. + + + + Gets the element. + + The primitive. + + + + Represents list field item collection. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + The object. + + + + Adds the specified item in the collection. + + The object which to be added in the collection. + item + + + + Inserts the list item field at the specified index. + + The index where to insert the new item. + The object to be added to collection. + + + + Removes the specified item. + + The object which to be removed in the collection. + + + + Removes the item at the specified position. + + The index where to remove the item. + + + + Determines whether the item is contained by the collection. + + Check whether object is exists in the collection or not. + + true if the item is contained within the collection; otherwise, false. + + + + + Gets the index of the specified item. + + A object whose index is requested. + The index of the given item, -1 if the item does not exist. + + + + Clears the collection. + + + + + Gets the element. + + + + + + Represents radio button field in the PDF form. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value of the list field. + + + + Gets the first selected item in the list. + + The selected item of the field. + + + + Gets the items of the radio button field. + + The radio button field item collection. + + + + Represents an item of a radio button list. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the form of the field. + + The object of the field. + + + + Gets or sets the bounds. + + + + + Gets or sets the value. + + The value. + + + + Gets the element. + + + + + + Represents collection of radio buttons items. + + + + + Initializes a new instance of the class. + + The field. + + + + Adds the specified item. + + The object to be added to collection. + The index of the added field. + + + + Inserts an item at the specified index. + + The index where to insert the new item.. + A object to be added to collection. + + + + Removes the specified item from the collection. + + The object which is to be removed from the collection. + + + + Removes the item at the specified position. + + The index where to remove the item. + + + + Gets the index of the item within the collection. + + A object whose index is requested. + Index of the item with the collection. + + + + Determines whether the collection contains the specified item. + + Check whether object is exists in the collection or not. + + true if collection contains specified item; otherwise, false. + + + + + Clears the item collection. + + + + + Gets the at the specified index. + + Returns item at the specified position. + + + + Gets the element. + + + + + + Represents form field with appearance custom support. + + + + + Gets the appearance. + + The appearance. + + + + Represents signature field in the PDF Form. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + a PdfSignature obj + + + + Draws an image. + + The image. + The x. + The y. + + + + Draws an image. + + The image. + The rectangle. + + + + Draws an image. + + The image. + The point. + The size. + + + + Represents form's field with style parameters. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the text alignment. + + The text alignment. + This property is meaningful for fields containing variable text only. + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Represents text box field in the PDF form. + + + + + The password chrackter. + + + + + Gets or sets the text. + + The text of the text box field. + + + + Gets or sets the default value. + + The default value of the text box field. + + + + Gets or sets a value indicating whether to check spelling. + + true if check spelling; otherwise, false. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + true if need to insert spaces; otherwise, false. + + + + Gets or sets a value indicating whether this is multiline. + + true if multiline; otherwise, false. + + + + Gets or sets a value indicating whether this is password field. + + true if password field; otherwise, false. + + + + Gets or sets a value indicating whether this is scrollable. + + true if scrollable; otherwise, false. + + + + Gets or sets the maximum number of characters that can be entered in the text box. + + An integer value specifying the maximum number of characters that can be entered in the text box. + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the text box field. + + + + Represents fields flags enum. + + + + + Default field flag. + + + + + If set, the user may not change the value of the field. Any associated widget annotations + will not interact with the user; that is, they will not respond to mouse clicks or + change their appearance in response to mouse motions. This flag is useful + for fields whose values are computed or imported from a database. + + + + + If set, the field must have a value at the time it is exported by a submit-form action. + + + + + If set, the field must not be exported by a submit-form action + + + + + If set, the field can contain multiple lines of text; + if clear, the fields text is restricted to a single line. + + + + + If set, the field is intended for entering a secure password that should not be + echoed visibly to the screen. Characters typed from the keyboard should instead + be echoed in some unreadable form, such as asterisks or bullet characters. + + + + + If set, the text entered in the field represents the pathname of a file whose + contents are to be submitted as the value of the field. + + + + + If set, text entered in the field is not spell-checked. + + + + + If set, the field does not scroll (horizontally for single-line fields, vertically + for multiple-line fields) to accommodate more text than fits within its annotation + rectangle. Once the field is full, no further text is accepted. + + + + + Meaningful only if the MaxLen entry is present in the text field dictionary and if + the Multiline, Password, and FileSelect flags are clear. If set, the field is + automatically divided into as many equally spaced positions, or combs, as the + value of MaxLen, and the text is laid out into those combs. + + + + + If set, the value of this field should be represented as a rich text string. + If the field has a value, the RVentry of the field dictionary specifies + the rich text string. + + + + + If set, exactly one radio button must be selected at all times; clicking + the currently selected button has no effect. If clear, clicking the selected + button reselects it, leaving no button selected. + + + + + If set, the field is a set of radio buttons; if clear, the field is a check box. + This flag is meaningful only if the Pushbutton flag is clear. + + + + + If set, the field is a pushbutton that does not retain a permanent value. + + + + + If set, a group of radio buttons within a radio button field that use the same value + for the on state will turn on and off in unison; that is if one is checked, they + are all checked. If clear, the buttons are mutually exclusive. + + + + + If set, the field is a combo box; if clear, the field is a list box. + + + + + If set, the combo box includes an editable text box as well as a drop-down + list; if clear, it includes only a drop-down list. This flag is meaningful only + if the Combo flag is set. + + + + + If set, the fields option items should be sorted alphabetically. This flag + is intended for use by form authoring tools, not by PDF viewer applications. + + + + + If set, more than one of the fields option items may be selected simultaneously; + if clear, no more than one item at a time may be selected. + + + + + If set, the new value is committed as soon as a selection is made with the pointing + device. This option enables applications to perform an action once a selection is + made, without requiring the user to exit the field. If clear, the new value is not + committed until the user exits the field. + + + + + Specifies the available styles for a field border. + + Defaule value is Solid. + + + + A solid rectangle surrounding the annotation. + + + + + A dashed rectangle surrounding the annotation. + + + + + A simulated embossed rectangle that appears to be raised above the surface + of the page. + + + + + A simulated engraved rectangle that appears to be recessed below the surface + of the page. + + + + + A single line along the bottom of the annotation rectangle. + + + + + Specifies the highlight mode for a field. + + Defaule value is Invert. + + + + No highlighting. + + + + + Invert the contents of the field rectangle. + + + + + Invert the field's border. + + + + + Pushed highlighting. + + + + + Specifies the style for a check box field. + + The default value is Check. + + + + A check mark is used for the checked state. + + + + + A circle is used for the checked state. + + + + + A cross is used for the checked state. + + + + + A diamond symbol is used for the checked state. + + + + + A square is used for the checked state. + + + + + A star is used for the checked state. + + + + + Specifies Http request method. + + + + + Data submitted using Http Get method. + + + + + Data submitted using Http Post method. + + + + + Specifies the enumeration of submit data formats. + + + + + Data should be transmitted as Html. + + + + + Data should be transmitted as Pdf. + + + + + Data should be transmitted as Forms Data Format. + + + + + Data should be transmitted as XML Forms Data Format . + + + + + Represents states of the check field. + + + + + Indicated unchecked/unpressed state. + + + + + Indicated checked unpressed state. + + + + + Indicated pressed unchecked state. + + + + + Indicated pressed checked state. + + + + + Represents XML Forms Architecture (XFA). + + + + + XFA Template. + + + + + XFA Datasets. + + + + + XFA Config. + + + + + XML Data Package + + + + + Gets of sets data node value.deprecated to use,instead use xfaField to set field value. + + + + + Returns XML node of field tempalte. + + + + + Added by Henry Zhou. + To get the xfaField through its name. Notes: the param 'name' is the name have been midified by codes instead of originals. + + + + + + + FindSelectItemsByValueOrDataSets + + item text + + + + + + + Implements routines for manipulation with loaded pages. + + + + + Free users can only add up to 10 pages + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + + + + Get the Section Count. + + + + + Gets the at the specified index. + + + + + Gets the count. + + + + + Creates a new page and adds it to the collection. + + The created page. + + + + Creates a new page of the specified size and adds it to the collection. + + The size of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the new page. + The margins of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the new page. + The margins of the new page. + The rotation of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the page. + The margins of the page. + The rotation of the new page. + The orientation of the new page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The rotation of the new page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The origin of the page. + The size of the page. + The margins of the page. + The rotation of the new page. + The created page. + + + + Removes the page at the given specified index. + + Index of the page. + + + + Removes the specified page. + + The page to be remove. + + + + Removes the specified page. + + The page to be remove. + + + + ReArrange the Pages in the Loaded Document. + + The page sequence to arrange the pages. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The rotation of the new page. + The orientation of the new page. + The created page. + + + + Get the Section + + The index + The section + + + + Caculate the index of the page in the document. + + The pages + The page + The page number + whether the page is find in pages + + + + Whether the current object is page object + + The dic + if the dic is a page obejct ,return true ,or false + + + + FreeVersion,Allow Create 10 Pdf page + + PdfSection sec + PdfNewPage page + + + + + Gets the index of the page in the document. + + The current page. + Index of the page in the document if exists, -1 otherwise. + + + + foreach Nodes,find page + + + + + + + + + + + Implements enumerator to the loaded page collection. + + + + + Initializes a new instance of the class. + + The collection. + + + + Gets the current element in the collection. + + + The current element in the collection. + + The enumerator is positioned before the first element of the collection + or after the last element. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, + which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + Represents the loaded annotation colllection. + + + + + Gets the at the specified index. + + + + + Represents the annotation with specified name. + + The specified annotation name. + + + + Gets or sets the page. + + + + + Adds annotation to collection. + + Annotation to be added to collection. + Position of the annotation in collection. + + + + Creates the polygon annotation + + The dictionary + The cross table + + + + + Creates the polyLine annotation + + The dictionary + The cross table + + + + + Creates the square annotation + + The dictionary + The cross table + + + + + Creates the ink annotation + + The dictionary + The cross table + + + + + Creates the Circle annotation + + The dictionary + The cross table + + + + + Get or Set the background color of the field + + A object specifying the background color of field. + + + + Gets or Set the fore color of the field. + + A object specifying the background color of field. + + + + Get or Set the text alignment in a text box. + + A enumeration member specifying the text alignment in a text box. + + + + Get or Set the HighLightMode of the Field. + + A enumeration member specifying the highlight mode in a text box. + + + + Gets or Set value of the text box field. + + A string value representing the value of the item. + + + + Gets or set the default value of the field. + + A string value representing the default value of the item. + + + + Gets or sets a value indicating whether to check spelling. + + True if the field content should be checked for spelling erorrs, false otherwise. Default is true. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + + + + Gets or sets a value indicating whether this is multiline. + + True if the field is multiline, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is password field. + + True if the field is a password field, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is scrollable. + + True if the field content can be scrolled, false otherwise. Default is true. + + + + Gets or sets the maximum length of the field, in characters. + + A positive integer value specifying the maximum number of characters that can be entered in the text edit field. + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or Sets the width of the border. + + The width of the border. + + + + Gets the font. + + The font. + + + + Gets a value indicating the visibility of the field. + + + + + Gets the name of the field. + + A string value specifying the name of the field. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + A string value specifying the mapping name of the field. + + + + Gets or sets the tool tip. + + + + + Gets the page. + + + + + Gets or sets a value indicating whether [read only]. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is required. + + True if the field is required, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Represents a button field of an existing PDF document`s form. + + + + + Button background picture + + + + + Gets or sets Button background picture. + + + + + Gets or sets the caption text. + + A string value specifying the caption of the button. + + + + Gets the collection of button items. + + + + + Defining the icon layout. + + + + + need replace image + + + + + + Adds Print action to current button field. + Clicking on the specified button will trigger the Print Dialog Box. + + + + Represents button group item of an existing PDF document`s form. + + + + + Represents the base class for loaded state field. + + + + + Gets the items collection. + + + + + Represents the loaded state item. + + + + + Gets or sets a value indicating whether this is checked. + + + + + Represents collection of button item. + + + + + Gets the at the specified index. + + + + + Represents check box of an existing PDF document`s form. + + + + + Gets or sets a value indicating whether this is checked. + + True if the check box is checked, false otherwise. + + + + Gets the collection check box items. + + + + + Set the export value. + + The export value + + + + Represents collection of text box group items. + + + + + Gets the at the specified index. + + + + + Represents loaded check box item. + + + + + Represents a choice field of an existing PDF document`s form. + + + + + Gets the collection of choice items. + + + + + Gets or sets the first selected item in the list. + + + + + Gets or sets the value of the first selected item in the list. + + + + + Gets the first selected item in the list. + + + + + Gets the first selected item in the list. + + + + + Gets or sets the flag indicating if a new value selected is committed immediately without waiting to leave the field. + + + + + Represents the combo box field of an existing item. + + + + + Gets or sets a value indicating whether this is editable. + + True if the drop down list is editable, false otherwise. Default is false. + + + + Gets the collection of combo box items. + + + + + Represents group for combo box field. + + + + + Represents collection of Combo box items. + + + + + Gets the at the specified index. + + + + + Represents state item collection. + + + + + Gets the at the specified index. + + The index of specified item. + + + + Represents base class for loaded fields. + + + + + Form field identifier + + + + + Gets the name of the field. + + A string value specifying the name of the field. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + A string value specifying the mapping name of the field. + + + + Gets or sets the tool tip. + + + + + Gets the page. + + + + + Gets or sets a value indicating whether [read only]. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is required. + + True if the field is required, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets the form. + + The form. + + + + Re set the page. + + The page + + + + Sets the name of the field. + + New name of the field. + + + + Represents base class for field's group items. + + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets the page. + + + + + Represents Loaded form. + + + + + Gets the field collection. + + + + + Gets or sets a value indicating whether the form is read only. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets XFA data of the form. + + + + + + Gets or sets a value indicating whether need appearances. + + + + + Export the form data to a file. + + Name of the document which is need to export. + The format of exported data. + The name of the PDF file the data is exported from. + + + + Export the form data to a file. + + The stream where form data will be exported. + The format of exported data + The name of the PDF file the data is exported from + + + + Reset the signature flags. + + + + + Imports the data. + + Name of the file. + The data format. + + + + Import form data from XFDF file. + + + + + + Imports the data. + + Name of the file. + The data format. + if it is error flag, set to true. + + + + + Import form data from FDF file. + + The FDF file stream + False if the import should stop on the first field that generates an error, or true if the import should ignore the error and continue with the next field. + Document form fields filled with data which are imported from FDF. + + + + Sets/Resets the form field highlight option. + + + + + Called when [hex in string]. + + The test. + + + + + Extract Images from Signature + + + + + + + + + + + + + Represents field collection of loaded form. + + + + + Gets the at the specified index. + + + + + Returns field with specified name. + + The specified field name. + + + + Gets or sets the form. + + + + + Field Signature Names + + + + + Add field + + + + + + Gets the field. + + int index + The created field. + + + + Update field name. + + The field + + + + Get FieldName from FormWidget by exportValue + + + + + + + Get filedName from FiledWeiget + + + + + + + + find exportValue from AP By exportValue + + + + + + + + Get Fields from FormWidget by exportValue + + + + + + + Represents loaded list box field. + + + + + Gets or sets a value indicating whether the field is multiselectable.. + + + + + For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list) + Default value: 0. + + + + + Gets the items. + + The collection of list box items. + + + + 获取选中项中最大的一个索引 + + + + + + + 获取listbox可显示区域最大能显示多少个项 + + + + + + + + Represents group item for list field. + + + + + Represents loaded item collection. + + + + + Gets the at the specified index. + + + + + Represents loaded list item. + + + + + Gets or sets the text. + + A string value representing the display text of the item. + + + + Gets or sets the value. + + A string value representing the value of the item. + + + + Initializes a new instance of the class. + + The text. + The value. + + + + Represents a collection of list box field items. + + + + + Gets the at the specified index. + + + + + Inserts an item at the end of the collection. + + a object to be added to collection. + The index of item. + + + + Inserts the list item at the specified index. + + The index. + The item. + + + + Removes the element at the specified index. + + The index. + Throws IndexOutOfRange exception if the index is out of bounds. + + + + Clears the item collection. + + + + + Represents collection of radio box group items. + + + + + Gets the at the specified index. + + Returns object at the specified index. + + + + Represents radio button field of an existing PDF document`s form. + + + + + Gets or sets the value. + + The value of the radio button item. + + + + Gets or sets a value indicating whether this is selected. + + + + + Represents radio button field of an existing PDF document`s form. + + + + + Gets the collection of radio button items. + + A that represents the items within the list. + + + + Gets or sets the index of the selected item in the list. + + The lowest ordinal index of the selected items in the list. The default is -1, which indicates that nothing is selected. + + + + Gets or sets the value of the first selected item in the list. + + A string value specifying the value of the first selected item, null (Nothing in VB.NET) if there is no selected item. + + + + Gets the selected item. + + Return the item as PdfLoadedRadioButtonItem class + + + + Gets the button style. + + + + + Gets or sets the value of specified item. + + A string value representing the value of the item. + + + + Represents the signature field of an existing PDF document`s form. + + + + + draw signature + + + + + Need to convert a date + + convert a date + DateTime + + + + Represents the collection of loaded state item. + + + + + Gets the at the specified index. + + + + + Represents loaded styled field. + + + + + Get DA for from annot + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the action to be performed when the mouse button is released + inside the annotations active area.. + + The mouse up action. + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + annotations active area. + + The mouse down action. + + + + Gets or sets the action to be performed when the annotation receives the + input focus. + + The got focus action. + + + + Get or Set the background color of the field + + A object specifying the background color of field. + + + + Gets or sets the action to be performed when the annotation loses the + input focus. + + The lost focus action. + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or Sets the width of the border. + + The width of the border. + + + + Gets the font. + + The font. + + + + Get font size from DA + + The font parameters + The font size + + + + Gets the default index. + + + + + Gets a value indicating the visibility of the field. + + + + + Whether they are all ascii characters. + + if all characters are ascii characters,return true ,or false + + + + Get the xfa field from template + + A xmlnode + + + + Get the value of the specified attribute + + The value + + + + Initializes a new instance of the struct. + + The field. + + + + Initializes a new instance of the struct. + + The item. + + + + Represents an item in a text box field collection. + + + + + Represents the text box field of an existing PDF document`s form. + + + + + The password chrackter. + + + + + Gets or Set the fore color of the field. + + A object specifying the background color of field. + + + + Get or Set the text alignment in a text box. + + A enumeration member specifying the text alignment in a text box. + + + + Get or Set the HighLightMode of the Field. + + A enumeration member specifying the highlight mode in a text box. + + + + Gets or Set value of the text box field. + + A string value representing the value of the item. + + + + append ap content + + + + + + Set the boder style + + The writer + The bounds + + + + Get the transform matrix from the MK entry in dictionary. + + The annotation + The annotation's bound + The matrix + + + + Gets or set the default value of the field. + + A string value representing the default value of the item. + + + + Gets or sets a value indicating whether to check spelling. + + True if the field content should be checked for spelling erorrs, false otherwise. Default is true. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + + + + Gets or sets a value indicating whether this is multiline. + + True if the field is multiline, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is password field. + + True if the field is a password field, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is scrollable. + + True if the field content can be scrolled, false otherwise. Default is true. + + + + Gets or sets the maximum length of the field, in characters. + + A positive integer value specifying the maximum number of characters that can be entered in the text edit field. + + + + Gets the collection of text box field items. + + + + + Calculate how many lines of text + + + + + + + + + Calculate font size + + + + + + + + + + Get font size from da string + + + + + + Save the text box field appearance + + the text value + + + + Represents collection of text box group items. + + + + + Gets the at the specified index. + + + + + Represents base class of XFDF. + + + + + Initializes a new instance of the class. + + The filename. + + + + Identify push button field. + + + + + Identify check box field. + + + + + Identify radio button field. + + + + + Identify text field. + + + + + Identify listbox field. + + + + + Identify combobox field. + + + + + Identify signature field. + + + + + Identify that field has no type. + + + + + Specifies the format of Export or Import data. + + + + + Specifies XML file format + + + + + Specifies Forms Data Format file format + + + + + Specifies XFDF file format. + + + + + Get cached item. + + + Cache group which all objects in group share the same data. + + Any cached object,because all objects in group share the same data. + + + + Represents the separable blend. + + + + + Represents the instance. + + The blend mode + The alpha factor + + + + Initialize object. + + The blend mode + + + + String to enum. + + The enum type + The enum type + The enum type + + + + Blend image. + + The page image + The source image + The matrix + The blend bitmap + + + + Blend path. + + The page graphics + The pen color + The path + The page image + The bitmap + + + + Blend image. + + The back bitmap + The source bitmap + The blend bitmap + + + + Blend bitmap. + + The back bitdata + The source bitdata + The out bitdata + The width + The height + + + + Multily blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Darken blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Lighten blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Screen blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Normal blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Create blend bitmap. + + The width + The height + The dpix + The dpiy + The bitmap + + + + Subtracted image. + + The source image + The rect + The bitmap + + + + Get the image actual size. + + The widhth + The height + The dpix + The dpiy + The image actual size + + + + Get back bitmap. + + The page image + The float array + The width + The height + The bitmap + + + + Get source bitmap. + + The source image + The width + The height + The dpix + The dpiy + The bitmap + + + + Get the path bound. + + The path + The matrix + The rectangle + + + + Implements blend brush setting and functions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The number of elements in the Factors and Positions arrays. + + + + Gets or sets the factors array. + + + + + Represents the base class for PdfBlend and PdfColorBlend classes. + Implements basic routines needed by both classes. + + + + + Gets or sets the positions array. + + + + + Represents the collection of immutable default brushes. + + + + + Gets the AliceBlue brush. + + + + + Gets the antique white brush. + + + + + Gets the Aqua default brush. + + + + + Gets the Aquamarine default brush. + + + + + Gets the Azure default brush. + + + + + Gets the Beige default brush. + + + + + Gets the Bisque default brush. + + + + + Gets the Black default brush. + + + + + Gets the BlanchedAlmond default brush. + + + + + Gets the Blue default brush. + + + + + Gets the BlueViolet default brush. + + + + + Gets the Brown default brush. + + + + + Gets the BurlyWood default brush. + + + + + Gets the CadetBlue default brush. + + + + + Gets the Chartreuse default brush. + + + + + Gets the Chocolate default brush. + + + + + Gets the Coral default brush. + + + + + Gets the CornflowerBlue default brush. + + + + + Gets the Corn silk default brush. + + + + + Gets the Crimson default brush. + + + + + Gets the Cyan default brush. + + + + + Gets the DarkBlue default brush. + + + + + Gets the DarkCyan default brush. + + + + + Gets the DarkGoldenrod default brush. + + + + + Gets the DarkGray default brush. + + + + + Gets the DarkGreen default brush. + + + + + Gets the DarkKhaki default brush. + + + + + Gets the DarkMagenta default brush. + + + + + Gets the DarkOliveGreen default brush. + + + + + Gets the DarkOrange default brush. + + + + + Gets the DarkOrchid default brush. + + + + + Gets the DarkRed default brush. + + + + + Gets the DarkSalmon default brush. + + + + + Gets the DarkSeaGreen default brush. + + + + + Gets the DarkSlateBlue default brush. + + + + + Gets the DarkSlateGray default brush. + + + + + Gets the DarkTurquoise default brush. + + + + + Gets the DarkViolet default brush. + + + + + Gets the DeepPink default brush. + + + + + Gets the DeepSkyBlue default brush. + + + + + Gets the DimGray default brush. + + + + + Gets the DodgerBlue default brush. + + + + + Gets the Firebrick default brush. + + + + + Gets the FloralWhite default brush. + + + + + Gets the ForestGreen default brush. + + + + + Gets the Fuchsia default brush. + + + + + Gets the Gainsborough default brush. + + + + + Gets the GhostWhite default brush. + + + + + Gets the Gold default brush. + + + + + Gets the Goldenrod default brush. + + + + + Gets the Gray default brush. + + + + + Gets the Green default brush. + + + + + Gets the GreenYellow default brush. + + + + + Gets the Honeydew default brush. + + + + + Gets the HotPink default brush. + + + + + Gets the IndianRed default brush. + + + + + Gets the Indigo default brush. + + + + + Gets the Ivory default brush. + + + + + Gets the Khaki default brush. + + + + + Gets the Lavender default brush. + + + + + Gets the LavenderBlush default brush. + + + + + Gets the LawnGreen default brush. + + + + + Gets the LemonChiffon default brush. + + + + + Gets the LightBlue default brush. + + + + + Gets the LightCoral default brush. + + + + + Gets the LightCyan default brush. + + + + + Gets the LightGoldenrodYellow default brush. + + + + + Gets the LightGray default brush. + + + + + Gets the LightGreen default brush. + + + + + Gets the LightPink default brush. + + + + + Gets the LightSalmon default brush. + + + + + Gets the LightSeaGreen default brush. + + + + + Gets the LightSkyBlue default brush. + + + + + Gets the LightSlateGray default brush. + + + + + Gets the LightSteelBlue default brush. + + + + + Gets the LightYellow default brush. + + + + + Gets the Lime default brush. + + + + + Gets the LimeGreen default brush. + + + + + Gets the Linen default brush. + + + + + Gets the Magenta default brush. + + + + + Gets the Maroon default brush. + + + + + Gets the MediumAquamarine default brush. + + + + + Gets the MediumBlue default brush. + + + + + Gets the MediumOrchid default brush. + + + + + Gets the MediumPurple default brush. + + + + + Gets the MediumSeaGreen default brush. + + + + + Gets the MediumSlateBlue default brush. + + + + + Gets the MediumSpringGreen default brush. + + + + + Gets the MediumTurquoise default brush. + + + + + Gets the MediumVioletRed default brush. + + + + + Gets the MidnightBlue default brush. + + + + + Gets the MintCream default brush. + + + + + Gets the MistyRose default brush. + + + + + Gets the Moccasin default brush. + + + + + Gets the NavajoWhite default brush. + + + + + Gets the Navy default brush. + + + + + Gets the OldLace default brush. + + + + + Gets the Olive default brush. + + + + + Gets the OliveDrab default brush. + + + + + Gets the Orange default brush. + + + + + Gets the OrangeRed default brush. + + + + + Gets the Orchid default brush. + + + + + Gets the PaleGoldenrod default brush. + + + + + Gets the PaleGreen default brush. + + + + + Gets the PaleTurquoise default brush. + + + + + Gets the PaleVioletRed default brush. + + + + + Gets the PapayaWhip default brush. + + + + + Gets the PeachPuff default brush. + + + + + Gets the Peru default brush. + + + + + Gets the Pink default brush. + + + + + Gets the Plum default brush. + + + + + Gets the PowderBlue default brush. + + + + + Gets the Purple default brush. + + + + + Gets the Red default brush. + + + + + Gets the RosyBrown default brush. + + + + + Gets the RoyalBlue default brush. + + + + + Gets the SaddleBrown default brush. + + + + + Gets the Salmon default brush. + + + + + Gets the SandyBrown default brush. + + + + + Gets the SeaGreen default brush. + + + + + Gets the SeaShell default brush. + + + + + Gets the Sienna default brush. + + + + + Gets the Silver default brush. + + + + + Gets the SkyBlue default brush. + + + + + Gets the SlateBlue default brush. + + + + + Gets the SlateGray default brush. + + + + + Gets the Snow default brush. + + + + + Gets the SpringGreen default brush. + + + + + Gets the SteelBlue default brush. + + + + + Gets the Tan default brush. + + + + + Gets the Teal default brush. + + + + + Gets the Thistle default brush. + + + + + Gets the Tomato default brush. + + + + + Gets the Transparent default brush. + + + + + Gets the Turquoise default brush. + + + + + Gets the Violet default brush. + + + + + Gets the Wheat default brush. + + + + + Gets the White default brush. + + + + + Gets the WhiteSmoke default brush. + + + + + Gets the Yellow default brush. + + + + + Gets the YellowGreen default brush. + + + + + Represents the arrays of colors and positions used for + interpolating color blending in a multicolor gradient. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The count. + + + + Gets or sets the colours array. + + + + + Specifies the gradient direction of the linear gradient brush. + + + + + Specifies a gradient from upper right to lower left. + + + + + Specifies a gradient from upper left to lower right. + + + + + Specifies a gradient from left to right. + + + + + Specifies a gradient from top to bottom. + + + + + Specifies the constant values specifying whether to extend the shading + beyond the starting and ending points of the axis. + + + + + Do not extend any point. + + + + + Extend start point. + + + + + Extend end point. + + + + + Extend both start and end points. + + + + + Function-based shading. + + + + + Axial shading. + + + + + Radial shading. + + + + + Free-form Gouraud-shaded triangle mesh + + + + + Lattice-form Gouraud-shaded triangle mesh. + + + + + Coons patch mesh. + + + + + Tensor-product patch mesh. + + + + + Describes a graphics element which can be drawn by a pen. + + + + + Gets or sets a pen that will be used to draw the element. + + + + + The actual bounds of the html view. It may larger than Bounds + + + + + Represents an element that could be drawn and/or filled. + + + + + Gets or sets the brush. + + + + + Represents a base class for all page graphics elements. + + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + Location of the element in the Graphics' co-ordinate system. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + Represents the base class for all elements that can be layout on the pages. + + [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust")] + + + + Event. Raises after the element was printed on the page. + + + + + Event. Raises before the element should be printed on the page. + + + + + Draws the element on the page. + + Current page where the element should be drawn. + Start location on the page. + Layouting result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + X co-ordinate of the element on the page. + Y co-ordinate of the element on the page. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + Start location on the page. + Lay outing format. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + X co-ordinate of the element on the page. + Y co-ordinate of the element on the page. + Layout format. + Layout result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Layout format. + Layout result. + + + + Gets or sets the path of the font. + + + + + Gets or set the font stream. + + + + + Gets or sets the private font collection. + + + + + Base class for the main shapes. + + + + + Gets the bounds. + + rect + + + + + Class that represent HTML text area with the ability to span several pages. + + + + + Specifies how text in a is + horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + internal variable to store Size. + + + + + internal variable to store Mask. + + + + + internal variable to store Numbering. + + + + + internal variable to store Reserved. + + + + + internal variable to store Start Indent. + + + + + internal variable to store Right Indent. + + + + + internal variable to store Offset. + + + + + internal variable to store Alignment. + + + + + internal variable to store Tab Count. + + + + + internal variable to store rgxTabs. + + + + + internal variable to store Space Before. + + + + + internal variable to store Space After. + + + + + internal variable to store Line Spacing. + + + + + internal variable to store Style. + + + + + internal variable to store Line Spacing Rule. + + + + + internal variable to store Out line Level. + + + + + internal variable to store Shading Weight. + + + + + internal variable to store Shading Style. + + + + + internal variable to store Numbering Start. + + + + + internal variable to store Numbering Style. + + + + + internal variable to store Numbering Tab. + + + + + internal variable to store Border Space. + + + + + internal variable to store Border Width. + + + + + internal variable to store Borders. + + + + + internal variable to store size. + + + + + internal variable to store Mask. + + + + + internal variable to store Effects. + + + + + internal variable to store Height. + + + + + internal variable to store Offset. + + + + + internal variable to store Text Color. + + + + + internal variable to store CharSet. + + + + + internal variable to store Pitch And Family. + + + + + internal variable to store Weight. + + + + + internal variable to store Spacing. + + + + + internal variable to store BackColor. + + + + + internal variable to store lcid. + + + + + internal variable to store Reserved. + + + + + internal variable to store Style. + + + + + internal variable to store Kerning. + + + + + internal variable to store Under line Type. + + + + + internal variable to store Animation. + + + + + internal variable to store RevAuthor. + + + + + internal variable to store Reserved. + + + + + Represents the text area with the ability to span several pages. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Initializes a new instance of the class. + + The text. + The font. + + + + Initializes a new instance of the class. + + The text. + The font. + The pen. + + + + Initializes a new instance of the class. + + The text. + The font. + The brush. + + + + Initializes a new instance of the class. + + The text. + The font. + The pen. + The brush. + The format. + + + + Gets or sets a value indicating the text that should be printed. + + + + + Gets or sets a pen that will be used to draw the text. + + + + + Gets or sets the brush that will be used to draw the text. + + + + + Gets or sets a font that will be used to draw the text. + + + + + Gets or sets text settings that will be used to draw the text. + + + + + Draws the text on the page. + + Current page where the text should be drawn. + Start location on the page. + Lay outing format. + Lay outing result. + + + + Draws the text on the page. + + Current page where the text should be drawn. + Start location on the page. + Width of the text bounds. + Lay outing format. + Lay outing result. + + + + Draws the text on the page. + + Current page where the text should be drawn. + RectangleF structure that specifies the bounds of the text. + Lay outing format. + Lay outing result. + + + + Represents the data for a cancelable event. + + + + + Gets or sets a value indicating whether this is cancel. + + true if cancel; otherwise, false. + + + + Data for event before lay outing of the page. + + + + + Gets or sets value that indicates the lay outing bounds on the page. + + + + + Gets the page where the lay outing should start. + + + + + Initializes a new instance of the class. + + The bounds. + The page. + + + + Contains information about layout`s element . + + + + + Gets a result of the lay outing on the page. + + + + + Gets or sets a value indicating the next page where the element should be layout if the process is not finished or stopped. + + The default value is null. In this case the element will be layout on the next page. + + + + Initializes a new instance of the class. + + The result. + + + + Contains information about layout`s element . + + + + + Initializes a new instance of the class. + + The result. + + + + Gets a result of the lay outing on the page. + + + + + Delegate. Defines a type of the event before lay outing on the page. + + + + + Delegate. Defines a type of the event after lay outing on the page. + + + + + Delegate. Defines a type of the event after the text lay outing on the page. + + + + + Specifies type of paginating. + + + + + If the element exceeds the page, proceed it on the next page. + + + + + Draw the element on the one page only. + + + + + Specifies how the element should be contained on the page. + + + + + Fit the element according to the bounds specified or the page bounds. + + + + + If the element doesn't fit at the first page, don't draw it on this page. + + + + + Represents the used fonts in a PDF document. + + + + + Gets the name. + + The name. + + + + Gets the size. + + The size. + + + + Gets the style. + + The style. + + + + Gets the type. + + The type. + + + + Initializes a new instance of the class. + + The font. + + + + Replaces the specified new font. + + The new font. + + + + Replace the font size in the content. + + The font size. + The font name in the resources. + + + + Dispose font + + + + + Gets or sets ofset from beginning of TrueType font file. + + + + + Gets or sets length of this table. + + + + + Gets or sets table checksum. + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Typographic line gap. + Negative LineGap values are treated as DEF_TABLE_CHECKSUM. + + + + + Gets or sets contains CFF. + + + + + Gets or sets value indicating if Symbol font is used. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets a value indicating whether font is script. + + + + + Gets a value indicating whether font is serif. + + + + + Gets or sets description font item. + + + + + Gets or sets post-script font name. + + + + + Gets or sets font family name. + + + + + Gets or sets font name. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets widths table for the font. + + + + + Regular: 0 + Bold: 1 + Italic: 2 + Bold Italic: 3 + Bit 0- bold (if set to 1) + Bit 1- italic (if set to 1) + Bits 2-15- reserved (set to 0). + NOTE: + Note that macStyle bits must agree with the 'OS/2' table fsSelection bits. + The fsSelection bits are used over the macStyle bits in Microsoft Windows. + The PANOSE values and 'post' table values are ignored for determining bold or italic fonts. + + + + + Subscript size factor. + + + + + Superscript size factor. + + + + + First char of the font. + + + + + Last char of the font. + + + + + Gets a value indicating whether this instance is italic. + + true if this instance is italic; otherwise, false. + + + + Gets a value indicating whether this instance is bold. + + true if this instance is bold; otherwise, false. + + + + Local variable to store Format Selector. + + + + + Local variable to store Records Count. + + + + + Local variable to store Offset. + + + + + Local variable to store Name Records. + + + + + The PlatformID. + + + + + The EncodingID. + + + + + The PlatformIDLanguageID + + + + + The NameID. + + + + + The Length. + + + + + The Offset. + + + + + The Name. + + + + + The cmap. + + + + + The glyf. + + + + + The head. + + + + + The hhea. + + + + + The cmap. + + + + + The loca. + + + + + The maxp. + + + + + The cmap. + + + + + The post. + + + + + The OS2. + + + + + The CFF. + + + + + The cvt. + + + + + The fpgm. + + + + + The prep. + + + + + Modified: International date (8-byte field). + + + + + Created: International date (8-byte field). + + + + + MagicNumber: Set to 0x5F0F3CF5. + + + + + CheckSumAdjustment: To compute: set it to 0, sum the entire font as ULONG, + then store 0xB1B0AFBA - sum. + + + + + FontRevision: Set by font manufacturer. + + + + + Table version number: 0x00010000 for version 1.0. + + + + + Minimum x for all glyph bounding boxes. + + + + + Minimum y for all glyph bounding boxes. + + + + + Valid range is from 16 to 16384. + + + + + Maximum y for all glyph bounding boxes. + + + + + Maximum x for all glyph bounding boxes. + + + + + Regular: 0 + Bold: 1 + Italic: 2 + Bold Italic: 3 + Bit 0 - bold (if set to 1) + Bit 1 - italic (if set to 1) + Bits 2-15 - reserved (set to 0) + NOTE: + Note that macStyle bits must agree with the 'OS/2' table fsSelection bits. + The fsSelection bits are used over the macStyle bits in Microsoft Windows. + The PANOSE values and 'post' table values are ignored for determining bold or italic fonts. + + + + + Bit 0 - baseline for font at y=0 + Bit 1 - left SideBearing at x=0 + Bit 2 - instructions may depend on point size + Bit 3 - force ppem to integer values for all private scaler math; may use fractional ppem sizes if this bit is clear + Bit 4 - instructions may alter advance width (the advance widths might not scale linearly) + Note: All other bits must be zero. + + + + + LowestRecPPEM: Smallest readable size in pixels. + + + + + FontDirectionHint: + 0 Fully mixed directional glyphs + 1 Only strongly left to right + 2 Like 1 but also contains neutrals + -1 Only strongly right to left + -2 Like -1 but also contains neutrals. + + + + + 0 for short offsets, 1 for long. + + + + + 0 for current format. + + + + + Version. + + + + + Typographic ascent. + + + + + Maximum advance width value in HTML table. + + + + + Typographic descent. + + + + + Number of hMetric entries in HTML table; + may be smaller than the total number of glyphs in the font. + + + + + Typographic line gap. Negative LineGap values are treated as DEF_TABLE_CHECKSUM + in Windows 3.1, System 6, and System 7. + + + + + Minimum left SideBearing value in HTML table. + + + + + Minimum right SideBearing value; calculated as Min(aw - lsb - (xMax - xMin)). + + + + + Max(lsb + (xMax - xMin)). + + + + + Used to calculate the slope of the cursor (rise/run); 1 for vertical. + + + + + 0 for vertical. + + + + + 0 for current format. + + + + + Struct field. + + + + + The Average Character Width parameter specifies + the arithmetic average of the escapement (width) + of all of the 26 lowercase letters a through z of the Latin alphabet + and the space character. If any of the 26 lowercase letters are not present, + this parameter should equal the weighted average of all glyphs in the font. + For non-UGL (platform 3, encoding 0) fonts, use the unweighted average. + + + + + Indicates the visual weight (degree of blackness or thickness of strokes) + of the characters in the font. + + + + + Indicates a relative change from the normal aspect ratio (width to height ratio) + as specified by a font designer for the glyphs in a font. + + + + + Indicates font embedding licensing rights for the font. + Embeddable fonts may be stored in a document. + When a document with embedded fonts is opened on a system that does not have the font installed + (the remote system), the embedded font may be loaded for temporary (and in some cases, permanent) + use on that system by an embedding-aware application. + Embedding licensing rights are granted by the vendor of the font. + + + + + The recommended horizontal size in font design units for subscripts for this font. + + + + + The recommended vertical size in font design units for subscripts for this font. + + + + + The recommended horizontal offset in font design units for subscripts for this font. + + + + + The recommended vertical offset in font design units from the baseline for subscripts for this font. + + + + + The recommended horizontal size in font design units for superscripts for this font. + + + + + The recommended vertical size in font design units for superscripts for this font. + + + + + The recommended horizontal offset in font design units for superscripts for this font. + + + + + The recommended vertical offset in font design units from the baseline for superscripts for this font. + + + + + Width of the strikeout stroke in font design units. + + + + + The position of the strikeout stroke relative to the baseline in font design units. + + + + + This parameter is a classification of font-family design. + + + + + This 10 byte series of numbers are used to describe the visual characteristics + of a given typeface. These characteristics are then used to associate the font with + other fonts of similar appearance having different names. The variables for each digit are listed below. + The specifications for each variable can be obtained in the specification + PANOSE v2.0 Numerical Evaluation from Microsoft or Elseware Corporation. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + The four character identifier for the vendor of the given type face. + + + + + Information concerning the nature of the font patterns. + + + + + The minimum Unicode index (character code) in this font, + according to the cmap subtable for platform ID 3 and encoding ID 0 or 1. + For most fonts supporting Win-ANSI or other character sets, this value would be 0x0020. + + + + + usLastCharIndex: The maximum Unicode index (character code) in this font, + according to the cmap subtable for platform ID 3 and encoding ID 0 or 1. + This value depends on which character sets the font supports. + + + + + The typographic ascender for this font. + Remember that this is not the same as the Ascender value in the 'hhea' table, + which Apple defines in a far different manner. + DEF_TABLE_OFFSET good source for usTypoAscender is the Ascender value from an AFM file. + + + + + The typographic descender for this font. + Remember that this is not the same as the Descender value in the 'hhea' table, + which Apple defines in a far different manner. + DEF_TABLE_OFFSET good source for usTypoDescender is the Descender value from an AFM file. + + + + + The typographic line gap for this font. + Remember that this is not the same as the LineGap value in the 'hhea' table, + which Apple defines in a far different manner. + + + + + The ascender metric for Windows. + This too is distinct from Apple's Ascender value and from the usTypoAscender values. + usWinAscent is computed as the yMax for all characters in the Windows ANSI character set. + usTypoAscent is used to compute the Windows font height and default line spacing. + For platform 3 encoding 0 fonts, it is the same as yMax. + + + + + The descender metric for Windows. + This too is distinct from Apple's Descender value and from the usTypoDescender values. + usWinDescent is computed as the -yMin for all characters in the Windows ANSI character set. + usTypoAscent is used to compute the Windows font height and default line spacing. + For platform 3 encoding 0 fonts, it is the same as -yMin. + + + + + This field is used to specify the code pages encompassed + by the font file in the 'cmap' subtable for platform 3, encoding ID 1 (Microsoft platform). + If the font file is encoding ID 0, then the Symbol Character Set bit should be set. + If the bit is set (1) then the code page is considered functional. + If the bit is clear (0) then the code page is not considered functional. + Each of the bits is treated as an independent flag and the bits can be set in any combination. + The determination of "functional" is left up to the font designer, + although character set selection should attempt to be functional by code pages if at all possible. + + + + + This field is used to specify the code pages encompassed + by the font file in the 'cmap' subtable for platform 3, encoding ID 1 (Microsoft platform). + If the font file is encoding ID 0, then the Symbol Character Set bit should be set. + If the bit is set (1) then the code page is considered functional. + If the bit is clear (0) then the code page is not considered functional. + Each of the bits is treated as an independent flag and the bits can be set in any combination. + The determination of "functional" is left up to the font designer, + although character set selection should attempt to be functional by code pages if at all possible. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Holds glyph index. + + + + + Holds character's width. + + + + + Code of the char symbol. + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Compares two WidthDescriptor objects. + + Another object for comparing. + A signed integer that indicates the relative order of this instance and value. + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Represents the standard CJK fonts. + + + + + Initializes a new instance of the class. + + The font family. + The size. + The style. + + + + Initializes a new instance of the class. + + The font family. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + The style. + + + + Gets the font family. + + + + + Represents the font. + + + + + Gets the name. + + The name. + + + + Gets the size. + + The size. + + + + Gets the height of the font in points. + + + + + Gets the descent of the font in points. + + + + + Gets the style information for this font. + + + + + Gets a value indicating whether this is bold. + + true if bold; otherwise, false. + + + + Gets a value indicating whether this is italic. + + true if italic; otherwise, false. + + + + Gets a value indicating whether this is strikeout. + + true if strikeout; otherwise, false. + + + + Gets a value indicating whether this is underline. + + true if underline; otherwise, false. + + + + Measures a string by using this font. + + Text to be measured. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Gets Pdf primitive representing the font. + + + + + Checks whether the object is similar to another object. + + The object to compare with the current object. + True - if the objects have equal internals and can share them, False otherwise. + + + + Represents one of the 14 standard PDF fonts. + + + + + Initializes a new instance of the class. + + The font family. + The size. + + + + Initializes a new instance of the class. + + The font family. + The size. + The style. + + + + Initializes a new instance of the class. + + The prototype. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + The style. + + + + Gets the FontFamily. + + + + + Represents the text layout information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The alignment. + + + + Initializes a new instance of the class. + + The column format. + + + + Initializes a new instance of the class. + + The alignment. + The vertical alignment. + + + + Gets or sets the text alignment. + + + + + Gets or sets the vertical text alignment. + + + + + Gets or sets the value that indicates text direction mode. + + Note, that this property doesn't change any alignment of the text. + property should be set manually to align the text. This property just enables or disables + support of right to left approach. + If the value is False, the text won't be checked for right to left symbols occurrence. + + + + Gets or sets value that indicates a size among the characters in the text. + When the glyph for each character in the string is rendered, this value is + added to the the glyphs displacement. + + + Default value is 0. + + + + Gets or sets value that indicates a size among the words in the text. + Word spacing works the same way as character spacing but applies only to the + space character, code 32. + + Default value is 0. + + + + Gets or sets value that indicates the vertical distance between the baselines of adjacent lines of text. + + Default value is 0. + + + + Gets or sets a value indicating whether the text + should be a part of the clipping path. + + + + + Gets or sets value indicating whether the text is in subscript or superscript mode. + + + + + Gets or sets the indent of the first line in the paragraph. + + + + + Only entire lines are laid out in the formatting rectangle. + By default layout continues until the end of the text, + or until no more lines are visible as a result of clipping, whichever comes first. + Note that the default settings allow the last line to be partially obscured by a formatting rectangle that is not a whole multiple of the line height. + To ensure that only whole lines are seen, specify this value and be careful to provide a formatting rectangle at least as tall as the height of one line. + + true if [line limit]; otherwise, false. + + + + Includes the trailing space at the end of each line. + By default the boundary rectangle returned by the MeasureString method of PdfFont excludes the space at the end of each line. + Set this flag to include that space in measurement. + + + true if [measure trailing spaces]; otherwise, false. + + + + + Overhanging parts of glyphs, + and unwrapped text reaching outside the formatting rectangle are allowed to show. + By default all text and glyph parts reaching outside the formatting rectangle are clipped. + + true if [no clip]; otherwise, false. + + + + Gets or sets value indicating type of the text wrapping. + + + + + Clones the object. + + The new created object. + + + + Represents TrueType font. + + [System.Security.Permissions.PermissionSet( System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust" )] + + + + Convert unicode text to charCode text using the character set encoding. + + + + + + Class lay outing the text. + + + + + Initializes a new instance of the class. + + + + + Layouts the text. + + String text. + Font for the text. + String format. + Bounds of the text. + Layout result. + + + + Process the '\t' in text. + + The text + The processed text + + + + Get the info text length + + The line info + The postion + the line info`s length + + + + Layouter result. + + + + + Gets the text which is not layouted + + + + + Gets the actual layouted text bounds + + + + + Gets layouted lines information. + + + + + Gets the height of the line. + + + + + Contains information about the line. + + + + + Gets width of the line text. + + + + + Gets line text. + + + + + Gets width of the line text. + + + + + Break type of the line. + + + + + Unknown type line. + + + + + The line has new line symbol. + + + + + layout break. + + + + + The line is the first in the paragraph. + + + + + The line is the last in the paragraph. + + + + + Is not a separator + + + + + Is a separator, but can not be the first char of a new line + + + + + Is a separator which can be the first char of a new line + + + + + Indicates that the character is an opening or initial quotation mark. + + + + + Letter, whoes code > 0x1EF4 + + + + + Check table name does not exist + + + + + + + set char Code for unicode char + + unicodeString + charCode + + + + Get CharCode + + + + + + + Specifies style information applied to text. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Represents the underline text. + + + + + Strikeout text. + + + + + Indicates type of standard PDF fonts. + + + + + Represents the Helvetica font. + + + + + Represents the Courier font. + + + + + Represents the Times Roman font. + + + + + Represents the Symbol font. + + + + + Represents the ZapfDingbats font. + + + + + Specifies the type of CJK font. + + + + + Represents the Hanyang Systems Gothic Medium font. + + + + + Represents the Hanyang Systems shin myeong Jo Medium font. + + + + + Represents the Heisei kaku GothicW5 font. + + + + + Represents the Heisei MinchoW3 font. + + + + + Represents the Monotype Hei Medium font. + + + + + Represents the monotype sung Light font. + + + + + Represents the sinotype song light font. + + + + + Specifies the type of the font. + + + + + Indicates the standard Adobe fonts. + + + + + Indicates the non-embedded TrueType fonts. + + + + + Indicates the Embedded TrueType fonts. + + + + + Specifies the types of text wrapping. + + + + + Text wrapping between lines when formatting within a rectangle is disabled. + + + + + Text is wrapped by words. If there is a word that is longer than bounds' width, this word is wrapped by characters. + + + + + Text is wrapped by words. If there is a word that is longer than bounds' width, it won't be wrapped at all + and the process will be finished. + + + + + Text is wrapped by characters. In this case the word at the end of the text line can be split. + + + + + Specifies type of the SubSuperScript. + + + + + Specifies no subscript or superscript. + + + + + Specifies superscript format. + + + + + Specifies subscript format. + + + + + Apple platform. + + + + + Macintosh platform. + + + + + Iso platform. + + + + + Microsoft platform. + + + + + The Copyright + + + + + The Font Family + + + + + The Font Sub Family + + + + + The Font Identifier + + + + + The Font Name + + + + + The Version + + + + + The PostScriptName + + + + + The Trademark + + + + + Unknown encoding. + + + + + When building a symbol font for Windows. + + + + + When building a Unicode font for Windows. + + + + + For font that will be used on a Macintosh. + + + + + Undefined encoding. + + + + + Unicode BMP(UCS-2) encoding. + + + + + Add by pdf-2610 + Unicode UCS-4 encoding. + + + + + Roman encoding. + + + + + Japanese encoding. + + + + + Chinese encoding. + + + + + This is the Apple standard character to glyph index mapping table. + + + + + This is the Microsoft standard character to glyph index mapping table. + + + + + Format 6: Trimmed table mapping. + + + + + Add by pdf-2610 + Format 12: Segmented Coverage table mapping. + + + + + ttf composite glyph flags. + + + + + The ARG_1_AND_2_ARE_WORDS. + + + + + The ARGS_ARE_XY_VALUES. + + + + + The ROUND_XY_TO_GRID. + + + + + The WE_HAVE_A_SCALE. + + + + + The RESERVED. + + + + + The MORE_COMPONENTS. + + + + + The WE_HAVE_AN_X_AND_Y_SCALE. + + + + + The WE_HAVE_A_TWO_BY_TWO. + + + + + The WE_HAVE_INSTRUCTIONS. + + + + + The USE_MY_METRICS. + + + + + Unknown encoding + + + + + Adobe standard Latin-text encoding + + + + + Mac OS standard encoding + + + + + An encoding for use with expert fonts + + + + + Windows Code Page 1252 + + + + + Encoding for text strings in a PDF document outside the document's content streams. + + + + + The horizontal identity mapping for 2-byte CIDs; may be used with CIDFonts using any + Registry, Ordering, and Supplement values. It maps 2-byte character codes ranging from + 0 to 65,535 to the same 2-byte CID value, interpreted high-order byte first. + + + + + All glyphs have the same width (as opposed to proportional or variable-pitch + fonts, which have different widths). + + + + + Glyphs have serifs, which are short strokes drawn at an angle on the top and + bottom of glyph stems (as opposed to sans serif fonts, which do not). + + + + + Font contains glyphs outside the Adobe standard Latin character set. The + flag and the nonsymbolic flag cannot both be set or both be clear. + + + + + Glyphs resemble cursive handwriting. + + + + + Font uses the Adobe standard Latin character set or a subset of it. + + + + + Glyphs have dominant vertical strokes that are slanted. + + + + + Bold font. + + + + + + + + + + + + + + + Represent pdf form XObject. + + + + + Form XObject pdf stream. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The resources. + + + + + + + + + + + + + + + + + + + + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_bound to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_matrix to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_visibilityGroup to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_resources to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_bound from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_matrix from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_visibilityGroup from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_resources from the pdf primitive. + + The form XObject dictionary. + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Default Quantizer Quality. + + + + + A 64 byte array which corresponds to a JPEG Luminance Quantization table. + + + + + A 64 byte array which corresponds to a JPEG Chromiance Quantization table. + + + + + Encodes a provided ImageBuffer[,,] to a JPG Image. + + The ImageBuffer containing the pixel data. + Dimension of the original image. This value is written to the image header. + Dimension on which the Encoder works. As the Encoder works in 8*8 blocks, if the image size is not divisible by 8 the remaining blocks are set to '0' (in this implementation) + Stream to which the JPEG data is to be written. + Required quantizer quality; Default: 50 , Lower value higher quality. + Interface for updating Progress. + Interface for updating CurrentOperation. + + + + Encodes a provided Image to a JPG Image. + + The Image to be encoded. + Stream to which the JPEG data is to be written. + Required quantizer quality; Default: 50 , Lower value higher quality. + Interface for updating Progress. + Interface for updating CurrentOperation. + + + + Generates Y, Cb, Cr, R, G and B values from given RGB_Buffer + + + + + Defines the different possible channel types. + + + + + Generates Y, Cb, Cr, R, G and B values from given RGB_Buffer + + The input RGB_Buffer. + Draw in grayscale. + Width of the image. + Height of the image. + Enum specifying the channel type required. + Interface for updating progress. + Interface for updating current operation. + 3D array of the specified channel type. + + + + The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device. + + [in] Handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen. + + If the function succeeds, the return value is the handle to a memory DC. + If the function fails, the return value is NULL. + + + + + The SelectObject function selects an object into the specified device context (DC). + The new object replaces the previous object of the same type. + + [in] Handle to the DC. + [in] Handle to the object to be selected. The specified object must have been created by using one of the following functions. + + + + + The SetStretchBltMode function sets the bitmap stretching mode in the specified device context. + + [in] Handle to the device context. + [in] Specifies the stretching mode. This parameter can be one of the values from StretchBltModes enum. + + If the function succeeds, the return value is the previous stretching mode. + If the function fails, the return value is zero. + + + + + The GetObject function retrieves information for the specified graphics object. + + [in] Handle to the graphics object of interest. This can be a handle to one of the following: a logical bitmap, a brush, a font, a palette, a pen, or a device independent bitmap created by calling the CreateDIBSection function. + [in] Specifies the number of bytes of information to be written to the buffer. + [out] Pointer to a buffer that receives the information about the specified graphics object. + + If the function succeeds, and lpvObject is a valid pointer, the return value is the number of bytes stored into the buffer. + If the function succeeds, and lpvObject is NULL, the return value is the number of bytes required to hold the information the function would store into the buffer. + If the function fails, the return value is zero. + + + + + The StretchBlt function copies a bitmap from a source rectangle into a destination + rectangle, stretching or compressing the bitmap to fit the dimensions of the destination + rectangle, if necessary. The system stretches or compresses the bitmap according to + the stretching mode currently set in the destination device context. + + [in] Handle to the destination device context. + [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle. + [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle. + [in] Specifies the width, in logical units, of the destination rectangle. + [in] Specifies the height, in logical units, of the destination rectangle. + [in] Handle to the source device context. + [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the source rectangle. + [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the source rectangle. + [in] Specifies the width, in logical units, of the source rectangle. + [in] Specifies the height, in logical units, of the source rectangle. + [in] Specifies the raster operation to be performed. Raster operation codes define how the system combines colors in output operations that involve a brush, a source bitmap, and a destination bitmap. + + If the function succeeds, the return value is nonzero. + If the function fails, the return value is zero. + + + + + The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context. + + [in] Handle to a device context. + [in] Specifies the bitmap width, in pixels. + [in] Specifies the bitmap height, in pixels. + + If the function succeeds, the return value is a handle to the compatible bitmap (DDB). + If the function fails, the return value is NULL. + + + + + The GetDIBits function retrieves the bits of the specified compatible bitmap + and copies them into a buffer as a DIB using the specified format. + + [in] Handle to the device context. + [in] Handle to the bitmap. This must be a compatible bitmap (DDB). + [in] Specifies the first scan line to retrieve. + [in] Specifies the number of scan lines to retrieve. + [out] Pointer to a buffer to receive the bitmap data. If this parameter is NULL, the function passes the dimensions and format of the bitmap to the BITMAPINFOHEADER structure pointed to by the lpbi parameter. + [in/out] Pointer to a BITMAPINFOHEADER structure that specifies the desired format for the DIB data. + [in] Specifies the format of the bmiColors member of the BITMAPINFOHEADER structure. + If the lpvBits parameter is non-NULL and the function succeeds, the return value is the number of scan lines copied from the bitmap. + + + + The SetDIBits function sets the pixels in a compatible bitmap (DDB) + using the color data found in the specified DIB . + + [in] Handle to a device context. + [in] Handle to the compatible bitmap (DDB) that is to be altered using the color data from the specified DIB. + [in] Specifies the starting scan line for the device-independent color data in the array pointed to by the lpvBits parameter. + [in] Specifies the number of scan lines found in the array containing device-independent color data. + [in] Pointer to the DIB color data, stored as an array of bytes. The format of the bitmap values depends on the biBitCount member of the BITMAPINFO structure pointed to by the lpbmi parameter. + [in] Pointer to a BITMAPINFOHEADER structure that contains information about the DIB. + [in] Specifies whether the bmiColors member of the BITMAPINFO structure was provided and, if so, whether bmiColors contains explicit red, green, blue (RGB) values or palette indexes. + If the function succeeds, the return value is the number of scan lines copied. + + + + The GetDC function retrieves a handle to a display device context (DC) + for the client area of a specified window or for the entire screen. + + [in] Handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen. + If the function succeeds, the return value is a handle to the DC for the specified window's client area. I + If the function fails, the return value is NULL. + + + + + The GetClientRect function retrieves the coordinates of a window's client area. + The client coordinates specify the upper-left and lower-right corners of the client area. + + [in] Handle to the window whose client coordinates are to be retrieved. + [out] Pointer to a RECT structure that receives the client coordinates. + If the function succeeds, the return value is nonzero. + + + + Performs a bit-block transfer of the color data corresponding to a + rectangle of pixels from the specified source device context into + a destination device context. + + Handle to the destination device context. + The leftmost x-coordinate of the destination rectangle (in pixels). + The topmost y-coordinate of the destination rectangle (in pixels). + The width of the source and destination rectangles (in pixels). + The height of the source and the destination rectangles (in pixels). + Handle to the source device context. + The leftmost x-coordinate of the source rectangle (in pixels). + The topmost y-coordinate of the source rectangle (in pixels). + A raster-operation code. + + true if the operation succeeded, false otherwise. + + + + + The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, + freeing all system resources associated with the object. After the object is deleted, + the specified handle is no longer valid. + + [in] Handle to a logical pen, brush, font, bitmap, region, or palette. + If the function succeeds, the return value is nonzero. + + + + The ReleaseDC function releases a device context (DC), freeing it for use by other applications. + The effect of the ReleaseDC function depends on the type of DC. + + [in] Handle to the window whose DC is to be released. + [in] Handle to the DC to be released. + + The return value indicates whether the DC was released. + If the DC was released, the return value is 1. + If the DC was not released, the return value is zero. + + + + + The SetPixel function sets the pixel at the specified coordinates to the specified color. + + [in] Handle to the device context. + [in] Specifies the x-coordinate, in logical units, of the point to be set. + [in] Specifies the y-coordinate, in logical units, of the point to be set. + [in] Specifies the color to be used to paint the point. + If the function succeeds, the return value is the RGB value that the function sets the pixel to. + This value may differ from the color specified by crColor; that occurs when an exact match for the + specified color cannot be found. + + + + Specifies a raster-operation code. These codes define how the color data for the + source rectangle is to be combined with the color data for the destination + rectangle to achieve the final color. + + + + dest = source + + + dest = source OR dest + + + dest = source AND dest + + + dest = source XOR dest + + + dest = source AND (NOT dest) + + + dest = (NOT source) + + + dest = (NOT src) AND (NOT dest) + + + dest = (source AND pattern) + + + dest = (NOT source) OR dest + + + dest = pattern + + + dest = DPSnoo + + + dest = pattern XOR dest + + + dest = (NOT dest) + + + dest = BLACK + + + dest = WHITE + + + + Get Font registry key. + + + + + Get font name key of teh registry. + + + + + Draws extra line between the last and first points. + + The pen. + The points. + If true, connects last and first points. + + + + Darw the multiple Line + + + + + + + + + + + + + + Invalid object type. + + + + + Brush object. + + + + + Pen object. + + + + + Path object. + + + + + Region object. + + + + + Image object. + + + + + Font object. + + + + + String format object. + + + + + Image attributes object. + + + + + Custom line cap object. + + + + + Default value. + + + + + Hatch brush. + + + + + Texture brush. + + + + + Path gradient brush. + + + + + Linear gradient brush. + + + + + Flags for a linear gradient brush. + + + + + Minimal data are present. + + + + + The brush applies a transformation matrix to the source image. + + + + + The brush contains a ColorBlend object for use with its InterpolationColors property. + + + + + The brush contains a Blend object for use with its Blend property. + + + + + The brush has a non-default value for the FocusScales property. + + + + + The brush uses gamma correction. + + + + + Represents pen flags. + + + + + Pen just with color set. + + + + + Transformation set. (20-... - float ) + + + + + StartCap set. ( 20 - int ) + + + + + EndCap set. ( 20 - int ) + + + + + LineJoin set. ( 20 - int ) + + + + + MiterLimit set. ( 20 - float ) + + + + + Pen has DashStyle defined. + + + + + DashCap set. ( 20 - int ) + + + + + DashOffset is defined. (20 - float) + + + + + DashPattern is defined. (20 - int: numArray; 24-... - float: DashPattern ) + + + + + Alignment set. (20 - int ) + + + + + CompoundArray set. (20 - int: numArray; 24-... - float: compoundArray ) + + + + + The pen uses a custom start cap. + + + + + The pen uses a custom end cap. + + + + + Unknown format. + + + + + Bitmap image. + + + + + Metafile image. + + + + + Region is from rectangle. + + + + + Region is from graphics path. + + + + + Region is empty. + + + + + Region is infinity. + + + + + Represents the bmp image object. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfBmpImage from stream. + + + + + + Initialize a new instance of PdfBmpImage from path. + + + + + + Initialize a new instance of PdfBmpImage from byte array. + + + + + + Initialize a new instance of PdfGifImage from path. + + + + + + Initialize a new instance of PdfGifImage from byte array. + + + + + + Initialize a new instance of PdfGifImage from stream. + + + + + + Get the count of frame in gif. + + + + + Get or set the current frame index. + + + + + Get the width of the image in pixels. + + + + + Get the height of the image in pixels. + + + + + Get the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + + Represents the jpeg2000 image object. + + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfBmpImage from path. + + + + + + Initialize a new instance of PdfBmpImage from byte array. + + + + + + Initialize a new instance of PdfBmpImage from stream. + + + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + Represents the jb2 image object. + + + + + Get the width of the image in pixel unit. + + + + + Get the height of the image in pixel unit. + + + + + Get the horizontal resoulution of the image in pixel unit. + + + + + Get the vertical resolution of the image in pixel unit. + + + + + Initialize a new instance of PdfJb2Image from file path. + + + + + + Initialize a new instance of PdfJb2Image from byte array. + + + + + + Initialize a new instance of PdfJb2Image from stream. + + + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Represents the jpeg image object. + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Initialize a new instance of PdfJpegImage from path. + + The file path + + + + Initialize a new instance of PdfJpegImage from byte array. + + The data array + + + + Initialize a new instance of PdfJpegImage from stream. + + The data stream + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Represents the png object. + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + + Get the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Get the horizontal resolution, in pixels per inch, of this Image. + + + + + Get the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfPngImage from file path. + + the file path + + + + Initialize a new instance of PdfPngImage from byte array. + + byte array + + + + Initialize a new instance of PdfPngImage from stream. + + stream + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + + Represents the tiff image object. + + + + + Get bytes count per component. + + The bytes count per component + + + + Process the image data. + if the value of SamplePerPixel bigger than 3 extra samples should + give an indication of the meaning of the additional channels + + The same y position image data. + The y position + Whether exist smask. + The processed image data. + + + + Represent pdf optional content group(or optional content membership). + + + + + Visible of optional content. + + + + + The intent of using optional group + + + + + Which is intended to represent a document designer's + structural organization of artwork. + + + + + Which is intended for interactive use by document consumers. + + + + + Represent pdf optional content group. + Content typically belongs to a single optional content group. + + + + + Optional content group dictionary + + + + + Optional content group Name + + + + + Optional group used Intent + + + + + Optional content configuration. + + + + + Optional content group reference. + + + + + Get or set pdf layer name. + Notice: + Name may be is not unique. + + + + + Get or set pdf layer view state. + + + + + Get or set pdf layer export state. + + + + + Get or set pdf layer print state. + + + + + Get or set pdf layer visible. + + + + + Get whether the layer shows on user interface or not. + + + + + Get reference of the layer. + + + + + Construct an instance + + The pdf layer name + The optional content configuration. + The pdf cross Table + + + + Construct an instance with the optional content group dictionary + + The optional content group dictionary + The optional content configuration. + The pdf cross Table + + + + Construct an instance with the optional content group dictionary + + The optional content group dictionary + The optional content configuration. + The pdf cross Table + The reference of the layer + + + + Create the layer graphics. + + + The pdf layer container's graphics. + eg: PdfPageBase.Canvas ... + + The pdf layer graphics. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_name to the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field m_intent to the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field Usage to the pdf primitive. + + The layer property + The layer property's state + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_name from the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field m_intent from the pdf primitive. + + The optional content group dictionary + + + + Represent pdf layer collection. + + + + + The PdfDocumentBase. + + + + + Optional content properties dictionary. + + + + + Optional content groups. + + + + + Default viewing optional content configuration. + + + + + Get the pdf layer of the index. + + Pdf layer index + Pdf layer + + + + Get the pdf layer of name. + Notice: + Pdf layer name may be is not unique. + If exist duplication of name,return first pdf layer of name. + If not exist pdf layer of name,return null; + + Pdf layer name + Pdf layer + + + + Gets the number of pdf layers contained. + + + + + Construct an instance + + The PdfDocumentBase. + The pdf cross table + + + + Construct an instance with the optional content properties dictionary + + The optional content properties dictionary + The PdfDocumentBase. + The pdf cross table + + + + Create a new empty pdf layer outline. + + Pdf layer outline. + + + + Add a new pdf layer. + + Pdf layer name. + Pdf layer. + + + + Add a new pdf layer. + + Pdf layer name. + Pdf layer's visibility. + Pdf layer. + + + + Remove the pdf layer. + + The pdf layer. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove the pdf layer. + + The pdf layer. + If true,remove content with the pdf layer.Otherwise,false. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove layer from Ocgs array. + + + + + + Remove the pdf layer. + Notice: Pdf layer name may be is not unique. + If exist duplication of name,will remove all pdf layers of name. + + Pdf layer name. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove the pdf layer. + Notice: Pdf layer name may be is not unique. + If exist duplication of name,will remove all pdf layers of name. + + Pdf layer name. + If true,remove content with the pdf layer.Otherwise,false. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Find pdf layers of name. + + Pdf layer name. + Pdf layers of name. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_defaultViewConfig,m_otherConfigs to the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance field m_layers to the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_defaultViewConfig,m_otherConfigs from the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance field m_layers from the pdf primitive. + + The optional content properties dictionary + + + + Represent pdf optional content configuration + + + + + Optional content configuration dictionary + + + + + A name for the configuration. + + + + + Used to initialize the states of all optional content groups's visibility. + + + + + An array of optional content groups whose state should be set to + ON when this configuration is applied. + + + + + An array of optional content groups whose state should be set to + OFF when this configuration is applied. + + + + + Used to determine which optional group's states to consider and ignore + in calculating the visibility of content. + + + + + An array specifying the recommended order for presentation of optional content + groups in user interface. + + + + + Construct an instance + + A name for the configuration. + The pdf cross table + + + + Construct an instance with the optional content configuration dictionary + + The optional content configuration dictionary + The pdf cross table + + + + Create a new empty pdf layer outline. + + Pdf layer outline. + + + + Configure a layer at top level. + + The pdf layer. + The layer's visibility. + + + + Remove a layer's configs. + + The pdf layer. + + + + Get layer's visibility. + + The pdf layer. + The pdf layer's visibility. + + + + Set layer's visibility. + + The pdf layer. + The pdf layer's visibility. + + + + Return layer shows on ui or not. + + The layer + + + + + + Append OCGs item for AS item + + the AS PdfArray + The layer property + + + + Get layer's visibility. + + The pdf Layer dictionary. + The pdf layer's visibility. + + + + Add pdf layer visibility settings. + + The list of pdf Layer dictionary. + Visibility of the pdf layer. + + + + Add pdf layer visibility settings. + + The pdf Layer dictionary. + Visibility of the pdf layer. + + + + Remove pdf layer visibility settings. + + The list of pdf Layer dictionary. + + + + Remove pdf layer visibility settings. + + The pdf Layer dictionary. + + + + Add pdf layer visibility settings. + + The pdf Layer. + Visibility of the pdf layer. + + + + Remove pdf layer visibility settings. + + The pdf Layer. + + + + Return the layer shows on ui or not. + + The layer + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_name to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_baseState to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_on to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_off to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_intent to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_layerOutline to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_name from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_baseState from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_intent from the pdf primitive. + + The optional content configuration dictionary. + + + + Synchronize the instance field m_on from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_off from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_layerOutline from the pdf primitive. + + The optional content configuration dictionary. + + + + Represent pdf optional content membership. + To express more complex visibility policies,content should declare itself not + to belong directly an optional content group but rather to an optional content + membership. + + + + + Optional content membership dictionary + + + + + Optional content group whose visibility determine the visibility of + this optional content membership. + + + + + Visibility policy. + + + + + Visibility expression. + + + + + All optional content groups in document,not all related this membership. + + + + + Pdf layer membership Visibility. + + + + + Construct a instance. + + all optional content groups. + The pdf cross table. + + + + Construct an instance with the optional content membership dictionary. + + The optional content membership dictionary. + all optional content groups. + The pdf cross table. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_relatedLayers to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityPolicy to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityExpression to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_relatedLayers from the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityPolicy from the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityExpression from the pdf primitive. + + The optional content membership dictionary + + + + Represent the recommended order for presentation of optional content + groups in user interface. + Refrence "Optional content configuration dictionary's entry order". + + + + + Optional content configuration dictionary's entry order + + + + + Construct an instance. + + The pdf cross table. + + + + Construct an instance with . + + + The pdf cross table + + + + Add a sub group outline. + + Group name. + Sub group outline. + + + + Add a outline entry of the pdf layer with a sub group outline. + + Pdf layer + Sub group outline. + + + + Add a outline entry of the pdf layer. + + Pdf layer + + + + Remove an entry of the layer,inclued sub enties. + + The layer. + + + + Remove an entry with the layer,inclued sub enties.. + Refrence "Optional content configuration dictionary's entry order". + + The layer. + The array include outline entries. + True,if has succeed.Otherwise,false. + + + + Gets the wrapped element. + + + + + Remove layer content in the page. + + The layer. + The page. + The pdfCrossTable + + + + Represent the visibility of optional content group(or optional content membership). + + + + + Specify the visibility expression for optional content belonging to PdfLayerMembership. + + + + + An array specifying a visibility expression + + + + + Visible of optional content. + + + + + Construct an instance + + The pdf cross table. + + + + Construct an instance with the visibility expression array. + + The visibility expression array. + The pdf cross table. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Specify the visibility policy for content belonging to PdfLayerMembership. + + + + + Not Specifying the visibility policy. + + + + + Visible if any of layer are On. + + + + + Visible only if all of layers are On. + + + + + Visible if any of layer are Off. + + + + + Visible only if all of layers are Off. + + + + + Represent the matrix + + + + + Gets the x translation value (the dx value, or the element in the third row and first column). + + + + + Gets the x translation value (the dx value, or the element in the third row and second column). + + + + + Gets an array of floating-point values that represents the elements. + + + + + Construct a instance as the identity matrix. + + + + + Construct a instance as the identity matrix. + + The value in the first row and first column. + The value in the first row and second column. + The value in the second row and first column. + The value in the second row and second column. + The value in the third row and first column. + The value in the third row and second column. + + + + Construct a instance to the geometric transform defined by the specified rectangle and array of points. + + A System.Drawing.Rectangle structure that represents the rectangle. + + An array of three System.Drawing.Point structures that represents the points + of a parallelogram to which the upper-left, upper-right, and lower-left corners + of the rectangle is to be transformed. The lower-right corner of the parallelogram + is implied by the first three corners. + + + + + Construct a instance to the geometric transform defined by the specified rectangle and array of points. + + A System.Drawing.RectangleF structure that represents the rectangle. + + An array of three System.Drawing.PointF structures that represents the points + of a parallelogram to which the upper-left, upper-right, and lower-left corners + of the rectangle is to be transformed. The lower-right corner of the parallelogram + is implied by the first three corners. + + + + + Prepend the specified matrix. + + Matrix is to be multiplied. + + + + Apply the specified matrix by the specified order. + + Matrix is to be multiplied. + Represent the applying order. + + + + Prepend the specified translation vector (offsetX and offsetY). + + The x value by which to translate. + The y value by which to translate. + + + + Apply the specified translation vector (offsetX and offsetY) by the specified order. + + The x value by which to translate. + The y value by which to translate. + Represent the applying order. + + + + Prepend the specified scale vector (scaleX and scaleY). + + The value by which to scale in the x-axis direction. + The value by which to scale in the y-axis direction. + + + + Apply the specified scale vector (scaleX and scaleY) by the specified order. + + The value by which to scale in the x-axis direction. + The value by which to scale in the y-axis direction. + Represent the applying order. + + + + Prepend a clockwise rotation(angle) around the origin. + + The angle of the rotation, in degrees. + + + + Apply a clockwise rotation(angle) around the origin by the specified order. + + The angle of the rotation, in degrees. + Represent the applying order. + + + + Prepend the specified skew angles(angleX angleY). + + The horizontal skew angle, in degrees. + The vertical skew angle, in degrees. + + + + Prepend the specified skew angles(angleX angleY) by the specified order. + + The horizontal skew angle, in degrees. + The vertical skew angle, in degrees. + Represent the applying order. + + + + Prepend the specified Shear vector (shearX and shearY). + + The horizontal shear factor. + The vertical shear factor. + + + + Apply the specified Shear vector (shearX and shearY) by the specified order. + + The horizontal shear factor. + The vertical shear factor. + Represent the applying order. + + + + Applies the geometric transform to a specified array of points. + + An array of points to transform. + The transformed points. + + + + Matrix1 multiply matrix2 to this. + + first matrix. + second matrix. + + + + Converts degree to radian. + + The degree + The radian + + + + Converts radian to degree. + + The radian + The degree + + + + Calculate 3 simple equation + + + + + Calculate 3 simple equation + + + + + Represent the applying order to matrix. + + + + + The new operation is applied before the old operation. + + + + + The new operation is applied after the old operation. + + + + + The collection of the default pens. + + + + + Gets the AliceBlue pen. + + + + + Gets the antique white pen. + + + + + Gets the Aqua default pen. + + + + + Gets the Aquamarine default pen. + + + + + Gets the Azure default pen. + + + + + Gets the Beige default pen. + + + + + Gets the Bisque default pen. + + + + + Gets the Black default pen. + + + + + Gets the BlanchedAlmond default pen. + + + + + Gets the Blue default pen. + + + + + Gets the BlueViolet default pen. + + + + + Gets the Brown default pen. + + + + + Gets the BurlyWood default pen. + + + + + Gets the CadetBlue default pen. + + + + + Gets the Chartreuse default pen. + + + + + Gets the Chocolate default pen. + + + + + Gets the Coral default pen. + + + + + Gets the CornflowerBlue default pen. + + + + + Gets the Corn silk default pen. + + + + + Gets the Crimson default pen. + + + + + Gets the Cyan default pen. + + + + + Gets the DarkBlue default pen. + + + + + Gets the DarkCyan default pen. + + + + + Gets the DarkGoldenrod default pen. + + + + + Gets the DarkGray default pen. + + + + + Gets the DarkGreen default pen. + + + + + Gets the DarkKhaki default pen. + + + + + Gets the DarkMagenta default pen. + + + + + Gets the DarkOliveGreen default pen. + + + + + Gets the DarkOrange default pen. + + + + + Gets the DarkOrchid default pen. + + + + + Gets the DarkRed default pen. + + + + + Gets the DarkSalmon default pen. + + + + + Gets the DarkSeaGreen default pen. + + + + + Gets the DarkSlateBlue default pen. + + + + + Gets the DarkSlateGray default pen. + + + + + Gets the DarkTurquoise default pen. + + + + + Gets the DarkViolet default pen. + + + + + Gets the DeepPink default pen. + + + + + Gets the DeepSkyBlue default pen. + + + + + Gets the DimGray default pen. + + + + + Gets the DodgerBlue default pen. + + + + + Gets the Firebrick default pen. + + + + + Gets the FloralWhite default pen. + + + + + Gets the ForestGreen default pen. + + + + + Gets the Fuchsia default pen. + + + + + Gets the Gainsborough default pen. + + + + + Gets the GhostWhite default pen. + + + + + Gets the Gold default pen. + + + + + Gets the Goldenrod default pen. + + + + + Gets the Gray default pen. + + + + + Gets the Green default pen. + + + + + Gets the GreenYellow default pen. + + + + + Gets the Honeydew default pen. + + + + + Gets the HotPink default pen. + + + + + Gets the IndianRed default pen. + + + + + Gets the Indigo default pen. + + + + + Gets the Ivory default pen. + + + + + Gets the Khaki default pen. + + + + + Gets the Lavender default pen. + + + + + Gets the LavenderBlush default pen. + + + + + Gets the LawnGreen default pen. + + + + + Gets the LemonChiffon default pen. + + + + + Gets the LightBlue default pen. + + + + + Gets the LightCoral default pen. + + + + + Gets the LightCyan default pen. + + + + + Gets the LightGoldenrodYellow default pen. + + + + + Gets the LightGray default pen. + + + + + Gets the LightGreen default pen. + + + + + Gets the LightPink default pen. + + + + + Gets the LightSalmon default pen. + + + + + Gets the LightSeaGreen default pen. + + + + + Gets the LightSkyBlue default pen. + + + + + Gets the LightSlateGray default pen. + + + + + Gets the LightSteelBlue default pen. + + + + + Gets the LightYellow default pen. + + + + + Gets the Lime default pen. + + + + + Gets the LimeGreen default pen. + + + + + Gets the Linen default pen. + + + + + Gets the Magenta default pen. + + + + + Gets the Maroon default pen. + + + + + Gets the MediumAquamarine default pen. + + + + + Gets the MediumBlue default pen. + + + + + Gets the MediumOrchid default pen. + + + + + Gets the MediumPurple default pen. + + + + + Gets the MediumSeaGreen default pen. + + + + + Gets the MediumSlateBlue default pen. + + + + + Gets the MediumSpringGreen default pen. + + + + + Gets the MediumTurquoise default pen. + + + + + Gets the MediumVioletRed default pen. + + + + + Gets the MidnightBlue default pen. + + + + + Gets the MintCream default pen. + + + + + Gets the MistyRose default pen. + + + + + Gets the Moccasin default pen. + + + + + Gets the NavajoWhite default pen. + + + + + Gets the Navy default pen. + + + + + Gets the OldLace default pen. + + + + + Gets the Olive default pen. + + + + + Gets the OliveDrab default pen. + + + + + Gets the Orange default pen. + + + + + Gets the OrangeRed default pen. + + + + + Gets the Orchid default pen. + + + + + Gets the PaleGoldenrod default pen. + + + + + Gets the PaleGreen default pen. + + + + + Gets the PaleTurquoise default pen. + + + + + Gets the PaleVioletRed default pen. + + + + + Gets the PapayaWhip default pen. + + + + + Gets the PeachPuff default pen. + + + + + Gets the Peru default pen. + + + + + Gets the Pink default pen. + + + + + Gets the Plum default pen. + + + + + Gets the PowderBlue default pen. + + + + + Gets the Purple default pen. + + + + + Gets the Red default pen. + + + + + Gets the RosyBrown default pen. + + + + + Gets the RoyalBlue default pen. + + + + + Gets the SaddleBrown default pen. + + + + + Gets the Salmon default pen. + + + + + Gets the SandyBrown default pen. + + + + + Gets the SeaGreen default pen. + + + + + Gets the SeaShell default pen. + + + + + Gets the Sienna default pen. + + + + + Gets the Silver default pen. + + + + + Gets the SkyBlue default pen. + + + + + Gets the SlateBlue default pen. + + + + + Gets the SlateGray default pen. + + + + + Gets the Snow default pen. + + + + + Gets the SpringGreen default pen. + + + + + Gets the SteelBlue default pen. + + + + + Gets the Tan default pen. + + + + + Gets the Teal default pen. + + + + + Gets the Thistle default pen. + + + + + Gets the Tomato default pen. + + + + + Gets the Transparent default pen. + + + + + Gets the Turquoise default pen. + + + + + Gets the Violet default pen. + + + + + Gets the Wheat default pen. + + + + + Gets the White default pen. + + + + + Gets the WhiteSmoke default pen. + + + + + Gets the Yellow default pen. + + + + + Gets the YellowGreen default pen. + + + + + Specifies the type of Horizontal alignment. + + + + + Specifies the element is aligned to Left. + + + + + Specifies the element is aligned to Center. + + + + + Specifies the element is aligned to Right. + + + + + Specifies the type of Vertical alignment. + + + + + Specifies the element is aligned to Top. + + + + + Specifies the element is aligned to Middle. + + + + + Specifies the element is aligned to Bottom. + + + + + Specifies the type of horizontal text alignment. + + + + + Specifies the text is aligned to Left. + + + + + Specifies the text is aligned to Center. + + + + + Specifies the text is aligned to Right. + + + + + Specifies the text as Justified text. + + + + + Specifies the text rendering mode. + + + + + Fill text. + + + + + Stroke text. + + + + + Fill, then stroke text. + + + + + Neither fill nor stroke text (invisible). + + + + + Fill text and add to path for clipping (see above).. + + + + + Stroke text and add to path for clipping (see above). + + + + + Stroke fill text and add to path for clipping. + + + + + Add text to path for clipping. + + + + + Specifies the corner style of the shapes. + + + + + The outer edges for the two segments are extended + until they meet at an angle. + + + + + An arc of a circle with a diameter equal to the line width is drawn + around the point where the two segments meet, connecting the outer edges for the two segments. + + + + + The two segments are finished with caps + and the resulting notch beyond the ends of the segments is filled + with a triangle. + + + + + Specifies the line cap style to be used at the ends of the lines. + + + + + The stroke is squared off at the endpoint of the path. There is no + projection beyond the end of the path. + + + + + A semicircular arc with a diameter equal to the line width is + drawn around the endpoint and filled in. + + + + + The stroke continues beyond the endpoint of the path + for a distance equal to half the line width and is squared off. + + + + + Possible dash styles of the pen. + + + + + Solid line. + + + + + Dashed line. + + + + + Dotted line. + + + + + Dash-dot line. + + + + + Dash-dot-dot line. + + + + + User defined dash style. + + + + + No line. + + + + + Specifies how the shapes are filled. + + + + + Nonzero winding number rule of determining "insideness" + of point. + + + + + Even odd rule of determining "insideness" of point. + + + + + Defines set of color spaces. + + + + + RGB color space. + + + + + CMYK color space. + + + + + GrayScale color space. + + + + + Indexed color space used internally. + + + + + Colors are represented solely with respect to the light source; + no correction is made for the output mediums white point + (such as the color of unprinted paper). + + + + + Colors are represented with respect to the combination of + the light source and the output mediums white point + (such as the color of unprinted paper). + + + + + Colors are represented in a manner that preserves + or emphasizes saturation. + + + + + Colors are represented in a manner that provides a pleasing + perceptual appearance. + + + + + Specifies the blend mode for transparency. + + + + + Selects the source color, ignoring the backdrop. + + + + + Multiplies the backdrop and source color values. + The result color is always at least as dark as either + of the two constituent colors. Multiplying + any color with black produces black; multiplying + with white leaves the original color unchanged. + Painting successive overlapping objects with a color + other than black or white produces progressively darker colors. + + + + + Multiplies the complements of the backdrop and source + color values, then complements the result. The result + color is always at least as light as either of the two + constituent colors. Screening any color with white + produces white; screening with black leaves the original + color unchanged. The effect is similar to projecting + multiple photographic slides simultaneously onto a single screen. + + + + + Multiplies or screens the colors, depending on + the backdrop color value. Source colors overlay + the backdrop while preserving its highlights and + shadows. The backdrop color is not replaced but + is mixed with the source color to reflect the + lightness or darkness of the backdrop. + + + + + Selects the darker of the backdrop and source colors. + The backdrop is replaced with the source where the source + is darker; otherwise, it is left unchanged. + + + + + Selects the lighter of the backdrop and source colors. + The backdrop is replaced with the source where the source + is lighter; otherwise, it is left unchanged. + + + + + Brightens the backdrop color to reflect the source color. + Painting with black produces no changes. + + + + + Darkens the backdrop color to reflect the source color. + Painting with white produces no change. + + + + + Multiplies or screens the colors, depending on the source color value. + The effect is similar to shining a harsh spotlight on the backdrop. + + + + + Darkens or lightens the colors, depending on the source color value. + The effect is similar to shining a diffused spotlight on the backdrop. + + + + + Subtracts the darker of the two constituent colors from the lighter color. + Painting with white inverts the backdrop color; painting with black produces no change. + + + + + Produces an effect similar to that of the Difference mode + but lower in contrast. Painting with white inverts + the backdrop color; painting with black produces no change. + + + + + Creates a color with the hue of the source color and + the saturation and luminosity of the backdrop color. + + + + + Creates a color with the saturation of the source color + and the hue and luminosity of the backdrop color. Painting + with this mode in an area of the backdrop that is a pure + gray (no saturation) produces no change. + + + + + Creates a color with the hue and saturation of + the source color and the luminosity of the backdrop + color. This preserves the gray levels of the backdrop + and is useful for coloring monochrome images or tinting color images. + + + + + Creates a color with the luminosity of the source color + and the hue and saturation of the backdrop color. This + produces an inverse effect to that of the Color mode. + + + + + Specifies the type of the PdfImage. + + + + + Specifies the image is bitmap. + + + + + Specifies the image is metafile. + Note: Metafile can't set dpi and use "Green context" dpi. + + + + + Specifies the types of the page's logical units. + + + + + Specifies the Measurement is in centimeters. + + + + + Specifies the Measurement is in picas. A pica represents 12 points. + + + + + Specifies the unit of measurement is 1 pixel. + + Pixel unit is device dependent unit. The result depends on the default Dpi on the machine. + + + + Specifies a printer's point (1/72 inch) as the unit of measure. + + + + + Specifies the inch as the unit of measure. + + + + + Specifies the document unit (1/300 inch) as the unit of measure. + + + + + Specifies the Measurement is in millimeters. + + + + + + + + + + Specifies the export state of the Layer + + + + + Allways export + + + + + Never export + + + + + Export when visible + + + + + Specifies the print state of the Layer + + + + + Allways print + + + + + Never print + + + + + Print when visible + + + + + Specifies the view state of the Layer + + + + + Allways visible + + + + + never visible + + + + + Visible when on + + + + + Implements structures and routines working with color. + + + + + Gets a null color. + + The empty. + + + + + Gets whether the PDFColor is Empty or not. + + true if this instance is empty; otherwise, false. + + + + + Gets or sets Blue channel value. + + The B. + + + + + Gets the blue. + + + + + Gets or sets Cyan channel value. + + The C. + + + + + Gets or sets Green channel value. + + The G. + + + + + Gets the green. + + The green. + + + + Gets or sets Gray channel value. + + The gray. + + + + + Gets or sets Black channel value. + + The K. + + + + + Gets or sets Magenta channel value. + + The M. + + + + + Gets or sets Red channel value. + + The R. + + + + + Gets the red. + + + + + Gets or sets Yellow channel value. + + The Y. + + + + + Initializes a new instance of the class. + + Source color object. + + + + + Initializes a new instance of the class. + + Source color object. + + + + + Initializes a new instance of the class. + + Gray value. + + + + + Initializes a new instance of the class. + + Red channel value. + Green channel value. + Blue channel value. + + + + + Initializes a new instance of the class. + + Cyan channel value. + Magenta channel value. + Yellow channel value. + Black channel value. + + + + + Creates the Alpha ,Red ,Green, and Blue value of this PDFColor structure. + + ARGB value. + + + + + Implicit operator. + + System.Drawing.Color. + PDFColor. + + + + + Implicit operator. + + System.Drawing.Color. + PDFColor. + + + + + Operator ==. + + The color 1. + The color 2. + + True if color 1 is equal to color 2; otherwise False. + + + + + + Operator !=. + + The color 1. + The color 2. + + True if color 1 is not equal to color 2; otherwise False. + + + + + + Determines whether the specified + is equal to the current . + + The to + compare with the current . + + True if the specified is equal + to the current ; otherwise - + False. + + + + + + Determines if the specified color is equal to this one. + + The color. + + True if the color is equal; otherwise - False. + + + + + + Serves as a hash function for a particular type, suitable for + use in hashing algorithms and data structures like a hash + table. + + + A hash code for the current . + + + + + + Compares colors. + + The color 1. + The color 2. + + True if colors are identical; otherwise - False. + + + + + The class representing a graphics context of the objects. + It's used for performing simple graphics operations. + + + + + The web link collection. + + + + + Gets the size of the canvas. + + Usually, this value is equal to the size of the object this graphics belongs to. + + + + Gets the size of the canvas reduced by margins and page templates. + + It indicates a size of the canvas reduced by margins and template dimensions. + This value doesn't change when any custom clip is set. + + + + Gets or sets the current color space. + + The value change of this property has impact on the objects + which will be drawn after the change. + + + + The web link collection. + + + + + Draws a line. + + The pen. + The point1. + The point2. + + + + Draws a line. + + The pen. + The x1. + The y1. + The x2. + The y2. + + + + Draws a rectangle. + + The pen. + The rectangle. + + + + Draws a rectangle. + + The pen. + The x. + The y. + The width. + The height. + + + + Draws a rectangle. + + The brush. + The rectangle. + + + + Draws a rectangle. + + The brush. + The x. + The y. + The width. + The height. + + + + Draws a rectangle. + + The pen. + The brush. + The rectangle. + + + + Draws a rectangle. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The pen. + The rectangle. + + + + Draws an ellipse. + + The pen. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The brush. + The rectangle. + + + + Draws an ellipse. + + The brush. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The pen. + The brush. + The rectangle. + + + + Draws an ellipse. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Draws an arc. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Draws an arc. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a polygon. + + The pen. + The points. + + + + Draws a polygon. + + The brush. + The points. + + + + Draws a polygon. + + The pen. + The brush. + The points. + + + + Draws a bezier curve. + + The pen. + The start point. + The first control point. + The second control point. + The end point. + + + + Draws a bezier curve. + + The pen. + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Draws a path. + + The pen. + The path. + + + + Draws a path. + + The brush. + The path. + + + + Draws a path. + + The pen. + The brush. + The path. + + + + Draws an image. + + The image. + The point. + + + + Draws an image. + + The image. + The x. + The y. + + + + Draws an image. + + The image. + The rectangle. + + + + Draws an image. + + The image. + The point. + The size. + + + + Draws an image,recommending monochrome image. + + The image. + The image compresson quality. + The point. + The size. + + + + Draws an image. + + The image. + The x. + The y. + The width. + The height. + + + + Draws an image,recommending monochrome image + + The image. + The image compresson quality. + The x. + The y. + The width. + The height. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Translates the coordinates by specified coordinates. + + The X value by which to translate + coordinate system. + The Y value by which to translate + coordinate system. + + + + + Scales the coordinates by specified coordinates. + + The value by which to scale coordinate + system in the X axis direction. + The value by which to scale coordinate + system in the Y axis direction. + + + + + Rotates the coordinate system in clockwise direction around specified point. + + The angle of the rotation (in degrees). + A System.Drawing.PointF that represents the center of the rotation. + + + + Rotates the coordinate system in clockwise direction. + + The angle of the rotation (in degrees). + + + + + Skews the coordinate system axes. + + Skews the X axis by this angle (in + degrees). + Skews the Y axis by this angle (in + degrees). + + + + + Draws a template using its original size, at the specified location. + + object. + Location of the template. + + + + Draws a template at the specified location and size. + + object. + Location of the template. + Size of the template. + + + + Flashes this instance. + + + + + Saves the current state of this Graphics and identifies the saved state with a GraphicsState. + + This method returns a GraphicsState that represents the saved state of this Graphics. + This method works similar to method. + + + + Restores the last state of this Graphics. + + + + + Restores the state of this Graphics to the state represented by a GraphicsState. + + GraphicsState that represents the state to which to restore this Graphics. + This method works similar to method. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip rectangle. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip rectangle. + The fill mode to determine which regions lie inside the clipping path. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip path. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip path. + The fill mode to determine which regions lie inside the clipping path. + + + + Sets the transparency. + + The alpha value for both pen + and brush operations. + + + + Sets the transparency. + + The alpha value for pen operations. + The alpha value for brush operations. + + + + Sets the transparency. + + The alpha value for pen operations. + The alpha value for brush operations. + The blend mode. + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if obj and this instance are the same type and + represent the same value; otherwise, false. + + + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + + + + Represents the state of a Graphics object. + + + + + A class representing page margins. + + + + + Gets or sets the left margin size. + + + + + Gets or sets the top margin size. + + + + + Gets or sets the right margin size. + + + + + Gets or sets the bottom margin size. + + + + + Sets margin of each side. + + Margin of each side. + + + + Initializes a new instance of the class. + + + + + Create and initialize margin. + + The margin size. + + + + Create and initialize margin. + + The left right. + The top bottom. + + + + Create and initialize margin. + + The left. + The top. + The right. + The bottom. + + + + Clones the object. + + The cloned object. + + + + A class defining settings for drawing operations. + + + + + Gets or sets the brush, which specifies the pen behaviour. + + If the brush is set, the color values are ignored, + except for PdfSolidBrush. + + + + Gets or sets the color of the pen. + + + + + Gets or sets the dash offset of the pen. + + + + + Gets or sets the dash pattern of the pen. + + + + + Gets or sets the dash style of the pen. + + + + + Gets or sets the line cap of the pen. + + + + + Gets or sets the line join style of the pen. + + The line join. + + + + Gets or sets the width of the pen. + + + + + Gets or sets the miter limit. + + + + + Initializes a new instance of the class. + + The color. + + + + Initializes a new instance of the class. + + Color of the pen. + Width of the pen's line. + + + + Initializes a new instance of the class. + + The brush. + + + + Initializes a new instance of the class. + + The brush. + Width of the pen's line. + + + + Initializes a new instance of the class. + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Clones this instance. + + A new pen with the same properties. + + + + Class allowing to convert different unit metrics. Converting is + based on Graphics object DPI settings that is why for differ + graphics settings must be created new instance. For example: + printers often has 300 and greater dpi resolution, for compare + default display screen dpi is 96. + + + + + Represents the abstract brush, which containing a basic functionality of a brush. + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Implements gradient brush capabilities. + + + + + Gets or sets the background color of the brush. + + This value is optional. If null is assigned to it, + the associated entry is removed from the appropriate dictionary. + + + + Gets or sets a value indicating whether use anti aliasing algorithm. + + + + + Gets the wrapped element. + + + + + Implements linear gradient brush by using PDF axial shading pattern. + + + + + Initializes a new instance of the class. + + The starting point of the gradient. + The end point of the gradient. + The starting color of the gradient. + The end color of the gradient. + + + + Initializes a new instance of the class. + + A RectangleF structure that specifies the bounds of the linear gradient. + The starting color for the gradient. + The ending color for the gradient. + The mode. + + + + Initializes a new instance of the class. + + A RectangleF structure that specifies the bounds of the linear gradient. + The starting color for the gradient. + The ending color for the gradient. + The angle, measured in degrees clockwise from the x-axis, + of the gradient's orientation line. + + + + Gets or sets a PdfBlend that specifies positions + and factors that define a custom falloff for the gradient. + + + + + Gets or sets a ColorBlend that defines a multicolor linear gradient. + + + + + Gets or sets the starting and ending colors of the gradient. + + + + + Gets a rectangular region that defines + the boundaries of the gradient. + + + + + Gets or sets the value indicating whether the gradient + should extend starting and ending points. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Represent radial gradient brush. + + + + + Initializes a new instance of the class. + + The start centre. + The start radius. + The end centre. + The end radius. + The start color. + The end color. + + + + Gets or sets a PdfBlend that specifies positions + and factors that define a custom falloff for the gradient. + + + + + Gets or sets a ColorBlend that defines a multicolor linear gradient. + + + + + Gets or sets the starting and ending colors of the gradient. + + + + + Gets or sets the rectangle. + + The rectangle. + + + + Gets or sets the value indicating whether the gradient + should extend starting and ending points. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Represents a brush that fills any object with a solid colour. + + + + + Initializes a new instance of the class. + + The color. + + + + Initializes a new instance of the class. + + color + + + + Gets or sets the color of the brush. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Implements a colored tiling brush. + + + + + Initializes a new instance of the class. + + The boundaries of the smallest brush cell. + + + + Initializes a new instance of the class. + + The boundaries of the smallest brush cell. + The Current Page Object. + + + + Initializes a new instance of the class. + + The size of the smallest brush cell. + + + + Initializes a new instance of the class. + + The size of the smallest brush cell. + The Current Page Object. + + + + Gets the boundary box of the smallest brush cell. + + + + + Gets the size of the smallest brush cell. + + + + + Gets Graphics context of the brush. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Gets the element. + + + + + Represents an arc shape. + + It ignores brush setting. + + + + Initializes a new instance of the class. + + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Implements Bezier curve shape. + + + + + Initializes a new instance of the class. + + The start point. + The first control point. + The second control point. + The end point. + + + + Initializes a new instance of the class. + + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Initializes a new instance of the class. + + The pen. + The start point. + The first control point. + The second control point. + The end point. + + + + Initializes a new instance of the class. + + The pen. + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Gets or sets the start point. + + + + + Gets or sets the first control point. + + + + + Gets or sets the second control point. + + + + + Gets or sets the end point. + + + + + Describes an ellipse shape. + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + + + + Gets the radius X. + + + + + Gets the radius Y. + + + + + Gets the center point. + + + + + The base class of arc and pie shapes. + + + + + Gets or sets the start angle. + + + + + Gets or sets the sweep angle. + + + + + Represents a line shape. + + + + + Initializes a new instance of the class. + + The x1. + The y1. + The x2. + The y2. + + + + Initializes a new instance of the class. + + The point1. + The point2. + + + + Initializes a new instance of the class. + + The pen. + The x1. + The y1. + The x2. + The y2. + + + + Initializes a new instance of the class. + + The pen. + The point1. + The point2. + + + + Gets or sets the x coordinate of the start point. + + + + + Gets or sets the y coordinate of the start point. + + + + + Gets or sets the x coordinate of the end point. + + + + + Gets or sets the y coordinate of the end point. + + + + + Implements graphics path, which is a sequence of primitive graphics elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The points. + The path types. + + + + Initializes a new instance of the class. + + The pen. + + + + Initializes a new instance of the class. + + The brush. + + + + Initializes a new instance of the class. + + The brush. + The fill mode. + + + + Initializes a new instance of the class. + + The pen. + The points. + The path types. + + + + Initializes a new instance of the class. + + The brush. + The fill mode. + The points. + The path types. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The fill mode. + + + + Gets or sets the fill mode. + + + + + Gets the path points. + + + + + Gets the path point types. + + + + + Gets the point count. + + + + + Gets the last point. + + + + + Adds an arc. + + The boundaries of the arc. + The start angle. + The sweep angle. + + + + Adds an arc. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Adds a bezier curve. + + The start point. + The first control point. + The second control point. + The end point. + + + + Adds a bezier curve. + + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Adds an ellipse. + + The boundaries of the ellipse. + + + + Adds an ellipse. + + The x. + The y. + The width. + The height. + + + + Adds a line. + + The point1. + The point2. + + + + Adds a line. + + The x1. + The y1. + The x2. + The y2. + + + + Appends the path specified to this one. + + The path, which should be appended. + + + + Appends the path specified by the points and their types to this one. + + The points. + The path point types. + + + + Appends the pie to this path. + + The rectangle. + The start angle. + The sweep angle. + + + + Appends the pie to this path. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Append the closed polygon to this path. + + The points of the polygon. + + + + Appends the rectangle to this path. + + The rectangle. + + + + Appends the rectangle to this path. + + The x. + The y. + The width. + The height. + + + + Starts a new figure. + + The next added primitive will start a new figure. + + + + Closes the last figure. + + + + + Closes all non-closed figures. + + + + + Gets the last point. + + The last point. + + + + Calc Point w/h + + + + + + get this path's bound. + + return this path's bound + + + + Represents Pdf Template object. + + + + + the origin location of the template + + + + + Initializes a new instance of the class. + + The size. + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The width. + The height. + Indicates if the template is used for PdfAppearance. + + + + Gets graphics context of the template. + + It will return null, if the template is read-only. + + + + Gets the size of the template. + + + + + Gets the width of the template. + + + + + Gets the height of the template. + + + + + Gets a value indicating whether the template is read-only. + + true if the template is read-only; otherwise, false. + Read-only templates does not expose graphics. They just return null. + + + + Resets the template and sets the specified size. + + The size. + + + + Resets an instance. + + + + + Gets the wrapped element. + + + + + Represents a pie shape. + + + + + Initializes a new instance of the class. + + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Represents a set of points connected with lines, could be drawn and filled. + + + + + Initializes a new instance of the class. + + The points. + + + + Initializes a new instance of the class. + + The pen. + The points. + + + + Initializes a new instance of the class. + + The brush. + The points. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The points. + + + + Gets or sets the points of the polygon. + + + + + Gets a number of the points in the polygon. + + + + + Adds a point to the polygon. + + The last point of the polygon. + + + + Represents a simple rectangle that could be drawn and/or filled. + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + + + + Represents an area bound by a rectangle. + + + + + Gets or sets the X co-ordinate of the upper-left corner of this the element. + + + + + Gets or sets the Y co-ordinate of the upper-left corner of this the element. + + + + + Gets or sets the width of this element. + + + + + Gets or sets the height of this element. + + + + + Gets or sets the size of this element. + + + + + Gets or sets bounds of this element. + + + + + Represents the bitmap images. + + + + + When replacing the picture,use this property + + + + + Gets or sets the active frame of the bitmap. + + The active frame index. + + + + Gets the number of frames in the bitmap. + + The frame count. + + + + Gets or sets the mask of bitmap. + + New PdfMask. + + + + Gets or sets the quality. + The range is from 0 to 100, 100 is the best quality. + + + When the image is stored into PDF not as a mask, + you may reduce its quality, which saves the disk space. + + + + + When replacing the picture,use this property + + + + + Creates new PdfBitmap instance. + + The image path. + + + + Creates new PdfBitmap instance. + + The stream. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Performs application-defined tasks associated with freeing, + releasing, or resetting unmanaged resources. + + + + + define method "SaveAsRawImageForIndexedFormat" supported IndexedFormat + + + + + + save indexed bitmap to raw image + support PixelFormat: Format1bppIndexed Format4bppIndexed Format8bppIndexed + + + + + + + + + + + + + + rgb image to cmyk + + + + + Represents the color mask for bitmaps. + + + + + Gets or sets the start color. + + The start color. + + + + Gets or sets the end color. + + The end color. + + + + Creates new PdfColorMask object. + + The start color. + The end color. + + + + Represents the base class for images. + + + + + Gets the height of the image in pixels. + + The height. + + + + If True, png direct convert to Jpx and no mask. + + + + + Gets the width of the image in pixels. + + The width. + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + The horizontal resolution. + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + The vertical resolution. + + + + Returns the size of the image in points. + + This property uses HorizontalResolution and VerticalResolution for calculating the size in points. + + + + Gets or sets the active frame of the image. + + + + + Gets the number of frames in the image. + + + + + Creates PdfImage from a file. + + Path to a file. + Returns a created PdfImage object. + + + + Creates PdfImage from stream. + + The stream. + Returns a created PdfImage object. + + + + Converts a object into a PDF image. + + The image. + Returns a created PdfImage object. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Type of the image that should be created. + The text string format. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Type of the image that should be created. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Height of the image in points. + Type of the image that should be created. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Height of the image in points. + Type of the image that should be created. + The text string format. + PdfImage containing RTF text. + + + + Gets the wrapped element. + + + + + Represents the image mask object for bitmaps. + + + + + Gets the image mask. + + The image mask. + + + + Gets the mask type. + + true if soft mask; otherwise, hard mask false. + + + + Creates new PdfImageMask object. + + The image mask. + + + + Base class for bitmap masking objects. + + + + + Class representing metafiles. + + + + + Check whether is unicode in private use areas. + + The text string. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + + load URL time out + + + + + load URL whether Waiting + + + + + + WebBrowser load Complete + + + + + Gets or sets page settings of the section. + + + + + Get html page start time + + + + + load URL whether Waiting + + + + + webBrowser load html whether Waiting time in milliseconds. + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + Gets or sets page settings of the section. + + + + + Options of converting html to pdf + + + + + Not clip + + + + + Clips width + + + + + Clips height + + + + + Clips width and height + + + + + default 30 s + + + + + load URL whether Waiting + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + Gets or sets layout type of the element. + + + + + If html view is larger than pdf page, zooms out it to fit pdf page. + But if html view is smaller than, will not zoom in it. + + + + + If html view is larger than page, resize pdf page to fit html view. + But if html view is smaller than, will not resize pdf page. + + + + + If html view is smaller than page, trim pdf page to fit html view. + + + + + The maximum time in milliseconds to wait the completion of loading html. + Default is 30000. + + + + + webBrowser load html whether Waiting + + + + + webBrowser load html whether Waiting time in milliseconds. + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + load from content type + + + + + load from ulr or file + + + + + load html SourceCode + + + + None -> 0 + + + Width -> 1 + + + Height -> 2 + + + Both -> 4 + + + float + + + float + + + float + + + float + + + Size + + + Size + + + Margins + + + PdfLayoutType + + + Clip + + + Clip + + + Clip + + + int + + + float + + + float + + + float + + + float + + + FRect + + + int + + + FRect + + + + Pointer to DebugLog.CLogInfo, C module uses it to write log message. + + + + + Pointer to HTMLConverter.dll + + + + + Pointer to ConvertToHTML method. + + + + + Path of dll folder, which contains HTMLConverter.dll + + + + + Convert HTML to PDF with plugin. + For more details, please check https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-with-New-Plugin.html + + + + + Sets the path of the folder which cantains the HTMLConverter.dll + and other dll files required for conversion. + + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf file name. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf Stream. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf file name. + the load htmlcode or url + + + + Convert an html page to a pdf stream. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf stream. + the load htmlcode or url + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf file name. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf stream. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf stream. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + [Obsolete("This method may be removed in the future.")] + + + + init HTML2PDFOption param + + Url address of the html page. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf file name. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + url or htmlcontent + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf stream. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + url or htmlcontent + + + + Support functions about Qt plugin library. + + + + + Load plugin library from plugin directory. + + The plugin directory. + The plugin library ptr. + + + + Free plugin library. + + The plugin library ptr. + + + + Get method delegate from plugin library. + + The method delegate type. + The plugin library ptr. + The method name. (avoid obfuscated code error) + The method delegate. + + + + Get default plugin directory. + + The default plugin directory. + + + + Get the absolute path. + + The path. + The absolute path. + + + + Generate temp file absolute path. + + The temp file name. + The temp file absolute path. + + + + Get plugin library helper on current platform. + + The plugin library helper. + + + + Load library. + + The full library file path. + The plugin library ptr. + + + + Free library. + + The plugin library ptr. + + + + Get method ptr. + + The plugin library ptr. + The method name. + The method ptr. + + + + Get error. + + The error. + + + + Prepare full library file name. + + The library directory. + The library file name,not include extensions. + The full library file name. + + + + Support functions about qt plugin library on windows. + + + + + Support functions about qt plugin library on linux. + + + + + Support functions about qt plugin library on unix-like. + + + + + Represents the layout parameters. + + + + + Gets or sets the starting layout page. + + + + + Gets or sets the lay outing bounds. + + + + + Gets or sets the vertical offsets. + + The vertical offsets. + + + + Gets or sets the lay outing settings. + + + + + HTML tags + + + + + parsing html tags + + html content + + drawing font + + + + + parsing html tags + + html content + + + + + + + + set html type + + + + + + + set text font + + + + + + set font style + + + + + + + + Represents the result of html to pdf conversion. + + + + + Initializes a new instance of the class. + + The image. + The page breaks. + The anchors. + + + + Gets the rendered image. + + The rendered image. + + + + Draws the HtmlToPdfResults on to the document. + + The Pdf Page. + The Metafile layout format. + + + + Performs application-defined tasks associated with releasing, or resetting unmanaged resources. + + + + + Specfies the status of the IPdfPrmitive. + + + + + The information of cross-reference store in a cross-referebnce stream + + + + + The reprocess object infomation + + + + + + The current load state + + + + + The highest object number in the document. + + + + + The load state + + + + + Gets the ReProcess Object infomation + + + + + Parse the cross reference stream in hybrid reference + + the position of the XRefstm object + the object + + + + Check whether the entry of cross reference stream is in correct place + + if correct return true ,otherwise false + + + + Check whether the entry of cross reference table is in correct place + + If correct return true ,otherwise false + + + + Check whether the entry`s offset that in cross reference table or cross reference stream is + in correct place + + If correct return true ,otherwise false + + + + Get object. + + The object information + The object number + The object + + + + Reparse object + + The object number + The object + + + + It is an error to process a cross reference stream, + where the object information obtained is reprocessed + + + + + Get the current object number stack + + The current object number stack + + + + Get the reference. + + The reference + + + + add the document info to the pdfObjects + + + + + Fixed TokenType.UnicodeString mismatch. + + + + + The collection of index objects. + + + + + Add object index. + + The element + The index + + + + Get Holds all integers that have been read ahead. + + + + + Check whether the indirect object`s position in file are same as the offset + + The indirect object`offset + The object number + If correct return true ,otherwise return false + + + + Get the stream of the XRefStm object + + a stream + + + + Reset the fields value. + + + + + Max free convert pages. + + + + + Retrieves character type info + + + + + Retrieves bi-directional layout info + + + + + Retrieves text processing info + + + + + Uppercase + + + + + Lowercase + + + + + Decimal digits + + + + + Space characters + + + + + Punctuation + + + + + Control characters + + + + + Blank characters + + + + + Hexadecimal digits + + + + + Any linguistic character: alphabetic, syllabary, or ideographic + + + + + Left to right + + + + + Right to left + + + + + European number, European digit + + + + + European numeric separator + + + + + European numeric terminator + + + + + Arabic number + + + + + Common numeric separator + + + + + Block separator + + + + + Segment separator + + + + + White space + + + + + Other neutrals + + + + + No implicit directionality (for example, control codes) + + + + + Diacritic nonspacing mark + + + + + Vowel nonspacing mark + + + + + Symbol + + + + + Katakana character + + + + + Hiragana character + + + + + Half-width (narrow) character + + + + + Full-width (wide) character + + + + + Ideographic character + + + + + Arabic Kashida character + + + + + Punctuation which is counted as part of the word + (Kashida, hyphen, feminine/masculine ordinal indicators, equal sign, and so forth) + + + + + All linguistic characters (alphabetical, syllabary, and ideographic) + + + + + Not applicable + + + + + Native enum. + + + + + Record of Emf metafile. + + + + + New miter limit. + + + + + Record of Emf metafile. + + + + + The XFORM structure specifies a world-space to page-space transformation. + + + + + Specifies scaling/rotation/reflection + + + + + Specified shear/rotation + + + + + Specified shear/rotation + + + + + Specifies scaling/rotation/reflection + + + + + Specifies the horizontal translation component, in logical units. + + + + + Specifies the vertical translation component, in logical units. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Point creation from lParam's data. + + lParam's data for initialing point structure. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + ABC structure. + + + + + Structure for 32 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Value of Alpha chanel. + + + + + Structure for 24 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Structure for 24 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + The source of the event. + A that contains the event data. + + + + Provides data for PageAdded event. + + + This event raised on adding the pages. + + + + + Gets the newly added page. + + a object representing the page which is added in the document. + + + + Initializes a new instance of the class. + + a object representing the page which is added in the document. + + + + Encapsulates a page template for all the pages in the document. + + + + + Gets or sets a left page template. + + + + + Gets or sets a top page template. + + + + + Gets or sets a right page template. + + + + + Gets or sets a bottom page template. + + + + + Gets or sets a left page template using on the even pages. + + + + + Gets or sets a top page template using on the even pages. + + + + + Gets or sets a right page template using on the even pages. + + + + + Gets or sets a bottom page template using on the even pages. + + + + + Gets or sets a left page template using on the odd pages. + + + + + Gets or sets a top page template using on the odd pages. + + + + + Gets or sets a right page template using on the odd pages. + + + + + Gets or sets a bottom page template using on the odd pages. + + + + + Gets a collection of stamp elements. + + + + + Initializes a new instance of the class. + + + + + The base class for all pages. + + + + + The page pieces info. + + + + + Returns the visible region of the page. + + + + + Returns page region after clipping. + + + + + Returns page region mediabox. + + + + + Returns page region after trimming. + + + + + Returns page region containing content. + + + + + Gets the field collection. + + + + + Get the page piece info. + + + + + Gets or sets page's background color. + + + + + The position and size of the background + + + + + Gets the information about the extracted image. + + + + + Gets the graphics of the . + + + + + Gets the parent section of the page. + + + + + Gets the collection of the page's layers. + + + + + Gets or sets index of the default layer. + + + + + Gets the default layer of the page. + + + + + Gets the size of the page. + + + + + Gets the actual size of the page. + + + + + Gets or sets page's background image. + + + + + Get the page label. + + + + + Returns page is blank flag for page's content. + + + + + Returns a page size reduced by page margins and page template dimensions. + + It's the actual size of the page where some output can be performed. + Returns a page size reduced by page margins and page template dimensions. + + + + Replace the Image at index's Position. + + The index of original image. + The new replace image. + + + + Replace the Image through the original image. + + The original image + The New Replace image + + + + Whether it is a image dictionary. + + The dictionary. + The dictionary is an image or not. + + + + Detemine whether the image in resource dictionary is used on current page + + the resource image name + if be used return true or false + + + + Creates a template from page content and all annotation appearances. + + The created template. + + + + Find text + + The text intends to search. + + Indicate the expected result is the whole word or not, which means, if it is true, only the word is exactly the same with the + searching word will be found;if it is false, any word including the searching word will be found. For instance,the text is "is this a pen?" + and the target is "is", if true, one result will be returned; if false, two results will be returned. + + + + + + Find text + + string searchPatternText + + + + + Find text + + + + + + + + + + + + Find all text and position. + + All text find in the page. + + + + Extracts text from the given PDF Page by SimpleTextExtractionStrategy. + + The Extracted Text. + + + + Extracts text in the range of rectangle from the given PDF Page. + The unit is Point,1/72 inch default. + the coordinate origin is top left corner of the page. + + Provide a rangle to extract text. + The Extracted Text. + + + + Extracts text in the range of rectangle from the given PDF page by SimpleTextExtractionStrategy. + the coordinate origin is top left corner of the page. + + Provide a rangle to extract text. + Provide simple text extraction policy + The Extracted Text. + + + + Extracts text from the given PDF Page. + + The Extracted Text. + + + + Extracts text from the given PDF Page. + + textExtractContext + The Extracted Text. + + + + foreach font from Dictionary + + pagedic + + + + Extracts images from the given PDF Page. + The name of a image in the resources save in the Tag attribute of the iamge. + + Returns the extracted image as Image[]. + + + + Extracts images from the given PDF Page. and image is not processed. + The name of a image in the resources save in the Tag attribute of the image. + + Returns the extracted image as Image[]. + + + + Delete an image. + The value of the image's Tag attribute is the name of the image in the resources. + If the value of Tag is null,the sample image is an inline image type. + + The image to be delete. + + + + Delete an image. + The value of the image's Tag attribute is the name of the image in the resources. + If the value of Tag is null,the sample image is an inline image type. + Warning : You must make sure that the image resource you are removing is the only + one referenced,otherwise an error will occur. + + The image to be delete. + whether to delete the image resource. + + + + Delete an image in a page. + + The image's name. + + + + Delete an image in a page. + + The image's name. + + + + Delete image's paint operator and image's resource in XObject stream. + + The XObject's dictionary of the page. + The resource dicionary in the XObject. + The name of image that going to remove. + The child XObject's item. + + + + Delete image's paint operator in XObject stream. + + The XObject's dictionary of the page. + The name of image that going to remove. + The child XObject's item. + + + + Delete an image by index in a page. + + The image index. + + + + Try to compress images(except inline image). + + The image index + If success, return true; otherwise false. + + + + Update page layer. + used after modifying the contenet stream of page. + + + + + Set tab order. + + The order name + + + + Gets the wrapped element. + + + + + Get page content. bug3787/1212 + + + + + + Whether this page exist blend mode. + + If exist ,return true,or false + + + + Whether exist blend mode in page content. + + If exist ,return true,or false + + + + Whether exist blend mode in page annotations content. + + If exist ,return true,or false + + + + Whether exist blend mode in Xobject. + + The xobject dictionary + The resource has validated. + If exist ,return true,or false + + + + Whether exist blend mode in form. + + The form stream + The resource has validated. + if exist,return true,or false + + + + Get forms type. + + The resource dictionary + forms type dictionary + + + + Whether is apply the extgstate. + + The record collection + The forms type + The gs name + If apply,return true,or false + + + + Insert rich text to page + + rich text + width + IsSplitLine + + + + Insert rich text to page + + rich text + width + IsSplitLine + Draw text x,y point + + + + Insert rich text to page + + rich text + width + IsSplitLine + + + + Insert rich text to page + + rich text + width + IsSplitLine + Draw text x,y point + + + + Raises before the page saves. + + + + + Represents parameters how to display the page in the presentation mode. + + + + + Gets or sets the transition style to use when moving to this page from another + during a presentation. + + The style. + + + + Gets or sets the duration of the transition effect, in seconds. + + The transition duration. + + + + Gets or sets the dimension in which the specified transition effect occurs. + + The dimension. + + + + Gets or sets the the direction of motion for the specified transition effect. + + The motion. + + + + The direction in which the specified transition effect moves, expressed in degrees counter + clockwise starting from a left-to-right direction. (This differs from the page objects + Rotate property, which is measured clockwise from the top.) + + + + + Gets or sets the starting or ending scale at which the changes are drawn. + If Motion property specifies an inward transition, the scale of the changes drawn progresses + from Scale to 1.0 over the course of the transition. If Motion specifies an outward + transition, the scale of the changes drawn progresses from 1.0 to Scale over the course + of the transition. + + + This property has effect for Fly transition style only. + + The scale. + + + + Gets or sets The pages display duration (also called its advance timing): the maximum + length of time, in seconds, that the page is displayed during presentations before + the viewer application automatically advances to the next page. By default, + the viewer does not advance automatically. + + The page duration. + + + + Initializes a new instance of the class. + + + + + Gets the element. + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Manipulates pages within a section. + + + + + Gets the at the specified index. + + + + + Gets the count of the pages. + + + + + Creates a new page and adds it into the collection. + + The new page. + + + + Adds a page into collection. + + The page. + + + + Inserts a page at the specified index. + + The index. + The page. + + + + Returns the index of the specified page. + + The page. + The index of the page. + + + + Determines whether the specified page is within the collection. + + The page. + + true if the collection contains the specified page; otherwise, false. + + + + + Removes the specified page. + + The page. + + + + Removes a page at the index specified. + + The index. + + + + Clears this collection. + + + + + + Encapsulates a page template for all the pages in the section. + + + + + Gets or sets value indicating whether parent Left page template should be used or not. + + + + + Gets or sets value indicating whether parent Top page template should be used or not. + + + + + Gets or sets value indicating whether parent Right page template should be used or not. + + + + + Gets or sets value indicating whether parent Bottom page template should be used or not. + + + + + Gets or sets value indicating whether + the parent stamp elements should be used or not. + + + + + Creates a new object. + + + + + A collection of stamps that are applied to the page templates. + + + + + Gets a stamp element by its index. + + + + + Creates a new stamp collection. + + + + + Adds a stamp element to the collection. + + The stamp element. + The index of the stamp element. + + + + Creates a stamp element and adds it to the collection. + + X co-ordinate of the stamp. + Y co-ordinate of the stamp. + Width of the stamp. + Height of the stamp. + The created stamp element. + + + + Checks whether the stamp element exists in the collection. + + Stamp element. + True - if stamp element exists in the collection, False otherwise. + + + + Inserts a stamp element to the collection at the specified position. + + The index of the stamp in the collection. + The stamp element. + + + + Removes the stamp element from the collection. + + The stamp element. + + + + Removes a stamp element from the specified position in the collection. + + The index of the stamp in the collection. + + + + Cleares the collection. + + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Collection of loaded and created pages. + + + + + + + + + + Gets the conformance level applied in the document. + + + + + Load from Stream ,And Used by PdfViewer-Asp + + + + + + + Load from Stream with password,And Used by PdfViewer-Asp + + + + + + + + Verify PDF Document regarding signature. + + Signature field name. + signature is validated return true,otherwise false + + + + Check if the document was altered after signed. True if modified; otherwise false. + + Signature field name. + signature is validated return false,otherwise true + + + + Get PdfSignatureFieldWidget obj from form by signName + + + + + + + + Remove Extended right. + + + + + + Get next PdfSignatureFieldWidget obj from form by signName + + + + + + + + Get PDF Document regarding CertificateData + + Signature field name. + + + + Get PDF Document regarding signature. + + Signature field name. + + + + Get the signature dictionary + + + + + + + + + + + + + + + + + + + + + + + + PdfDocumentBase Object + + + + + + Represents a logic to create Pdf document. + + + + + Layer OCProperties info + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The conformance level. + Not Supported under Medium Trust environment. + + + + set conformance value. + + The Conformance level. + + + + Delegate for the event. + + The sender. + The arguments. + + + + Occurs when the document is being saved. + + + This event raised on saving the document. It will keep track of the save progress of the document. + + + + + Layer OCProperties info + + + + + Gets the root of the bookmark tree in the document. + + A object specifying the document's bookmarks. + Creates an bookmark root instance + if it's called for first time. + + + + Gets the attachments of the document. + + The object contains list of files which are attached in the PDF document. + + + + Gets the interactive form of the document. + + The object contains the list of form elements of the document. + + + + Gets or sets the color space of the document. + + This property has impact on the new created pages only. + If a page was created it remains its colour space obliviously + to this property changes. + The of the document. + + + + Gets the default font. It is used for complex objects when font is + not explicitly defined. + + The default font. + + + + Indicates the document is a merged document or not, defalut value: false. + + + + + Gets a value indicating whether the document was encrypted. + + true if the document was encrypted; otherwise, false. + + + + Gets or Sets the Pdf Conformance level. + Supported : PDF/A-1b - Level B compliance in Part 1 + + + + + Saves the document to the specified stream. + + The stream object where PDF document will be saved. + + + + Closes the document. + + if set to true the document should be disposed completely. + The document is disposed after calling the Close method. So, the document can not be saved if Close method was invoked. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + The resulting clone must be of the same type as or a compatible type to the original instance. + + + + Shows the saving progress. + + + + + Gets the total number of the elements (pages) that need to be saved. + + + + + Gets the current element (page) index that just was saved. + + The index value increases constantly from 0 to Total. + + + + Gets the progress. + + Progress constantly increases from 0.0 to 1.0. + 1.0 value means that entire document has been saved. + + + + A class containing the information about the document. + + + + + Predefined properties in document info. + + + + + The metadata in catalog. + + + + + Gets or sets the creation date. + + + + + Gets or sets the modification date. + + + + + Gets or sets the title. + + + + + Gets or sets the author. + + + + + Gets or sets the subject. + + + + + Gets or sets the keywords. + + + + + Gets or sets the creator. + + + + + Gets or sets the producer. + + + + + Remove custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + + + + Set custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + The property value. + + + + Get custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + The property value.null if property not exist. + + + + Get all custom properties. + + The all properties. + + + + Gets the element. + + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Synchronize metadata. + + + + + Synchronize metadata's author. + + + + + Synchronize metadata's create date. + + + + + Synchronize metadata's creator. + + + + + Synchronize metadata's keywords. + + + + + Synchronize metadata's modification date. + + + + + Synchronize metadata's producer. + + + + + Synchronize metadata's subject. + + + + + Synchronize metadata's title. + + + + + Synchronize metadata's customProperties. + + + + + A metadata stream containing metadata for document. + + + + + Special char mapping in custom property name. + + + + + ISO8601 datetime format. + + + + + The metadata stream. + + + + + The xmp metadata structure. + + + + + A constructor for new metadata stream. + + + + + A constructor for a existing metadata stream. + + A existing metadata stream. + + + + Set author. If value is null, delete the property. + + The author. + + + + Get author. + + + + + Whether exist author property. + + Returns true if the property exists. + + + + Set create date.If value is null, delete the property. + + The create date. + + + + Set create date.If value is null, delete the property. + + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Get create date. + + + + + Whether exist create date property. + + Returns true if the property exists. + + + + Set creator. If value is null, delete the property. + + The creator. + + + + Get creator. + + + + + Whether exist creator property. + + Returns true if the property exists. + + + + Set keywords. If value is null, delete the property. + + The keywords. + + + + Get keywords. + + + + + Whether exist keywords property. + + Returns true if the property exists. + + + + Set modify date. If value is null, delete the property. + + The modify date. + + + + Set modify date. If value is null, delete the property. + + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Get modify date. + + + + + Whether exist modify date property. + + Returns true if the property exists. + + + + Set producer. If value is null, delete the property. + + The producer + + + + Get producer. + + + + + Whether exist producer property. + + Returns true if the property exists. + + + + Set subject. If value is null, delete the property. + + The subject. + + + + Get subject. + + + + + Whether exist subject property. + + Returns true if the property exists. + + + + Set title. If value is null, delete the property. + + The title. + + + + Get title. + + + + + Whether exist title property. + + Returns true if the property exists. + + + + Set custom property. If value is null, delete the property. + + The property name. + The property value. + + + + Get custom property. + + The property name. + + + + Whether xxist custom property. + + The property name. + Returns true if the property exists. + + + + Get all custom properties. + + The custom properties. + + + + Set pdf conformanceLevel. + + The pdf conformanceLevel. + + + + Get pdf conformanceLevel. + + The pdf conformanceLevel. + + + + Unescape special char in the escaped property name. + + The escaped property name. + The property name. + + + + The first character of an xml node name can only be a letter or a short underscore. + + The name + Processed string + + + + The first character of an xml node name can only be a letter or a short underscore. + + The name + UnProcessed string + + + + Escape special char in the property name. + + The property name. + The escaped property name. + + + + Convert xmp date time to .net DateTime + + The xmp date time. + The .net DateTime + + + + Gets the element. + + + + + + Defines the way the document is to be presented on the screen or in print. + + + + + A flag specifying whether to position the documents window in the center of the screen. + + + + + Set Expand or Collapse + + + + + + + Find Node Tree + + + + + + + + iterates Bookmark,Set Expand or Collapse + + + + + + + + + Find the click node + + + + + + + + + It's true,expand node + It's false,collapse node + + + + + A flag specifying whether the windows title bar should display the document title taken + from the Title entry of the document information dictionary. If false, the title bar + should instead display the name of the Pdf file containing the document. + + + + + A flag specifying whether to resize the documents window to fit the size of the first + displayed page. + + + + + A flag specifying whether to hide the viewer applications menu bar when the + document is active. + + + + + A flag specifying whether to hide the viewer applications tool bars when the document is active. + + + + + A flag specifying whether to hide user interface elements in the documents window + (such as scroll bars and navigation controls), leaving only the documents contents displayed. + + + + + A name object specifying how the document should be displayed when opened. + + + + + A name object specifying the page layout to be used when the document is opened. + + + + + Gets or Set the page scaling option to be selected + when a print dialog is displayed for this document. + + + + + Gets the element. + + + + + + Base collection of the pdf objects. + + + + + Initializes a new instance of the class. + + + + + Gets number of the elements in the collection. + + The total number of elements in the collection. + + + + Gets internal list of the collection. + + + + + Returns an enumerator that iterates through a collection. + + Returns an enumerator that iterates through a collection. + + + + Get a resource. + + The resource name. + The resource type. + A resource.return null if not exist. + + + + Get the resource. + + The resource name. + The resource type. + The resource.Return null,if not contain a resource with the name. + + + + Add a resource. + + The resource name. + The resource. + The resource type. + + + + Add a resource. + + The resource. + The resource type. + + + + Remove a resource. + + The resource name. + The resource type. + + + + Whether to contain the resource. + + The resource. + The resource type. + True,if contain the resource;False,otherwise. + + + + Get the resources. + + The resource type. + The resources dictionary of the resource type. + + + + Enumerator that implements page orientations. + + + + + Portrait orientation. + + + + + Landscape orientation. + + + + + The number of degrees by which the page should be rotated clockwise when displayed or printed. + + + + + The page is rotated as 0 angle. + + + + + The page is rotated as 90 angle. + + + + + The page is rotated as 180 angle. + + + + + The page is rotated as 270 angle. + + + + + Specifies numbering style of page labels. + + + + + No numbering at all. + + + + + Decimal arabic numerals. + + + + + Lowercase letters a-z. + + + + + Lowercase roman numerals. + + + + + Uppercase letters A-Z. + + + + + Uppercase roman numerals. + + + + + Specifies the docking style of the page template. + + This enumeration is used in class. + + + + The page template is not docked. + + + + + The page template edge is docked to the bottom page's side. + + + + + The page template edge is docked to the top page's side. + + + + + The page template edge is docked to the left page's side. + + + + + The page template edge is docked to the right page's side. + + + + + The page template stretch on full page. + + + + + Specifies how the page template is aligned relative to the template area. + + This enumeration is used in class. + + + + Specifies no alignment. + + + + + The template is top left aligned. + + + + + The template is top center aligned. + + + + + The template is top right aligned. + + + + + The template is middle left aligned. + + + + + The template is middle center aligned. + + + + + The template is middle right aligned. + + + + + The template is bottom left aligned. + + + + + The template is bottom center aligned. + + + + + The template is bottom right aligned. + + + + + A name object specifying the page layout to be used when the + document is opened. + + + + + Default Value. Display one page at a time. + + + + + Display the pages in one column. + + + + + Display the pages in two columns, with odd numbered + pages on the left. + + + + + Display the pages in two columns, with odd numbered + pages on the right. + + + + + Display the pages two at a time, with odd-numbered pages on the left + + + + + Display the pages two at a time, with odd-numbered pages on the right + + + + + Represents mode of document displaying. + + + + + Default value. Neither document outline nor thumbnail images visible. + + + + + Document outline visible. + + + + + Thumbnail images visible. + + + + + Full-screen mode, with no menu bar, window + controls, or any other window visible. + + + + + Optional content group panel visible. + + + + + Attachments are visible. + + + + + Page template is not used as header. + + + + + Page template is used as Top. + + + + + Page template is used as Bottom. + + + + + Page template is used as Left. + + + + + Page template is used as Right. + + + + + Enumeration of possible transition styles when moving to the page from another + during a presentation + + + + + Two lines sweep across the screen, revealing the new page. The lines may be either + horizontal or vertical and may move inward from the edges of the page or outward + from the center. + + + + + Multiple lines, evenly spaced across the screen, synchronously sweep in the same + direction to reveal the new page. The lines may be either horizontal or vertical. + Horizontal lines move downward; vertical lines move to the right. + + + + + A rectangular box sweeps inward from the edges of the page or outward from the center, + revealing the new page. + + + + + A single line sweeps across the screen from one edge to the other, revealing the new page. + + + + + The old page dissolves gradually to reveal the new one. + + + + + Similar to Dissolve, except that the effect sweeps across the page in a wide band moving from + one side of the screen to the other. + + + + + The new page simply replaces the old one with no special transition effect. + + + + + Changes are flown out or in, to or from a location that is offscreen. + + + + + The old page slides off the screen while the new page slides in, pushing the old page out. + + + + + The new page slides on to the screen, covering the old page. + + + + + The old page slides off the screen, uncovering the new page. + + + + + The new page gradually becomes visible through the old one. + + + + + Enumeration of transition dimensions. + + + + + Horizontal effect. + + + + + Vertical effect. + + + + + Enumeration of transition motions. + + + + + Inward motion from the edges of the page to center.. + + + + + Outward motion from the center of the page to edges. + + + + + Enumeration of transition directions. + + + + + Left to Right direction. + + + + + Bottom to Top direction. + + + + + Right to Left direction. + + + + + Top to Bottom direction. + + + + + TopLeft to BottomRight direction. + + + + + A name specifying the tab order to be used for annotations on the page. + + + + + Row Order + + + + + Column Order + + + + + Structure Order + + + + + Unspecified + + + + + Represents information about page size. + + + + + Letter format. + + + + + Note format. + + + + + Legal format. + + + + + A0 format. + + + + + A1 format. + + + + + A2 format. + + + + + A3 format. + + + + + A4 format. + + + + + A5 format. + + + + + A6 format. + + + + + A7 format. + + + + + A8 format. + + + + + A9 format. + + + + + A10 format. + + + + + B0 format. + + + + + B1 format. + + + + + B2 format. + + + + + B3 format. + + + + + B4 format. + + + + + B5 format. + + + + + ArchE format. + + + + + ArchD format. + + + + + ArchC format. + + + + + ArchB format. + + + + + ArchA format. + + + + + The American Foolscap format. + + + + + HalfLetter format. + + + + + 11x17 format. + + + + + Ledger format. + + + + + Represents a page loaded from a document. + + + + + Gets the size of the page. + + + + + Get the visible region of the page. + + + + + Gets the document. + + + + + Raises before the page saves. + + + + + Gets the text size of a specified font. + + Font key + Returns the text size of the specified font + + + + Represents a single PDF page. + + + + + Gets the size of the page. + + + + + Gets a collection of the annotations of the page. + + + + + Initializes a new instance of the class. + + + + + Sets crop box. + + + + + get xobject + + + + + + + create xobject + + + + + + + + refactoring resources,exclusion does not require resources + + + + + execute commond + + + + + + + + execute xobject + + + + + + + + Implements a virtual collection of all pages in the document. + + + + + Gets the total number of the pages. + + + + + Gets a page by its index in the document. + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + + + + Creates a page and adds it to the last section in the document. + + Created page object. + + + + Inserts a page at the specified index to the last section in the document. + + The index of the page in the section. + The page. + + + + Gets the index of the page in the document. + + The current page. + Index of the page in the document if exists, -1 otherwise. + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Describes layer of the page. + + + + + Gets parent page of the layer. + + + + + Gets Graphics context of the layer. + + + + + Creates new layer. + + Parent page of the layer. + + + + Gets the wrapped element. + + + + + Collection of the pages layers. + + + + + Gets or sets element by its index. + + The layers belonging to the same page can be added to the collection only. + + + + Creates new collection. + + Parent page for the layers in the collection. + + + + Creates a new layer and adds it to the end of the collection. + + Created layer. + + + + Creates a new layer and adds it to the end of the collection. + + Layer Name. + Layer Visibility. + Created layer. + + + + Creates a new layer and adds it to the collection. + + Layer Name. + Created layer. + + + + Creates a new layer and adds it to the end of the collection. + + Layer Name. + Layer Id. + Layer Visibility. + Created layer. + + + + You can only delete the layer that exists in the source document + + Layer Name. + + + + + You can only delete the layer that exists in the source document + + Layer Name. + Is delete all content include in this layer. + Is remove layerdefine in doc properties.. + delete layer message. + + + + Adds layer to the collection. + + Layer object. + The layers belonging to the same page can be added to the collection only. + + + + Inserts layer into collection. + + Index of the layer. + Layer object. + The layers belonging to the same page can be added to the collection only. + + + + Removes layer from the collection. Only the currently created layer can be deleted + + Layer object. + + + + Removes layer by its index. Only the currently created layer can be deleted + + Index of the layer. + + + + Checks whether collection contains layer. + + Layer object. + True - if collection contains layer, False otherwise. + + + + Returns index of the layer in the collection if exists, -1 otherwise. + + Layer object. + Returns index of the layer in the collection if exists, -1 otherwise. + + + + Cleares the collection. + + + + + Registers layer at the page. + + Index of the layer in the collection. + The new layer. + + + + Registers layer at the page. + + Index of the layer in the collection. + The new layer. + + + + Parses the layers. + + The loaded page. + + + + The flag of q or Q before and after all stream. Bug1031 + + The contents. + The cross table. + The flag. + + + + Represent class with setting of page. + + + + + Gets or sets the page orientation. + + + + + Gets or sets the size of the page. + + + + + Gets or sets the width of the page. + + + + + Gets or sets the height of the page. + + + + + Gets or sets the margins of the page. + + + + + Gets or sets the number of degrees by which the page should be rotated clockwise when displayed or printed. + + + + + Gets or sets the transition. + + The transition. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The size. + + + + Initializes a new instance of the class. + + The page orientation. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + + + + Initializes a new instance of the class. + + The margins. + + + + Initializes a new instance of the class. + + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Initializes a new instance of the class. + + The size. + The margins. + + + + Initializes a new instance of the class. + + The size. + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + The margins. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Sets the margins. + + The margins. + + + + Sets the margins. + + The left right. + The top bottom. + + + + Sets the margins. + + The left. + The top. + The right. + The bottom. + + + + Creates a clone of the object. + + Cloned object. + + + + Specifies the paper tray when the document is printed. + + + + + Gets or sets the page number (non zero-based) of the first page to print. + + + + + Gets or sets the page number (non zero-based) of the last page to print. + + + + + Specifies the paper tray from which the printer gets paper. + + + + + Describes a page template object that can be used as header/footer, watermark or stamp. + + + + + Gets or sets the dock style of the page template element. + + + + + Gets or sets alignment of the page template element. + + + + + Indicates whether the page template is located in front of + the page layers or behind of it. + + + + + Indicates whether the page template is located behind of + the page layers or in front of it. + + + + + Gets or sets location of the page template element. + + + + + Gets or sets X co-ordinate of the template element on the page. + + + + + Gets or sets Y co-ordinate of the template element on the page. + + + + + Gets or sets size of the page template element. + + + + + Gets or sets width of the page template element. + + + + + Gets or sets height of the page template element. + + + + + Gets or sets bounds of the page template element. + + + + + Gets graphics context of the page template element. + + + + + Creates a new page template. + + Bounds of the template. + + + + Initializes a new instance of the class. + + The bounds. + The page. + + + + Creates a new page template. + + Location of the template. + Size of the template. + + + + Initializes a new instance of the class. + + The location. + The size. + The page. + + + + Creates new page template object. + + Size of the template. + + + + Creates a new page template. + + Width of the template. + Height of the template. + + + + Creates a new page template. + + Width of the template. + Height of the template. + The Current Page object. + + + + Creates a new page template. + + X co-ordinate of the template. + Y co-ordinate of the template. + Width of the template. + Height of the template. + + + + Creates a new page template. + + X co-ordinate of the template. + Y co-ordinate of the template. + Width of the template. + Height of the template. + The Current Page object. + + + + Represents a section entity. A section it's a set of the pages with similar page settings. + + + + + Free users can only add up to 10 pages + + + + + Gets the pages. + + + + + Gets or sets page settings of the section. + + + + + Gets or sets a template for the pages in the section. + + + + + Gets the owner document. + + The document. + + + + Event rises when the new page has been added + + + + + FreeVersion,Allow Create 10 Pdf page + + PdfNewPage page + + + + + + Gets the wrapped element. + + + + + Resize the canvas of page according to html view size. + + + + Return the new size of canvas. + + + + set PdfHtmlLayoutFormat + + PdfHtmlLayoutFormat layoutFormat + bool autoDetectPageBreak + + + + Draws HTML to PDF + + Url address + Enable javascrpit + Enable hyperlink + Layouts html view format + + + + Draws HTML to PDF + + url address or socuce code + Enable javascrpit + Enable hyperlink + Enable autoDetectPageBreak + Layouts html view format + + + + Split by page height image + + + + + + + + Scan image data + + + + + + + + + + + Gets the current. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, + which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Get the number of leaf nodes (page objects) that are descendants of this node within the page tree. + + this node within the page tree. + the number of leaf nodes (page objects). + + + + The collection of the sections. + + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Creates a section and adds it to the collection. + + Created section object. + + + + Determines the index of the section. + + The section. + The index of the section. + + + + Inserts the section at the specified index. + + The index. + The section. + + + + Checks whether the collection contains the section. + + The section object. + True - if the sections belongs to the collection, False otherwise. + + + + + Gets the wrapped element. + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Convet pdf array to float array + + float array + + + + Is the current string a hexadecimal string? + + + + + + + Gets the headers. + + The headers. + + + + Gets the rows. + + The rows. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the style. + + The style. + + + + Gets the columns. + + The columns. + + + + Gets or sets a value indicating whether [repeat header]. + + true if [repeat header]; otherwise, false. + + + + Gets or sets whether to cross a page. + + + + + Initializes a new instance of the class. + + + + + Draws the specified graphics. + + The graphics. + The location. + The width. + + + + Draws the specified graphics. + + The graphics. + The x. + The y. + The width. + + + + Draws the specified graphics. + + The graphics. + The bounds. + + + + Draws the specified page. + + The page. + The location. + + + + + Draws the specified page. + + The page. + The location. + The format. + + + + + Draws the specified page. + + The page. + The bounds. + + + + + Draws the specified page. + + The page. + The bounds. + The format. + + + + + Draws the specified page. + + The page. + The x. + The y. + + + + + Draws the specified page. + + The page. + The x. + The y. + The format. + + + + + Draws the specified page. + + The page. + The x. + The y. + The width. + + + + + Draws the specified page. + + The page. + The x. + The y. + The width. + The format. + + + + + Gets or sets the width. + + The width. + + + + Gets the height. + + The height. + + + + Gets or sets the row span. + + The row span. + + + + Gets or sets the column span. + + The column span. + + + + Gets or sets the cell style. + + The cell style. + + + + Gets or sets the value. + + The value. + + + + Gets or sets the string format. + + The string format. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The row. + + + + Calculate the minimum drawable height. + If the available height in the page less than the value, the grid needs to drawn on a new page. + + + + + Whether this cell contains multiple lines of text. + + + + + + Keep four decimals. + Avoid the loss of precision when calcullating cell width and height, + resulting in the loss of content. + + + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Returns the index of a particular cell in the collection. + + The cell. + + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Gets or sets the width. The with is equal to the content + width plus margin plus half of the left and right borders. + + The width. + + + + Gets or sets the format. + + The format. + + + + Gets the grid. + + The grid. + + + + Initializes a new instance of the class. + + The grid. + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Adds this instance. + + + + + + Adds the specified count. + + The count. + + + + Adds the specified column. + + The column. + + + + Removes the first occurrence of a specific object from the PdfGridColumnCollection. + + The object to remove from the PdfGridColumnCollection. + + true if item is successfully removed; otherwise, false + + + + Removes the element at the specified index of the PdfGridColumnCollection. + + The zero-based index of the element to remove. + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Gets the cells. + + The cells. + + + + Gets or sets the row style. + + The row style. + + + + Gets or sets the height.The height is equal to the content + height plus margin plus half of the top and bottom borders. + + The height. + + + + Gets or sets whether to cross a page. + + + + + Initializes a new instance of the class. + + The parent grid. + + + + Applies the cell style to all the cells present in a row. + + The cell style. + + + + Adds this instance. + + + + + + Sets the span. + + Index of the row. + Index of the cell. + The row span. + The col span. + + + + Applies the style. + + The style. + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Gets the rows. + + The rows. + + + + Adds the specified count. + + The count. + + + + Clears this instance. + + + + + Applies the style. + + The style. + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + + + + + + Sets the cell padding. + + The cell padding. + + + + Gets or sets the background brush. + + The background brush. + + + + Gets or sets the text brush. + + The text brush. + + + + Gets or sets the text pen. + + The text pen. + + + + Gets or sets the font. + + The font. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Grid style + + + + + Gets or sets the cell spacing. + + The cell spacing. + + + + Gets or sets the cell padding. + + The cell padding. + + + + Gets or sets the border overlap style. + + The border overlap style. + + + + Gets or sets a value indicating whether to allow horizontal overflow. + + + true if [allow horizontal overflow]; otherwise, false. + + + + + Gets or sets the type of the horizontal overflow. + + The type of the horizontal overflow. + + + + Initializes a new instance of the class. + + + + + Grid row style + + + + + Get or sets the cell padding. + + The cell padding. + + + + Sets the grid style. + + The grid style. + + + + Initializes a new instance of the class. + + + + + Grid cell style + + + + + Get or sets the cell padding. + + The cell padding. + + + + Sets the row style. + + The row style. + + + + Gets the string format. + + The string format. + + + + Gets or sets the border. + + The border. + + + + Gets or sets the background image. + + The background image. + + + + Initializes a new instance of the class. + + + + + Represents the content that can be written in a grid cell. + + + + + Set the image's location in a grid cell. + + + + + It is a collection of PdfGridCellContent classes + + + + + + + + + + + + + + + + + + + + Arguments of BeginPageLayoutEvent. + + + + + Gets the start row. + + The start row. + + + + Arguments of EndPageLayoutEvent. + + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Gets the default. + + The default. + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The left. + The right. + The top. + The bottom. + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The left. + The right. + The top. + The bottom. + + + + Represents base class for markers. + + + + + Gets or sets marker font. + + + + + Gets or sets marker brush. + + + + + Gets or sets marker pen. + + + + + Gets or sets the format. + + The format. + + + + Gets or sets a value indicating whether the marker is + situated at the left of the list or at the right of the list. + + + + + Represents marker for ordered list. + + + + + Gets or sets the list numbering style. + + + + + Gets ar sets start number for ordered list. Default value is 1. + + + + + Gets or sets the delimiter. + + + + + Gets or sets the suffix of the marker. + + + + + Initializes a new instance of the class. + + Number style of marker. + Number delimiter of marker. + Number suffix of marker. + Number font of marker. + + + + Initializes a new instance of the class. + + Number style of marker. + Number suffix of the marker. + Number font of marker. + + + + Initializes a new instance of the class. + + Number style of marker. + Number font of marker. + + + + Represents bullet for the list. + + + + + Gets or sets template of the marker. + + + + + Gets or sets image of the marker. + + + + + Gets or sets marker text. + + + + + Gets or sets the style. + + + + + Initializes a new instance of the class. + + The text of the marker. + Marker font. + + + + Initializes a new instance of the class. + + The style of the marker. + + + + Initializes a new instance of the class. + + The image of the marker. + + + + Initializes a new instance of the class. + + Template of the marker. + + + + Specifies the marker style. + + + + + Marker have no style. + + + + + Marker is like a disk. + + + + + Marker is like a square. + + + + + Marker is like a Asterisk. + + + + + Marker is like a circle. + + + + + Marker is custom string. + + + + + Marker is custom image. + + + + + Marker is custom template. + + + + + Represents marker alignment. + + + + + Left alignment for marker. + + + + + Right alignment for marker. + + + + + Represents base class for lists. + + + + + Gets items of the list. + + + + + Gets or sets tabulation for the list. + + + + + Gets or sets the indent from the marker to the list item text. + + + + + Gets or sets the list font. + + + + + Gets or sets list brush. + + + + + Gets or sets list pen. + + + + + Gets or sets the format of the list. + + The format. + + + + Event that rises when item begin layout. + + + + + Event that rises when item end layout. + + + + + Draws an list on the Graphics. + + Graphics context where the list should be printed. + X co-ordinate of the list. + Y co-ordinate of the list. + + + + Represents the list item of the list. + + + + + Gets or sets item font. + + + + + Gets or sets item text. + + + + + Gets or sets item string format. + + + + + Gets or sets list item pen. + + + + + Gets or sets list item brush. + + + + + Gets or sets sublist for item. + + + + + Gets or sets indent for item. + + + + + Creates new empty pdf list item. + + + + + Creates new pdf list item with default settings. + + + + + Initializes a new instance of the class. + + The text of item. + The font of item. + + + + Initializes a new instance of the class. + + The text of item. + The font of item. + The string format. + + + + Creates new list item. + + The item text. + The item font. + The string format of item. + The item pen. + The item brush. + + + + Represents collection of list items. + + + + + Gets the PdfListItem from collection at the specified index. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A string array that contains items separated by the new line character. + + + + Adds the specified item. + + The item. + The item index in collection. + + + + Adds the specified item. + + The item. + The item indent. + + + + Adds the item with a specified text. + + The text. + + + + + Adds the specified text. + + The text. + The item indent. + List item. + + + + Adds the specified text. + + The text. + The font. + The item index in collection. + + + + Adds the specified text. + + The text. + The font. + The item indent. + List item. + + + + Inserts item at the specified index. + + The specified index. + The item. + The item index + + + + Inserts the specified index. + + The index. + The item. + The item indent. + + + + Removes the specified item from the list. + + The specified item. + + + + Removes the item at the specified index from the list. + + he specified index. + + + + Determines the index of a specific item in the list. + + The item to locate in the list. + The index of item if found in the list; otherwise, -1. + + + + Clears collection. + + + + + Represents the ordered list. + + + + + Gets or sets marker of the list items. + + + + + True if user want to use numbering hierarchy, otherwise false. + + + + + Creates ordered list. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The style. + + + + Creates ordered list using items. + + Items for a list. + + + + Initializes a new instance of the class. + + The marker for the list. + + + + Initializes a new instance of the class. + + The item collection. + The marker for the list. + + + + Initializes a new instance of the class. + + The formatted text. + + + + Initializes a new instance of the class + from formatted text that is splitted by new lines. + + The formatted text. + The marker. + + + + Represents unordered list. + + + + + Gets or sets the marker. + + + + + Initializes a new instance of the class. + + + + + Creates unordered list using items. + + Items for a list. + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The marker for the list. + + + + Initializes a new instance of the class. + + The items collection. + The marker for the list. + + + + Initializes a new instance of the class. + + The formatted text. + + + + Initializes a new instance of the class + from formatted text that is splitted by new lines. + + The formatted text. + The marker. + + + + Delegate for handling BeginItemLayoutEvent. + + The item that begin layout. + Begin Item Layout arguments. + + + + Delegate for handling EndItemLayoutEvent. + + The item that end layout. + End Item Layout arguments. + + + + Represents begin layout event arguments. + + + + + Gets the item. + + The item that layout. + + + + Gets the page. + + The page in which item start layout. + + + + Represents end layout event arguments. + + + + + Gets the item that layout. + + The item that layout. + + + + Gets the page in which item ended layout. + + The page in which item ended layout. + + + + Gets the widths. + + The total width + An array containing widths. + + + + Zoom in or out the width. + + The width + The zoom factor + + + + Represents fast table with few features. + + + + + Gets the columns. + + The table column collection + + + + Gets the rows. + + + + + Gets or sets the data source. + + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the datasource type of the PdfTable + + + + + Gets or sets the properties. + + + + + Gets or sets a value indicating whether + PdfTable should ignore sorting in data table. + + + + + Gets a value Indicates whether can cross a page. + + + + + The event raised on starting row lay outing. + + + + + The event raised on having finished row lay outing. + + + + + The event raised on starting cell lay outing. + + + + + The event raised on having finished cell layout. + + + + + The event raised when the next row data is requested. + + + + + The event raised when the column number is requested. + + + + + The event raised when the row number is requested. + + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + The location of the element. + The width of the table. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + The width of the table. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + The bounds. + + + + Draws the table starting from the specified page. + + The page. + The location. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The location. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The bounds. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The bounds. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The width. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The width. + The format. + The results of the lay outing. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + Represents parameters of PdfTable. + + + + + Specifies whehther the table populates the entire page + + + + + get or set the value of fitWidth. + + + + + Gets or sets the default cell style. + + + + + Gets or sets the odd row cell style. + + + + + Gets or sets a value indicating whether + to use rows or column captions for forming header. + + + + + Gets or sets the header rows count. + + + + + Gets or sets the header cell style. + + + + + Gets or sets a value indicating whether to repeat header on each page. + + + + + Gets or sets a value indicating whether the header is visible. + + If the header is made up with ordinary rows they aren't visible + while this property is set to false. + + + + Gets or sets the cell spacing. + + + + + Gets or sets the cell padding. + + + + + Gets or sets a value indicating whether the cell borders + should overlap its neighbour's borders or be drawn in the cell interior. + + Please, use this property with caution, + because it might cause unexpected results if borders + are not the same width and colour. + + + + Gets or sets the pen of the table border. + + + + + Initializes a new instance of the class. + + + + + Represents information about cell style. + + + + + Gets or sets the font. + + + + + Gets or sets the string format of the cell text. + + + + + Gets or sets the font which will be used to draw text outlines. + + It should be null for default text representation. + + + + Gets or sets the brush which will be used to draw font. + + This brush will be used to fill glyphs interior, which is the default. + + + + Gets or sets the pen with which the border will be drawn. + + + + + Gets or sets the brush with which the background will be drawn. + + It's null by default. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + The font brush. + The border pen. + + + + Represents the collection of the columns. + + + + + Gets the at the specified index. + + + + + Adds the specified column. + + The column. + + + + Gets the widths of the columns. + + The start column. + The end column. + An array containing widths. + + + + Represents a single column of the table. + + + + + Gets or sets the string format. + + The string format. + + + + Gets or sets the width of the column. + + + + + Gets or sets the column name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the column. + + + + Represents a single column of the table. + + + + + The array of values that are used to create the new row. + + + + + Represents the collection of the columns. + + + + + Gets the at the specified index. + + + + + Adds the specified row. + + The row. + + + + The array of values that are used to create the new row. + + + + + Represents as a message deliverer from PdfTable class to the user. + + + + + Represents the parameters for Light Table layout. + + + + + Gets or sets the start column index. + + + + + Gets or sets the end column index. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base format. + + + + Delegate for handling StartRowLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when starting a row in a layout. + + + + Delegate for handling EndRowLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when you are finished laying out a row on a page. + + + + Delegate for handling StartCellLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when laying out a cell on a page. + + + + Delegate for handling EndCellLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when you have finished laying out a page. + + + + Delegate for handling NextRowEvent. + + The sender of the event. + The arguments of the event. + + + + Delegate for handling GettingColumnNumber Event. + + The sender of the event. + The arguments of the event. + + + + Delegate for handling GettingRowNumber Event. + + The sender of the event. + The arguments of the event. + + + + Represents StartRowLayout Event arguments. + + + + + Gets the index of the row. + + + + + Gets or sets the cell style. + + + + + Gets or sets the span map. + + + + + Gets or sets a value indicating whether table drawing should stop. + + + + + Gets or sets a value indicating whether this row should be ignored. + + + + + Gets or sets a value indicating whether column string format should be ignored. + + + + + Sets the minimal height of the row. + + + + + Represents arguments of EndRowLayoutEvent. + + + + + Gets the index of the row. + + + + + Gets a value indicating whether the row was drawn completely + (nothing should be printed on the next page). + + + + + Gets or sets a value indicating whether this row should be the last one printed. + + + + + Gets or sets the row bounds. + + + + + The base class for cell layout arguments. + + + + + Gets the index of the row. + + + + + Gets the index of the cell. + + + + + Gets the value. + + The value might be null or an empty string, + which means that either no text were acquired or all + text was on the previous page. + + + + Gets the bounds of the cell. + + + + + Gets the graphics, on which the cell should be drawn. + + + + + Represents arguments of StartCellLayout Event. + + + + + Gets or sets a value indicating whether the value of this cell should be skipped. + + + + + Represents arguments of EndCellLayout Event. + + + + + Represents arguments of the NextRow Event. + + + + + Gets or sets the row data. + + + + + Gets the column count. + + + + + Gets the index of the row. + + + + + The arguments of the GettingColumnNumber Event. + + + + + Gets or sets the column number. + + + + + The arguments of the GettingRowNumber Event. + + + + + Gets or sets the column number. + + + + + Specifies values specifying where the header should formed from. + + + + + The header is formed from column captions' values. + + + + + The header is formed from rows. + + + + + Specifies type for table width. + + + + + Use the fit page width + each width of columns will zoom in or out + using the ratio of totall width of the table to the width of page + + + + + use the Coustom width + takes the totall width of the set column as the width of the table,no zoom. + notes:if set this type but does not set the column width it will use default column width + + + + + Specifies the datasource type. + + + + + Specifies that the PdfTable has been binded to an external datasource. + + + + + Specifies that the values are directly binded to the PdfTable. + + + + + Specifies values of the border overlap style. + + + + + Cell borders overlap (are drawn using the same coordinates). + + + + + Cell borders are drawns in the cell's interior. + + + + + Represents custom Metadata. + + + + + Sets the xmp property. + + + + + Gets type of the schema. + + + + + Initializes a new instance of the class. + + Parent XmpMetadata. + The XML namespace. + The namespace URI. + + + + Enumerates types of the xmp structure. + + + + + A structure containing dimensions for a drawn object. + + + + + A structure containing the characteristics of a font used in a document. + + + + + A structure containing the characteristics of a Coloring (swatch) used in a document. + + + + + A thumbnail image for a file. + + + + + Job structure. + + + + + Enumerates types of the xmp schema. + + + + + Dublin Core Schema. + + + + + Basic Schema. + + + + + Rights Management Schema. + + + + + Basic Job Ticket Schema. + + + + + Paged Text Schema. + + + + + Adobe PDF Schema. + + + + + Custom schema. + + + + + Types of the xmp arrays. + + + + + Unknown array type. + + + + + Unordered array. + + + + + Ordered array. + + + + + Alternative array. + + + + + Base class for the xmp entities. + + + + + Gets Xml data of the entity. + + + + + Represents XMP metadata of the document. + + + + + Gets XMP data in XML format. + + + + + Gets namespace manager of the Xmp metadata. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The XMP. + + + + Adds schema to the XMP in XML format. + + XMP schema in XML format. + If XMP already contains such schema - there will be two equal schemas at the xmp. + + + + Return title if exists; otherwise return null + + + + + + Return subject if exists; otherwise return null + + + + + + Return author if exists; otherwise return null + + + + + + Return producer if exists; otherwise return null + + + + + + return keywords if exists; otherwise return null + + + + + + Return specified custom field value if exists; otherwise return null + + + + + + + Return all custom properties if exsit; otherwise return empty Dictionary + + + + + + Return create date if exists; otherwise return default DateTime + + + + + + Return creator if exists; otherwise return null + + + + + + Return modify date if exists; otherwise return System.DateTime.MinValue + + + + + + Set title to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set subject to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set subject to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set producer to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set keywords to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set custom property to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + + Set title to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set Creator to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set ModifyDates to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Gets the element. + + + + + + Represents the rich text. + + + + + Gets or set the xmls. + + + + + Gets or set the xfa. + + + + + Gets or set the apiversion. + + + + + Gets or set the spec. + + + + + Gets or set the style. + + + + + Gets the paragraphs. + + + + + Represents the rich text. + + + + + + To ap dictionary. + + The ap dictionary + + + + Generate ap dictionary. + + The ap dictionary + + + + Generate normal dictionary. + + + + + Initialize. + + + + + Initialize the client bound. + + + + + Initialize the normal dictionary. + + + + + Get bbox. + + The bbox + + + + Get the transparency. + + the transparency + + + + Generate ap content. + + + + + Initialize state. + + + + + Draw border area. + + + + + Append content. + + + + + Draw contents. + + + + + Drae contents. + + The text + The rich text style + + + + Draw text. + + The text + The style + The float type list + + + + Draw lines. + + The list + The rich text style + + + + Get font resource name. + + The rich text style + The resource name + + + + Create font dictionary. + + The font resource name + The font name + + + + Get font name. + + The rich style + The font name + + + + Get the the stroking path. + + The stroking path + + + + Get the the fill path. + + The fill path + + + + Get line width. + + Line width + + + + Get back ground color. + + The back ground color + + + + Get the border color. + + The border color + + + + Get font base line. + + The font + The font base line + + + + Get the font line space. + + The font + The font line space + + + + Get font. + + The font name + The font size + The font + + + + Measure text width + + The text + The font + The text width + + + + Clear the string builder content. + + The string builder instance + + + + Move the point to. + + The point + + + + Make current point to anthor point. + + The point + + + + Restore curernt state. + + + + + Save the current state. + + + + + Begin draw text. + + + + + End draw text. + + + + + The ctm. + + The martix + + + + Set the current color space. + + + + + Set curernt font name and font size. + + The font name + The font size + + + + The TD. + + The x + The y + + + + Show text. + + char codes + + + + Use non-zero Fill the current path. + + + + + Storken the current path. + + + + + Close the stroke path. + + + + + Introduce rgb color. + + The color + The is stroking + + + + Set the graphics state. + + + + + Append rectangle + + The rectangle + + + + Set line width. + + The line width + + + + Set the text leading. + + The linespace + + + + Set character space. + + + + + + Set the word space. + + + + + + Use even-odd Fill the current path. + + + + + Represents the rich text builder. + + + + + Represents the rich text builder instance. + + + + + Builder richtext. + + The annotation + The richtext instance + + + + Get the rich content. + + The annotation + The rich content + + + + Get default style string. + + The annotation + The default style string + + + + Builder default style. + + The defaultStyle + The rich text style + + + + String to stream. + + The rich text + The stream + + + + Parese xml to richtext. + + The xml + + + + Parse body node. + + The body node + + + + Parse body node. + + The paragraph + + + + Parse paragraph. + + The paragraph + + + + + Parse span. + + The span + The paragraph + + + + Parse attributes. + + The attribute + + + + Parse attributes. + + The attribute + + + + Implements structures and routines working with rich text style. + + + + + Gets the font size. + + + + + Gets the font style. + + + + + Gets the font weight. + + + + + Gets the font family. + + + + + Gets the color. + + + + + Gets the text deciration. + + + + + Gets the font stretch. + + + + + Replace the style. + + The base style + The rich style + + + + Parse default style. + + The ds + + + + Parse style + + The styleString + + + + Parse font weight. + + The wight + The font weight + + + + Parse the list. + + The value + The list + + + + Parse color. + + The color + The color + + + + Parse float. + + The value + A float value + + + + Parse enums. + + The unknow type + + + + + + Implements structures and routines working with paragraph. + + + + + Gets the spans. + + + + + Gets or set the style. + + + + + Gets or set the content. + + + + + Implements structures and routines working with span. + + + + + Gets or set the style. + + + + + Gets or set the content. + + + + + The text align enum. + + + + + The font style enum. + + + + + The text decoration enum. + + + + + The font stretch enum. + + + + Byte buffer container including length of valid data. + Stefan Makswit + 11.10.2006 + + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + the inner byte array might be bigger than that. + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + Loads the stream into a buffer. + an Stream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + Appends a byte to the buffer. + a byte + + + Appends a byte array or part of to the buffer. + a byte array + an offset with + + + + Append a byte array to the buffer + a byte array + + + Append another buffer to this buffer. + another ByteBuffer + + + Detects the encoding of the byte buffer, stores and returns it. + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + + Returns the encoding string. + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + Stefan Makswit + 22.08.2006 + + + the state of the automaton + + + the result of the escaping sequence + + + count the digits of the sequence + + + The look-ahead size is 6 at maximum (&#xAB;) + + a Reader + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + Stefan Makswit + 16.02.2006 + + + Converts an ISO 8601 string to an XMPDateTime. + + Converts an ISO 8601 string to an XMPDateTime. + Parse a date according to ISO 8601 and + http://www.w3.org/TR/NOTE-datetime: + + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm:ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + + Data fields: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + + Note that ISO 8601 does not seem to allow years less than 1000 or greater + than 9999. We allow any year, even negative ones. The year is formatted + as "%.4d". + + Note: Tolerate missing TZD, assume is UTC. Photoshop 8 writes + dates like this for exif:GPSTimeStamp. + + Note: DOES NOT APPLY ANYMORE. + Tolerate missing date portion, in case someone foolishly + writes a time-only value that way. + + a date string that is ISO 8601 conform. + Returns a Calendar. + Is thrown when the string is non-conform. + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + Converts a Calendar into an ISO 8601 string. + + Converts a Calendar into an ISO 8601 string. + Format a date according to ISO 8601 and http://www.w3.org/TR/NOTE-datetime: + + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm:ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + + Data fields: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + + + Note: ISO 8601 does not seem to allow years less than 1000 or greater than 9999. + We allow any year, even negative ones. The year is formatted as "%.4d". + + Note: Fix for bug 1269463 (silently fix out of range values) included in parsing. + The quasi-bogus "time only" values from Photoshop CS are not supported. + + an XMPDateTime-object. + Returns an ISO 8601 string. + + + Stefan Makswit + 22.08.2006 + + + Returns the current position. + + + initializes the parser container + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + Skips the next char. + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + Stefan Makswit + 12.10.2006 + + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + The result is a buffer where those chars have been converted to UTF-8; + that means it contains only valid UTF-8 chars. + + Explanation of the processing: First the encoding of the buffer is detected looking + at the first four bytes (that works only if the buffer starts with an ASCII-char, + like xmls '<'). UTF-16/32 flavours do not require further proccessing. + + In the case, UTF-8 is detected, it assumes wrong UTF8 chars to be a sequence of + Latin-1/Cp1252 encoded bytes and converts the chars to their corresponding UTF-8 byte + sequence. + + The 0x80..0x9F range is undefined in Latin-1, but is defined in Windows code + page 1252. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are formally undefined + by Windows 1252. These are in XML's RestrictedChar set, so we map them to a + space. + + The official Latin-1 characters in the range 0xA0..0xFF are converted into + the Unicode Latin Supplement range U+00A0 - U+00FF. + + Example: If an Euro-symbol (€) appears in the byte buffer (0xE2, 0x82, 0xAC), + it will be left as is. But if only the first two bytes are appearing, + followed by an ASCII char a (0xE2 - 0x82 - 0x41), it will be converted to + 0xC3, 0xA2 (â) - 0xE2, 0x80, 0x9A (‚) - 0x41 (a). + + a byte buffer contain + Returns a new buffer containing valid UTF-8 + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + Stefan Makswit + 11.08.2006 + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + Asserts that a specific language is set. + a specific lang + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + Asserts that a parameter is not null. + the parameter's value + Thrown if the parameter is null. + + + Asserts that any string parameter is not null or empty. + a string parameter's value + Thrown if the parameter is null or has length 0. + + + Asserts that the xmp object is of this implemention (). + the XMP object + A wrong implentaion is used. + + + Start of coreSyntaxTerms. + + + End of coreSyntaxTerms + + + Start of additions for syntax Terms. + + + End of of additions for syntaxTerms. + + + Start of oldTerms. + + + End of oldTerms. + + + ! Yes, the syntax terms include the core terms. + + + Parser for "normal" XML serialisation of RDF. + Stefan Makswit + 14.07.2006 + + + this prefix is used for default namespaces + + + The main parsing method. + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + ParseOptions to indicate the parse options provided by the client + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.10 nodeElementList + + ws* ( nodeElement ws* ) + + + This method is only called from the rdf:RDF-node (top level). + + the xmp metadata object that is generated + the parent xmp node + the top-level xml node + /// ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* ) + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.14 propertyElt + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attribute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + Add a leaf node with the text value and qualifiers for the attributes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thrown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thrown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thrown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thrown on parsing errors + + + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( + idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + <ns:Prop1/> <!-- a simple property with an empty value --> + <ns:Prop2 rdf:resource="http: *www.adobe.com/"/> <!-- a URI value --> + <ns:Prop3 rdf:value="..." ns:Qual="..."/> <!-- a simple qualified property --> + <ns:Prop4 ns:Field1="..." ns:Field2="..."/> <!-- a struct with simple fields --> + An emptyPropertyElt is an element with no contained content, just a possibly empty set of + attributes. An emptyPropertyElt can represent three special cases of simple XMP properties: a + simple property with an empty value (ns:Prop1), a simple property whose value is a URI + (ns:Prop2), or a simple property with simple qualifiers (ns:Prop3). + An emptyPropertyElt can also represent an XMP struct whose fields are all simple and + unqualified (ns:Prop4). + It is an error to use both rdf:value and rdf:resource - that can lead to invalid RDF in the + verbose form written using a literalPropertyElt. + The XMP mapping for an emptyPropertyElt is a bit different from generic RDF, partly for + design reasons and partly for historical reasons. The XMP mapping rules are: + + If there is an rdf:value attribute then this is a simple property + with a text value. + All other attributes are qualifiers. + If there is an rdf:resource attribute then this is a simple property + with a URI value. + All other attributes are qualifiers. + If there are no attributes other than xml:lang, rdf:ID, or rdf:nodeID + then this is a simple + property with an empty value. + Otherwise this is a struct, the attributes other than xml:lang, rdf:ID, + or rdf:nodeID are fields. + + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thrown on parsing errors + + + Adds a child node. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thrown on parsing errors + + + Adds a qualifier node. + the parent xmp node + + the name of the qualifier which has to be + QName including the default prefix + + the value of the qualifier + Returns the newly created child node. + thrown on parsing errors + + + The parent is an RDF pseudo-struct containing an rdf:value field. + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thrown on parsing errors + + + Checks if the node is a white space. + an XML-node + + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + 7.2.4 oldTerms + + rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID + + the term id + Returns true if the term is an old term. + + + + 7.2.2 coreSyntaxTerms + + rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | + rdf:datatype + + the term id + Return true if the term is a core syntax term + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + an XML node + Returns the term ID. + + + Check if the child name + an XML node + Returns bool + + + Stefan Makswit + 09.11.2006 + + + Splits a qname into prefix and localname. + a QName + + + Constructor that initializes the fields + the prefix + the name + + + Returns whether the QName has a prefix. + + + XML localname + the localName + + + XML namespace prefix + the prefix + + + Utility functions for the XMPToolkit implementation. + Stefan Makswit + 06.06.2006 + + + segments of a UUID + + + length of a UUID + + + table of XML name start chars (<= 0xFF) + + + table of XML name chars (<= 0xFF) + + + + Normalize an xml:lang value so that comparisons are effectively case + insensitive as required by RFC 3066 (which supersedes RFC 1766). + + + The normalization rules: + + The primary subtag is lower case, the suggested practice of ISO 639. + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + All other subtags are lower case. + + + raw value + Returns the normalized value. + + + + Split the name and value parts for field and qualifier selectors. + + + + [qualName="value"] - An element in an array of structs, chosen by a field value. + [?qualName="value"] - An element in an array, chosen by a qualifier value. + + The value portion is a string quoted by ' or ". The value may contain + any character including a doubled quoting character. The value may be + empty. + + Note: It is assumed that the expression is formal correct. + + The selector + The name string + The value string + + + a schema namespace + an XMP Property + + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + + Check some requirements for an UUID: + + Length of the UUID is 32 + The Delimiter count is 4 and all the 4 delimiter are on their right position (8,13,18,23) + + + uuid to test + true - this is a well formed UUID, false - UUID has not the expected format + + + Simple check for valid XML names. + + Within ASCII range + + ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] + + are accepted, above all characters (which is not entirely + correct according to the XML Spec. + + an XML Name + Return true if the name is correct. + + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + + + These are XML names, except that they must not contain a colon. + + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + Serializes the node value in XML encoding. + + Its used for tag bodies and attributes. + + Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. + + Note: Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + a string + flag if string is attribute value (need to additional escape quotes) + Decides if LF, CR and TAB are escaped. + Returns the value ready for XML output. + + + Replaces the ASCII control chars with a space. + a node value + Returns the cleaned up value + + + Simple check if a character is a valid XML start name char. + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + The default implementation of . + Stefan Makswit + 16.02.2006 + + + The nanoseconds take micro and nano seconds, while the milliseconds are in the calendar. + + + + Creates an XMPDateTime-instance with the current time in the default time zone. + + + + Creates an XMPDateTime-instance from a calendar. + a Calendar + + + Creates an XMPDateTime-instance from an ISO 8601 string. + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + Returns the ISO string representation. + + + Number of milliseconds since the Unix epoch (1970-01-01 00:00:00). + + + Number of milliseconds since the Unix epoch (1970-01-01 00:00:00). + + + The XMPIterator implementation. + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + Stefan Makswit + 29.06.2006 + + + flag to indicate that skipSiblings() has been called. + + + the node iterator doing the work + + + Constructor with optional initial values. + If propName is provided, schemaNS has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is reduced to this property within the schemaNS + advanced iteration options, see + If the node defined by the parameters is not existing. + + + the base namespace of the property path, will be changed during the iteration + + + The XMPIterator implementation. + + The XMPIterator implementation. + It first returns the node itself, then recursively the children and qualifier of the node. + + Stefan Makswit + 29.06.2006 + + + iteration state + + + iteration state + + + iteration state + + + the state of the iteration + + + the currently visited node + + + the recursively accumulated path + + + the iterator that goes through the children and qualifier list + + + index of node with parent, only interesting for arrays + + + the iterator for each child + + + the cached PropertyInfo to return + + + Default constructor + + + Constructor for the node iterator. + + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + Prepares the next node to return if not already done. + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + Calls hasNext() and returns the prepared node. + + Calls hasNext() and returns the prepared node. Afterward it's set to null. + The existence of returnProperty indicates if there is a next node, otherwise + an exception is thrown. + + + + Not supported. + + + the node that will be added to the path. + the path up to this node. + the current array index if an array is traversed + Returns the updated path. + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + Originally called "XmpPropertyInfo450" + "450" was the line number in XMPIteratorImpl.java of the Adobe Java 5.1.2 source file + This class was anonymous, but that is unnecessary here + + + + Returns the returnProperty. + + + the returnProperty to set + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + Stefan Makswit + 02.10.2006 + + + Constructor + + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + Prepares the next node to return if not already done. + + + + Implementation of . + + Stefan Makswit + 17.02.2006 + + + Property values are Strings by default + + + root of the metadata tree + + + the xpacket processing instructions content + + + Constructor for an empty metadata object. + + + Constructor for a cloned metadata tree. + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a property, but the result value can be requested. + + Returns a property, but the result value can be requested. + + a schema namespace + a property name or path + the type of the value, see VALUE_... + Returns an XMPProperty + Collects any exception that occurs. + + + + Combines the two ported classes XmpProperty407 and XmpProperty682 + "407" and "682" were the line numbers in XMPMetaImpl.java of the Adobe Java 5.1.2 source file + These classes were anonymous, and that is unnecessary here + + + + Returns a property, but the result value can be requested. + a schema namespace + a property name or path + the type of the value, see VALUE_... + + Returns the node value as an object according to the + valueType. + + Collects any exception that occurs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the packetHeader attributes, only used by the parser. + the processing instruction content + + + Performs a deep clone of the XMPMeta-object + + + + + + Returns the root node of the XMP tree. + + + Locate or create the item node and set the value. + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for setProperty() and related calls, used after the node is + found or created. + + the newly created node + the node value, can be null + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + an int indicating the value type + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. + + + After the parsing several normalisations are applied to the XMP tree. + + Stefan Makswit + 01.02.2006 + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a XDocument, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an Stream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + To improve the performance on legal files, it is first tried to parse normally, + while the character fixing is only done when the first pass fails. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + Wraps parsing and I/O-exceptions into an XMPException. + + + Wraps parsing and I/O-exceptions into an XMPException. + + + Find the XML node that is the root of the XMP data tree. + + Find the XML node that is the root of the XMP data tree. Generally this + will be an outer node, but it could be anywhere if a general XML document + is parsed (e.g. SVG). The XML parser counted all rdf:RDF and + pxmp:XMP_Packet nodes, and kept a pointer to the last one. If there is + more than one possible root use PickBestRoot to choose among them. + + If there is a root node, try to extract the version of the previous XMP + toolkit. + + Pick the first x:xmpmeta among multiple root candidates. If there aren't + any, pick the first bare rdf:RDF if that is allowed. The returned root is + the rdf:RDF child if an x:xmpmeta element was chosen. The search is + breadth first, so a higher level candidate is chosen over a lower level + one that was textually earlier in the serialized XML. + + initially, the root of the xml document as a list + + flag if the xmpmeta-tag is still required, might be set + initially to true, if the parse option "REQUIRE_XMP_META" is set + + The result array that is filled during the recursive process. + + Returns an array that contains the result or null. + The array contains: + + [0] - the rdf:RDF-node + [1] - an object that is either XMP_RDF or XMP_PLAIN (the latter is deprecated) + [2] - the body text of the xpacket-instruction. + + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + + Possible improvements: + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + Stefan Makswit + 21.02.2006 + + + list of child nodes, lazy initialized + + + list of child node references for faster lookup. Only initialized when the original _children list exceeds 9 entries + + + list of qualifier of the node, lazy initialized + + + options describing the kind of the node + + + Creates an XMPNode with initial values. + the name of the node + the value of the node + the options of the node + + + Constructor for the node without value. + the name of the node + the options of the node + + + Resets the node. + + + + Get the parent node. + + + Set internally by , and . + + + + an index [1..size] + Returns the child with the requested index. + + + Adds a node as child to this node. + an XMPNode + + + + Adds a node as child to this node. + + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + + an XMPNode + + + + Replaces a node with another one. + + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + + the replacement XMPNode + + + Removes a child at the requested index. + the index to remove [1..size] + + + Removes a child node. + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + Removes all children from the node. + + + Returns the number of children without necessarily creating a list. + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + Returns the number of qualifier without necessarily creating a list. + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + Removes all qualifiers from the node and sets the options appropriate. + + + qualifier node name to look for + + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + + + Get whether the node has children. + + + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + + Returns whether the node has qualifier attached. + + + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + + Iterator that disallows removal. + + + + Performs a deep clone of the node and the complete subtree. + + + Performs a deep clone of the node and the complete subtree. + if skipEmpty is true, it will not clone node which has empty child and empty value. + If true, it will not clone those nodes with empty value and empty children + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + if skipEmpty is true, it will not clone node which has empty child and empty value. + + the node to add the cloned subtree + If true, it will not clone those nodes with empty value and empty children + + + Renders this node and the tree under this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + Get and set the implicit node flag. + + + + + Get and set whether the node contains aliases (applies only to schema nodes). + + + + + Get and set whether this node is an alias (applies only to schema nodes). + + + + + Get and set whether this node has an rdf:value child node. + + + + + Sorts the XMP node and its children, recursively. + + + Sorting occurs according to the following rules: + + Nodes at one level are sorted by name, that is prefix + local name + Starting at the root node the children and qualifier are sorted recursively, + which the following exceptions. + Sorting will not be used for arrays. + Within qualifier "xml:lang" and/or "rdf:type" stay at the top in that order, + all others are sorted. + + + + + Dumps this node and its qualifier and children recursively. + + Dumps this node and its qualifier and children recursively. + Note: It creates empty options on every node. + FfF: sort schemas and properties on each level if and only if it would increase performance + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Get whether this node is a language qualifier. + + + + + Get whether this node is a type qualifier. + + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + Internal child find. + the child list to search in + the child dictionary ref to initialize or search. Needs to be a ref parameter or it won't update the original Dictionary + the search expression + Returns the found node or null. + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + Utilities for XMPNode. + Stefan Makswit + Aug 28, 2006 + + + Find or create a schema node if createNodes is false and + the root of the xmp tree. + a namespace + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + the parent node + the node name to find + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + Follow an expanded path expression to find or create a node. + the node to begin the search. + the complete xpath + + flag if nodes shall be created + (when called by setProperty()) + + + the options for the created leaf nodes (only when + createNodes == true). + + Returns the node if found or created or null. + + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + FfF: think about moving is to XMPNode... (make removeChild/Qualifier private and + FfF: publish just deleteNode(XMPNode) + + the top-most node to delete. + + + This is setting the value of a leaf node. + an XMPNode + a value + + + Verifies the PropertyOptions for consistency and updates them as needed. + + Verifies the PropertyOptions for consistency and updates them as needed. + If options are null they are created with default values. + FfF: add an kind of autofix options to PropertyOptions and remove this method!!! + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to string, apply special conversions for defined + types in XMP. + + the node value to set + Returns the String representation of the node value. + + + + After processing by ExpandXPath, a step can be of these forms: + + + After processing by ExpandXPath, a step can be of these forms: + + qualName - A top level property or struct field. + [index] - An element of an array. + [last()] - The last element of an array. + [qualName="value"] - An element in an array of structs, chosen by a field value. + [?qualName="value"] - An element in an array, chosen by a qualifier value. + ?qualName - A general qualifier. + + Find the appropriate child node, resolving aliases, and optionally creating nodes. + + the node to start to start from + the xpath segment + + returns the found or created node + + + + Find or create a qualifier node under a given parent node. + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + + Returns the index of th + + + + Make sure the x-default item is first. + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + an alt text array node + + + See if an array is an alt-text array. + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + the array node to check if its an alt-text array + + + Appends a language item to an alt text array. + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + + + Look for an exact match with the specific language. + If a generic language is given, look for partial matches. + Look for an "x-default"-item. + Choose the first item. + + + the alt text array node + the generic language + the specific language + + Returns the kind of match as an Integer and the found node in an + array. + + + + + Looks for the appropriate language item in a text alternative array.item + an array node + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + Stefan Makswit + Aug 18, 2006 + + + caches the correct dc-property array forms + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + Visit all schemas to do general fixes and handle special cases. + the metadata object implementation + Thrown if the normalisation fails. + + + + Undo the denormalization performed by the XMP used in Acrobat 5. + + + If a Dublin Core array had only one item, it was serialized as a simple + property. + + The xml:lang attribute was dropped from an + alt-text item if the language was x-default. + + the DC schema node + Thrown if normalization fails + + + Make sure that the array is well-formed AltText. + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + + the property node of the array to repair. + Forwards unexpected exceptions. + + + Visit all of the top level nodes looking for aliases. + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + Moves an alias node of array form to another schema into an array + the property iterator of the old schema (used to delete the property) + the node to be moved + the base array for the array item + Forwards XMP errors + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + The outermost call is special. + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + + + If there is no dc:rights array, or an empty array - + Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright. + + + If there is a dc:rights array but it has no x-default item - + Create an x-default item as a copy of the first item then apply rule #3. + + + If there is a dc:rights array with an x-default item, + Look for a double linefeed in the value. + + If no double linefeed, compare the x-default value to the xmpDM:copyright value. + + If they match then leave the x-default value alone. + Otherwise, append a double linefeed and the xmpDM:copyright value to the x-default value. + + + If there is a double linefeed, compare the trailing text to the xmpDM:copyright value. + + If they match then leave the x-default value alone. + Otherwise, replace the trailing x-default text with the xmpDM:copyright value. + + + + + In all cases, delete the xmpDM:copyright property. + + + the metadata object + the "dm:copyright"-property + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. + + There is only one singleton instance used by the toolkit, accessed via . + + Stefan Makswit + 27.01.2006 + + + a map from a namespace URI to its registered prefix. + + + a map from a prefix to the associated namespace URI. + + + A map of all registered aliases, from qname to IXmpAliasInfo. + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + Associates an alias name with an actual name. + + Associates an alias name with an actual name. + + Define a alias mapping from one namespace/property to another. Both + property names must be simple names. An alias can be a direct mapping, + where the alias and actual have the same data type. It is also possible + to map a simple alias to an item in an array. This can either be to the + first item in the array, or to the 'x-default' item in an alt-text array. + Multiple alias names may map to the same actual, as long as the forms + match. It is a no-op to reregister an alias in an identical fashion. + Note: This method is not locking because only called by registerStandardAliases + which is only called by the constructor. + Note2: The method is only package-private so that it can be tested with unittests + + The namespace URI for the alias. Must not be null or the empty string. + The name of the alias. Must be a simple name, not null or the empty string and not a general path expression. + The namespace URI for the actual. Must not be null or the empty string. + The name of the actual. Must be a simple name, not null or the empty string and not a general path expression. + Provides options for aliases for simple aliases to array items. This is needed to know what kind of array to create if + set for the first time via the simple alias. Pass XMP_NoOptions, the default value, for all direct aliases regardless of whether the actual + data type is an array or not (see ). + for inconsistant aliases. + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + Stefan Makswit + 11.07.2006 + + + Static method to serialize the metadata object. + + For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so that its possible to + serialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to serialize to + serialization options, can be null for default. + + + + Serializes an XMPMeta-object as RDF into a string. + + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes the XMPMeta-object using the standard RDF serialization format. + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + FfF: Move to XMLStreamWriter (a lot of test would break due to slight format change). + + Stefan Makswit + 11.07.2006 + + + default padding + + + The w/r is missing inbetween + + + a set of all rdf attribute qualifier + + + the metadata object to be serialized. + + + the output stream to serialize to + + + this writer is used to do the actual serialization + + + the stored serialization options + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + The actual serialization. + the metadata object to be serialized + outputStream the output stream to serialize to + the serialization options + If case of wrong options or any other serialization error. + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + Write each of the parent's simple unqualified properties as an attribute. + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns below ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + + <ns:UnqualifiedStructProperty-1 + ... The fields as attributes, if all are simple and unqualified + /> + <ns:UnqualifiedStructProperty-2 rdf:parseType="Resource"> + ... The fields as elements, if none are simple and unqualified + </ns:UnqualifiedStructProperty-2> + <ns:UnqualifiedStructProperty-3> + <rdf:Description + ... The simple and unqualified fields as attributes + > + ... The compound or qualified fields as elements + </rdf:Description> + </ns:UnqualifiedStructProperty-3> + <ns:UnqualifiedArrayProperty> + <rdf:Bag> or Seq or Alt + ... Array items as rdf:li elements, same forms as top level properties + </rdf:Bag> + </ns:UnqualifiedArrayProperty> + <ns:QualifiedProperty rdf:parseType="Resource"> + <rdf:value> ... Property "value" + following the unqualified forms ... </rdf:value> + ... Qualifiers looking like named struct fields + </ns:QualifiedProperty> + + *** Consider numbered array items, but has compatibility problems. + Consider qualified form with rdf:Description and attributes. + + the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. + + + Serializes a simple property. + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + Serializes an array property. + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + Serializes a struct property. + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes one schema with all contained properties in pretty-printed manner. + + + Each schema's properties are written to a single + rdf:Description element. All of the necessary namespaces are declared in + the rdf:Description element. The baseIndent is the base level for the + entire serialization, that of the x:xmpmeta element. An xml:lang + qualifier is written as an attribute of the property start tag, not by + itself forcing the qualified property form. + + <rdf:Description rdf:about="TreeName" xmlns:ns="URI" ... > + ... The actual properties of the schema, see SerializePrettyRDFProperty + <!-- ns1:Alias is aliased to ns2:Actual --> ... If alias comments are wanted + </rdf:Description> + + + a schema node + + Forwarded writer exceptions + + + + Writes all used namespaces of the subtree in node to the output. + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursively traversed. + + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + Start the outer rdf:Description element, including all needed xmlns attributes. + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + Write the </rdf:Description> end tag. + + + + Recursively handles the "value" for a node. + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + + <ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty> + <ns:UnqualifiedStructProperty> (If no rdf:resource qualifier) + <rdf:Description> + ... Fields, same forms as top level properties + </rdf:Description> + </ns:UnqualifiedStructProperty> + <ns:ResourceStructProperty rdf:resource="URI" + ... Fields as attributes + > + <ns:UnqualifiedArrayProperty> + <rdf:Bag> or Seq or Alt + ... Array items as rdf:li elements, same forms as top level properties + </rdf:Bag> + </ns:UnqualifiedArrayProperty> + <ns:QualifiedProperty> + <rdf:Description> + <rdf:value> ... Property "value" following the unqualified + forms ... </rdf:value> + ... Qualifiers looking like named struct fields + </rdf:Description> + </ns:QualifiedProperty> + + + the property node + property shall be rendered as attribute rather than tag + + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. + + + Writes the array start and end tags. + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + Serializes the node value in XML encoding. + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + A node can be serialized as RDF-Attribute, if it meets the following conditions: + + is not array item + don't has qualifier + is no URI + is no composite property + + + an XMPNode + Returns true if the node serialized as RDF-Attribute + + + Writes indents and automatically includes the base indent from the options. + number of indents to write + forwards exception + + + Writes an int to the output. + an int + forwards writer exceptions + + + Writes a char to the output. + a char + forwards writer exceptions + + + Writes a String to the output. + a String + forwards writer exceptions + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + Writes a newline according to the options. + Forwards exception + + + Stefan Makswit + 11.08.2006 + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + See . + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: Include aliases in the + "named schema" case above. + + If metadata processing fails + + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. + Forwards the Exceptions from the metadata processing + + + Remove all schema children according to the flag doAllProperties. + Empty schemas are automatically remove by XMPNode. + a schema node + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + The destination XMP object. + the source node + the parent of the destination node + + Replace the values of existing properties. + flag if properties with empty values should be deleted in the destination object. + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + Make sure the separator is OK. + + Separators must be one semicolon surrounded by zero or more spaces. Any of the recognized semicolons or spaces are allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + opened and closing quote in a string + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + a char + Return the character kind. + + + the open quote char + Returns the matching closing quote for an open quote. + + + Add quotes to the item. + the array item + the open quote character + the closing quote character + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + + U+0022 ASCII space + U+3000, ideographic space + U+303F, ideographic half fill space + U+2000..U+200B, en quad through zero width space + + + + + + + U+002C, ASCII comma + U+FF0C, full width comma + U+FF64, half width ideographic comma + U+FE50, small comma + U+FE51, small ideographic comma + U+3001, ideographic comma + U+060C, Arabic comma + U+055D, Armenian comma + + + + + + + U+003B, ASCII semicolon + U+FF1B, full width semicolon + U+FE54, small semicolon + U+061B, Arabic semicolon + U+037E, Greek "semicolon" (really a question mark) + + + + + + + U+0022 ASCII quote + U+00AB and U+00BB, guillemet quotes + U+3008..U+300F, various quotes + U+301D..U+301F, double prime quotes + U+2015, dash quote + U+2018..U+201F, various quotes + U+2039 and U+203A, guillemet quotes + + + + The square brackets are not interpreted as quotes anymore (bug #2674672) + (ASCII '[' (0x5B) and ']' (0x5D) are used as quotes in Chinese and + Korean.)
+
+
+ + + + U+0000..U+001F ASCII controls + U+2028, line separator + U+2029, paragraph separator + + + + + Moves the specified Property from one Meta to another. + Meta Object from where the property needs to move + Meta Object to where the property needs to move + Schema of the specified property + Name of the property + true in case of success otherwise false. + + + estimates the size of an xmp node + XMP Node Object + the estimated size of the node + + + Utility function for placing objects in a Map. It behaves like a multi map. + A Map object which takes int as a key and list of list of string as value + A key for the map + A value for the map + + + Utility function for retrieving biggest entry in the multimap + see EstimateSizeForJPEG for size calculation + A Map object which takes int as a key and list of list of string as value + the list with the maximum size. + + + Utility function for creating esimated size map for different properties of XMP Packet. + see PackageForJPEG + Meta Object whose property sizes needs to calculate. + A treeMap Object which takes int as a key and list of list of string as values + + + Utility function for moving the largest property from One XMP Packet to another. + see MoveOneProperty and PackageForJPEG + Meta Object from where property moves. + Meta Object to where property moves. + A treeMap Object which holds the estimated sizes of the property of stdXMP as a key and their string representation as map values. + + + creates XMP serializations appropriate for a JPEG file. + + The standard XMP in a JPEG file is limited to 64K bytes. This function + serializes the XMP metadata in an XMP object into a string of RDF.If + the data does not fit into the 64K byte limit, it creates a second packet + string with the extended data. + + The XMP object containing the metadata. + A string object in which to return the full standard XMP packet. + A string object in which to return the serialized extended XMP, empty if not needed. + A string object in which to return an MD5 digest of the serialized extended XMP, empty if not needed. + + + merges standard and extended XMP retrieved from a JPEG file. + + When an extended partition stores properties that do not fit into the + JPEG file limitation of 64K bytes, this function integrates those + properties back into the same XMP object with those from the standard XMP + packet. + + An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object. + An XMP object which the caller has initialized from the extended XMP packet in a JPEG file. + + + modifies a working XMP object according to a template object. + + The XMP template can be used to add, replace or delete properties from + the working XMP object. The actions that you specify determine how the + template is applied.Each action can be applied individually or combined; + if you do not specify any actions, the properties and values in the + working XMP object do not change. + + The destination XMP object. + The template to apply to the destination XMP object. + Option flags to control the copying. If none are specified, + the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: +
    +
  • CLEAR_UNNAMED_PROPERTIES Delete anything that is not in the template.
  • +
  • ADD_NEW_PROPERTIES Add properties; see detailed description.
  • +
  • REPLACE_EXISTING_PROPERTIES Replace the values of existing properties.
  • +
  • REPLACE_WITH_DELETE_EMPTY Replace the values of existing properties and delete properties if the new value is empty.
  • +
  • INCLUDE_INTERNAL_PROPERTIES Operate on internal properties as well as external properties.
  • +
+ +
+ + Marks a struct field step, also for top level nodes (schema "fields"). + + + Marks a qualifier step. + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + Marks an array index step + + + Represents an XMP XmpPath with segment accessor methods. + 28.02.2006 + + + stores the segments of an + + + Append a path segment + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + Serializes the normalized XMP-path. + + + Parser for XMP XPaths. + 01.03.2006 + + + + Split an expression apart at the conceptual steps, adding the + root namespace prefix to the first property component. + + + The schema URI is put in the first (0th) slot in the expanded . + Check if the top level component is an alias, but don't resolve it. + + In the most verbose case steps are separated by '/', and each step can be + of these forms: + + + prefix:name + A top level property or struct field. + + + [index] + An element of an array. + + + [last()] + The last element of an array. + + + [fieldName="value"] + An element in an array of structs, chosen by a field value. + + + [@xml:lang="value"] + An element in an alt-text array, chosen by the xml:lang qualifier. + + + [?qualName="value"] + An element in an array, chosen by a qualifier value. + + + @xml:lang + An xml:lang qualifier. + + + ?qualName + A general qualifier. + + + + The logic is complicated though by shorthand for arrays, the separating + '/' and leading '*' are optional. These are all equivalent: array/*[2] + array/[2] array*[2] array[2] All of these are broken into the 2 steps + "array" and "[2]". + + The value portion in the array selector forms is a string quoted by ''' + or '"'. The value may contain any character including a doubled quoting + character. The value may be empty. + + The syntax isn't checked, but an XML name begins with a letter or '_', + and contains letters, digits, '.', '-', '_', and a bunch of special + non-ASCII Unicode characters. An XML qualified name is a pair of names + separated by a colon. + + schema namespace + property name + Returns the expanded . + Thrown if the format is not correct somehow. + + + + + + + + Parses a struct segment + the current position in the path + The segment or an error + If the segment is empty + + + Parses an array index segment. + the xmp path + Returns the segment or an error + thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + + the root namespace + the parsing position helper + the path to contribute to + If the path is not valid. + + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + a qualifier name + If the name is not conformant + + + Verify if an XML name is conformant. + an XML name + When the name is not XML conformant + + + Set up the first 2 components of the expanded . + + Normalizes the various cases of using + the full schema URI and/or a qualified root property name. Returns true for normal + processing. If allowUnknownSchemaNS is true and the schema namespace is not registered, false + is returned. If allowUnknownSchemaNS is false and the schema namespace is not registered, an + exception is thrown + + (Should someday check the full syntax:) + + schema namespace + the root xpath segment + Returns root QName. + Thrown if the format is not correct somehow. + + + This objects contains all needed char positions to parse. + + + the complete path + + + the start of a segment name + + + the end of a segment name + + + the begin of a step + + + the end of a step + + + A segment of a parsed . + 23.06.2006 + + + Constructor with initial values. + the name of the segment + + + Constructor with initial values. + the name of the segment + the kind of the segment + + + Get and set the kind of the path segment. + + + Get and set the name of the path segment. + + + Get and set whether the segment is an alias. + + + Get and set the alias form, if this segment has been created by an alias. + + + This interface is used to return info about an alias. + Stefan Makswit + 27.01.2006 + + + Gets the namespace URI for the base property. + + + Gets the default prefix for the given base property. + + + Gets the path of the base property. + + + + Gets the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + + The XMPDateTime-class represents a point in time up to a resolution of nanoseconds. + + + Dates and time in the serialized XMP are ISO 8601 strings. There are utility functions + to convert to the ISO format, a Calendar or get the Timezone. The fields of + XMPDateTime are: + + month - The month in the range 1..12. + day - The day of the month in the range 1..31. + minute - The minute in the range 0..59. + hour - The time zone hour in the range 0..23. + minute - The time zone minute in the range 0..59. + nanosecond - The nanoseconds within a second. Note: if the XMPDateTime is + converted into a calendar, the resolution is reduced to milliseconds. + timeZone - a TimeZone-object. + + DateTime values are occasionally used in cases with only a date or only a time component. A date + without a time has zeros for all the time fields. A time without a date has zeros for all date + fields (year, month, and day). + + + + Get and set the year value. Can be negative. + + + Get and set the month, within range 1..12. + + + Get and set the day of the month, within range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Get and set the minute, within range 0..59. + + + Get and set the second, within range 0..59. + + + Get and set the sub-second period, in nanoseconds. + + + Get and set the offset, primarily for ISO8601 converter. + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + Returns a Calendar (only with millisecond precision). + + + Dates before Oct 15th 1585 (which normally fall into validity of + the Julian calendar) are also rendered internally as Gregorian dates. + + + + Returns the ISO 8601 string representation of the date and time. + + + Interface for the XMPMeta iteration services. + + XMPIterator provides a uniform means to iterate over the + schema and properties within an XMP object. + + The iteration over the schema and properties within an XMP object is very + complex. It is helpful to have a thorough understanding of the XMP data tree. + One way to learn this is to create some complex XMP and examine the output of + XMPMeta#toString. This is also described in the XMP + Specification, in the XMP Data Model chapter. + + The top of the XMP data tree is a single root node. This does not explicitly + appear in the dump and is never visited by an iterator (that is, it is never + returned from XMPIterator#next()). Beneath the root are + schema nodes. These are just collectors for top level properties in the same + namespace. They are created and destroyed implicitly. Beneath the schema + nodes are the property nodes. The nodes below a property node depend on its + type (simple, struct, or array) and whether it has qualifiers. + + An XMPIterator is created by XMPMeta#iterator() constructor + defines a starting point for the iteration and options that control how it + proceeds. By default the iteration starts at the root and visits all nodes + beneath it in a depth first manner. The root node is not visited, the first + visited node is a schema node. You can provide a schema name or property path + to select a different starting node. By default this visits the named root + node first then all nodes beneath it in a depth first manner. + + The XMPIterator#next() method delivers the schema URI, path, + and option flags for the node being visited. If the node is simple it also + delivers the value. Qualifiers for this node are visited next. The fields of + a struct or items of an array are visited after the qualifiers of the parent. + + The options to control the iteration are: + + JUST_CHILDREN - Visit just the immediate children of the root. Skip + the root itself and all nodes below the immediate children. This omits the + qualifiers of the immediate children, the qualifier nodes being below what + they qualify, default is to visit the complete subtree. + JUST_LEAFNODES - Visit just the leaf property nodes and their + qualifiers. + JUST_LEAFNAME - Return just the leaf component of the node names. + The default is to return the full xmp path. + OMIT_QUALIFIERS - Do not visit the qualifiers. + INCLUDE_ALIASES - Adds known alias properties to the properties in the iteration. + Note: Not supported in Java or .NET Spire.Xmp! + + + next() returns XMPPropertyInfo-objects and throws + a NoSuchElementException if there are no more properties to + return. + + Stefan Makswit + 25.01.2006 + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + This class represents the set of XMP metadata as a DOM representation. + + It has methods to read and modify all kinds of properties, create an iterator over all properties + and serialize the metadata to a string, byte array or stream. + + Stefan Makswit + 20.01.2006 + + + + The property value getter-methods all take a property specification: the first two parameters + are always the top level namespace URI (the "schema" namespace) and the basic name + of the property being referenced. + + + See the introductory discussion of path expression usage for more information. + + All of the functions return an object inherited from PropertyBase or + null if the property does not exists. The result object contains the value of + the property and option flags describing the property. Arrays and the non-leaf levels of + nodes do not have values. + + See for detailed information about the options. + + This is the simplest property getter, mainly for top level simple properties or after using + the path composition functions in . + + + The namespace URI for the property. May be null or the empty + string if the first component of the propName path contains a namespace prefix. The + URI must be for a registered namespace. + + + The name of the property. May be a general path expression, must not be + null or the empty string. Using a namespace prefix on the first + component is optional. If present without a schemaNS value then the prefix specifies + the namespace. The prefix must be for a registered namespace. If both a schemaNS URI + and propName prefix are present, they must be corresponding parts of a registered + namespace. + + + Returns an containing the value and the options, or + null if the property does not exist. + + Wraps all errors and exceptions that may occur. + + + Provides access to items within an array. + + The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The constant + always refers to the last existing array item. + + + Returns an containing the value and the options or + null if the property does not exist. + + Wraps all errors and exceptions that may occur. + + + Returns the number of items in the array. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + Provides access to fields within a nested structure. + + The namespace for the field is passed as a URI, you need not worry about the path string syntax. + + The names of fields should be XML qualified names, that is within an XML namespace. The path + syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is + never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given + sequence of XML text. + + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + Returns an containing the value and the options or + null if the property does not exist. Arrays and non-leaf levels of + structs do not have values. + + Wraps all errors and exceptions that may occur. + + + Provides access to a qualifier attached to a property. + + The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. + In many regards qualifiers are like struct fields. See the introductory discussion of qualified + properties for more information. + + The names of qualifiers should be XML qualified names, that is within an XML namespace. The + path syntax for a qualified name uses the namespace prefix. This is unreliable since the + prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand + in a given sequence of XML text. + + Note: Qualifiers are only supported for simple leaf properties at this time. + + The namespace URI for the struct. Has the same usage as in . + + The name of the property to which the qualifier is attached. May be a general + path expression, must not be null or the empty string. Has the same + namespace prefix usage as in . + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + Returns an containing the value and the options of the + qualifier or null if the property does not exist. The name of the + qualifier must be a single XML name, must not be null or the empty + string. Has the same namespace prefix usage as the propName parameter. + + The value of the qualifier is only set if it has one (Arrays and non-leaf levels of + structs do not have values). + + Wraps all errors and exceptions that may occur. + + + + The property value setters all take a property specification, their + differences are in the form of this. + + + The first two parameters are always the top level namespace URI (the schema namespace) and + the basic name of the property being referenced. See the introductory discussion of path expression + usage for more information. + + All of the functions take a string value for the property and option flags describing the + property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs + do not have values. Empty arrays and structs may be created using appropriate option flags. + All levels of structs that is assigned implicitly are created if necessary. appendArayItem + implicitly creates the named array if necessary. + + See for detailed information about the options. + + This is the simplest property setter, mainly for top level simple properties or after using + the path composition functions in . + + The namespace URI for the property. Has the same usage as in . + + The name of the property. + Has the same usage as in . + + + the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, and + byte[] are handled, on all other is called. + + Option flags describing the property. See the earlier description. + Wraps all errors and exceptions that may occur. +
+ + + The namespace URI + The name of the property + the value for the property + Wraps all errors and exceptions + + + Replaces an item within an array. + + The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use + + to find + out the length of the array. + + + the new value of the array item. Has the same usage as propValue in + . + + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + The namespace URI + The name of the array + The index to insert the new item + the new value of the array item + Wraps all errors and exceptions + + + Inserts an item into an array previous to the given index. + + The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index to insert the new item. Arrays in XMP are indexed from 1. Use + to append items. + + + the new value of the array item. Has the same usage as + propValue in . + + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the array + The name of the array + The index to insert the new item + the value of the array item + Wraps all errors and exceptions + + + Simplifies the construction of an array by not requiring that you pre-create an empty array. + + The array that is assigned is created automatically if it does not yet exist. Each call to + appendArrayItem() appends an item to the array. The corresponding parameters have the same + use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If + the array exists, it must have the specified form. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be null or + the empty string. Has the same namespace prefix usage as propPath in . + + + Option flags describing the array form. The only valid options are + + , + , + or + . + + Note: the array options only need to be provided if the array is not + already existing, otherwise you can set them to null or use + . + + the value of the array item. Has the same usage as propValue in . + Option flags describing the item to append () + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the array + The name of the array + the value of the array item + Wraps all errors and exceptions + + + Provides access to fields within a nested structure. + + The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in . + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + + + the value of thefield, if the field has a value. + Has the same usage as propValue in . + + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the struct + The name of the struct + The namespace URI for the field + The name of the field + the value of the field + Wraps all errors and exceptions + + + Provides access to a qualifier attached to a property. + + The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. + In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties + for more information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in . + + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the struct + The name of the property to which the qualifier is attached + The namespace URI for the qualifier + The name of the qualifier + the value of the qualifier + Wraps all errors and exceptions + + + Deletes the given XMP subtree rooted at the given property. + It is not an error if the property does not exist. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + + + Deletes the given XMP subtree rooted at the given array item. + It is not an error if the array item does not exist. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. + It is not an error if the field does not exist. + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns true if the property exists. + + + Tells if the array item exists. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last + existing array item. + + Returns true if the array exists, false otherwise. + + + DoesStructFieldExist tells if the struct field exists. + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + Returns true if the field exists. + + + DoesQualifierExist tells if the qualifier exists. + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + Returns true if the qualifier exists. + + + + These functions provide convenient support for localized text properties, including a number + of special and obscure aspects. + + + Localized text properties are stored in alt-text arrays. They + allow multiple concurrent localizations of a property value, for example a document title or + copyright in several languages. The most important aspect of these functions is that they + select an appropriate array item based on one or two RFC 3066 language tags. One of these + languages, the "specific" language, is preferred and selected if there is an exact match. For + many languages it is also possible to define a "generic" language that may be used if there + is no specific language match. The generic language must be a valid RFC 3066 primary subtag, + or the empty string. For example, a specific language of "en-US" should be used in the US, + and a specific language of "en-UK" should be used in England. It is also appropriate to use + "en" as the generic language in each case. If a US document goes to England, the "en-US" + title is selected by using the "en" generic language and the "en-UK" specific language. It is + considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 + primary tag. For example "en" is not a good specific language, it should only be used as a + generic language. Passing "i" or "x" as the generic language is also considered poor practice + but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: + http://www.w3.org/International/articles/language-tags/ + + Note: RFC 3066 language tags must be treated in a case insensitive manner. The XMP + Toolkit does this by normalizing their capitalization: + + The primary subtag is lower case, the suggested practice of ISO 639. + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + All other subtags are lower case. The XMP specification defines an artificial language, + "x-default", that is used to explicitly denote a default item in an alt-text array. + + The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. + The SetLocalizedText function has several special features related to the x-default item, see + its description for details. The selection of the array item is the same for GetLocalizedText + and SetLocalizedText: + + Look for an exact match with the specific language. + If a generic language is given, look for a partial match. + Look for an x-default item. + Choose the first item. + + A partial match with the generic language is where the start of the item's language matches + the generic string and the next character is '-'. An exact match is also recognized as a + degenerate case. It is fine to pass x-default as the specific language. In this case, + selection of an x-default item is an exact match by the first rule, not a selection by the + 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to + produce a match. getLocalizedText returns information about a selected item in + an alt-text array. The array item is selected according to the rules given above. + + + The namespace URI for the alt-text array. Has the same usage as in + . + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in . + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + Returns an containing the value, the actual language and + the options if an appropriate alternate collection item exists, null + if the property. + does not exist. + + Wraps all errors and exceptions that may occur. + + + Modifies the value of a selected item in an alt-text array. + + Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + + The namespace URI for the alt-text array. Has the same usage as in + . + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in . + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the alt-text array + The name of the alt-text array + The name of the generic language + The name of the specific language + the new value for the appropriate array item + Wraps all errors and exceptions + + + + These are very similar to and above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + + + The path composition functions in may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a bool value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns an int value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a long value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a double value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a IXmpDateTime object or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a Calendar-object or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a byte[]-array contained the decoded base64 value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + Note that there is no setPropertyString()z, because sets a string value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a string value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to set a property to a literal boolean value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as boolean + Wraps all exceptions + + + Convenience method to set a property to a literal int value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as int + Wraps all exceptions + + + Convenience method to set a property to a literal long value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as long + Wraps all exceptions + + + Convenience method to set a property to a literal double value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as double + Wraps all exceptions + + + Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date. + The namespace URI for the property. Has the same usage as in. + The name of the property. Has the same usage as in . + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the property value as XMPDateTime + Wraps all exceptions + + + Convenience method to set a property with a Calendar-object, which is serialized to an ISO8601 date. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the property value as Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the property value as Calendar + Wraps all exceptions + + + Convenience method to set a property from a binary byte[]-array, which is serialized as base64-string. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as byte array + Wraps all exceptions + + + Constructs an enumerable for the properties within this XMP object. + Wraps all errors and exceptions that may occur. + + + This correlates to the about-attribute, returns the empty String if no name is set. + Returns the name of the XMP object. + + + Sets the name of the XMP object. + + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Sorts the complete datamodel according to the following rules: + + Schema nodes are sorted by prefix. + Properties at top level and within structs are sorted by full name, that is prefix + local name. + Array items are not sorted, even if they have no certain order such as bags. + Qualifier are sorted, with the exception of "xml:lang" and/or "rdf:type" that stay at the top of the list in that order. + + + + + Perform the normalization as a separate parsing step. + + Normally it is done during parsing, unless is set to true. + + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + Renders this node and the tree under this node in a human readable form. + Returns a multiline string containing the dump. + + + Models a a text property together with its language and options. + Stefan Makswit + 23.01.2006 + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + + Returns the language of the alt-text item. + + + Models a property together with its path and namespace. + Instances of this type are are iterated via . + Stefan Makswit + 06.07.2006 + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + The schema registry keeps track of all namespaces and aliases used in the XMP + metadata. + + + At initialisation time, the default namespaces and default aliases + are automatically registered. Namespaces must be registered before + used in namespace URI parameters or path expressions. Within the XMP Toolkit + the registered namespace URIs and prefixes must be unique. Additional + namespaces encountered when parsing RDF are automatically registered. The + namespace URI should always end in an XML name separator such as '/' or '#'. + This is because some forms of RDF shorthand catenate a namespace URI with an + element name to form a new URI. + + Aliases in XMP serve the same purpose as Windows file shortcuts, + Macintosh file aliases, or UNIX file symbolic links. The aliases are simply + multiple names for the same property. One distinction of XMP aliases is that + they are ordered, there is an alias name pointing to an actual name. The + primary significance of the actual name is that it is the preferred name for + output, generally the most widely recognized name. + + The names that can be aliased in XMP are restricted. The alias must be a top + level property name, not a field within a structure or an element within an + array. The actual may be a top level property name, the first element within + a top level array, or the default element in an alt-text array. This does not + mean the alias can only be a simple property. It is OK to alias a top level + structure or array to an identical top level structure or array, or to the + first item of an array of structures. + + Stefan Makswit + 27.01.2006 + + + Register a namespace URI with a suggested prefix. + + It is not an error if the URI is already registered, no matter what the prefix is. + If the URI is not registered but the suggested prefix is in use, a unique prefix is + created from the suggested one. The actual registered prefix is always + returned. The function result tells if the registered prefix is the + suggested one. + + Note: No checking is presently done on either the URI or the prefix. + + The URI for the namespace. Must be a valid XML URI. + + The suggested prefix to be used if the URI is not yet + registered. Must be a valid XML name. + + + Returns the registered prefix for this URI, is equal to the + suggestedPrefix if the namespace hasn't been registered before, + otherwise the existing prefix. + + If the parameters are not accordingly set + + + Obtain the prefix for a registered namespace URI. + + It is not an error if the namespace URI is not registered. + + + The URI for the namespace. Must not be null or the empty + string. + + Returns the prefix registered for this namespace URI or null. + + + Obtain the URI for a registered namespace prefix. + + It is not an error if the namespace prefix is not registered. + + + The prefix for the namespace. Must not be null or the empty + string. + + Returns the URI registered for this prefix or null. + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + Deletes a namespace from the registry. + + Does nothing if the URI is not registered, or if the namespaceURI + parameter is null or the empty string. + + Note: Not yet implemented. + + The URI for the namespace. + + + Determines if a name is an alias, and what it is aliased to. + + The namespace URI of the alias. Must not be null or the empty string. + + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + + + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + Searches for registered aliases. + an XML conform qname + + Returns if an alias definition for the given qname to another + schema and property is registered. + + + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + XMP Toolkit Version Information. + + Version information for the XMP toolkit is available at runtime via . + + Stefan Makswit + 23.01.2006 + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + Options for XMPSchemaRegistryImpl#registerAlias. + Stefan Makswit + 20.02.2006 + + + This is a direct mapping. + This is a direct mapping. The actual data type does not matter. + + + The actual is an unordered array, the alias is to the first element of the array. + + + The actual is an ordered array, the alias is to the first element of the array. + + + The actual is an alternate array, the alias is to the first element of the array. + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + + Returns a object + + If the options are not consistant. + + + Options for XMPIterator construction. + Stefan Makswit + 24.01.2006 + + + Just do the immediate children of the root, default is subtree. + + + Just do the leaf nodes, default is all nodes in the subtree. + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + Return just the leaf part of the path, default is the full path. + + + Omit all qualifiers. + + + The base class for a collection of 32 flag bits. + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + Stefan Makswit + 24.01.2006 + + + the internal int containing all options + + + a map containing the bit names + + + The default constructor. + + + Constructor with the options bit mask. + the options bit mask + If the options are not correct + + + Resets the options. + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + Is friendly to access it during the tests. + Returns the options. + + + The options to set. + If the options are not correct + + + Creates a human readable string from the set options. + + Note: This method is quite expensive and should only be used within tests or as + + + Returns a string listing all options that are set to true by their name, + like "option1 | option4". + + + + Returns the options as hex bitmask. + + + To be implemented by inheritants. + Returns a bit mask where all valid option bits are set. + + + To be implemented by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + The inheriting option class can do additional checks on the options. + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + Checks options before they are set. + + First it is checked if only defined options are used, second the additional + -method is called. + + the options to check + Thrown if the options are invalid. + + + Looks up or asks the inherited class for the name of an option bit. + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + Options for . + + Stefan Makswit + 24.01.2006 + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + Do not reconcile alias differences, throw an exception instead. + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + Disallow DOCTYPE declarations to prevent entity expansion attacks. + + + Map of nodes whose children are to be limited. + + + Sets the options to the default values. + + + Returns true if some XMP nodes have been limited. + + + the Map with name of nodes and number-of-items to limit them to + Returns the instance to call more set-methods. + + + Returns map containing names oF XMP nodes to limit and number-of-items limit corresponding to the XMP nodes. + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + Stefan Makswit + 03.07.2006 + + + may be used in the future + + + Default constructor + + + Initialization constructor + the initialization options + If the options are not valid + + + + Get and set whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + + Return whether this property is an array with a limit on number-of-elements. + + + the limit to set on number-of-elements + Returns this to enable cascaded options. + + + Returns the current limit on number-of-elements + + + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Compares two options set for array compatibility. + other options + Returns true if the array options of the sets are equal. + + + Merges the set options of a another options object with this. + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + + other options + If illegal options are provided + + + Returns true if only array options are set. + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + /// Stefan Makswit + 24.01.2006 + + + Bit indicating little endian encoding, unset is big endian + + + Bit indication UTF16 encoding. + + + UTF8 encoding; this is the default + + + Default constructor. + + + Constructor using initial options + the initial options + Thrown if options are not consistent. + + + Omit the XML packet wrapper. + + + Omit the <x:xmpmeta> tag. + + + Mark packet as read-only. + Default is a writeable packet. + + + Use a compact form of RDF. + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + Use the canonical form of RDF if set. + By default the compact form is used. + + + Serialize as "Plain XMP", not RDF. + + + Include a padding allowance for a thumbnail image. + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + The padding parameter provides the overall packet length. + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + Sort the struct properties and qualifier before serializing + + + UTF16BE encoding + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + The string to be used as a line terminator. + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + The amount of padding to be added if a writeable XML packet is created. + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + Returns the text encoding to use. + + + Returns clone of this SerializeOptions-object with the same options set. + + + + Options for . + + Stefan Makswit + 24.01.2006 + + + Default constructor. + + + Constructor using initial options + the initial options + Thrown if options are not consistent. + + + + + + + + + + + + + + + + + + Returns clone of this TemplateOptions-object with the same options set. + + + + http://grepcode.com/file_/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/io/PushbackReader.java/?v=source + + + + Stefan Makswit + + + The XML namespace for XML. + + + The XML namespace for RDF. + + + The XML namespace for the Dublin Core schema. + + + The XML namespace for the IPTC Core schema. + + + The XML namespace for the IPTC Extension schema. + + + The XML namespace for the DICOM medical schema. + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + The XML namespace Adobe XMP Metadata. + + + The XML namespace for the XMP "basic" schema. + + + The XML namespace for the XMP copyright schema. + + + The XML namespace for the XMP digital asset management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the Photoshop custom schema. + + + The XML namespace for the Photoshop Album schema. + + + The XML namespace for Adobe's EXIF schema. + + + NS for the CIPA XMP for Exif document v1.1 + + + The XML namespace for Adobe's TIFF schema. + + + BExt Schema + + + RIFF Info Schema + + + Transform XMP + + + Adobe Flash SWF + + + Adobe Creative Cloud Video + + + legacy Dublin Core NS, will be converted to NS_DC + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + The XML namespace for fields of the Dimensions type. + + + The XML namespace for fields of a graphical image. + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + The XML namespace for fields of the ResourceEvent type. + + + The XML namespace for fields of the ResourceRef type. + + + The XML namespace for fields of the Version type. + + + The XML namespace for fields of the JobRef type. + + + The canonical true string value for Booleans in serialized XMP. + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + The canonical false string value for Booleans in serialized XMP. + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + Index that has the meaning to be always the last item in an array. + + + Node name of an array item. + + + The x-default string for localized properties + + + xml:lang qualifier + + + rdf:li syntaxTerm + + Does not appear in the original Java version. Added because of its usage in + ParseRdf.cs and XmpNode.cs when string-comparing for array items. + + + + rdf:type qualifier + + + Processing Instruction (PI) for xmp packet + + + XMP meta tag version new + + + XMP meta tag version old + + + + A factory to create instances from a or an + ISO 8601 string or for the current time. + + Stefan Makswit + 16.02.2006 + + + Creates an from a -object. + a -object. + An -object. + + + Creates an empty -object. + Returns an -object. + + + Creates an -object from initial values. + years + months from 1 to 12 (Remember that the month in is defined from 0 to 11) + days + Returns an -object. + + + Creates an -object from initial values. + years + months from 1 to 12 (Remember that the month in is defined from 0 to 11) + days + hours + minutes + seconds + nanoseconds + Returns an -object. + + + Creates an from an ISO 8601 string. + The ISO 8601 string representation of the date/time. + An -object. + When the ISO 8601 string is non-conform + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Make sure a time is local. + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the variable containing the time to be modified. + Returns an updated -object. + + + Stefan Makswit + + + This code is introduced by Java. + + + This exception wraps all errors that occur in the XMP Toolkit. + Stefan Makswit + 16.02.2006 + + + Gets the error code of the XMP toolkit. + + + Constructs an exception with a message and an error code. + the message + the error code + + + Constructs an exception with a message, an error code and an inner exception. + the error message. + the error code + the exception source + + + Parses and serialises instances. + Stefan Makswit + 30.01.2006 + + + Returns the singleton instance of the . + + + Returns an empty instance. + + + + These functions support parsing serialized RDF into an XMP object, and serializing an XMP + object into RDF. + + + These functions support parsing serialized RDF into an XMP object, and serializing an XMP + object into RDF. The input for parsing may be any valid Unicode + encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization + is always as UTF-8. + + parseFromBuffer() parses RDF from an Stream. The encoding + is recognized automatically. + + an Stream + Options controlling the parsing. + The available options are: + + XMP_REQUIRE_XMPMETA - The <x:xmpmeta> XML element is required around <rdf:RDF>. + XMP_STRICT_ALIASING - Do not reconcile alias differences, throw an exception. + + Note: The XMP_STRICT_ALIASING option is not yet implemented. + + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Creates an XMPMeta-object from a string. + + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Creates an XMPMeta-object from a byte-buffer. + + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Serializes an XMPMeta-object as RDF into an OutputStream. + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a string. + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serialization errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + Resets the schema registry to its original state (creates a new one). + + Resets the schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purposes. + + + + Obtain version information. + + + Utility services for the metadata object. + + It has only public static functions, you cannot create + an object. These are all functions that layer cleanly on top of the core XMP toolkit. + + These functions provide support for composing path expressions to deeply nested properties. The + functions XMPMeta such as GetProperty(), + getArrayItem() and getStructField() provide easy access to top + level simple properties, items in top level arrays, and fields of top level structs. They do not + provide convenient access to more complex things like fields several levels deep in a complex + struct, or fields within an array of structs, or items of an array that is a field of a struct. + These functions can also be used to compose paths to top level array items or struct fields so + that you can use the binary accessors like getPropertyAsInteger(). + + You can use these functions is to compose a complete path expression, or all but the last + component. Suppose you have a property that is an array of integers within a struct. You can + access one of the array items like this: + + + string path = XmpPathFactory.ComposeStructFieldPath(schemaNS, "Struct", fieldNS, "Array"); + string path += XmpPathFactory.ComposeArrayItemPath(schemaNS, "Array", index); + PropertyInteger result = xmpObj.GetPropertyAsInteger(schemaNS, path); + + You could also use this code if you want the string form of the integer: + + String path = XmpPathFactory.ComposeStructFieldPath (schemaNS, "Struct", fieldNS, + "Array"); + PropertyText xmpObj.GetArrayItem (schemaNS, path, index); + + + Note: It might look confusing that the schemaNS is passed in all of the calls above. + This is because the XMP toolkit keeps the top level "schema" namespace separate from + the rest of the path expression. + Note: These methods are much simpler than in the C++-API, they don't check the given + path or array indices. + + Stefan Makswit + 25.01.2006 + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNS and + "i" is the decimal representation of itemIndex. + + Throws exception if index zero is used. + + + Compose the path expression for a field in a struct. + The namespace URI for the field. Must not be null or the empty string. + The name of the field. Must be a simple XML name, must not be null or the empty string. + + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNS and "fNS" is the prefix for fieldNS. + + Thrown if the path to create is not valid. + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + + + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + + + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNS and "qNS" is the prefix for qualNS. + + Thrown if the path to create is not valid. + + + Compose the path expression to select an alternate item by language. + + The path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNS. + + + + Compose the path expression to select an alternate item by a field's value. + + The path syntax allows two forms of "content addressing" that may be used to select an item in an + array of alternatives. The form used in ComposeFieldSelector lets you select an item in an + array of structs based on the value of one of the fields in the structs. The other form of + content addressing is shown in ComposeLangSelector. For example, consider a simple struct + that has two fields, the name of a city and the URI of an FTP site in that city. Use this to + create an array of download alternatives. You can show the user a popup built from the values + of the city fields. You can then get the corresponding URI as follows: + + + String path = composeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity ); + XMPProperty prop = xmpObj.getStructField ( schemaNS, path, fieldNS, "URI" ); + + + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The namespace URI for the field used as the selector. Must not be + null or the empty string. + + + The name of the field used as the selector. Must be a simple XML name, must + not be null or the empty string. It must be the name of a field that is + itself simple. + + The desired value of the field. + + Returns the composed path. This will be of the form + ns:arrayName[fNS:fieldName='fieldValue'], where "ns" is the + prefix for schemaNS and "fNS" is the prefix for fieldNS. + + Thrown if the path to create is not valid. + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + Utility methods for XMP. + Stefan Makswit + 21.02.2006 + + + Create a single edit string from an array of strings. + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + Separate a single edit string into an array of strings. + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + Remove multiple properties from an XMP object. + + Remove multiple properties from an XMP object. + RemoveProperties was created to support the File Info dialog's Delete + button, and has been been generalized somewhat from those specific needs. + It operates in one of three main modes depending on the schemaNS and + propName parameters: + + Non-empty schemaNS and propName - The named property is + removed if it is an external property, or if the + flag doAllProperties option is true. It does not matter whether the + named property is an actual property or an alias. + Non-empty schemaNS and empty propName - The all external + properties in the named schema are removed. Internal properties are also + removed if the flag doAllProperties option is set. In addition, + aliases from the named schema will be removed if the flag includeAliases + option is set. + Empty schemaNS and empty propName - All external properties in + all schema are removed. Internal properties are also removed if the + flag doAllProperties option is passed. Aliases are implicitly handled + because the associated actuals are internal if the alias is. + + It is an error to pass an empty schemaNS and non-empty propName. + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: + Include aliases in the "named schema" case above. + Note: Currently not supported. + + Forwards the Exceptions from the metadata processing + + + Append properties from one XMP object to another. + + Append properties from one XMP object to another. + XMPUtils#appendProperties was created to support the File Info dialog's Append button, and + has been been generalized somewhat from those specific needs. It appends information from one + XMP object (source) to another (dest). The default operation is to append only external + properties that do not already exist in the destination. The flag + doAllProperties can be used to operate on all properties, external and internal. + The flag replaceOldValues option can be used to replace the values + of existing properties. The notion of external + versus internal applies only to top level properties. The keep-or-replace-old notion applies + within structs and arrays as described below. + + If replaceOldValues is true then the processing is restricted to the top + level properties. The processed properties from the source (according to + doAllProperties) are propagated to the destination, + replacing any existing values.Properties in the destination that are not in the source + are left alone. + If replaceOldValues is not passed then the processing is more complicated. + Top level properties are added to the destination if they do not already exist. + If they do exist but differ in form (simple/struct/array) then the destination is left alone. + If the forms match, simple properties are left unchanged while structs and arrays are merged. + If deleteEmptyValues is passed then an empty value in the source XMP causes + the corresponding destination XMP property to be deleted. The default is to treat empty + values the same as non-empty values. An empty value is any of a simple empty string, an array + with no items, or a struct with no fields. Qualifiers are ignored. + + + The detailed behavior is defined by the following pseudo-code: + + appendProperties ( sourceXMP, destXMP, doAllProperties, + replaceOldValues, deleteEmptyValues ): + for all source schema (top level namespaces): + for all top level properties in sourceSchema: + if doAllProperties or prop is external: + appendSubtree ( sourceNode, destSchema, replaceOldValues, deleteEmptyValues ) + appendSubtree ( sourceNode, destParent, replaceOldValues, deleteEmptyValues ): + if deleteEmptyValues and source value is empty: + delete the corresponding child from destParent + else if sourceNode not in destParent (by name): + copy sourceNode's subtree to destParent + else if replaceOld: + delete subtree from destParent + copy sourceNode's subtree to destParent + else: + // Already exists in dest and not replacing, merge structs and arrays + if sourceNode and destNode forms differ: + return, leave the destNode alone + else if form is a struct: + for each field in sourceNode: + AppendSubtree ( sourceNode.field, destNode, replaceOldValues ) + else if form is an alt-text array: + copy new items by "xml:lang" value into the destination + else if form is an array: + copy new items by value into the destination, ignoring order and duplicates + + Note: appendProperties can be expensive if replaceOldValues is not passed and + the XMP contains large arrays. The array item checking described above is n-squared. + Each source item is checked to see if it already exists in the destination, + without regard to order or duplicates. + Simple items are compared by value and "xml:lang" qualifier, other qualifiers are ignored. + Structs are recursively compared by field names, without regard to field order. Arrays are + compared by recursively comparing all items. + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. + Forwards the Exceptions from the metadata processing + + + Convert from string to Boolean. + The string representation of the Boolean. + + The appropriate boolean value for the string. The checked values + for true and false are: + + and + "t" and "f" + "on" and "off" + "yes" and "no" + "value <> 0" and "value == 0" + + + If an empty string is passed. + + + Convert from boolean to string. + a boolean value + + The XMP string representation of the boolean. The values used are + given by the constants and + . + + + + Converts a string value to an int. + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + an int value + The string representation of the int. + + + Converts a string value to a long. + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to a double. + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to an XMPDateTime. + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + an XMPDateTime + The string representation of the long. + + + Convert from a byte array to a base64 encoded string. + the byte array to be converted + Returns the base64 string. + + + Decode from Base64 encoded string to raw data. + a base64 encoded string + Returns a byte array containing the decoded string. + Thrown if the given string is not property base64 encoded + + + Creates XMP serializations appropriate for a JPEG file. + The standard XMP in a JPEG file is limited to 64K bytes. This function + serializes the XMP metadata in an XMP object into a string of RDF . If + the data does not fit into the 64K byte limit, it creates a second packet + string with the extended data. + The XMP object containing the metadata. + A string builder object in which to return the full standard XMP packet. + A string builder object in which to return the serialized extended XMP, empty if not needed. + A string builder object in which to return an MD5 digest of the serialized extended XMP, empty if not needed. + @throws NoSuchAlgorithmException if fail to find algorithm for MD5 + Forwards the Exceptions from the metadata processing + + + Merges standard and extended XMP retrieved from a JPEG file. + When an extended partition stores properties that do not fit into the + JPEG file limitation of 64K bytes, this function integrates those + properties back into the same XMP object with those from the standard XMP + packet. + An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object. + An XMP object which the caller has initialized from the extended XMP packet in a JPEG file. + Forwards the Exceptions from the metadata processing + + + Modifies a working XMP object according to a template object. + + The XMP template can be used to add, replace or delete properties from + the working XMP object. The actions that you specify determine how the + template is applied.Each action can be applied individually or combined; + if you do not specify any actions, the properties and values in the + working XMP object do not change. + + These actions are available: + + Clear CLEAR_UNNAMED_PROPERTIES : Deletes top-level + properties.Any top-level property that is present in the template(even + with empty value) is retained.All other top-level properties in the + working object are deleted + Add ADD_NEW_PROPERTIES: Adds new properties to the + working object if the template properties have values.See additional + detail below. + Replace REPLACE_EXISTING_PROPERTIES: Replaces the + values of existing top-level properties in the working XMP if the value + forms match those in the template. Properties with empty values in the + template are ignored. If combined with Clear or Add actions, those take + precedence; values are cleared or added, rather than replaced. + Replace/Delete empty REPLACE_WITH_DELETE_EMPTY: + Replaces values in the same way as the simple Replace action, and also + deletes properties if the value in the template is empty.If combined + with Clear or Add actions, those take precedence; values are cleared or + added, rather than replaced. + Include internal INCLUDE_INTERNAL_PROPERTIES: Performs + specified action on internal properties as well as external properties. + By default, internal properties are ignored for all actions. + + + The Add behavior depends on the type of property: + + If a top-level property is not in the working XMP, and has a value in + the template, the property and value are added.Empty properties are not + added. + If a property is in both the working XMP and template, the value + forms must match, otherwise the template is ignored for that property. + If a struct is present in both the working XMP and template, the + individual fields of the template struct are added as appropriate; that + is, the logic is recursively applied to the fields.Struct values are + equivalent if they have the same fields with equivalent values. + If an array is present in both the working XMP and template, items + from the template are added if the value forms match. Array values match + if they have sets of equivalent items, regardless of order. + Alt-text arrays use the \c xml:lang qualifier as a key, adding languages that are missing. + + + Array item checking is n-squared; this can be time-intensive if the + Replace option is not specified.Each source item is checked to see if it + already exists in the destination, without regard to order or duplicates. + Simple items are compared by value and xml:lang qualifier; + other qualifiers are ignored.Structs are recursively compared by field + names, without regard to field order.Arrays are compared by recursively + comparing all items. + + The destination XMP object. + The template to apply to the destination XMP object. + Option flags to control the copying. If none are specified, + the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: + + CLEAR_UNNAMED_PROPERTIES Delete anything that is not in the template + ADD_NEW_PROPERTIES Add properties; see detailed description. + REPLACE_EXISTING_PROPERTIES Replace the values of existing properties. + REPLACE_WITH_DELETE_EMPTY Replace the values of existing properties and delete properties if the new value is empty. + INCLUDE_INTERNAL_PROPERTIES Operate on internal properties as well as external properties. + + + Forwards the Exceptions from the metadata processing + + + Replicate a subtree from one XMP object into another, possibly at a + different location. + The source XMP object. + The destination XMP object. + The schema namespace URI for the source subtree. + The root location for the source subtree. May be a general path expression, must not be null or the empty string. + The schema namespace URI for the destination. Defaults to the source namespace. + The root location for the destination. May be a general path expression. Defaults to the source location. + Option flags to control the separation. (For now, this argument is ignored. 0 should be passed. + Forwards the Exceptions from the metadata processing + + + + Compression level. + + + + + Represents the compressed stream writer + + + + + Type of the block. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/SpyInfo.json b/采集器3.5框架封装包2023-10-26/终端/Debug/SpyInfo.json new file mode 100644 index 0000000..03ef20b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/SpyInfo.json @@ -0,0 +1 @@ +[{"SpyKey":"1","SpyName":"示例采集器","StartSpyPath":"D:\\项目\\采集器3.0框架\\master\\SpyFramework3\\Terminal\\bin\\Debug\\JSCollector\\1\\LISSpy.exe","TaskTimeoutSec":600}] \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/System.Data.SQLite.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Data.SQLite.dll new file mode 100644 index 0000000..6a9fdec Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Data.SQLite.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/System.Data.SQLite.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Data.SQLite.xml new file mode 100644 index 0000000..9b2e7b6 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Data.SQLite.xml @@ -0,0 +1,22383 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + For a given intrinsic type, return a DbType + + The native type to convert + The corresponding (closest match) DbType + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + This method attempts to query the flags associated with the database + connection in use. If the database connection is disposed, the default + flags will be returned. + + + The command containing the databse connection to query the flags from. + + + The connection flags value. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + NoDefaultFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" connection string property + was used. When this value is non-zero, + will retain treatment of the password as a NUL-terminated text string. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default databse type for this connection. This value will only + be used if the + flag is set. + + + + + The default databse type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Attempts to decrypt a database file that was encrypted using the legacy CryptoAPI-based + RC4 codec that was previously included with System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + SQL statement text as the statement first begins executing + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Reads the next row from the resultset + + True if a new row was successfully loaded and is ready for processing + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callbakc function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for collating sequences + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being resitered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The flags associated with the parent connection object. + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it is + set by the method on its first call. Later, it + is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + method. + On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Call calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/System.Runtime.CompilerServices.Unsafe.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..1908d92 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/System.Runtime.CompilerServices.Unsafe.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..b5dd21b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,258 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + + + + + + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Bypasses definite assignment rules for a given value. + The uninitialized object. + The type of the uninitialized object. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + + is , and is a non-nullable value type. + + is not a boxed value type. + +-or- + + is not a boxed . + + cannot be found. + A to the boxed value . + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.exe b/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.exe new file mode 100644 index 0000000..f1c8f3c Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.exe differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.exe.config b/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.exe.config new file mode 100644 index 0000000..acb4f48 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.exe.config @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.pdb b/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.pdb new file mode 100644 index 0000000..6f49532 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Terminal.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.dll new file mode 100644 index 0000000..c9f0de7 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.pdb b/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.pdb new file mode 100644 index 0000000..bb41a35 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.xml new file mode 100644 index 0000000..d18acac --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/Win32ApiUtils.xml @@ -0,0 +1,1089 @@ + + + + Win32ApiUtils + + + + + PrintWindow的绘图选项 + + + + + 只有窗口的客户端区域被复制到hdc Blt中。默认情况下,复制整个窗口 + + + + + GetDeviceCap指定返回项 + + + + + 屏幕的高度(光栅线) + + + + + 设备单位的物理页面宽度 + + + + + 设备x轴的比例系数 + + + + + 设备y轴的比例系数 + + + + + TernaryRasterOperations + 位图与目标位图以及图案刷的颜色值进行布尔运算的方式 + + + + + 原图 + + + + + 获取指定设备的性能参数 + + 设备上下文环境的句柄 + 指定返回项 + + + + 为一个设备创建设备上下文环境 + + 1.DISPLAY:屏幕设备 2.WINSPOOL:打印驱动 Or.Null + 所用专门设备的名称。该名由打印管理器分配显示 + Null + 这个结构保存初始值。传递0值则适用默认设置 + + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + _lopen的标志集 + + + + + 以可读、可写的方式打开文件 + + + + + 可打开文件,以便由其他程序读写 + + + + + OpenProcess访问标志 + + + + + 启用VirtualProtectEx和WriteProcessMemory功能中的进程句柄来修改进程的虚拟内存。 + + + + + 启用ReadProcessMemory功能中的进程句柄从进程的虚拟内存读取。 + + + + + 启用WriteProcessMemory功能中的进程句柄来写入进程的虚拟内存。 + + + + + VirtualAllocEx中flAllocationType的标志 + + + + + 该函数在内存页面的指定区域的内存或磁盘上的分页文件中分配实际物理存储。该函数将内存初始化为零。 + + + + + 该函数保留一系列的进程的虚拟地址空间,而不会在内存或磁盘上的页面文件中分配任何实际物理存储。 + + + + + VirtualAllocEx中的保护标志 + + + + + 启用对提交的页面区域的读取和写入权限。 + + + + + VirtualFreeEx的释放标志 + + + + + 该函数释放指定的页面区域。页面进入空闲状态。 + + + + + 打开二进制文件 + + 欲打开文件的名字 + 访问模式和共享模式常数的一个组合 + 如果函数成功,返回值是一个文件句柄。 + + + + 关闭文件句柄 + + + + + 返回现有进程对象的句柄。 + + 想得到的访问权限 + 指定返回的句柄是否可以被继承 + 指定要打开的进程的ID + 进程对象 + + + + 在目标进程地址空间分配内存. + + 在其中分配内存的进程句柄 + 所需的分配起始地址 + 要分配的区域的大小(以字节为单位) + 分配类型 + 访问类型保护 + + + + + 在指定的进程中写入内存。要写入的整个区域必须可访问,否则操作失败。 + + 要写入的进程句柄 + 开始写入地址 + 指向缓冲区的指针写入数据 + 要写入的字节数 + 实际写入的字节数 + + + + 在指定的进程中读取内存。要读取的整个区域必须可访问,否则操作失败。 + + 要读取的进程句柄 + 起始读取地址 + 缓冲区地址放置读取数据 + 要读取的字节数 + 读取到的字节数的地址 + + + + 在指定进程的虚拟地址空间内释放,分解或同时释放内存区域。 + + 要释放内存的进程句柄 + 释放的起始地址 + 大小,以字节为单位的内存区域释放 + 释放类型 + + + + + 函数用来获得当前可用的物理和虚拟内存信息,是GlobalMemoryStatus的64位版本。 + + 用来接收信息的结构 + + + + 强制终结进程 + + 线程句柄 + 结束代码 + 是否成功 + + + + 用于获得系统信息 + + + + + 结构的长度,在使用函数前必须初始化此值 + + + + + 物理内存的使用率(0~100的整数) + + + + + 物理内存的总量,以字节为单位(以下均相同) + + + + + 物理内存的剩余量 + + + + + 系统页面文件大小 + + + + + 系统可用页面文件大小 + + + + + 虚拟内存的总量 + + + + + 虚拟内存的剩余量 + + + + + 保留,值为0 + + + + + 隐藏窗体,并激活另一个窗体 + + + + + 与SW_RESTORE相同 + + + + + 激活并以最小化的形式显示窗体 + + + + + 激活并以最大化的形式显示窗体 + + + + + 最大化指定的窗体 + + + + + 以上次的状态显示指定的窗体,但不激活它 + + + + + 激活窗体,并将其显示在当前的大小和位置上 + + + + + 最小化指定的窗体,并激活另一个窗体 + + + + + 以最小化形式显示指定的窗体,但不激活它 + + + + + 以当前的状态显示指定的窗体,但不激活它 + + + + + 以原本的大小和位置,激活并显示指定的窗体 + + + + + 设置显示的状态由STARTUPINFO结构体指定 + + + + + 运行文件 + + 父窗口句柄,可为0 + 操作类型:"Open" 打开文件,"Print" 打印文件, "explore" 浏览文件夹 + 文件名 + 文件的命令行参数 + 文件所在目录 + 展示方式 + + + + + 获取ComboBox下拉框的所有选项的值 + + ComboBox下拉框的句柄 + ComboBox下拉框的的值列表 + + + + 改变ComboBox下拉框的选择项 + + ComboBox下拉框的句柄 + ComboBox下拉框的序号(从0开始) + + + + 读取ListView任一格子的文本 + + ListView的句柄 + 行,0开始 + 列,0开始 + 文本的编码 + 文本 + + + + 读取TreeView数据 + + TreeView的句柄 + 读取到的数据 + + + + 获取DateTimePicker的显示日期 + + 句柄 + DateTimePicker的显示日期 + + + + 设置DateTimePicker的日期 + + 句柄 + 要设置的日期 + 是否需要点击右方向键 + 输入后的等待,默认为1秒 + + + + 与文件相关的工具类 + + + + + 错误标志 + + + + + 查看文件是否被占用 + + + + + 与键盘相关的工具类 + + + + + 向句柄指向的窗口或控件输入字符串 + + 窗口或控件的句柄 + 要输入的字符串 + + + + 按下指定键 + + 要按下的键 + 等待时间 + + + + 按下指定组合键 + + 长按键 + 短按键 + 等待时间 + + + + 输入字符串, + 以SendInput的键盘事件串形式发送. + + + + + 与鼠标相关的工具类 + + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 鼠标按坐标点击 + + + + + 鼠标按坐标双击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 鼠标按坐标右击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 与显示器有关的工具类 + + + + + 判断是否存在遮挡指定窗口的窗口. + + 指定窗口 + 遮挡住指定窗口的窗口句柄 + + + + 判断是否存在遮挡指定区域的窗口. + + 指定窗口 + 指定区域 + 遮挡住指定区域的窗口句柄 + + + + 获取屏幕缩放系数 + + + + + 提取屏幕截图,根据窗口句柄 + + 句柄 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 提取屏幕截图,根据坐标和大小 + 需要手动将缩放系数适配 + + + + + + + + + + 获取屏幕上指定位置像素点 + + + + + 获取窗口中所有与指定颜色相同的像素点信息 + + 窗口句柄 + 指定颜色 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 获取指定位置中所有与指定颜色相同的像素点信息 + + 左上x轴坐标 + 左上y轴坐标 + 宽度 + 高度 + 指定颜色 + + + + 获取指定图片中所有与指定颜色相同的像素点信息 + + 图片 + 颜色 + 像素点集 + + + + 窗口基本信息 + + + + + 标题 + + + + + 类名 + + + + + 句柄 + + + + + 父窗口句柄 + + + + + 父窗口基本信息 + + + + + 子级 + + + + + 与窗口有关的工具类 + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 向窗口发送关闭信息 + + + + + 获取窗口的矩形信息 + 左上角坐标以及宽高 + + + + + 复制窗口文本到调用者提供的缓冲区. + + 句柄 + 窗口文本 + + + + 以List的形式列出父窗口下所有子窗口的基本信息.(全递归) + + 父窗口句柄 + 递归子窗口基本信息 + + + + 查找符合key条件并返回第一个集合内的窗口信息. + --模糊查询 + 对比Hadnle,ParentHandle,Caption,ClassName + + 遍历的窗口信息集合 + 要找的数据 + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName.精确查询 + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回所有符合条件的集合内的窗口信息 + + 集合 + 所有符合条件的选项 + + + + 坐标结构体 + + + + + 鼠标事件标志 + + + + + 移动鼠标 + + + + + 模拟鼠标左键按下 + + + + + 模拟鼠标左键抬起 + + + + + 鼠标右键按下 + + + + + 鼠标右键抬起 + + + + + 鼠标中键按下 + + + + + 中键抬起 + + + + + 标示是否采用绝对坐标 + + + + + 键盘事件标志 + + + + + 按下 + + + + + 弹起 + + + + + 设置指定窗口的显示状态的标志集 + + + + + 隐藏窗口并激活其他窗口 + + + + + 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志 + + + + + 激活窗口并将其最小化 + + + + + 激活窗口并将其最大化 + + + + + 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态 + + + + + 在窗口原来的位置以原来的尺寸激活和显示窗口 + + + + + 最小化指定的窗口并且激活在Z序中的下一个顶层窗口 + + + + + 窗口最小化,激活窗口仍然维持激活状态 + + + + + 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态 + + + + + 激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志 + + + + + 最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志 + + + + + 发送输入 (SendInput)方法的标志集 + + + + + 鼠标 + + + + + 键盘 + + + + + 硬件 + + + + + 检索到的句柄标识 Z 顺序中最高级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中最低级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口下方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口上方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识指定窗口的所有者窗口(如果有)。 + + + + + 如果指定的窗口是父窗口,则检索到的句柄标识 Z 顺序顶部的子窗口; + 否则,检索到的句柄为 NULL。该函数仅检查指定窗口的子窗口。它不检查后代窗口。 + + + + + 检索到的句柄标识指定窗口拥有的已启用弹出窗口(搜索使用GW_HWNDNEXT找到的第一个此类窗口); + 否则,如果没有启用的弹出窗口,则检索到的句柄是指定窗口的句柄。 + + + + + 操作鼠标 + + 标志集 + x坐标位置 + y坐标位置 + 标志为Wheel值时,设置为滚轮滚动量 + 与鼠标事件相关的附加32位值 + + + + + 移动鼠标到指定位置 + + + + + 操作键盘 + + 键值 + 该键的硬件扫描码 + 标志位集 + 与击键相关的附加的32位值 + + + + 操作键盘或者鼠标, + 将指定事件串插入键盘或鼠标输入流. + + pInputs的数量 + 事件串 + SendInputParm结构的字节大小 + + + + 将一个字符翻译成相应的虚拟键码和对于当前键盘的转换状态 + + + + + 检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换) + + 定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9), + nVirtKey必须被置为相应字符的ASCII码值,对于其他的键,nVirtKey必须是一虚拟键码。 + 若使用非英语键盘布局,则取值在ASCIIa~z和0~9的虚拟键被用于定义绝大多数的字符键。 + 例如,对于德语键盘格式,值为ASCII0(OX4F)的虚拟键指的是”0″键,而VK_OEM_1指”带变音的0键” + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 获取桌面句柄 + + + + + + 寻找顶级窗口 + + 窗口的类名 + 窗口的标题 + + + + + 寻找与指定条件相符的第一个子窗口 + + 父窗口句柄.若为0则以桌面窗口为父窗口并查找所有的子窗口 + 子窗口句柄,指示查找从此子窗口句柄的下一个开始 + 类名 + 标题 + + + + + 枚举子窗口 + + 父窗口句柄 + 回调.true为继续遍历,false为停止遍历 + 附加值 + + + + + 获取父窗口句柄 + + + + + 获取窗口标题的长度 + + + + + 获取窗口标题 + + 句柄 + 用来返回的字符串 + 最大长度 + + + + 获取窗口类名 + + 窗口句柄 + 用来返回的字符串 + 最大长度 + + + + + 返回指定窗口的边框矩形的大小. + 为四个角的坐标. + + 窗口句柄 + 传回的窗口矩形信息 + + + + 获取窗口所在的进程ID + + 窗口句柄 + 进程ID返回值 + + + + 获得指定窗口的可视状态 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + 根据坐标获取窗口句柄 + + 坐标信息 + 窗口句柄 + + + + 检索与指定窗口具有指定关系(Z 顺序或所有者)的窗口的句柄。 + + 窗口的手柄。检索到的窗口句柄基于 uCmd 参数的值相对于此窗口。 + 指定窗口与要检索其句柄的窗口之间的关系。 + + + + + 该函数对指定的窗口设置键盘焦点。该窗口必须与调用线程的消息队列相关。 + + + + + + + 将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号 + + + + + + 取前台窗口的句柄(用户当前工作的窗口) + 在某些情况下,如一个窗口失去激活时,前台窗口可以是NULL。 + + + + + 激活一个窗口,该窗口必须与调用线程的消息队列相关联 + + + + + 设置窗口的显示状态 + + 窗口句柄 + 标志集 + + + + + 获取指定窗口的设备上下文句柄 + 用于在窗口的非客户端区域内进行特殊的绘制效果 + + + + + 将一个可视窗口复制到指定的设备上下文(DC)中 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + PostMessage和PostMessage所使用的标志位集合, + 未来使用时若枚举内不存再则添加上去. + + + + + 修改下拉框 默认选中那一项 相当于MFC中的SetCurlSel + + + + diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/itextsharp.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/itextsharp.dll new file mode 100644 index 0000000..d9f1d58 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/itextsharp.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/itextsharp.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/itextsharp.xml new file mode 100644 index 0000000..823198f --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/itextsharp.xml @@ -0,0 +1,38512 @@ + + + + itextsharp + + + + Gets the name of the resultant PDF file. + This name will be passed to makePdf, assertPdf and comparePdf methods. + @return + + + Gets the name of the compare PDF file. + This name will be passed to comparePdf method. + @return + + + Sets the maximum errors count which will be returned as the result of the comparison. + @param compareByContentMaxErrorCount the errors count. + @return Returns this. + + + Sets the absolute error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Sets the relative error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Creates a new instance of MemoryLimitsAwareException. + + @param message the detail message. + + + + A + + handles memory allocation and prevents decompressed pdf streams from occupation of more space than allowed. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream with two or more filters of identical type + occupies more memory than allowed. + + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + this + + instance. + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams with two or more filters of identical type + occupy more memory than allowed. + + he maximum allowed size which can be occupied by all decompressed pdf streams. + + + this + + instance. + + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + @param size the initial size. + @throws IllegalArgumentException if size is negative. + + + Gets the maximum size which can be occupied by this output stream. + + @return the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + + @param maxStreamSize the maximum size which can be occupied by this output stream. + @return this {@link MemoryLimitsAwareOutputStream} + + + {@inheritDoc} + + + Query and change fields in existing documents either by method + calls or by FDF merging. + @author Paulo Soares + + + A field type invalid or not found. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + Holds value of property generateAppearances. + + + Holds value of property fieldCache. + + + Gets the list of appearance names. Use it to get the names allowed + with radio and checkbox fields. If the /Opt key exists the values will + also be included. The name 'Off' may also be valid + even if not returned in the list. + + For Comboboxes it will return an array of display values. To extract the + export values of a Combobox, please refer to {@link AcroFields#getListOptionExport(String)} + + @param fieldName the fully qualified field name + @return the list of names or null if the field does not exist + + + Gets the list of export option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + Gets the list of display option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + + + Export the fields as a FDF. + @param writer the FDF writer + + + Renames a field. Only the last part of the name can be renamed. For example, + if the original field is "ab.cd.ef" only the "ef" part can be renamed. + @param oldName the old field name + @param newName the new field name + @return true if the renaming was successful, false + otherwise + + + Retrieve the rich value for the given field + @param name + @return The rich value if present, or null. + @since 5.0.6 + + + Gets the field value. + @param name the fully qualified field name + @return the field value + + + Gets the field values of a Choice field. + @param name the fully qualified field name + @return the field value + @since 2.1.3 + + + + + Merges an XML data structure into this form. + @param n the top node of the data structure + @throws java.io.IOException on error + @throws com.lowagie.text.DocumentException o error + + + Sets the fields by FDF merging. + @param fdf the FDF form + @throws IOException on error + @throws DocumentException on error + + + Sets the fields by XFDF merging. + @param xfdf the XFDF form + @throws IOException on error + @throws DocumentException on error + + + Regenerates the field appearance. + This is usefull when you change a field property, but not its value, + for instance form.SetFieldProperty("f", "bgcolor", BaseColor.BLUE, null); + This won't have any effect, unless you use RegenerateField("f") after changing + the property. + + @param name the fully qualified field name or the partial name in the case of XFA forms + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param saveAppearance save the current appearance of the field or not + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the rich value for the given field. See PDF Reference chapter + 12.7.3.4 (Rich Text) and 12.7.4.3 (Text Fields) for further details. Note that iText doesn't create an appearance for Rich Text fields. + So you either need to use XML Worker to create an appearance (/N entry in the /AP dictionary), or you need to use setGenerateAppearances(false) to tell the viewer + that iText didn't create any appearances. + @param name Field name + @param richValue html markup + @return success/failure (will fail if the field isn't found, isn't a text field, or doesn't support rich text) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @param saveAppearance save the current appearance of the field or not + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets different values in a list selection. + No appearance is generated yet; nor does the code check if multiple select is allowed. + + @param name the name of the field + @param value an array with values that need to be selected + @return true only if the field value was changed + @since 2.1.4 + + + Gets all the fields. The fields are keyed by the fully qualified field name and + the value is an instance of AcroFields.Item. + @return all the fields + + + Gets the field structure. + @param name the name of the field + @return the field structure or null if the field + does not exist + + + Gets the long XFA translated name. + @param name the name of the field + @return the long field name + + + Gets the field box positions in the document. The return is an array of float + multiple of 5. For each of this groups the values are: [page, llx, lly, urx, + ury]. The coordinates have the page rotation in consideration. + @param name the field name + @return the positions or null if field does not exist + + + Removes all the fields from page. + @param page the page to remove the fields from + @return true if any field was removed, false otherwise + + + Removes a field from the document. If page equals -1 all the fields with this + name are removed from the document otherwise only the fields in + that particular page are removed. + @param name the field name + @param page the page to remove the field from or -1 to remove it from all the pages + @return true if the field exists, false otherwise + + + Removes a field from the document. + @param name the field name + @return true if the field exists, false otherwise + + + Sets the option to generate appearances. Not generating apperances + will speed-up form filling but the results can be + unexpected in Acrobat. Don't use it unless your environment is well + controlled. The default is true. + @param generateAppearances the option to generate appearances + + + The field representations for retrieval and modification. + + + writeToAll constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + This function writes the given key/value pair to all the instances + of merged, widget, and/or value, depending on the writeFlags setting + + @since 2.1.5 + + @param key you'll never guess what this is for. + @param value if value is null, the key will be removed + @param writeFlags ORed together WRITE_* flags + + + Mark all the item dictionaries used matching the given flags + + @since 2.1.5 + @param writeFlags WRITE_MERGED is ignored + + + An array of PdfDictionary where the value tag /V + is present. + + + + An array of PdfDictionary with the widgets. + + + + An array of PdfDictionary with the widget references. + + + + An array of PdfDictionary with all the field + and widget tags merged. + + + + An array of Integer with the page numbers where + the widgets are displayed. + + + + An array of Integer with the tab order of the field in the page. + + + + Preferred method of determining the number of instances + of a given field. + + @since 2.1.5 + @return number of instances + + + Remove the given instance from this item. It is possible to + remove all instances using this function. + + @since 2.1.5 + @param killIdx + + + Retrieve the value dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return dictionary storing this instance's value. It may be shared across instances. + + + Add a value dict to this Item + + @since 2.1.5 + @param value new value dictionary + + + Retrieve the widget dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return The dictionary found in the appropriate page's Annot array. + + + Add a widget dict to this Item + + @since 2.1.5 + @param widget + + + Retrieve the reference to the given instance + + @since 2.1.5 + @param idx instance index + @return reference to the given field instance + + + Add a widget ref to this Item + + @since 2.1.5 + @param widgRef + + + Retrieve the merged dictionary for the given instance. The merged + dictionary contains all the keys present in parent fields, though they + may have been overwritten (or modified?) by children. + Example: a merged radio field dict will contain /V + + @since 2.1.5 + @param idx instance index + @return the merged dictionary for the given instance + + + Adds a merged dictionary to this Item. + + @since 2.1.5 + @param mergeDict + + + Retrieve the page number of the given instance + + @since 2.1.5 + @param idx + @return remember, pages are "1-indexed", not "0-indexed" like field instances. + + + Adds a page to the current Item. + + @since 2.1.5 + @param pg + + + forces a page value into the Item. + + @since 2.1.5 + @param idx + + + Gets the tabOrder. + + @since 2.1.5 + @param idx + @return tab index of the given field instance + + + Adds a tab order value to this Item. + + @since 2.1.5 + @param order + + + Clears a signed field. + @param name the field name + @return true if the field was signed, false if the field was not signed or not found + @since 5.0.5 + + + Gets the field names that have signatures and are signed. + @return the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + @return the field names that have blank signatures + + + Gets the signature dictionary, the one keyed by /V. + @param name the field name + @return the signature dictionary keyed by /V or null if the field is not + a signature + + + Gets a reference to the normal appearance of a field. + + @param name the field name + @return a reference to the /N entry of the /AP dictionary or null if the field is not found + + + Checks is the signature covers the entire document or just part of it. + @param name the signature field name + @return true if the signature covers the entire document, + false otherwise + + + + Gets the total number of revisions this document has. + @return the total number of revisions + + + Gets this field revision. + @param field the signature field name + @return the revision or zero if it's not a signature field + + + Extracts a revision from the document. + @param field the signature field name + @return an Stream covering the revision. Returns null if + it's not a signature field + @throws IOException on error + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Adds a substitution font to the list. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param font the font + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Gets the XFA form processor. + @return the XFA form processor + + + Removes the XFA stream from the document. + + + Creates a new pushbutton from an existing field. If there are several pushbuttons with the same name + only the first one is used. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField)}. + @param field the field name that should be a pushbutton + @return a new pushbutton or null if the field is not a pushbutton + + + Creates a new pushbutton from an existing field. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField,int)}. + @param field the field name that should be a pushbutton + @param order the field order in fields with same name + @return a new pushbutton or null if the field is not a pushbutton + + + Replaces the first field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @return true if the field was replaced, false if the field + was not a pushbutton + + + Replaces the designated field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @param order the field order in fields with same name + @return true if the field was replaced, false if the field + was not a pushbutton + + + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + @param name String + @return boolean does the signature field exist + @since 5.5.1 + + + A class representing a field position + @since 5.0.2 + + + + Summary description for InputMeta. + + + + + Summary description for MetaDo. + + + + Creates new MetaState + + + Getter for property currentBackgroundColor. + @return Value of property currentBackgroundColor. + + + Getter for property currentTextColor. + @return Value of property currentTextColor. + + + Getter for property backgroundMode. + @return Value of property backgroundMode. + + + Getter for property textAlign. + @return Value of property textAlign. + + + Getter for property polyFillMode. + @return Value of property polyFillMode. + + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + + Reads a BMP from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + @param is the stream + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + The BMP may not have a header and be considered as a plain DIB. + @param is the stream + @param noHeader true to process a plain DIB + @param size the size of the DIB. Not used for a BMP + @throws IOException on error + @return the image + + + Reads a BMP from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a BMP from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + @param width the line width + + + Encodes a number of lines. + @param data the data to be encoded + @param offset the offset into the data + @param size the size of the data to be encoded + + + Encodes a full image. + @param data the data to encode + @param width the image width + @param height the image height + @return the encoded image + + + Encodes a number of lines. + @param data the data to be encoded + @param height the number of lines to encode + + + Closes the encoder and returns the encoded data. + @return the encoded data + + + Reads gif images of all types. All the images in a gif are read in the constructors + and can be retrieved with other methods. + @author Paulo Soares + + + Reads gif images from an URL. + @param url the URL + @throws IOException on error + + + Reads gif images from a file. + @param file the file + @throws IOException on error + + + Reads gif images from a byte array. + @param data the byte array + @throws IOException on error + + + Reads gif images from a stream. The stream isp not closed. + @param isp the stream + @throws IOException on error + + + Gets the number of frames the gif has. + @return the number of frames the gif has + + + Gets the image from a frame. The first frame isp 1. + @param frame the frame to get the image from + @return the image + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Gets the logical screen. The images may be smaller and placed + in some position in this screen to playback some animation. + No image will be be bigger that this. + @return the logical screen dimensions as [x,y] + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + Support for JBIG2 Images. + This class assumes that we are always embedding into a pdf. + + @since 2.1.5 + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + @param ra an random access file or array + @return a byte array + + + returns an Image representing the given page. + @param ra the file or array containing the image + @param page the page number of the image + @return an Image object + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + TODO: the indeterminate-segment-size value of dataLength, else? + + @since 2.1.5 + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Creates a new instance of PngImage + + + Reads a PNG from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a PNG from a stream. + @param is the stream + @throws IOException on error + @return the image + + + Reads a PNG from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a PNG from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + A list of constants used in class TIFFImage. + + + + A bool storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaing multiple directories. + + @param stream a SeekableStream to read from. + @param directory the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + @param stream a SeekableStream to read from. + @param ifd_offset the long byte offset of the directory. + @param directory the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + Returns the number of directory entries. + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + + Returns true if a tag appears in the directory. + + + Returns an ordered array of ints indicating the tag + values. + + + Returns an array of TIFFFields containing all the fields + in this directory. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + + Returns a bool indicating whether the byte order used in the + the TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + Returns the offset of the IFD corresponding to this + TIFFDirectory. + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + The logical order of bits within a byte. +
+            1 = MSB-to-LSB
+            2 = LSB-to-MSB (flipped)
+            
+
+ + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + + Returns the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + + + Returns the number of elements in the IFD. + + + + + + + + + + + + + + + + + + + + Reads TIFF images + @author Paulo Soares + + + Gets the number of pages the TIFF document has. + @param s the file source + @return the number of pages + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + Reads a page from a TIFF image. Direct mode is not used. + @param s the file source + @param page the page to get. The first page is 1 + @return the Image + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + @param h The number of rows the compressed data contains. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newString to the end of oldString. + + + + @author psoares + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + + @param seq + @return the cid code or -1 for end + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + This class represents a CMap file. + + @author Ben Litchfield (ben@benlitchfield.com) + @since 2.1.4 + + + Creates a new instance of CMap. + + + This will tell if this cmap has any one byte mappings. + + @return true If there are any one byte mappings, false otherwise. + + + This will tell if this cmap has any two byte mappings. + + @return true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + + @param code The code used to lookup. + @param offset The offset into the byte array. + @param length The length of the data we are getting. + + @return The string that matches the lookup. + + + + @author psoares + + + + @author psoares + + + Interface providing alternate description for accessible elements. + + + Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @return + + + Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @param value + + + Gets all the properties of accessible element. + @return + + + Role propherty of the accessible element. + Note that all child elements won't also be tagged. + @return + + + Use this methods to get the AcroForm object. + Use this method only if you know what you're doing + @return the PdfAcroform object of the PdfDocument + + + Use this methods to add a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Use this method to adds the PdfAnnotation + to the calculation order array. + @param annot the PdfAnnotation to be added + + + Use this method to set the signature flags. + @param f the flags. This flags are ORed with current ones + + + A PDF document can have an open action and other additional actions. + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws DocumentException on invalid action type + + + Encryption settings are described in section 3.5 (more specifically + section 3.5.2) of the PDF Reference 1.7. + They are explained in section 3.3.3 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + A PDF page can have an open and/or close action. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws DocumentException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + The PDF version is described in the PDF Reference 1.7 p92 + (about the PDF Header) and page 139 (the version entry in + the Catalog). You'll also find info about setting the version + in the book 'iText in Action' sections 2.1.3 (PDF Header) + and 3.3 (Version history). + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header, + but only if param refers to a higher version. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + Sets the PDF version as it will appear in the Catalog. + Note that this only has effect if you use a later version + than the one that appears in the header. This method + ignores the parameter if you try to set a lower version + than the one currently set in the Catalog. + @param version the PDF name that will be used for the Version key in the catalog + + + Adds a developer extension to the Extensions dictionary + in the Catalog. + @param de an object that contains the extensions prefix and dictionary + @since 2.1.6 + + + Viewer preferences are described in section 3.6.1 and 8.1 of the + PDF Reference 1.7 (Table 3.25 on p139-142 and Table 8.1 on p579-581). + They are explained in section 13.1 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + + + Sets the PDF/X conformance level. + Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. + It must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + Shape arabic characters. This code was inspired by an LGPL'ed C library: + Pango ( see http://www.pango.com/ ). Note that the code of this is the + original work of Paulo Soares. Hence it is perfectly justifiable to distribute + it under the MPL. + + @author Paulo Soares + + + Some fonts do not implement ligaturized variations on Arabic characters + e.g. Simplified Arabic has got code point 0xFEED but not 0xFEEE + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Not a valid option value. + + + Bit mask for digit shaping options. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Bit mask for digit type options. + + + Arabic is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Signals that a bad PDF format has been used to construct a PdfObject. + + @see PdfException + @see PdfBoolean + @see PdfNumber + @see PdfString + @see PdfName + @see PdfDictionary + @see PdfFont + + + Base class containing properties and methods commom to all + barcode types. + + @author Paulo Soares + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The minimum bar width. + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + The text font. null if no text. + + + The size of the text or the height of the shorter bar + in Postnet. + + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + The height of the bars. + + + The text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + Gets the minimum bar width. + @return the minimum bar width + + + Gets the bar multiplier for wide bars. + @return the bar multiplier for wide bars + + + Gets the text font. null if no text. + @return the text font. null if no text + + + Gets the size of the text. + @return the size of the text + + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + @return the baseline. + + + Gets the height of the bars. + @return the height of the bars + + + Gets the text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + @return the text alignment + + + The property for the optional checksum generation. + + + Sets the property to show the generated checksum in the the text. + @param checksumText new value of property checksumText + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + @param startStopText new value of property startStopText + + + Sets the property to generate extended barcode 39. + @param extended new value of property extended + + + Gets the code to generate. + @return the code to generate + + + Sets the property to show the guard bars for barcode EAN. + @param guardBars new value of property guardBars + + + Gets the code type. + @return the code type + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Creates a template with the barcode. + @param cb the PdfContentByte to create the template. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the template + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + Creates an Image with the barcode. + @param cb the PdfContentByte to create the Image. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the Image + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + The alternate text to be used, if present. + + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + @param altText the alternate text + + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128 + + + Removes the FNC1 codes in the text. + @param code the text to clean + @return the cleaned text + + + Gets the human readable text of a sequence of AI. + @param code the text + @return the human readable text + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + @param text the text to check + @param textIndex where to check from + @param numDigits the number of digits to check + @return the check result + + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + @param text the text to pack + @param textIndex where to pack from + @param numDigits the number of digits to pack. It is always an even number + @return the packed digits, two digits per character + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @param codeSet forced code set, or AUTO for optimized barcode. + @return the code ready to be fed to getBarsCode128Raw() + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @return the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. The input has the actual barcodes, not + the human readable text. + @param text the barcode + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + Implements the code 39 and code 39 extended. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = true;
+            extended = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + + Creates the bars. + @param text the text to create the bars. This text does not include the start and + stop characters + @return the bars + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + @param text the extended text + @return the escaped text + + + Calculates the checksum. + @param text the text + @return the checksum + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code codabar. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textAlignment = Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + Creates a new BarcodeCodabar. + + + Creates the bars. + @param text the text to create the bars + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X21 encodation. + + + X12 encodation. + + @deprecated Use {@link BarcodeDataMatrix#DM_X12} instead. + + + EDIFACT encodation. + + + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + + + + Gets an Image with the barcode. A successful call to the method generate() + before calling this method is required. + @return the barcode Image + @throws BadElementException on error + + + Creates a java.awt.Image. A successful call to the method generate() + before calling this method is required. + @param foreground the color of the bars + @param background the color of the background + @return the image + + + Gets the generated image. The image is represented as a stream of bytes, each byte representing + 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row + is aligned at byte boundaries. The dimensions of the image are defined by height and width + plus 2 * ws. + @return the generated image + + + + + Gets/sets the whitespace border around the barcode. + @param ws the whitespace border around the barcode + + + + Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, + supplemental 2 and 5. The default parameters are: +
+            x = 0.8f;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            guardBars = true;
+            codeType = EAN13;
+            code = "";
+             
+ + @author Paulo Soares +
+ + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN + + + Calculates the EAN parity character. + @param code the code + @return the parity character + + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + @param text the code to convert. It must have 12 numeric characters + @return the 8 converted digits or null if the + code could not be converted + + + Creates the bars for the barcode EAN13 and UPCA. + @param _code the text with 13 digits + @return the barcode + + + Creates the bars for the barcode EAN8. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode UPCE. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode supplemental 2. + @param _code the text with 2 digits + @return the barcode + + + Creates the bars for the barcode supplemental 5. + @param _code the text with 5 digits + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + @param ean the EAN/UPC barcode + @param supp the supplemental barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + Creates new BarcodeInter25 + + + Deletes all the non numeric characters from text. + @param text the text + @return a string with only numeric characters + + + Calculates the checksum. + @param text the numeric text + @return the checksum + + + Creates the bars for the barcode. + @param text the text. It can contain non numeric characters + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed + and variable sizes, automatic and manual error levels, raw codeword input, + codeword size optimization and bitmap inversion. The output can + be a CCITT G4 Image or a raw bitmap. + @author Paulo Soares + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + The size will be at least codeColumns + with a variable number of codeRows. + + + The size will be at least codeRows + with a variable number of codeColumns. + + + The error level correction is set automatically according + to ISO 15438 recomendations. + + + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + No text interpretation is done and the content of codewords + is used directly. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + Use Macro PDF417 Encoding + @see #setMacroFileId(String) + @see #setMacroSegmentId(int) + @see #setMacroSegmentCount(int) + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + @param id the id (starting at 0) + @see #setMacroSegmentCount(int) + + + Sets the segment count for macro PDF417 encoding + @param cnt the number of macro segments + @see #setMacroSegmentId(int) + + + Sets the File ID for macro PDF417 encoding + @param id the file id + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Gets an Image with the barcode. The image will have to be + scaled in the Y direction by yHeightfor the barcode + to have the right printing aspect. + @return the barcode Image + @throws BadElementException on error + + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + @return The raw barcode image + + + Gets the number of X pixels of outBits. + @return the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + @return the number of Y pixels of outBits + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + @param codeRows the number of barcode rows + + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + @param codeColumns the number of barcode data columns + + + Gets the codeword array. This array is always 928 elements long. + It can be writen to if the option PDF417_USE_RAW_CODEWORDS + is set. + @return the codeword array + + + Sets the length of the codewords. + @param lenCodewords the length of the codewords + + + Gets the error level correction used for the barcode. It may different + from the previously set value. + @return the error level correction used for the barcode + Sets the error level correction for the barcode. + @param errorLevel the error level correction for the barcode + + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + @param text the bytes that form the barcode + + + Sets the text that will form the barcode. This text is converted + to bytes using the encoding Cp437. + @param s the text that will form the barcode + @throws UnsupportedEncodingException if the encoding Cp437 is not supported + + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + @param options the options to generate the barcode + + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + @param aspectRatio the barcode aspect ratio + + + Sets the Y pixel height relative to X. It is usually 3. + @param yHeight the Y pixel height relative to X + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property text. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Gets the size of the barcode grid. + + + Implements the Postnet and Planet barcodes. The default parameters are: +
+            n = 72f / 22f; // distance between bars
+            x = 0.02f * 72f; // bar width
+            barHeight = 0.125f * 72f; // height of the tall bars
+            size = 0.05f * 72f; // height of the short bars
+            codeType = POSTNET; // type of code
+             
+ + @author Paulo Soares +
+ + The bars for each character. + + + Creates new BarcodePostnet + + + Creates the bars for Postnet. + @param text the code to be created without checksum + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + A QRCode implementation based on the zxing code. + @author Paulo Soares + @since 5.0.2 + + + Creates the QR barcode. The barcode is always created with the smallest possible size and is then stretched + to the width and height given. Set the width and height to 1 to get an unscaled barcode. + @param content the text to be encoded + @param width the barcode width + @param height the barcode height + @param hints modifiers to change the way the barcode is create. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + @throws WriterException + + + Gets an Image with the barcode. + @return the barcode Image + @throws BadElementException on error + + + Gets the size of the barcode grid. + + + A thin border with 1 point width. + + + A medium border with 2 point width. + + + A thick border with 3 point width. + + + The field is visible. + + + The field is hidden. + + + The field is visible but does not print. + + + The field is hidden but is printable. + + + The user may not change the value of the field. + + + The field must have a value at the time it is exported by a submit-form + action. + + + The field may contain multiple lines of text. + This flag is only meaningful with text fields. + + + The field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + The field is intended for entering a secure password that should + not be echoed visibly to the screen. + + + The text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + The text entered in the field will not be spell-checked. + This flag is meaningful only in text fields and in combo + fields with the EDIT flag set. + + + If set the combo box includes an editable text box as well as a drop list; if + clear, it includes only a drop list. + This flag is only meaningful with combo fields. + + + whether or not a list may have multiple selections. Only applies to /CH LIST + fields, not combo boxes. + + + combo box flag. + + + Holds value of property rotation. + + + Holds value of property visibility. + + + Holds value of property fieldName. + + + Holds value of property options. + + + Holds value of property maxCharacterLength. + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the border width in points. To eliminate the border + set the border color to null. + @param borderWidth the border width in points + + + Sets the border style. The styles are found in PdfBorderDictionary + and can be STYLE_SOLID, STYLE_DASHED, + STYLE_BEVELED, STYLE_INSET and + STYLE_UNDERLINE. + @param borderStyle the border style + + + Sets the border color. Set to null to remove + the border. + @param borderColor the border color + + + Sets the background color. Set to null for + transparent background. + @param backgroundColor the background color + + + Sets the text color. If null the color used + will be black. + @param textColor the text color + + + Sets the text font. If null then Helvetica + will be used. + @param font the text font + + + Sets the font size. If 0 then auto-sizing will be used but + only for text fields. + @param fontSize the font size + + + Sets the text horizontal alignment. It can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER and Element.ALIGN_RIGHT. + @param alignment the text horizontal alignment + + + Sets the text for text fields. + @param text the text + + + Sets the field dimension and position. + @param box the field dimension and position + + + Sets the field rotation. This value should be the same as + the page rotation where the field will be shown. + @param rotation the field rotation + + + Convenience method to set the field rotation the same as the + page rotation. + @param page the page + + + Sets the field visibility flag. This flags can be one of + VISIBLE, HIDDEN, VISIBLE_BUT_DOES_NOT_PRINT + and HIDDEN_BUT_PRINTABLE. + @param visibility field visibility flag + + + Sets the field name. + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the option flags. The option flags can be a combination by oring of + READ_ONLY, REQUIRED, + MULTILINE, DO_NOT_SCROLL, + PASSWORD, FILE_SELECTION, + DO_NOT_SPELL_CHECK and EDIT. + @param options the option flags + + + Sets the maximum length of the field�s text, in characters. + It is only meaningful for text fields. + @param maxCharacterLength the maximum length of the field�s text, in characters + + + Moves the field keys from from to to. The moved keys + are removed from from. + @param from the source + @param to the destination. It may be null + + + + Summary description for BaseFont. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The maximum height above the baseline reached by glyphs in this + font, excluding the height of glyphs for accented characters. + + + The y coordinate of the top of flat capital letters, measured from + the baseline. + + + The maximum depth below the baseline reached by glyphs in this + font. The value is a negative number. + + + The angle, expressed in degrees counterclockwise from the vertical, + of the dominant vertical strokes of the font. The value is + negative for fonts that slope to the right, as almost all italic fonts do. + + + The lower left x glyph coordinate. + + + The lower left y glyph coordinate. + + + The upper right x glyph coordinate. + + + The upper right y glyph coordinate. + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + The underline position. Usually a negative value. + + + The underline thickness. + + + The strikethrough position. + + + The strikethrough thickness. + + + The recommended vertical size for subscripts for this font. + + + The recommended vertical offset from the baseline for subscripts for this font. Usually a negative value. + + + The recommended vertical size for superscripts for this font. + + + The recommended vertical offset from the baseline for superscripts for this font. + + + The weight class of the font, as defined by the font author + @since 5.0.2 + + + The width class of the font, as defined by the font author + @since 5.0.2 + + + The entry of PDF FontDescriptor dictionary. + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + A value larger than 500 indicates bold font-weight. + + + The font is Type 1. + + + The font is True Type with a standard encoding. + + + The font is CJK. + + + The font is True Type with a Unicode encoding. + + + A font already inside the document. + + + A Type3 font. + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + default array of six numbers specifying the font matrix, mapping glyph space to text space + + + if the font has to be embedded + + + if the font doesn't have to be embedded + + + if the font has to be cached + + + if the font doesn't have to be cached + + + The path to the font resources. + + + The fake CID code that represents a newline. + + + * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029) + * Treated as a line feed character in XFA rich and plain text. + * @since 5.4.3 + + + The font type. + + + a not defined character in a custom PDF encoding + + + table of characters widths for this encoding + + + encoding names + + + same as differences but with the unicode codes + + + encoding used with this font + + + true if the font is to be embedded in the PDF + + + The compression level for the font stream. + @since 2.1.3 + + + true if the font must use its built in encoding. In that case the + encoding is only used to map a char to the position inside + the font, not to the expected char name. + + + cache for the fonts already used. + + + list of the 14 built in fonts. + + + Forces the output of the width array. Only matters for the 14 + built-in fonts. + + + Converts char directly to byte + by casting. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Custom encodings use this map to key the Unicode character + to the single byte code. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + @param contents the content of the stream + @param lengths an array of int that describes the several lengths of each part of the font + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Generates the PDF stream for a font. + @param contents the content of a stream + @param subType the subtype of the font. + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Creates new BaseFont + + + Creates a new font. This will always be the default Helvetica font (not embedded). + This method is introduced because Helvetica is used in many examples. + @return a BaseFont object (Helvetica, Winansi, not embedded) + @throws IOException This shouldn't occur ever + @throws DocumentException This shouldn't occur ever + @since 2.1.1 + + + + + + + + Creates a font based on an existing document font. The created font font may not + behave as expected, depending on the encoding or subset. + @param fontRef the reference to the document font + @return the font + + + Indicates whether the font is used for verticl writing or not. + @return true if the writing mode is vertical for the given font, false otherwise. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + @param name the full name of the font + @return the name without the modifiers Bold, Italic or BoldItalic + + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + @param enc the encoding to be normalized + @return the normalized encoding + + + Creates the widths and the differences arrays + @throws UnsupportedEncodingException the encoding is not supported + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Gets the descent of a String in normalized 1000 units. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @return the dexcent in normalized 1000 units + + + Gets the ascent of a String in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @return the ascent in normalized 1000 units + + + Gets the descent of a String in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @param fontSize the size of the font + @return the dexcent in points + + + Gets the ascent of a String in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @param fontSize the size of the font + @return the ascent in points + + + Gets the width of a String in points taking kerning + into account. + @param text the String to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a string in points. + @param text the string to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a char in points. + @param char1 the char to get the witdth of + @param fontSize the font size + @return the width in points + + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program (if possible). + This method will return null for some types of fonts (CJKFont, Type3Font) + or if there is no font program available (standard Type 1 fonts). + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the encoding used to convert string into byte[]. + @return the encoding name + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the font type. The font types can be: FONT_TYPE_T1, + FONT_TYPE_TT, FONT_TYPE_CJK and FONT_TYPE_TTUNI. + @return the font type + + + Gets the embedded flag. + @return true if the font is embedded. + + + Gets the symbolic flag of the font. + @return true if the font is symbolic + + + Creates a unique subset prefix to be added to the font name when the font is embedded and subset. + @return the subset prefix + + + Gets the Unicode character corresponding to the byte output to the pdf stream. + @param index the byte index + @return the Unicode character + + + Gets the postscript font name. + @return the postscript font name + + + + + + Gets all the names from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), GetFamilyFontName(), GetFullFontName()} + + + Gets all the entries of the namestable from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), getFamilyFontName(), getFullFontName()} + + + + Gets the code pages supported by the font. This has only meaning + with True Type fonts. + @return the code pages supported by the font + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcFile the file name of the font + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcArray the font as a byte array + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Gets the font width array. + @return the font width array + + + Gets the array with the names of the characters. + @return the array with the names of the characters + + + Gets the array with the unicode characters. + @return the array with the unicode characters + + + Set to true to force the generation of the + widths array. + @param forceWidthsOutput true to force the generation of the + widths array + + + Sets the conversion of char directly to byte + by casting. This is a low level feature to put the bytes directly in + the content stream without passing through string.GetBytes(). + @param directTextToByte New value of property directTextToByte. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to true + only the glyphs used will be included in the font. When set to false + and {@link #addSubsetRange(int[])} was not called the full font will be included + otherwise just the characters ranges will be included. + @param subset new value of property subset + + + + Gets the CID code given an Unicode. + It has only meaning with CJK fonts. + @param c the Unicode + @return the CID equivalent + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Gets a list of all document fonts. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @return the list of fonts and references + + + Gets a list of the document fonts in a particular page. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @param page the page to list the fonts from + @return the list of fonts and references + + + Gets the smallest box enclosing the character contours. It will return + null if the font has not the information or the character has no + contours, as in the case of the space, for example. Characters with no contours may + also return [0,0,0,0]. + @param c the character to get the contour bounding box from + @return an array of four floats with the bounding box in the format [llx,lly,urx,ury] or + null + + + Gets default array of six numbers specifying the font matrix, mapping glyph space to text space + @return an array of six values + null + + + iText expects Arabic Diactrics (tashkeel) to have zero advance but some fonts, + most notably those that come with Windows, like times.ttf, have non-zero + advance for those characters. This method makes those character to have zero + width advance and work correctly in the iText Arabic shaping and reordering + context. + + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + @param range the character range + + + Sets the compression level to be used for the font streams. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + Does all the line bidirectional processing with PdfChunk assembly. + + @author Paulo Soares + + + Creates new BidiLine + + + Call this after processLine() to know if any word was split into several lines. + @return + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @return the sum of all widths + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @param originalWidth the full width of the line. It is used in case of RTL and tab stops + @return the sum of all widths + + + Method that changes a String with Arabic characters into a String in which the ligatures are made. + @param s the original String + @param runDirection + @param arabicOptions + @return the String with the ligaturesc + + + Left-to-right + + + Left-to-Right Embedding + + + Left-to-Right Override + + + Right-to-Left + + + Right-to-Left Arabic + + + Right-to-Left Embedding + + + Right-to-Left Override + + + Pop Directional Format + + + European Number + + + European Number Separator + + + European Number Terminator + + + Arabic Number + + + Common Number Separator + + + Non-Spacing Mark + + + Boundary Neutral + + + Paragraph Separator + + + Segment Separator + + + Whitespace + + + Other Neutrals + + + Minimum bidi type value. + + + Maximum bidi type value. + + + Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive + and represent the direction codes of the characters in the text. + + @param types the types array + + + Initialize using an array of direction types and an externally supplied paragraph embedding level. + The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), + 0 is for LTR paragraphs, and 1 is for RTL paragraphs. + + @param types the types array + @param paragraphEmbeddingLevel the externally supplied paragraph embedding level. + + + The algorithm. + Does not include line-based processing (Rules L1, L2). + These are applied later in the line-based phase of the algorithm. + + + + + Rules X9. + Remove explicit codes so that they may be ignored during the remainder + of the main portion of the algorithm. The length of the resulting text + is returned. + @return the length of the data excluding explicit codes and BN. + + + Reinsert levels information for explicit codes. + This is for ease of relating the level information + to the original input data. Note that the levels + assigned to these codes are arbitrary, they're + chosen so as to avoid breaking level runs. + @param textLength the length of the data after compression + @return the length of the data (original length of + types array supplied to constructor) + + + 2) determining explicit levels + Rules X1 - X8 + + The interaction of these rules makes handling them a bit complex. + This examines resultTypes but does not modify it. It returns embedding and + override information in the result array. The low 7 bits are the level, the high + bit is set if the level is an override, and clear if it is an embedding. + + + 3) resolving weak types + Rules W1-W7. + + Note that some weak types (EN, AN) remain after this processing is complete. + + + 6) resolving neutral types + Rules N1-N2. + + + 7) resolving implicit embedding levels + Rules I1, I2. + + + + Return multiline reordering array for a given level array. + Reordering does not occur across a line break. + + + Return reordering array for a given level array. This reorders a single line. + The reordering is a visual to logical map. For example, + the leftmost char is string.CharAt(order[0]). + Rule L2. + + + Return the base level of the paragraph. + + + Return true if the type is considered a whitespace type for the line break rules. + + + Return the strong type (L or R) corresponding to the level. + + + Return the limit of the run starting at index that includes only resultTypes in validSet. + This checks the value at index, and will return index if that value is not in validSet. + + + Return the start of the run including index that includes only resultTypes in validSet. + This assumes the value at index is valid, and does not check it. + + + Set resultTypes from start up to (but not including) limit to newType. + + + Set resultLevels from start up to (but not including) limit to newLevel. + + + Throw exception if type array is invalid. + + + Throw exception if paragraph embedding level is invalid. Special allowance for -1 so that + default processing can still be performed when using this API. + + + Throw exception if line breaks array is invalid. + + + Acts like a StringBuilder but works with byte arrays. + floating point is converted to a format suitable to the PDF. + @author Paulo Soares + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + List items for the linked list that builds the new CID font. + + + remember the current offset and increment by item's size in bytes. + + + Emit the byte stream for this item. + + + Fix up cross references to this item (applies only to markers). + + + set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + + A range item. + + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + @author orly manor + + TODO To change the template for this generated type comment go to + Window - Preferences - Java - Code Generation - Code and Comments + + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + a utility that creates a range item for an entire index + + @param indexOffset where the index is + @return a range item representing the entire index + + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + + A random Access File or an array + (contributed by orly manor) + + + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + A HashMap containing the glyphs used in the text after being converted + to glyph number by the CMap + + + The GlyphsUsed keys as an ArrayList + + + A HashMap for keeping the FDArrays being used by the font + + + A HashMaps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed HashMap as ArrayList + + + An array of the new Indexs for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursivly + + + C'tor for CFFFontSubset + @param rf - The font file + @param GlyphsUsed - a HashMap that contains the glyph used in the subset + + + Calculates the length of the charset according to its format + @param Offset The Charset Offset + @param NumofGlyphs Number of glyphs in the font + @return the length of the Charset + + + Function calculates the number of ranges in the Charset + @param NumofGlyphs The number of glyphs in the font + @param Type The format of the Charset + @return The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + @param Font The index of the font being processed + @return The Processed FDSelect of the font + + + Function reads the FDSelect and builds the FDArrayUsed HashMap According to the glyphs used + @param Font the Number of font being processed + + + Read the FDArray count, offsize and Offset array + @param Font + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + @param fontName - The name of the font to be taken out of the CFF + @return The new font stream + @throws IOException + + + Function calcs bias according to the CharString type and the count + of the subrs + @param Offset The offset to the relevent subrs index + @param Font the font + @return The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings + @param FontIndex the font + @throws IOException + + + + The function finds for the FD array processed the local subr offset and its + offset array. + @param Font the font + @param FD The FDARRAY processed + + + + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + @param begin the start point of the subr + @param end the end point of the subr + @param GBias the bias of the Global Subrs + @param LBias the bias of the Local Subrs + @param hSubr the HashMap for the lSubrs + @param lSubr the ArrayList for the lSubrs + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + Function checks the key and return the change to the stack after the operator + @return The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + + Pop one element from the stack + + + + Add an item to the stack + + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + @param begin the start point of the subr + @param end the end point of the subr + @param LBias the bias of the Local Subrs + @param GBias the bias of the Global Subrs + @param LSubrsOffsets The Offsets array of the subroutines + @return The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param Used the hashmap of the used objects + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + @param NewOffsets the subsetted offset array + @param NewObjects the subsetted object array + @return the new index created + + + The function builds the new output stream according to the subset process + @param Font the font + @return the subseted font stream + @throws IOException + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + @param Count the count field of the index + @param Offsize the offsize field of the index + @param First the first offset of the index + + + Function adds the keys into the TopDict + @param fdarrayRef OffsetItem for the FDArray + @param fdselectRef OffsetItem for the FDSelect + @param charsetRef OffsetItem for the CharSet + @param charstringsRef OffsetItem for the CharString + + + Function takes the original string item and adds the new strings + to accomodate the CID rules + @param Font the font + + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + @param fdselectRef OffsetItem for the FDSelect + @param nglyphs the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + @param charsetRef OffsetItem for the CharSet + @param nglyphs the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + @param fdarrayRef OffsetItem for the FDArray + @param privateRef OffsetItem for the Private Dict + @param Font the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + @param Font the font + @throws IOException + + + Function subsets the FDArray and builds the new one with new offsets + @param Font The font + @param fdPrivate OffsetItem Array (one for each FDArray) + @throws IOException + + + Function Adds the new private dicts (only for the FDs used) to the list + @param Font the font + @param fdPrivate OffsetItem array one element for each private + @param fdPrivateBase IndexBaseItem array one element for each private + @param fdSubrs OffsetItem array one element for each private + @throws IOException + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + @param Font The index of the font + @param fdPrivateBase The IndexBaseItem array for the linked list + @param fdSubrs OffsetItem array for the linked list + @throws IOException + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + @param Offset The Offset for the private dict + @param Size The size of the private dict + @return The size of the offset of the subrs in the private dict + + + Function computes the size of an index + @param indexOffset The offset for the computed index + @return The size of the index + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + @param Font the font + @param Subr The OffsetItem for the subrs of the private + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + @param Font the font + @param PrivateBase IndexBaseItem for the private that's referencing to the subrs + @param Subrs OffsetItem for the subrs + @throws IOException + + + Creates a CJK font compatible with the fonts in the Adobe Asian font Pack. + + @author Paulo Soares + + + The encoding used in the PDF document for CJK fonts + + + The path to the font resources. + + + The font name + + + The style modifier + + + The CMap name associated with this font + + + Creates a CJK font. + @param fontName the name of the font + @param enc the encoding of the font + @param emb always false. CJK font and not embedded + @throws DocumentException on error + @throws IOException on error + + + Returns a font compatible with a CJK encoding or null if not found. + @param enc + @return + + + Checks if its a valid CJK font. + @param fontName the font name + @param enc the encoding + @return true if it is CJK font + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + You can't get the FontStream of a CJK font (CJK fonts are never embedded), + so this method always returns null. + @return null + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + + + Implementation of DocumentFont used while parsing PDF streams. + @since 2.1.4 + + + The font dictionary. + + + the width of a space for this font, in normalized 1000 point units + + + The CMap constructed from the ToUnicode map from the font's dictionary, if present. + This CMap transforms CID values into unicode equivalent + + + Mapping between CID code (single byte only for now) and unicode equivalent + as derived by the font's encoding. Only needed if the ToUnicode CMap is not provided. + + + Creates an instance of a CMapAwareFont based on an indirect reference to a font. + @param refFont the indirect reference to a font + + + Parses the ToUnicode entry, if present, and constructs a CMap for it + @since 2.1.7 + + + Inverts DocumentFont's uni2byte mapping to obtain a cid-to-unicode mapping based + on the font's encoding + @since 2.1.7 + + + For all widths of all glyphs, compute the average width in normalized 1000 point units. + This is used to give some meaningful width in cases where we need an average font width + (such as if the width of a space isn't specified by a given font) + @return the average width of all non-zero width glyphs in the font + + + @since 2.1.5 + Override to allow special handling for fonts that don't specify width of space character + @see com.itextpdf.text.pdf.DocumentFont#getWidth(int) + + + Decodes a single CID (represented by one or two bytes) to a unicode String. + @param bytes the bytes making up the character code to convert + @param offset an offset + @param len a length + @return a String containing the encoded form of the input bytes using the font's encoding. + + + Decodes a string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + @since 2.1.7 + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + + + Encodes bytes to a String. + @param bytes the bytes from a stream + @param offset an offset + @param len a length + @return a String encoded taking into account if the bytes are in unicode or not. + @deprecated method name is not indicative of what it does. Use decode instead. + + + + @author Paulo Soares + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + Constructs a PDF Collection. + @param type the type of PDF collection. + + + Identifies the document that will be initially presented + in the user interface. + @param description the description that was used when attaching the file to the document + + + Sets the Collection schema dictionary. + @param schema an overview of the collection fields + + + Sets the Collection sort dictionary. + @param sort a collection sort dictionary + + + @author blowagie + + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + The type of the PDF collection field. + + + Creates a PdfCollectionField. + @param name the field name + @param type the field type + + + The relative order of the field name. Fields are sorted in ascending order. + @param i a number indicating the order of the field + + + Sets the initial visibility of the field. + @param visible the default is true (visible) + + + Indication if the field value should be editable in the viewer. + @param editable the default is false (not editable) + + + Checks if the type of the field is suitable for a Collection Item. + + + Returns a PdfObject that can be used as the value of a Collection Item. + @param String value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) + + + The PdfCollectionSchema with the names and types of the items. + + + Constructs a Collection Item that can be added to a PdfFileSpecification. + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + @param prefix a prefix + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + @param name the name of the collection field + @param field a Collection Field + + + Constructs a PDF Collection Sort Dictionary. + @param key the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + @param keys the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + @param ascending true is the default, use false for descending order + + + Defines the sort order of the field (ascending or descending). + @param ascending an array with every element corresponding with a name of a field. + + + Creates dictionary referring to a target document that is the parent of the current document. + @param nested null if this is the actual target, another target if this is only an intermediate target. + + + Creates a dictionary referring to a target document. + @param child if false, this refers to the parent document; if true, this refers to a child document, and you'll have to specify where to find the child using the other methods of this class + + + If this dictionary refers to a child that is a document level attachment, + you need to specify the name that was used to attach the document. + @param name the name in the EmbeddedFiles name tree + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the name of the page (or use setFileAttachmentPage to specify the page number). + Once you have specified the page, you still need to specify the attachment using another method. + @param name the named destination referring to the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page number (or use setFileAttachmentPagename to specify a named destination). + Once you have specified the page, you still need to specify the attachment using another method. + @param page the page number of the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the name of the attachment added to this page (or use setFileAttachmentIndex). + @param name the name of the attachment + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the index of the attachment added to this page (or use setFileAttachmentName). + @param name the name of the attachment + + + If this dictionary refers to an intermediate target, you can + add the next target in the sequence. + @param nested the next target in the sequence + + + Each colorSpace in the document will have an instance of this class + + @author Phillip Pan (phillip@formstar.com) + + + The indirect reference to this color + + + The color name that appears in the document body stream + + + The color + + + Each spot color used in a document has an instance of this class. + @param colorName the color name + @param indirectReference the indirect reference to the font + @param scolor the PDfSpotColor + + + Gets the indirect reference to this color. + @return the indirect reference to this color + + + Gets the color name as it appears in the document body. + @return the color name + + + Gets the SpotColor object. + @return the PdfSpotColor + + + + Eliminate the arabic vowels + + + Compose the tashkeel in the ligatures. + + + Do some extra double ligatures. + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Signals that there is no more text available. + + + Signals that there is no more column. + + + The column is valid. + + + The line is out the column limits. + + + The line cannot fit this column position. + + + Upper bound of the column. + + + Lower bound of the column. + + + The column Element. Default is left Element. + + + The left column bound. + + + The right column bound. + + + The chunks that form the text. + + + The current y line location. Text will be written at this line minus the leading. + + + The X position after the last line that has been written. + @since 5.0.3 + + + The leading for the current line. + + + The fixed text leading. + + + The text leading that is multiplied by the biggest font size in the line. + + + The PdfContent where the text will be written to. + + + The line status when trying to fit a line to a column. + + + The first paragraph line indent. + + + The following paragraph lines indent. + + + The right paragraph lines indent. + + + The extra space between paragraphs. + + + The width of the line when the column is defined as a simple rectangle. + + + Holds value of property spaceCharRatio. + + + Holds value of property linesWritten. + + + Holds value of property arabicOptions. + + + Pointer for the row in a table that is being dealt with + @since 5.1.0 + + + The index of the last row that needed to be splitted. + @since 5.0.1 changed a boolean into an int + -2 value mean it is the first attempt to split the first row. + -1 means that we try to avoid splitting current row. + + + if true, first line height is adjusted so that the max ascender touches the top + + + @since 5.4.2 + + + Creates a ColumnText. + @param text the place where the text will be written to. Can + be a template. + + + Creates an independent duplicated of the instance org. + @param org the original ColumnText + @return the duplicated + + + Makes this instance an independent copy of org. + @param org the original ColumnText + @return itself + + + Adds a Phrase to the current text array. + @param phrase the text + + + Replaces the current text array with this Phrase. + Anything added previously with AddElement() is lost. + @param phrase the text + + + Adds a Chunk to the current text array. + Will not have any effect if AddElement() was called before. + @param chunk the text + + + + + Finds the intersection between the yLine and the column. It will + set the lineStatus apropriatly. + @param wall the column to intersect + @return the x coordinate of the intersection + + + Finds the intersection between the yLine and the two + column bounds. It will set the lineStatus apropriatly. + @return a float[2]with the x coordinates of the intersection + + + Finds the intersection between the yLine, + the yLine-leadingand the two + column bounds. It will set the lineStatus apropriatly. + @return a float[4]with the x coordinates of the intersection + + + Sets the columns bounds. Each column bound is described by a + float[] with the line points [x1,y1,x2,y2,...]. + The array must have at least 4 elements. + @param leftLine the left column bound + @param rightLine the right column bound + + + Simplified method for rectangular columns. + @param phrase a Phrase + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx + @param lly + @param urx + @param ury + + + Simplified method for rectangular columns. + @param rect the rectangle for the column + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the yLine. + @return the yLine + + + Gets the number of rows that were drawn when a table is involved. + + + Gets the Element. + @return the alignment + + + Gets the first paragraph line indent. + @return the indent + + + Sets the first paragraph line indent. + + @param indent the indent + @param repeatFirstLineIndent do we need to repeat the indentation of the first line after a newline? + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the currentLeading. + + @return the currentLeading + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Call this after go() to know if any word was split into several lines. + @return + + + Sets the extra space between paragraphs. + @return the extra space between paragraphs + + + Clears the chunk array. A call to go() will always return + NO_MORE_TEXT. + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction. + @return the run direction + + + Gets the number of lines written. + @return the number of lines written + + + Gets the X position of the end of the last line that has been written + (will not work in simulation mode!). + @since 5.0.3 + + + Sets the arabic shaping options. The option can be AR_NOVOWEL, + AR_COMPOSEDTASHKEEL and AR_LIG. + @param arabicOptions the arabic shaping options + + + Gets the biggest descender value of the last line written. + @return the biggest descender value of the last line written + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + @return the width of the line + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @return the width of the line + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment. It is not influenced by the run direction + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + + + Fits the text to some rectangle adjusting the font size as needed. + @param font the font to use + @param text the text + @param rect the rectangle where the text must fit + @param maxFontSize the maximum font size + @param runDirection the run direction + @return the calculated font size that makes the text fit + + + Sets the canvas. + @param canvas + + + Sets the canvases. + @param canvas + + + Checks if the element has a height of 0. + @return true or false + @since 2.1.2 + + + Enables/Disables adjustment of first line height based on max ascender. + @param use enable adjustment if true + + + Checks the status variable and looks if there's still some text. + + + Holds value of property filledWidth. + + + Sets the real width used by the largest line. Only used to set it + to zero to start another measurement. + @param filledWidth the real width used by the largest line + + + Replaces the filledWidth if greater than the existing one. + @param w the new filledWidth if greater than the existing one + + + Sets the first line adjustment. Some objects have properties, like spacing before, that + behave differently if the object is the first to be written after go() or not. The first line adjustment is + true by default but can be changed if several objects are to be placed one + after the other in the same column calling go() several times. + @param adjustFirstLine true to adjust the first line, false otherwise + + + Creates an AES Cipher with CBC and no padding. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + Creates a new instance of ARCFOUREncryption + + + An initialization vector generator for a CBC block encryption. It's a random generator based on RC4. + @author Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + @return a 16 byte random initialization vector + + + Gets a random initialization vector. + @param len the length of the initialization vector + @return a random initialization vector + + + Creates a new instance of StandardDecryption + + + Creates an AES Cipher with CBC and padding PKCS5/7. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + + An instance of the default SplitCharacter. + + + Default constructor, has no custom characters to check. + + + Constructor with one splittable character. + + @param character char + + + Constructor with an array of splittable characters + + @param characters char[] + + + + Returns the current character + + @param current current position in the array + @param ck chunk array + @param cc the character array that has to be checked + @return the current character + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + + Gets the postscript font name. + @return the postscript font name + + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + + Always returns null. + @return null + @since 2.1.3 + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Exposes the unicode - > CID map that is constructed from the font's encoding + @return the unicode to CID map + @since 2.1.7 + + + Exposes the CID - > unicode map that is constructed from the font's encoding + @return the CID to unicode map + @since 5.4.0 + + + Gets the difference map + @return the difference map + @since 5.0.5 + + + Element that draws a dotted line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @since 2.1.2 + + + the gap between the dots. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Setter for the gap between the center of the dots of the dotted line. + @param gap the gap between the center of the dots + + + Interface for an Element that allows you to draw something at the current + vertical position. Trivial implementations are LineSeparator and VerticalPositionMark. + It is also used to define what has to be drawn by a separator chunk. + @since 2.1.2 + + + Implement this method if you want to draw something at the current Y position + (for instance a line). + @param canvas the canvas on which you can draw + @param llx the x coordinate of the left page margin + @param lly the y coordinate of the bottom page margin + @param urx the x coordinate of the right page margin + @param ury the y coordinate of the top page margin + @param y the current y position on the page + + + Element that draws a solid line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @author Paulo Soares + @since 2.1.2 + + + The thickness of the line. + + + The width of the line as a percentage of the available page width. + + + The color of the line. + + + The alignment of the line. + + + Creates a new instance of the LineSeparator class. + @param lineWidth the thickness of the line + @param percentage the width of the line as a percentage of the available page width + @param color the color of the line + @param align the alignment + @param offset the offset of the line relative to the current baseline (negative = under the baseline) + + + Creates a new instance of the LineSeparator class. + @param font the font + + + Creates a new instance of the LineSeparator class with + default values: lineWidth 1 user unit, width 100%, centered with offset 0. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Draws a horizontal line. + @param canvas the canvas to draw on + @param leftX the left x coordinate + @param rightX the right x coordindate + @param y the y coordinate + + + Setter for the line width. + @param lineWidth the thickness of the line that will be drawn. + + + Setter for the width as a percentage of the available width. + @return a width percentage + + + Setter for the color of the line that will be drawn. + @param color a color + + + Setter for the alignment of the line. + @param align an alignment value + + + Helper class implementing the DrawInterface. Can be used to add + horizontal or vertical separators. Won't draw anything unless + you implement the draw method. + @since 2.1.2 + + + Another implementation of the DrawInterface; its draw method will overrule LineSeparator.Draw(). + + + The offset for the line. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + @param drawInterface the drawInterface for this vertical position mark. + @param offset the offset for this vertical position mark. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + @see com.lowagie.text.Element#process(com.lowagie.text.ElementListener) + + + @see com.lowagie.text.Element#type() + + + @see com.lowagie.text.Element#isContent() + + + @see com.lowagie.text.Element#isNestable() + + + @see com.lowagie.text.Element#getChunks() + + + Setter for the interface with the overruling Draw() method. + @param drawInterface a DrawInterface implementation + + + Setter for the offset. The offset is relative to the current + Y position. If you want to underline something, you have to + choose a negative offset. + @param offset an offset + + + Enumerates all the fonts inside a True Type Collection. + + @author Paulo Soares + + + Class for an index. + + @author Michael Niedermair + + + Keeps a map with fields that are to be positioned in inGenericTag. + + + Keeps the form field that is to be positioned in a cellLayout event. + + + The PdfWriter to use when a field has to added in a cell event. + + + The PdfFormField that is the parent of the field added in a cell event. + + + Creates a new event. This constructor will be used if you need to position fields with Chunk objects. + + + Some extra padding that will be taken into account when defining the widget. + + + Add a PdfFormField that has to be tied to a generic Chunk. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + @param padding The padding to set. + + + @param parent The parent to set. + + + @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String) + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + Class for an index. + + @author Michael Niedermair + + + keeps the indextag with the pagenumber + + + All the text that is passed to this event, gets registered in the indexentry. + + @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag( + com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, + com.lowagie.text.Rectangle, java.lang.String) + + + indexcounter + + + the list for the index entry + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + + + Comparator for sorting the index + + + Set the comparator. + @param aComparator The comparator to set. + + + Returns the sorted list with the entries and the collected page numbers. + @return Returns the sorted list with the entries and teh collected page numbers. + + + Class for an index entry. +

+ In the first step, only in1, in2,in3 and tag are used. + After the collections of the index entries, pagenumbers are used. +

+
+ + first level + + + second level + + + third level + + + the tag + + + the lsit of all page numbers. + + + the lsit of all tags. + + + Create a new object. + @param aIn1 The first level. + @param aIn2 The second level. + @param aIn3 The third level. + @param aTag The tag. + + + Returns the in1. + @return Returns the in1. + + + Returns the in2. + @return Returns the in2. + + + Returns the in3. + @return Returns the in3. + + + Returns the tag. + @return Returns the tag. + + + Returns the pagenumer for this entry. + @return Returns the pagenumer for this entry. + + + Add a pagenumber. + @param number The page number. + @param tag + + + Returns the key for the map-entry. + @return Returns the key for the map-entry. + + + Returns the pagenumbers. + @return Returns the pagenumbers. + + + Returns the tags. + @return Returns the tags. + + + print the entry (only for test) + @return the toString implementation of the entry + + + If you want to add more than one page eventa to a PdfWriter, + you have to construct a PdfPageEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page eventa to the forwarder. + @param eventa an eventa that has to be added to the forwarder. + + + Called when the document is opened. + + @param writer + the PdfWriter for this document + @param document + the document + + + + Called when a page is finished, just before being written to the + document. + + @param writer + the PdfWriter for this document + @param document + the document + + + + + + + + + + + If you want to add more than one event to a cell, + you have to construct a PdfPCellEventForwarder, add the + different events to this object and add the forwarder to + the PdfPCell. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + If you want to add more than one page event to a PdfPTable, + you have to construct a PdfPTableEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[]) + + + @see com.itextpdf.text.pdf.PdfPTableEventAfterSplit#afterSplitTable(com.itextpdf.text.pdf.PdfPTable, com.itextpdf.text.pdf.PdfPRow, int) + @since iText 5.4.3 + + + + @author Paulo Soares + + + Constructs an extended color of a certain type and a certain color. + @param type + @param red + @param green + @param blue + @param alpha + + + Reads an FDF form and makes the fields available + @author Paulo Soares + + + Reads an FDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an FDF form. + @param pdfIn the byte array with the form + @throws IOException on error + + + Reads an FDF form. + @param url the URL of the document + @throws IOException on error + + + Reads an FDF form. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field dictionary. + @param name the fully qualified field name + @return the field dictionary + + + Gets a byte[] containing a file that is embedded in the FDF. + @param name the fully qualified field name + @return the bytes of the file + @throws IOException + @since 5.0.1 + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Writes an FDF form. + @author Paulo Soares + + + The PDF file associated with the FDF. + + + Creates a new FdfWriter. + + + Writes the content to a stream. + @param os the stream + @throws DocumentException on error + @throws IOException on error + + + Removes the field value. + @param field the field name + @return true if the field was found and removed, + false otherwise + + + Gets all the fields. The map is keyed by the fully qualified + field name and the values are PdfObject. + @return a map with all the fields + + + Gets the field value. + @param field the field name + @return the field value or null if not found + + + Sets the field value as a name. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a string. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a PDFAction. + For example, this method allows setting a form submit button action using {@link PdfAction#createSubmitForm(String, Object[], int)}. + This method creates an A entry for the specified field in the underlying FDF file. + Method contributed by Philippe Laflamme (plaflamme) + @param field the fully qualified field name + @param action the field's action + @return true if the value was inserted, + false if the name is incompatible with + an existing field + @since 2.1.5 + + + Sets all the fields from this FdfReader + @param fdf the FdfReader + + + Sets all the fields from this PdfReader + @param pdf the PdfReader + + + Sets all the fields from this AcroFields + @param acro the AcroFields + + + Gets the PDF file name associated with the FDF. + @return the PDF file name associated with the FDF + + + Each font in the document will have an instance of this class + where the characters used will be represented. + + @author Paulo Soares + + + The indirect reference to this font + + + The font name that appears in the document body stream + + + The font + + + The font if its an instance of TrueTypeFontUnicode + + + The array used with single byte encodings + + + The map used with double byte encodings. The key is Int(glyph) and the + value is int[]{glyph, width, Unicode code} + + + The font type + + + true if the font is symbolic + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Each font used in a document has an instance of this class. + This class stores the characters used in the document and other + specifics unique to the current working document. + @param fontName the font name + @param indirectReference the indirect reference to the font + @param baseFont the BaseFont + + + Gets the indirect reference to this font. + @return the indirect reference to this font + + + Gets the font name as it appears in the document body. + @return the font name + + + Gets the BaseFont of this font. + @return the BaseFont of this font + + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + @param text the text to convert + @return the conversion + + + Writes the font definition to the document. + @param writer the PdfWriter of this document + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. Set to false + to include all. + @param subset new value of property subset + + + + Adds a Font to be searched for valid characters. + @param font the Font + + + Process the text so that it will render with a combination of fonts + if needed. + @param text the text + @return a Phrase with one or more chunks + + + + @author Paulo Soares + + + Hyphenates words automatically accordingly to the language and country. + The hyphenator engine was taken from FOP and uses the TEX patterns. If a language + is not provided and a TEX pattern for it exists, it can be easily adapted. + + @author Paulo Soares + + + The hyphenator engine. + + + The second part of the hyphenated word. + + + Creates a new hyphenation instance usable in Chunk. + @param lang the language ("en" for english, for example) + @param country the country ("GB" for Great-Britain or "none" for no country, for example) + @param leftMin the minimun number of letters before the hyphen + @param rightMin the minimun number of letters after the hyphen + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + return number of items in array + + + returns current capacity of array + + + This is to implement memory allocation in the array. Like Malloc(). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Reset Vector but don't resize or clear elements + + + return number of items in array + + + returns current capacity of array + + + + + number of hyphenation points in word + + + rawWord as made of alternating strings and {@link Hyphen Hyphen} + instances + + + @return the number of hyphenation points in the word + + + @return the pre-break text, not including the hyphen character + + + @return the post-break text + + + @return the hyphenation points + + + + + value space: stores the inteletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + @param values a string of digits from '0' to '9' representing the + interletter values. + @return the index into the vspace array where the packed values + are stored. + + + String compare, returns 0 if equal or + t is a substring of s + + + + Hyphenate word and return a Hyphenation object. + @param word the word to be hyphenated + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + w = "****nnllllllnnn*****", + where n is a non-letter, l is a letter, + all n may be absent, the first n is at offset, + the first l is at offset + iIgnoreAtBeginning; + word = ".llllll.'\0'***", + where all l in w are copied into word. + In the first part of the routine len = w.length, + in the second part of the routine len = word.length. + Three indices are used: + Index(w), the index in w, + Index(word), the index in word, + Letterindex(word), the index in the letter part of word. + The following relations exist: + Index(w) = offset + i - 1 + Index(word) = i - iIgnoreAtBeginning + Letterindex(word) = Index(word) - 1 + (see first loop). + It follows that: + Index(w) - Index(word) = offset - 1 + iIgnoreAtBeginning + Index(w) = Letterindex(word) + offset + iIgnoreAtBeginning + Hyphenate word and return an array of hyphenation points. + @param w char array that contains the word + @param offset Offset to first character in word + @param len Length of word + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + Add a character class to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + + Add an exception to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} class as callback to + store the hyphenation exceptions. + @param word normalized word + @param hyphenatedword a vector of alternating strings and + {@link Hyphen hyphen} objects. + + + Add a pattern to the tree. Mainly, to be used by + {@link SimplePatternParser SimplePatternParser} class as callback to + add a pattern to the tree. + @param pattern the hyphenation pattern + @param ivalue interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + TODO: Don't use statics + + + @param lang + @param country + @param leftMin + @param rightMin + + + @param lang + @param country + @return the hyphenation tree + + + @param key + @return a hyphenation tree + + + @param lang + @param country + @param word + @param leftMin + @param rightMin + @return a hyphenation object + + + @param lang + @param country + @param word + @param offset + @param len + @param leftMin + @param rightMin + @return a hyphenation object + + + @param min + + + @param min + + + @param lang + @param country + + + @param word + @param offset + @param len + @return a hyphenation object + + + @param word + @return a hyphenation object + + + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + @param chargroup character group + + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + {@link Hyphen Hyphen} instances + + + Add hyphenation patterns. + @param pattern the pattern + @param values interletter values expressed as a string of + digit characters. + + + Parses the xml hyphenation pattern. + + @author Paulo Soares + + + Creates a new instance of PatternParser2 + + +

Ternary Search Tree

+ +

A ternary search tree is a hibrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash).

+ +

The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirenments to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe.

+ +

All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values.

+ + @author cav@uniscope.co.jp +
+ + We use 4 arrays to represent a node. I guess I should have created + a proper node class, but somehow Knuth's pascal code made me forget + we now have a portable language with memory management and + automatic garbage collection! And now is kind of late, furthermore, + if it ain't broken, don't fix it. + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + +

The character stored in this node: splitchar + Two special values are reserved:

+
  • 0x0000 as string terminator
  • +
  • 0xFFFF to indicate that the branch starting at + this node is compressed
+

This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character.

+
+ + This vector holds the trailing of the keys when the branch is compressed. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + + The actual insertion function, recursive version. + + + Compares 2 null terminated char arrays + + + Compares a string with null terminated char array + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + + Balance the tree for best search performance + + + Each node stores a character (splitchar) which is part of + some Key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + current node index + + + current key + + + TernaryTree parent + + + Node stack + + + key stack implemented with a StringBuilder + + + traverse upwards + + + traverse the tree to find next key + + + + Summary description for ICC_Profile. + + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + @author Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + @param text the Unicode string + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + @param char1 the Unicode char + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + @param b the input byte array + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Called by Chunk to hyphenate a word. + + @author Paulo Soares + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + This is the AcroForm object for the complete document. + + + This is the array containing the references to annotations + that were added to the document. + + + This is an array containg references to some delayed annotations + (that were added for a page that doesn't exist yet). + + + Checks if the AcroForm is valid. + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + Stores the PDF version information, + knows how to write a PDF Header, + and how to add the version to the catalog (if necessary). + + + Contains different strings that are part of the header. + + + Indicates if the header was already written. + + + Indicates if we are working in append mode. + + + The version that was or will be written to the header. + + + The version that will be written to the catalog. + + + The version that user can use to get the actual version of PDF document * + + + The extensions dictionary. + @since 2.1.6 + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + Sets the append mode. + + + Writes the header to the OutputStreamCounter. + @throws IOException + + + Returns the PDF version as a name. + @param version the version character. + + + Returns the version as a byte[]. + @param version the version character + + + Adds the version to the Catalog dictionary. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Stores the information concerning viewer preferences, + and contains the business logic that allows you to set viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences + + + A series of viewer preferences. + + + This value will hold the viewer preferences for the page layout and page mode. + + + This dictionary holds the viewer preferences (other than page layout and page mode). + + + The mask to decide if a ViewerPreferences dictionary is needed + + + Returns the page layout and page mode value. + + + Returns the viewer preferences. + + + Sets the viewer preferences as the sum of several constants. + + @param preferences + the viewer preferences + @see PdfWriter#setViewerPreferences + + + Given a key for a viewer preference (a PdfName object), + this method returns the index in the VIEWER_PREFERENCES array. + @param key a PdfName referring to a viewer preference + @return an index in the VIEWER_PREFERENCES array + + + Checks if some value is valid for a certain key. + + + Sets the viewer preferences for printing. + + + Adds the viewer preferences defined in the preferences parameter to a + PdfDictionary (more specifically the root or catalog of a PDF file). + + @param catalog + + + The value indicating if the PDF has to be in conformance with PDF/X. + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#setPDFXConformance(int) + + + @see com.itextpdf.text.pdf.interfaces.PdfIsoConformance#isPdfIso() + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if the PDF has to be in conformance with PDF/X-1a:2001 + @return true of the PDF has to be in conformance with PDF/X-1a:2001 + + + Checks if the PDF has to be in conformance with PDF/X-3:2002 + @return true of the PDF has to be in conformance with PDF/X-3:2002 + + + Business logic that checks if a certain object is in conformance with PDF/X. + @param writer the writer that is supposed to write the PDF/X file + @param key the type of PDF ISO conformance that has to be checked + @param obj1 the object that is checked for conformance + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + The interface common to all layer types. + + @author Paulo Soares + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Gets the object representing the layer. + @return the object representing the layer + + + Allows a class to catch several document events. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + Called when a page is initialized. +

+ Note that if even if a page is not written this method is still + called. It is preferable to use onEndPage to avoid + infinite loops. +

+

+ Note that this method isn't called for the first page. You should apply modifications for the first + page either before opening the document or by using the onOpenDocument() method. +

+ + @param writer the PdfWriter for this document + @param document the document +
+ + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + + Summary description for IPdfPCellEvent. + + + + + An interface that can be used to retrieve the position of cells in PdfPTable. + + @author Paulo Soares + + + + Implementation of the IndicLigaturizer for Gujarati. + + + Constructor for the IndicLigaturizer for Gujarati. + + + Hebrew is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Interface that needs to be implemented by classes that process bytes + representing text in specific languages. Processing involves changing + order to Right to Left and/or applying ligatures. + + + Processes a String + @param s the original String + @return the processed String + + + Indicates if the rundirection is right-to-left. + @return true if text needs to be rendered from right to left. + + + Superclass for processors that can convert a String of bytes in an Indic + language to a String in the same language of which the bytes are reordered + for rendering using a font that contains the necessary glyphs. + + + The table mapping specific character indexes to the characters in a + specific language. + + + Reorders the bytes in a String making Indic ligatures + + @param s + the original String + @return the ligaturized String + + + Indic languages are written from right to left. + + @return false + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Checks if a character is vowel letter. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel letter + + + Checks if a character is vowel sign. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel sign + + + Checks if a character is consonant letter. + + @param ch + the character that needs to be checked + @return true if the chracter is a consonant letter + + + Swaps two characters in a StringBuilder object + + @param s + the StringBuilder + @param i + the index of one character + @param j + the index of the other character + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newstring to the end of oldstring. + + + Represents a Bezier curve. + + @since 5.5.6 + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + Constructs new bezier curve. + @param controlPoints Curve's control points. + + + {@inheritDoc} + + + You can adjust precision of the approximation by varying the following + parameters: {@link #curveCollinearityEpsilon}, {@link #distanceToleranceSquare}, + {@link #distanceToleranceManhattan} + + @return {@link java.util.List} containing points of piecewise linear approximation + for this bezier curve. + @since 5.5.6 + + + @author kevin + @since 5.0.1 + + + Gets the content bytes from a content object, which may be a reference + a stream or an array. + @param contentObject the object to read bytes from + @return the content bytes + @throws IOException + + + Gets the content bytes of a page from a reader + @param reader the reader to get content bytes from + @param pageNum the page number of page you want get the content stream from + @return a byte array with the effective content stream of a page + @throws IOException + @since 5.0.1 + + + Simply extends the {@link com.itextpdf.text.pdf.parser.RenderListener} interface to provide + additional methods. + + {@inheritDoc} + + @since 5.5.6 + + + Called when the current path is being modified. E.g. new segment is being added, + new subpath is being started etc. + + @param renderInfo Contains information about the path segment being added to the current path. + + + Called when the current path should be rendered. + + @param renderInfo Contains information about the current path which should be rendered. + @return The path which can be used as a new clipping path. + + + Called when the current path should be set as a new clipping path. + + @param rule Either {@link PathPaintingRenderInfo#EVEN_ODD_RULE} or {@link PathPaintingRenderInfo#NONZERO_WINDING_RULE} + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + The filters to be applied + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + Applies filters, then delegates to the deleg if all filters pass + @param renderInfo contains info to render text + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + Applies filters, then delegates to the deleg if all filters pass + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.TextExtractionStrategy#getResultantText() + + + Keeps all the parameters of the graphics state. + @since 2.1.4 + + + The current transformation matrix. + + + The current character spacing. + + + The current word spacing. + + + The current horizontal scaling + + + The current leading. + + + The active font. + + + The current font size. + + + The current render mode. + + + The current text rise + + + The current knockout value. + + + The current color space for stroke. + + + The current color space for stroke. + + + The current fill color. + + + The current stroke color. + + + The line width for stroking operations + + + The line cap style. For possible values + see {@link PdfContentByte} + + + The line join style. For possible values + see {@link PdfContentByte} + + + The mitir limit value + + + The line dash pattern + + + Constructs a new Graphics State object with the default values. + + + Copy constructor. + @param source another GraphicsState object + + + Getter for the current transformation matrix + @return the ctm + @since iText 5.0.1 + + + Getter for the character spacing. + @return the character spacing + @since iText 5.0.1 + + + Getter for the word spacing + @return the word spacing + @since iText 5.0.1 + + + Getter for the horizontal scaling + @return the horizontal scaling + @since iText 5.0.1 + + + Getter for the leading + @return the leading + @since iText 5.0.1 + + + Getter for the font + @return the font + @since iText 5.0.1 + + + Getter for the font size + @return the font size + @since iText 5.0.1 + + + Getter for the render mode + @return the renderMode + @since iText 5.0.1 + + + Getter for text rise + @return the text rise + @since iText 5.0.1 + + + Getter for knockout + @return the knockout + @since iText 5.0.1 + + + Gets the current color space for fill operations + + + Gets the current color space for stroke operations + + + Gets the current fill color + @return a BaseColor + + + Gets the current stroke color + @return a BaseColor + + + Getter and setter for the line width. + @return The line width + @since 5.5.6 + + + Getter and setter for the line cap style. + For possible values see {@link PdfContentByte} + @return The line cap style. + @since 5.5.6 + + + Getter and setter for the line join style. + For possible values see {@link PdfContentByte} + @return The line join style. + @since 5.5.6 + + + Getter and setter for the miter limit value. + @return The miter limit. + @since 5.5.6 + + + Getter for the line dash pattern. + @return The line dash pattern. + @since 5.5.6 + + + Setter for the line dash pattern. + @param lineDashPattern New line dash pattern. + @since 5.5.6 + + + Interface implemented by a series of content operators + @since 2.1.4 + + + Invokes a content operator. + @param processor the processor that is dealing with the PDF content + @param operator the literal PDF syntax of the operator + @param operands the operands that come with the operator + @throws Exception any exception can be thrown - it will be re-packaged into a runtime exception and re-thrown by the {@link PdfContentStreamProcessor} + + + Represents image data from a PDF + @since 5.0.1 + + + The graphics state that was in effect when the image was rendered + + + A reference to the image XObject + + + A reference to an inline image + + + the color space associated with the image + + + the image object to be rendered, if it has been parsed already. Null otherwise. + + + Array containing marked content info for the text. + @since 5.5.11 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on inline image data. This is nowhere near completely thought through + and really just acts as a placeholder. + @param ctm the coordinate transformation matrix at the time the image is rendered + @param imageObject the image object representing the inline image + @return the ImageRenderInfo representing the rendered embedded image + @since 5.0.1 + + + Gets an object containing the image dictionary and bytes. + @return an object containing the image dictionary and byte[] + @since 5.0.2 + + + @return a vector in User space representing the start point of the xobject + + + @return The coordinate transformation matrix active when this image was rendered. Coordinates are in User space. + @since 5.0.3 + + + @return the size of the image, in User space units + + + @return an indirect reference to the image + @since 5.0.2 + + + @return the current fill color from the graphics state at the time this render operation occured + @since 5.5.7 + + + Checks if the image belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.5.11 + + + * Checks if the image belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.5.11 + + + @return the marked content associated with the ImageRenderInfo instance. + + + + Called when a new text block is beginning (i.e. BT) + @since iText 5.0.1 + + + Called when text should be rendered + @param renderInfo information specifying what to render + + + Called when a text block has ended (i.e. ET) + @since iText 5.0.1 + + + Called when image should be rendered + @param renderInfo information specifying what to render + @since iText 5.0.1 + + + Defines an interface for {@link RenderListener}s that can return text + @since 5.0.2 + + + Returns the result so far. + @return a String with the resulting text. + + + Represents a line. + + @since 5.5.6 + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + + + Constructs a new line based on the given coordinates. + + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash array and + a dash phase. + + @since 5.5.6 + + + Creates new {@link LineDashPattern} object. + @param dashArray The dash array. See {@link #getDashArray()} + @param dashPhase The dash phase. See {@link #getDashPhase()} + + + Getter and setter for the dash array. + + The dash array’s elements is number that specify the lengths of + alternating dashes and gaps; the numbers are nonnegative. The + elements are expressed in user space units. + + @return The dash array. + + + Getter and setter for the dash phase. + + The dash phase shall specify the distance into the dash pattern at which + to start the dash. The elements are expressed in user space units. + + @return The dash phase. + + + Calculates and returns the next element which is either gap or dash. + @return The next dash array's element. + + + Checks whether the dashed pattern is solid or not. It's solid when the + size of a dash array is even and sum of all the units off in the array + is 0.
+ For example: [3 0 4 0 5 0 6 0] (sum is 0), [3 0 4 0 5 1] (sum is 1). +
+ + Resets the dash array so that the {@link #next()} method will start + from the beginning of the dash array. + + + Represents a line segment in a particular coordinate system. This class is immutable. + @since 5.0.2 + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + @param startPoint the start point of a line segment. + @param endPoint the end point of a line segment. + + + @return the start point + + + @return the end point + + + @return the length of this line segment + @since 5.0.2 + + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + @return the bounding rectangle + @since 5.0.2 + + + Transforms the segment by the specified matrix + @param m the matrix for the transformation + @return the transformed segment + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + @param strat the custom strategy + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @param str + @return true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + @param str + @return true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + Filters the provided list with the provided filter + @param textChunks a list of all TextChunks that this strategy found during processing + @param filter the filter to apply. If null, filtering will be skipped. + @return the filtered list + @since 5.3.3 + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + @param chunk the new chunk being evaluated + @param previousChunk the chunk that appeared immediately before the current chunk + @return true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + Gets text that meets the specified filter + If multiple text extractions will be performed for the same page (i.e. for different physical regions of the page), + filtering at this level is more efficient than filtering using {@link FilteredRenderListener} - but not nearly as powerful + because most of the RenderInfo state is not captured in {@link TextChunk} + @param chunkFilter the filter to to apply + @return the text results so far, filtered using the specified filter + + + Returns the result so far. + @return a String with the resulting text. + + + Used for debugging only + + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + the starting location of the chunk + + + the ending location of the chunk + + + the orientation as a scalar for quick sorting + + + perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system) + we round to the nearest integer to handle the fuzziness of comparing floats + + + distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + the width of a single space character in the font of the chunk + + + @param comparedLine the location to compare to + @return true is this location is on the the same line as the other + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + unit vector in the orientation of the chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + @return the start location of the text + + + @return the end location of the text + + + @return the width of a single space character as rendered by this chunk + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @param as the location to compare to + @return true is this location is on the the same line as the other + + + + @param int1 + @param int2 + @return comparison of the two integers + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + Specifies a filter for filtering {@link TextChunk} objects during text extraction + @see LocationTextExtractionStrategy#getResultantText(TextChunkFilter) + @since 5.3.3 + + + @param textChunk the chunk to check + @return true if the chunk should be allowed + + + Represents a Marked Content block in a PDF + @since 5.0.2 + + + Get the tag of this marked content + @return the tag of this marked content + + + Determine if an MCID is available + @return true if the MCID is available, false otherwise + + + Gets the MCID value If the Marked Content contains + an MCID entry, returns that value. Otherwise, a {@link NullPointerException} is thrown. + @return the MCID value + @throws NullPointerException if there is no MCID (see {@link MarkedContentInfo#hasMcid()}) + + + A {@link RenderFilter} that only allows text within a specified marked content sequence. + @since 5.0.2 + + + The MCID to match. + + + Constructs a filter + @param mcid the MCID to match + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Keeps all the values of a 3 by 3 matrix + and allows you to do some math with matrices. + @since 2.1.4 + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + the values inside the matrix (the identity matrix by default). + default initialization is performed in the default constructor. + + + constructs a new Matrix with identity. + !shall be called from any other constructor! + + + Constructs a matrix that represents translation + @param tx + @param ty + + + Creates a Matrix with 6 specified entries + @param a + @param b + @param c + @param d + @param e + @param f + + + Gets a specific value inside the matrix. + @param index an array index corresponding with a value inside the matrix + @return the value at that specific position. + + + multiplies this matrix by 'b' and returns the result + See http://en.wikipedia.org/wiki/Matrix_multiplication + @param by The matrix to multiply by + @return the resulting matrix + + + Subtracts a matrix from this matrix and returns the results + @param arg the matrix to subtract from this matrix + @return a Matrix object + + + Computes the determinant of the matrix. + @return the determinant of the matrix + + + Checks equality of matrices. + @param obj the other Matrix that needs to be compared with this matrix. + @return true if both matrices are equal + @see java.lang.Object#equals(java.lang.Object) + + + Generates a hash code for this object. + @return the hash code of this object + @see java.lang.Object#hashCode() + + + Generates a String representation of the matrix. + @return the values, delimited with tabs and newlines. + @see java.lang.Object#toString() + + + Attaches a {@link RenderListener} for the corresponding filter set. + @param delegate RenderListener instance to be attached. + @param filterSet filter set to be attached. The delegate will be invoked if all the filters pass. + + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + @since 5.5.6 + + + @return A {@link java.util.List} of subpaths forming this path. + + + Adds the subpath to this path. + + @param subpath The subpath to be added to this path. + + + Adds the subpaths to this path. + + @param subpaths {@link java.util.List} of subpaths to be added to this path. + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + @return The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + + + Appends a straight line segment from the current point to the point (x, y). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the current + point represents two control points. + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the (x3, y3) + point represents two control points. + + + Appends a rectangle to the current path as a complete subpath. + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + @returns Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + + + Contains information relating to construction the current path. + + @since 5.5.6 + + + See {@link com.itextpdf.text.pdf.parser.Path#moveTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#lineTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveFromTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#closeSubpath()} + + + See {@link com.itextpdf.text.pdf.parser.Path#rectangle(float, float, float, float)} + + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains data of a new segment being added to the current path. + E.g. x, y, w, h for rectangle; x, y for line etc. + @param ctm Current transformation matrix. + + + See {@link #PathConstructionRenderInfo(int, java.util.List, Matrix)} + + + @return construction operation should be performed on the current path. + + + @return {@link java.util.List} containing data of a new segment (E.g. x, y, w, h for rectangle; + x, y for line etc.) if the specified operation relates to adding the segment to the + current path, null otherwise. + + + @return Current transformation matrix. + + + Contains information relating to painting current path. + + @since 5.5.6 + + + The nonzero winding number rule determines whether a given point is inside a path by + conceptually drawing a ray from that point to infinity in any direction and then examining + the places where a segment of the path crosses the ray. Starting with a count of 0, the rule + adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a + segment crosses from right to left. After counting all the crossings, if the result is 0, the + point is outside the path; otherwise, it is inside. + + For more details see PDF spec. + + + The even-odd rule determines whether a point is inside a path by drawing a ray from that point in + any direction and simply counting the number of path segments that cross the ray, regardless of + direction. If this number is odd, the point is inside; if even, the point is outside. + + For more details see PDF spec. + + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + @param operation One of the possible combinations of {@link #STROKE} and {@link #FILL} values or {@link #NO_OP} + @param rule Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + @param gs The graphics state. + + + If the operation is {@link #NO_OP} then the rule is ignored, + otherwise {@link #NONZERO_WINDING_RULE} is used by default. + + See {@link #PathPaintingRenderInfo(int, int, GraphicsState)} + + + @return int value which is either {@link #NO_OP} or one of possible + combinations of {@link #STROKE} and {@link #FILL} + + + @return Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + + + @return Current transformation matrix. + + + Tool that parses the content of a PDF document. + @since 2.1.4 + + + Shows the detail of a dictionary. + This is similar to the PdfLister functionality. + @param dic the dictionary of which you want the detail + @return a String representation of the dictionary + + + Shows the detail of a dictionary. + @param dic the dictionary of which you want the detail + @param depth the depth of the current dictionary (for nested dictionaries) + @return a String representation of the dictionary + + + Displays a summary of the entries in the XObject dictionary for the stream + @param resourceDic the resource dictionary for the stream + @return a string with the summary of the entries + @throws IOException + @since 5.0.2 + + + Writes information about a specific page from PdfReader to the specified output stream. + @since 2.1.5 + @param reader the PdfReader to read the page content from + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param out the output stream to send the content to + @throws IOException + + + Writes information about the specified page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified file, or System.out. + @param args + + + Processor for a PDF content Stream. + @since 2.1.4 + + + Default oper + @since 5.0.1 + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + + Stack keeping track of the graphics state. + + + Text matrix. + + + Text line matrix. + + + Listener that will be notified of render events + + + A map with all supported XObject handlers + + + The font cache. + @since 5.0.6 + + + + A stack containing marked content info. + @since 5.0.2 + + + Creates a new PDF Content Stream Processor that will send it's output to the + designated render listener. + + @param renderListener the {@link RenderListener} that will receive rendering notifications + + + + Gets the font pointed to by the indirect reference. The font may have been cached. + @param ind the indirect reference ponting to the font + @return the font + @since 5.0.6 + + + Loads all the supported graphics and text state operators in a map. + + + + @return {@link java.util.Collection} containing all the registered operators strings + @since 5.5.6 + + + Resets the graphics state stack, matrices and resources. + + + Returns the current graphics state. + @return the graphics state + + + Invokes an oper. + @param oper the PDF Syntax of the oper + @param operands a list with operands + + + Add to the marked content stack + @param tag the tag of the marked content + @param dict the PdfDictionary associated with the marked content + @since 5.0.2 + + + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + @since 5.0.2 + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + Displays text. + @param string the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + @param xobjectName the name of the XObject to retrieve from the resource dictionary + + + Displays the current path. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any int value. + @param close Indicates whether the path should be closed or not. + @since 5.5.6 + + + Modifies the current path. + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains x, y components of points of a new segment being added to the current path. + E.g. x1 y1 x2 y2 x3 y3 etc. It's ignored for "close subpath" operarion (h). + + + Adjusts the text matrix for the specified adjustment value (see TJ oper in the PDF spec for information) + @param tj the text adjustment + + + Processes PDF syntax. + Note: If you re-use a given {@link PdfContentStreamProcessor}, you must call {@link PdfContentStreamProcessor#reset()} + @param contentBytes the bytes of a content stream + @param resources the resources that come with the content stream + + + Callback when an inline image is found. This requires special handling because inline images don't follow the standard operator syntax + @param info the inline image + @param colorSpaceDic the color space for the inline immage + + + Property for the RenderListener object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + @return the renderListener + + + A resource dictionary that allows stack-like behavior to support resource dictionary inheritance + + + A content oper implementation (unregistered). + + + A content oper implementation (TJ). + + + A content oper implementation ("). + + + A content oper implementation ('). + + + A content oper implementation (Tj). + + + A content oper implementation (T*). + + + A content oper implementation (Tm). + + + A content oper implementation (TD). + + + A content oper implementation (Td). + + + A content oper implementation (Tf). + + + A content oper implementation (Tr). + + + A content oper implementation (Ts). + + + A content oper implementation (TL). + + + A content oper implementation (Tz). + + + A content oper implementation (Tc). + + + A content oper implementation (Tw). + + + A content oper implementation (gs). + + + A content oper implementation (q). + + + A content oper implementation (cm). + + + Gets a color based on a list of operands. + + + Gets a color based on a list of operands. + + + A content operator implementation (g). + + + A content operator implementation (G). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (cs). + + + A content operator implementation (CS). + + + A content operator implementation (sc / scn). + + + A content operator implementation (SC / SCN). + + + A content oper implementation (Q). + + + A content oper implementation (BT). + + + A content oper implementation (ET). + + + A content oper implementation (BMC). + @since 5.0.2 + + + A content oper implementation (BDC). + @since 5.0.2 + + + A content oper implementation (EMC). + @since 5.0.2 + + + A content oper implementation (Do). + + + A content operator implementation (w). + + + A content operator implementation (J). + + + A content operator implementation (j). + + + A content operator implementation (M). + + + A content operator implementation (d). + + + A content operator implementation (m). + + @since 5.5.6 + + + A content operator implementation (l). + + @since 5.5.6 + + + A content operator implementation (c). + + @since 5.5.6 + + + A content operator implementation (v). + + @since 5.5.6 + + + A content operator implementation (y). + + @since 5.5.6 + + + A content operator implementation (h). + + @since 5.5.6 + + + A content operator implementation (re). + + @since 5.5.6 + + + A content operator implementation (S, s, f, F, f*, B, B*, b, b*). + + @since 5.5.6 + + + Constructs PainPath object. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any value. + @param close Indicates whether the path should be closed or not. + + + A content operator implementation (n). + + @since 5.5.6 + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + An object that contains an image dictionary and image bytes. + @since 5.0.2 + + + Different types of data that can be stored in the bytes of a {@link PdfImageObject} + @since 5.0.4 + + + the recommended file extension for streams of this type + + + @param fileExtension the recommended file extension for use with data of this type (for example, if the bytes were just saved to a file, what extension should the file have) + + + @return the file extension registered when this type was created + + + A filter that does nothing, but keeps track of the filter type that was used + @since 5.0.4 + + + The image dictionary. + + + The decoded image bytes (after applying filters), or the raw image bytes if unable to decode + + + Tracks the type of data that is actually stored in the streamBytes member + + + @return the type of image data that is returned by getImageBytes() + + + Creates a PdfImage object. + @param stream a PRStream + @throws IOException + + + Creates a PdfImage object. + @param stream a PRStream + @param colorSpaceDic a color space dictionary + @throws IOException + + + Creats a PdfImage object using an explicitly provided dictionary and image bytes + @param dictionary the dictionary for the image + @param samples the samples + @since 5.0.3 + + + Returns an entry from the image dictionary. + @param key a key + @return the value + + + Returns the image dictionary. + @return the dictionary + + + Sets state of this object according to the color space + @param colorspace the colorspace to use + @param allowIndexed whether indexed color spaces will be resolved (used for recursive call) + @throws IOException if there is a problem with reading from the underlying stream + + + decodes the bytes currently captured in the streamBytes and replaces it with an image representation of the bytes + (this will either be a png or a tiff, depending on the color depth of the image) + @throws IOException + + + @return the bytes of the image (the format will be as specified in {@link PdfImageObject#getImageBytesType()} + @throws IOException + @since 5.0.4 + + + A utility class that makes it cleaner to process content from pages of a PdfReader + through a specified RenderListener. + @since 5.0.2 + + + the reader this parser will process + + + + + Extracts text from a PDF file. + @since 2.1.4 + + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom ContentOperators + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @param additionalContentOperators an optional dictionary of custom IContentOperators for rendering instructions + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + + + Extract text from a specified page using an extraction strategy. + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + @since 5.0.2 + + + + A {@link RenderFilter} that only allows text within a specified rectangular region + @since 5.0.1 + + + the region to allow text from + + + Constructs a filter + @param filterRect the rectangle to filter text against. Note that this is a java.awt.Rectangle ! + + + Constructs a filter + @param filterRect the rectangle to filter text against. + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Interface for defining filters for use with {@link FilteredRenderListener} + @since 5.0.1 + + + @param renderInfo + @return true if the text render operation should be performed + + + + @param renderInfo + @return true if the image render operation should be performed + + + Represents segment from a PDF path. + + @since 5.5.6 + + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + @return Ordered list consisting of shape's base points. + + + A simple text extraction renderer. + + This renderer keeps track of the current Y position of each string. If it detects + that the y position has changed, it inserts a line break into the output. If the + PDF renders text in a non-top-to-bottom fashion, this will result in the text not + being a true representation of how it appears in the PDF. + + This renderer also uses a simple strategy based on the font metrics to determine if + a blank space should be inserted into the output. + + @since 2.1.5 + + + used to store the resulting String. + + + Creates a new text extraction renderer. + + + @since 5.0.1 + + + @since 5.0.1 + + + Returns the result so far. + @return a String with the resulting text. + + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + @param text the text to append to the text results accumulated so far + + + Captures text using a simplified algorithm for inserting hard returns and spaces + @param renderInfo render info + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + As subpath is a part of a path comprising a sequence of connected segments. + + @since 5.5.6 + + + Copy constuctor. + @param subpath + + + Constructs a new subpath starting at the given point. + + + Constructs a new subpath starting at the given point. + + + Sets the start point of the subpath. + @param startPoint + + + Sets the start point of the subpath. + @param x + @param y + + + @return The point this subpath starts at. + + + @return The last point of the subpath. + + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + @param segment new segment. + + + @return {@link java.util.List} comprising all the segments + the subpath made on. + + + Checks whether subpath is empty or not. + @return true if the subpath is empty, false otherwise. + + + @return true if this subpath contains only one point and it is not closed, + false otherwise + + + Returns or sets a bool value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + @return bool value indicating whether the path must be closed or not. + @since 5.5.6 + + + Returns a bool indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + @return bool value indicating whether the path is degenerate or not. + @since 5.5.6 + + + @return {@link java.util.List} containing points of piecewise linear approximation + for this subpath. + @since 5.5.6 + + + Converts a tagged PDF document into an XML file. + + @since 5.0.2 + + + The reader obj from which the content streams are read. + + + The writer obj to which the XML will be written + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + @param charset + the charset to encode the data + @since 5.0.5 + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + + + Inspects a child of a structured element. This can be an array or a + dictionary. + + @param k + the child to inspect + @throws IOException + + + If the child of a structured element is an array, we need to loop over + the elements. + + @param k + the child array to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + Searches for a tag in a page. + + @param tag + the name of the tag + @param obj + an identifier to find the marked content + @param page + a page dictionary + @throws IOException + + + Allows you to find the rectangle that contains all the text in a page. + @since 5.0.2 + + + Method invokes by the PdfContentStreamProcessor. + Passes a TextRenderInfo for every text chunk that is encountered. + We'll use this object to obtain coordinates. + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Getter for the left margin. + @return the X position of the left margin + + + Getter for the bottom margin. + @return the Y position of the bottom margin + + + Getter for the right margin. + @return the X position of the right margin + + + Getter for the top margin. + @return the Y position of the top margin + + + Gets the width of the text block. + @return a width + + + Gets the height of the text block. + @return a height + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + + + + ! .NET SPECIFIC ! + is used for caching "UTF-16BE" encoding to improve performance + + + Array containing marked content info for the text. + @since 5.0.2 + + + Creates a new TextRenderInfo object + @param string the PDF string that should be displayed + @param gs the graphics state (note: at this time, this is not immutable, so don't cache it) + @param textMatrix the text matrix at the time of the render operation + @param markedContentInfo the marked content sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character + @param parent the parent TextRenderInfo + @param string the content of a TextRenderInfo + @param horizontalOffset the unscaled horizontal offset of the character that this TextRenderInfo represents + @since 5.3.3 + + + @return the text to render + + + @return original PDF string + + + Checks if the text belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.0.2 + + + * Checks if the text belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.3.5 + + + @return the marked content associated with the TextRenderInfo instance. + + + @return the unscaled (i.e. in Text space) width of the text + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the baseline line segment + @since 5.0.2 + + + Gets the ascentline for the text (i.e. the line that represents the topmost extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the ascentline line segment + @since 5.0.2 + + + Gets the descentline for the text (i.e. the line that represents the bottom most extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the descentline line segment + @since 5.0.2 + + + Getter for the font + @return the font + @since iText 5.0.2 + + + The rise represents how far above the nominal baseline the text should be rendered. The {@link #getBaseline()}, {@link #getAscentLine()} and {@link #getDescentLine()} methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + @return The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + @since 5.3.3 + + + + @param width the width, in text space + @return the width in user space + @since 5.3.3 + + + + @param height the height, in text space + @return the height in user space + @since 5.3.3 + + + @return The width, in user space units, of a single space character in the current font + + + @return the text render mode that should be used for the text. From the + PDF specification, this means: +
    +
  • 0 = Fill text
  • +
  • 1 = Stroke text
  • +
  • 2 = Fill, then stroke text
  • +
  • 3 = Invisible
  • +
  • 4 = Fill text and add to path for clipping
  • +
  • 5 = Stroke text and add to path for clipping
  • +
  • 6 = Fill, then stroke text and add to path for clipping
  • +
  • 7 = Add text to padd for clipping
  • +
+ @since iText 5.0.1 +
+ + @return the current fill color. + + + @return the current stroke color. + + + Calculates the width of a space character. If the font does not define + a width for a standard space character \u0020, we also attempt to use + the width of \u00A0 (a non-breaking space in many fonts) + @return the width of a single space character in text space units + + + Gets the width of a String in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Gets the width of a PDF string in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + @return A list of {@link TextRenderInfo} objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + @since 5.3.3 + + + Calculates width and word spacing of a single character PDF string. + @param string a character to calculate width. + @param singleCharString true if PDF string represents single character, false otherwise. + @return array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + Converts a single character string to char code. + + @param string single character string to convert to. + @return char code. + + + Split PDF string into array of single character PDF strings. + @param string PDF string to be splitted. + @return splitted PDF string. + + + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + @param x the X coordinate + @param y the Y coordinate + @param z the Z coordinate + + + Gets the value from a coordinate of the vector + @param index the index of the value to get (I1, I2 or I3) + @return a coordinate value + + + Computes the cross product of this vector and the specified matrix + @param by the matrix to cross this vector with + @return the result of the cross product + + + Computes the difference between this vector and the specified vector + @param v the vector to subtract from this one + @return the results of the subtraction + + + Computes the cross product of this vector and the specified vector + @param with the vector to cross this vector with + @return the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + @return the unit vector + @since 5.0.1 + + + Multiplies the vector by a scalar + @param by the scalar to multiply by + @return the result of the scalar multiplication + @since 5.0.1 + + + Computes the dot product of this vector with the specified vector + @param with the vector to dot product this vector with + @return the dot product + + + + + @see java.lang.Object#toString() + + + @since 5.0.1 + @see java.lang.Object#equals(java.lang.Object) + + + @author Kevin Day + @since iText 5.0.1 + + + Represents an inline image from a PDF + @since 5.1.4 + + + @return the image dictionary associated with this inline image + + + @return the raw samples associated with this inline image + + + Utility methods to help with processing of inline images + @since 5.0.4 + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + @since 5.0.4 + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + @param ps the content parser to use for reading the image. + @return the parsed image + @throws IOException if anything goes wring with the parsing + @throws InlineImageParseException if parsing of the inline image failed due to issues specific to inline image processing + + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the EI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + @param ps the parser to extract the embedded image information from + @return the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + @throws IOException if the parse fails + + + Transforms value abbreviations into their corresponding real value + @param key the key that the value is for + @param value the value that might be an abbreviation + @return if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + @param colorSpaceName the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + @return the components per pixel for the specified color space + + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + @param imageDictionary the dictionary of the inline image + @return the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Represents a pattern. Can be used in high-level constructs (Paragraph, Cell, etc.). + + + The actual pattern. + + + Creates a color representing a pattern. + @param painter the actual pattern + + + Gets the pattern. + @return the pattern + + + Each PDF document can contain maximum 1 AcroForm. + + + This is a map containing FieldTemplates. + + + This is an array containing DocumentFields. + + + This is an array containing the calculationorder of the fields. + + + Contains the signature flags. + + + Creates new PdfAcroForm + + + Adds fieldTemplates. + + + Adds documentFields. + + + Closes the AcroForm. + + + Adds an object to the calculationOrder. + + + Sets the signature flags. + + + Adds a formfield to the AcroForm. + + + @param field + @param name + @param llx + @param lly + @param urx + @param ury + + + @param field + @param llx + @param lly + @param urx + @param ury + + + A PdfAction defines an action that can be triggered from a PDF file. + + @see PdfDictionary + + + A named action to go to the first page. + + + A named action to go to the previous page. + + + A named action to go to the next page. + + + A named action to go to the last page. + + + A named action to open a print dialog. + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + Create an empty action. + + + Constructs a new PdfAction of Subtype URI. + + @param url the Url to go to + + + Constructs a new PdfAction of Subtype URI. + + @param url the url to go to + + + Constructs a new PdfAction of Subtype GoTo. + @param destination the destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param name the named destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param page the page destination to go to + + + Implements name actions. The action can be FIRSTPAGE, LASTPAGE, + NEXTPAGE and PREVPAGE. + @param named the named action + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + @return a Launch action + + + Creates a Rendition action + @param file + @param fs + @param mimeType + @param ref + @return a Media Clip action + @throws IOException + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be placed as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + @return the JavaScript action + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be place as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @return the JavaScript action + + + Add a chained action. + @param na the next action + + + Creates a GoTo action to an internal page. + @param page the page to go. First page is 1 + @param dest the destination for the page + @param writer the writer for this action + @return a GoTo action + + + Creates a GoTo action to a named destination. + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToR action + + + Creates a GoToR action to a named destination. + @param filename the file name to go to + @param dest the destination name + @param isName if true sets the destination as a name, if false sets it as a String + @param newWindow open the document in a new window if true, if false the current document is replaced by the new document. + @return a GoToR action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToE action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param target a path to the target document of this action + @param dest the destination inside the target document, can be of type PdfDestination, PdfName, or PdfString + @param newWindow if true, the destination document should be opened in a new window + @return a GoToE action + + + + A PdfAnnotation is a note that is associated with a page. + + @see PdfDictionary + + + flagvalue PDF 1.7 + + + attributevalue + + + Holds value of property used. + + + Holds value of property placeInPage. + + + Constructs a new PdfAnnotation of subtype text. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates a screen PdfAnnotation + @param writer + @param rect + @param clipTitle + @param fs + @param mimeType + @param playOnDisplay + @return a screen PdfAnnotation + @throws IOException + + + Creates a file attachment annotation. + @param writer the PdfWriter + @param rect the dimensions in the page of the annotation + @param contents the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + @return the annotation + + + Creates a file attachment annotation + @param writer + @param rect + @param contents + @param fs + @return the annotation + @throws IOException + + + Creates a polygon or -line annotation + @param writer the PdfWriter + @param rect the annotation position + @param contents the textual content of the annotation + @param polygon if true, the we're creating a polygon annotation, if false, a polyline + @param vertices an array with the vertices of the polygon or -line + @since 5.0.2 + + + Sets the annotation's highlighting mode. The values can be + HIGHLIGHT_NONE, HIGHLIGHT_INVERT, + HIGHLIGHT_OUTLINE and HIGHLIGHT_PUSH; + @param highlight the annotation's highlighting mode + + + Getter for property form. + @return Value of property form. + + + Getter for property annotation. + @return Value of property annotation. + + + Getter for property placeInPage. + @return Value of property placeInPage. + + + Sets the layer this annotation belongs to. + @param layer the layer this annotation belongs to + + + Sets the name of the annotation. + With this name the annotation can be identified among + all the annotations on a page (it has to be unique). + + + This class processes links from imported pages so that they may be active. The following example code reads a group + of files and places them all on the output PDF, four pages in a single page, keeping the links active. +
+            String[] files = new String[] {"input1.pdf", "input2.pdf"};
+            String outputFile = "output.pdf";
+            int firstPage=1;
+            Document document = new Document();
+            PdfWriter writer = PdfWriter.GetInstance(document, new FileOutputStream(outputFile));
+            document.SetPageSize(PageSize.A4);
+            float W = PageSize.A4.GetWidth() / 2;
+            float H = PageSize.A4.GetHeight() / 2;
+            document.Open();
+            PdfContentByte cb = writer.GetDirectContent();
+            for (int i = 0; i < files.length; i++) {
+               PdfReader currentReader = new PdfReader(files[i]);
+               currentReader.ConsolidateNamedDestinations();
+               for (int page = 1; page <= currentReader.GetNumberOfPages(); page++) {
+                   PdfImportedPage importedPage = writer.GetImportedPage(currentReader, page);
+                   float a = 0.5f;
+                   float e = (page % 2 == 0) ? W : 0;
+                   float f = (page % 4 == 1 || page % 4 == 2) ? H : 0;
+                   ArrayList links = currentReader.GetLinks(page);
+                   cb.AddTemplate(importedPage, a, 0, 0, a, e, f);
+                   for (int j = 0; j < links.Size(); j++) {
+                       PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.Get(j);
+                       if (link.IsInternal()) {
+                           int dPage = link.GetDestinationPage();
+                           int newDestPage = (dPage-1)/4 + firstPage;
+                           float ee = (dPage % 2 == 0) ? W : 0;
+                           float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0;
+                           link.SetDestinationPage(newDestPage);
+                           link.TransformDestination(a, 0, 0, a, ee, ff);
+                       }
+                       link.TransformRect(a, 0, 0, a, e, f);
+                       writer.AddAnnotation(link.CreateAnnotation(writer));
+                   }
+                   if (page % 4 == 0)
+                   document.NewPage();
+               }
+               if (i < files.length - 1)
+               document.NewPage();
+               firstPage += (currentReader.GetNumberOfPages()+3)/4;
+            }
+            document.Close();
+            
+
+ + Returns a String representation of the link. + @return a String representation of the imported link + @since 2.1.6 + + + Implements the appearance stream to be used with form fields.. + + + Creates a PdfAppearance. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + + this is the actual array of PdfObjects + + + Constructs an empty PdfArray-object. + + + Constructs an PdfArray-object, containing 1 PdfObject. + + @param object a PdfObject that has to be added to the array + + + Constructs a PdfArray with the elements of an ArrayList. + Throws a ClassCastException if the ArrayList contains something + that isn't a PdfObject. + @param l an ArrayList with PdfObjects + @since 2.1.3 + + + Constructs an PdfArray-object, containing all the PdfObjects in a given PdfArray. + + @param array a PdfArray that has to be added to the array + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + Overwrites a specified location of the array. + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Returns the PdfObject with the specified index. + + A possible indirect references is not resolved, so the returned + PdfObject may be either a direct object or an indirect + reference, depending on how the object is stored in the + PdfArray. + + @param idx The index of the PdfObject to be returned + @return A PdfObject + + + Overwrites a specified location of the array, returning the previous + value + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Remove the element at the specified position from the array. + + Shifts any subsequent elements to the left (subtracts one from their + indices). + + @param idx The index of the element to be removed. + @throws IndexOutOfBoundsException the specified position doesn't exist + @since 2.1.5 + + + Returns an ArrayList containing PdfObjects. + + @return an ArrayList + + + Returns the number of entries in the array. + + @return the size of the ArrayList + + + Returns true if the array is empty. + + @return true if the array is empty + @since 2.1.5 + + + Adds a PdfObject to the PdfArray. + + @param object PdfObject to add + @return true + + + Inserts the specified element at the specified position. + + Shifts the element currently at that position (if any) and + any subsequent elements to the right (adds one to their indices). + + @param index The index at which the specified element is to be inserted + @param element The element to be inserted + @throws IndexOutOfBoundsException if the specified index is larger than the + last position currently set, plus 1. + @since 2.1.5 + + + Inserts a PdfObject at the beginning of the + PdfArray. + + The PdfObject will be the first element, any other elements + will be shifted to the right (adds one to their indices). + + @param object The PdfObject to add + + + Checks if the PdfArray already contains a certain PdfObject. + + @param object PdfObject to check + @return true + + + + @return this PdfArray's values as a long[] + @since 5.3.5 + + + + @return this PdfArray's values as a double[] + @since 5.5.6 + + + + A possible value of PdfBoolean + + + A possible value of PdfBoolean + + + the bool value of this object + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject, represented as a string + + @throws BadPdfFormatException thrown if the value isn't 'true' or 'false' + + + Returns the primitive value of the PdfBoolean-object. + + @return the actual value of the object. + + + A PdfBorderArray defines the border of a PdfAnnotation. + + @see PdfArray + + + Constructs a new PdfBorderArray. + + + Constructs a new PdfBorderArray. + + + A PdfBorderDictionary define the appearance of a Border (Annotations). + + @see PdfDictionary + + + Constructs a PdfBorderDictionary. + + + + The allowed attributes in variable attributes. + + + The allowed attributes in variable noStroke. + + + The value of this object. + + + The encoding. + + + The font for this PdfChunk. + + + + + true if the chunk split was cause by a newline. + + + The image in this PdfChunk, if it has one + + + The offset in the x direction for the image + + + The offset in the y direction for the image + + + Indicates if the height and offset of the Image has to be taken into account + + + The leading that can overrule the existing leading. + + + Constructs a PdfChunk-object. + + @param string the content of the PdfChunk-object + @param font the PdfFont + @param attributes the metrics attributes + @param noStroke the non metric attributes + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + @param tabSettings the Phrase tab settings + + + + + + Returns the font of this Chunk. + + @return a PdfFont + + + Returns the color of this Chunk. + + @return a BaseColor + + + Returns the width of this PdfChunk. + + @return a width + + + Checks if the PdfChunk split was caused by a newline. + @return true if the PdfChunk split was caused by a newline. + + + Gets the width of the PdfChunk taking into account the + extra character and word spacing. + @param charSpacing the extra character spacing + @param wordSpacing the extra word spacing + @return the calculated width + + + Gets the text displacement relatiev to the baseline. + @return a displacement in points + + + Trims the last space. + @return the width of the space trimmed, otherwise 0 + + + Gets an attribute. The search is made in attributes + and noStroke. + @param name the attribute key + @return the attribute value or null if not found + + + Checks if the attribute exists. + @param name the attribute key + @return true if the attribute exists + + + Checks if this PdfChunk needs some special metrics handling. + @return true if this PdfChunk needs some special metrics handling. + + + Checks if this PdfChunk is a Separator Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Checks if this PdfChunk is a horizontal Separator Chunk. + @return true if this chunk is a horizontal separator. + @since 2.1.2 + + + Checks if this PdfChunk is a tab Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Correction for the tab position based on the left starting position. + @param newValue the new value for the left X. + @since 2.1.2 + + + Checks if there is an image in the PdfChunk. + @return true if an image is present + + + Gets the image in the PdfChunk. + @return the image or null + + + Returns a scalePercentage in case the image needs to be scaled. + Sets a scale percentage in case the image needs to be scaled. + + + Gets the image offset in the x direction + @return the image offset in the x direction + + + Gets the image offset in the y direction + @return Gets the image offset in the y direction + + + sets the value. + + + Tells you if this string is in Chinese, Japanese, Korean or Identity-H. + + + Gets the encoding of this string. + + @return a string + + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + Constructs a new PdfColor. + + @param red a value between 0 and 255 + @param green a value between 0 and 255 + @param blue a value between 0 and 255 + + + PdfContentByte is an object containing the user positioned + text and graphic contents of a page. It knows how to apply the proper + font encoding. + + + This class keeps the graphic state of the current page + + + This is the font in use + + + This is the color in use + + + This is the font size in use + + + The x position of the text line matrix. + + + The y position of the text line matrix. + + + The current text leading. + + + The current horizontal scaling + + + The current character spacing + + + The current word spacing + + + The alignement is center + + + The alignement is left + + + The alignement is right + + + A possible line cap value + + + A possible line cap value + + + A possible line cap value + + + A possible line join value + + + A possible line join value + + + A possible line join value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + This is the actual content + + + This is the writer + + + This is the PdfDocument + + + This is the GraphicState in use + + + The list were we save/restore the layer depth + + + The list were we save/restore the state + + + The separator between commands. + + + Constructs a new PdfContentByte-object. + + @param wr the writer associated to this content + + + Returns the string representation of this PdfContentByte-object. + + @return a string + + + [SUP-1395] If set, prevents iText from marking content and creating structure tags for items added to this content stream. + (By default, iText automatically marks content using BDC/EMC operators, and adds a structure tag for the new content + at the end of the page.) + + + Checks if the content needs to be tagged. + @return false if no tags need to be added + + + Gets the internal buffer. + @return the internal buffer + + + Returns the PDF representation of this PdfContentByte-object. + + @param writer the PdfWriter + @return a byte array with the representation + + + Adds the content of another PdfContent-object to this object. + + @param other another PdfByteContent-object + + + Gets the x position of the text line matrix. + + @return the x position of the text line matrix + + + Gets the y position of the text line matrix. + + @return the y position of the text line matrix + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current word spacing. + + @return the current word spacing + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current text leading. + + @return the current text leading + + + + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + + + + + + + + + + + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding number rule to determine which regions lie inside the clipping + path. + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + + Changes the currentgray tint for filling paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for filling paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for filling paths to black. + + + Changes the currentgray tint for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for stroking paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for stroking paths to black. + + + Helper to validate and write the RGB color components + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (minimum intensity) and + 1 (maximum intensity).

+ + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + Changes the current color for stroking paths to black. + + + + Helper to validate and write the CMYK color components. + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink).

+ + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + + Changes the current color for stroking paths to black. + + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a variable width border to the current path. + Only use if {@link com.lowagie.text.Rectangle#isUseVariableBorders() Rectangle.isUseVariableBorders} + = true. + @param rect a Rectangle + + + Adds a border (complete or partially) to the current path.. + + @param rectangle a Rectangle + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + + Ends the path without filling or stroking it. + + + Strokes the path. + + + Closes the path and strokes it. + + + Fills the path, using the non-zero winding number rule to determine the region to fill. + + + Fills the path, using the even-odd rule to determine the region to fill. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + + Adds an Image to the page. The Image must have + absolute positioning. + @param image the Image object + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The Image must have + absolute positioning. The image can be placed inline. + @param image the Image object + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @param isMCBlockOpened true not to open MCBlock, false otherwise + @throws DocumentException on error + + + Makes this PdfContentByte empty. + Calls reset( true ) + + + Makes this PdfContentByte empty. + @param validateContent will call sanityCheck() if true. + @since 2.1.6 + + + Starts the writing of text. + @param restoreTM indicates if to restore text matrix of the previous text block. + + + Starts the writing of text. + + + Ends the writing of text and makes the current font invalid. + + + Saves the graphic state. saveState and + restoreState must be balanced. + + + Restores the graphic state. saveState and + restoreState must be balanced. + + + Sets the character spacing parameter. + + @param charSpace a parameter + + + Sets the word spacing parameter. + + @param wordSpace a parameter + + + Sets the horizontal scaling parameter. + + @param scale a parameter + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + Sets the text rendering parameter. + + @param rendering a parameter + + + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + A helper to insert into the content stream the text + converted to bytes according to the font's encoding. + + @param text the text to write + + + Shows the text. + + @param text the text to write + + + Constructs a kern array for a text in a certain font + @param text the text + @param font the font + @return a PdfTextArray + + + Shows the text kerned. + + @param text the text to write + + + Moves to the next line and shows text. + + @param text the text to write + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + @param wordSpacing a parameter + @param charSpacing a parameter + @param text the text to write + + + Changes the text matrix. +

+ Remark: this operation also initializes the current point position.

+ + @param a operand 1,1 in the matrix + @param b operand 1,2 in the matrix + @param c operand 2,1 in the matrix + @param d operand 2,2 in the matrix + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + + + Changes the text matrix. The first four parameters are {1,0,0,1}. +

+ Remark: this operation also initializes the current point position.

+ + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + Moves to the start of the next line, offset from the start of the current line. + + @param x x-coordinate of the new current point + @param y y-coordinate of the new current point + + + Moves to the start of the next line, offset from the start of the current line. +

+ As a side effect, this sets the leading parameter in the text state.

+ + @param x offset of the new current point + @param y y-coordinate of the new current point +
+ + Moves to the start of the next line. + + + Gets the size of this content. + + @return the size of the content + + + Adds a named outline to the document. + + @param outline the outline + @param name the name for the local destination + + + Gets the root outline. + + @return the root outline + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The additional spacing is not computed for the last character + of the string. + @param text the string to get width of + @param kerned the kerning option + @return the width + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The spacing for the last character is also computed. + It also takes into account kerning that can be specified within TJ operator (e.g. [(Hello) 123 (World)] TJ) + @param text the string to get width of + @param kerned the kerning option + @param kerning the kerning option from TJ array + @return the width + + + Shows text right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + Shows text kerned right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + @since 5.0.1 + + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Create a new colored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @return the PdfPatternPainter where the pattern will be created + + + Create a new colored tiling pattern. Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Adds a PostScript XObject to this content. + + @param psobject the object + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink). This method however accepts only ints between 0x00 and 0xFF.

+ + @param cyan the intensity of cyan + @param magenta the intensity of magenta + @param yellow the intensity of yellow + @param black the intensity of black +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param cyan the intensity of red + @param magenta the intensity of green + @param yellow the intensity of blue + @param black the intensity of black +
+ + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF.

+ + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Sets the stroke color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the stroke color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the fill color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Outputs the color values to the content. + @param color The color + @param tint the tint if it is a spot color, ignored otherwise + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Paints using a shading object. + @param shading the shading object + + + Paints using a shading pattern. + @param shading the shading pattern + + + Sets the shading fill pattern. + @param shading the shading pattern + + + Sets the shading stroke pattern + @param shading the shading pattern + + + Check if we have a valid PdfWriter. + + + + Show an array of text. + @param text array of text + + + Gets the PdfWriter in use by this object. + @return the PdfWriter in use by this object + + + Gets the PdfDocument in use by this object. + @return the PdfDocument in use by this object + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + The local destination to where a local goto with the same + name will jump. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already exists + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Outputs a string directly to the content. + @param s the string + + + Outputs a char directly to the content. + @param c the char + + + Outputs a float directly to the content. + @param n the float + + + Throws an error if it is a pattern. + @param t the object to check + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a button. + + + Draws a button. + + + Sets the graphic state + @param gstate the graphic state + + + + Ends a layer controled graphic block. It will end the most recent open block. + + + Sets the default colorspace. + @param name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB + or PdfName.DEFAULTCMYK + @param obj the colorspace. A null or PdfNull removes any colorspace with the same name + + + Concatenates a transformation to the current transformation + matrix. + @param af the transformation + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Ends a marked content sequence + + + Begins a marked content sequence. If property is null the mark will be of the type + BMC otherwise it will be BDC. + @param tag the tag + @param property the property + @param inline true to include the property in the content or false + to include the property in the resource dictionary with the possibility of reusing + + + This is just a shorthand to beginMarkedContentSequence(tag, null, false). + @param tag the tag + + + Checks for any dangling state: Mismatched save/restore state, begin/end text, + begin/end layer, or begin/end marked content sequence. + If found, this function will throw. This function is called automatically + during a Reset() (from Document.NewPage() for example), and before writing + itself out in ToPdf(). + One possible cause: not calling myPdfGraphics2D.Dispose() will leave dangling + SaveState() calls. + @since 2.1.6 + @throws IllegalPdfSyntaxException (a runtime exception) + + + Parses the page or template content. + @author Paulo Soares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + @param tokeniser the tokeniser with the content + + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + @param ls an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + @return the same ArrayList given as argument or a new one + @throws IOException on error + + + Gets the tokeniser. + @return the tokeniser. + + + Sets the tokeniser. + @param tokeniser the tokeniser + + + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + @return the dictionary + @throws IOException on error + + + Reads an array. The tokeniser must be positioned past the "[" token. + @return an array + @throws IOException on error + + + Reads a pdf object. + @return the pdf object + @throws IOException on error + + + Reads the next token skipping over the comments. + @return true if a token was read, false if the end of content was reached + @throws IOException on error + + + PdfContents is a PdfStream containing the contents (text + graphics) of a PdfPage. + + + Constructs a PdfContents-object, containing text and general graphics. + + @param under the direct content that is under all others + @param content the graphics in a page + @param text the text in a page + @param secondContent the direct content that is over all others + @throws BadPdfFormatException on error + + + Make copies of PDF documents. Documents can be edited after reading and + before writing them out. + @author Mark Thompson + + + This class holds information about indirect references, since they are + renumbered by iText. + + + Holds value of property rotateContents. + + + Constructor + @param document + @param os outputstream + + + Setting page events isn't possible with Pdf(Smart)Copy. + Use the PageStamp class if you want to add content to copied pages. + @see com.itextpdf.text.pdf.PdfWriter#setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Grabs a page from the input document + @param reader the reader of the document + @param pageNumber which page to get + @return the page + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRStream to a PdfStream. The data part copies itself. + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PR-object to a Pdf-object + + + Translate a PR-object to a Pdf-object + + + convenience method. Given an importedpage, set our "globals" + + + convenience method. Given a reader, set our "globals" + + + Add an imported page to our output + @param iPage an imported page + @throws IOException, BadPdfFormatException + + + Adds a blank page. + @param rect The page dimension + @param rotation The rotation angle in degrees + @since 2.1.5 + @throws DocumentException + + + Copy document fields to a destination document. + @param reader a document where fields are copied from. + @throws DocumentException + @throws IOException + + + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Concatenates PDF documents including form fields. The rules for the form field + concatenation are the same as in Acrobat. All the documents are kept in memory unlike + PdfCopy. + @author Paulo Soares + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + @throws IOException on error + + + Creates a new instance. + @param os the output stream + @param pdfVersion the pdf version the output will have + @throws DocumentException on error + @throws IOException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as AddDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + + @author psoares + + + Sets a reference to "visited" in the copy process. + @param ref the reference that needs to be set to "visited" + @return true if the reference was set to visited + + + Checks if a reference has already been "visited" in the copy process. + @param ref the reference that needs to be checked + @return true if the reference was already visited + + + Checks if a reference refers to a page object. + @param ref the reference that needs to be checked + @return true is the reference refers to a page object. + + + Allows you to add one (or more) existing PDF document(s) to + create a new PDF and add the form of another PDF document to + this new PDF. + @since 2.1.5 + @deprecated since 5.5.2 + + + The class with the actual implementations. + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Copies the form fields of this PDFDocument onto the PDF-Document which was added + @param reader the PDF document + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as addDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + SimpleBookmark#. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + Allows you to add one (or more) existing PDF document(s) + and add the form(s) of (an)other PDF document(s). + @since 2.1.5 + @deprecated since 5.5.2 + + + This sets up the output document + @param os The Outputstream pointing to the output document + @throws DocumentException + + + This method feeds in the source document + @param reader The PDF reader containing the source document + @throws DocumentException + + + This merge fields is slightly different from the mergeFields method + of PdfCopyFields. + + + A PdfDashPattern defines a dash pattern as described in + the PDF Reference Manual version 1.3 p 325 (section 8.4.3). + + @see PdfArray + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + + Constructs a PdfDate-object. + + @param d the date that has to be turned into a PdfDate-object + + + Constructs a PdfDate-object, representing the current day and time. + + + Adds a number of leading zeros to a given string in order to get a string + of a certain length. + + @param i a given number + @param length the length of the resulting string + @return the resulting string + + + Gives the W3C format of the PdfDate. + @return a formatted date + + + Gives the W3C format of the PdfDate. + @param d the date in the format D:YYYYMMDDHHmmSSOHH'mm' + @return a formatted date + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + Is the indirect reference to a page already added? + + + + + + + Creates a PdfDestination based on a String. + Valid Strings are for instance the values returned by SimpleNamedDestination: + "Fit", "XYZ 36 806 0",... + @param dest a String notation of a destination. + @since iText 5.0 + + + Checks if an indirect reference to a page has been added. + + @return true or false + + + Adds the indirect reference of the destination page. + + @param page an indirect reference + @return true if the page reference was added + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications (such as this one) that PDF-consuming applications use to + interpret the extensions. + @since 2.1.6 + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the baseversion. + + + Creates a PdfDeveloperExtension object. + @param prefix the prefix referring to the developer + @param baseversion the number of the base version + @param extensionLevel the extension level within the baseverion. + + + Gets the prefix name. + @return a PdfName + + + Gets the baseversion name. + @return a PdfName + + + Gets the extension level within the baseversion. + @return an integer + + + Generations the developer extension dictionary corresponding + with the prefix. + @return a PdfDictionary + + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is the type of this dictionary + + + This is the hashmap that contains all the values and keys of the dictionary + + + Constructs an empty PdfDictionary-object. + + + Constructs a PdfDictionary-object of a certain type. + + @param type a PdfName + + + Returns the PDF representation of this PdfDictionary. + + @return an array of byte + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null or PdfNull the key is deleted. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null it does nothing. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Copies all of the mappings from the specified PdfDictionary + to this PdfDictionary. + + These mappings will replace any mappings previously contained in this + PdfDictionary. + + @param dic The PdfDictionary with the mappings to be + copied over + + + Removes a PdfObject and its key from the PdfDictionary. + + @param key key of the entry (a PdfName) + + + Removes all the PdfObjects and its keys from the + PdfDictionary. + @since 5.0.2 + + + + Checks if a Dictionary is of the type FONT. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGE. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGES. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type CATALOG. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type OUTLINES. + + @return true if it is, false if it isn't. + + + Checks the type of the dictionary. + @param type the type you're looking for + @return true if the type of the dictionary corresponds with the type you're looking for + + + This function behaves the same as 'get', but will never return an indirect reference, + it will always look such references up and return the actual object. + @param key + @return null, or a non-indirect object + + + All the getAs functions will return either null, or the specified object type + This function will automatically look up indirect references. There's one obvious + exception, the one that will only return an indirect reference. All direct objects + come back as a null. + Mark A Storer (2/17/06) + @param key + @return the appropriate object in its final type, or null + + + + + Construct a PdfInfo-object. + + + Constructs a PdfInfo-object. + + @param author name of the author of the document + @param title title of the document + @param subject subject of the document + + + Adds the title of the document. + + @param title the title of the document + + + Adds the subject to the document. + + @param subject the subject of the document + + + Adds some keywords to the document. + + @param keywords the keywords of the document + + + Adds the name of the author to the document. + + @param author the name of the author + + + Adds the name of the creator to the document. + + @param creator the name of the creator + + + Adds the name of the producer to the document. + + + Adds the date of creation to the document. + + + + Constructs a PdfCatalog. + + @param pages an indirect reference to the root of the document's Pages tree. + @param writer the writer the catalog applies to + + + Adds the names of the named destinations to the catalog. + @param localDestinations the local destinations + @param documentJavaScript the javascript used in the document + @param writer the writer the catalog applies to + + + Sets the document level additional actions. + @param actions dictionary of actions + + + Constructs a new PDF document. + @throws DocumentException on error + + + The PdfWriter. + + + Adds a PdfWriter to the PdfDocument. + + @param writer the PdfWriter that writes everything + what is added to this document to an outputstream. + @throws DocumentException on error + + + This is the PdfContentByte object, containing the text. + + + This is the PdfContentByte object, containing the borders and other Graphics. + + + This represents the leading of the lines. + + + Getter for the current leading. + @return the current leading + @since 2.1.2 + + + This is the current height of the document. + + + Signals that onParagraph is valid (to avoid that a Chapter/Section title is treated as a Paragraph). + @since 2.1.2 + + + This represents the current alignment of the PDF Elements. + + + The current active PdfAction when processing an Anchor. + + + The current tab settings. + @return the current + @since 5.4.0 + + + Signals that the current leading has to be subtracted from a YMark object when positive + and save current leading + @since 2.1.2 + + + Save current @leading + + + Restore @leading from leadingStack + + + Getter and setter for the current tab stops. + @since 5.4.0 + + + Signals that an Element was added to the Document. + + @param element the element to add + @return true if the element was added, false if not. + @throws DocumentException when a document isn't open yet, or has been closed + + + + + Use this method to set the XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + @throws IOException + + + Makes a new page and sends it to the PdfWriter. + + @return true if new page was added + @throws DocumentException on error + + + Sets the pagesize. + + @param pageSize the new pagesize + @return true if the page size was set + + + margin in x direction starting from the left. Will be valid in the next page + + + margin in x direction starting from the right. Will be valid in the next page + + + margin in y direction starting from the top. Will be valid in the next page + + + margin in y direction starting from the bottom. Will be valid in the next page + + + Sets the margins. + + @param marginLeft the margin on the left + @param marginRight the margin on the right + @param marginTop the margin on the top + @param marginBottom the margin on the bottom + @return a bool + + + @see com.lowagie.text.DocListener#setMarginMirroring(bool) + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + Sets the page number. + + @param pageN the new page number + + + Sets the page number to 0. + + + Signals that OnOpenDocument should be called. + + + + The line that is currently being written. + + + The lines that are written until now. + + + Adds the current line to the list of lines and also adds an empty line. + @throws DocumentException on error + + + line.height() is usually the same as the leading + We should take leading into account if it is not the same as the line.height + + @return float combined height of the line + @since 5.5.1 + + + If the current line is not empty or null, it is added to the arraylist + of lines and a new empty line is added. + @throws DocumentException on error + + + Gets the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Holds the type of the last element, that has been added to the document. + + + Ensures that a new line has been started. + + + Writes all the lines to the text-object. + + @return the displacement that was caused + @throws DocumentException on error + + + The characters to be applied the hanging punctuation. + + + + This represents the current indentation of the PDF Elements on the left side. + + + Indentation to the left caused by a section. + + + This represents the current indentation of the PDF Elements on the left side. + + + This is the indentation caused by an image on the left. + + + This represents the current indentation of the PDF Elements on the right side. + + + Indentation to the right caused by a section. + + + This is the indentation caused by an image on the right. + + + This represents the current indentation of the PDF Elements on the top side. + + + This represents the current indentation of the PDF Elements on the bottom side. + + + Gets the indentation on the left side. + + @return a margin + + + Gets the indentation on the right side. + + @return a margin + + + Gets the indentation on the top side. + + @return a margin + + + Gets the indentation on the bottom side. + + @return a margin + + + Calls addSpacing(float, float, Font, boolean (false)). + + + Adds extra space. + + + some meta information about the Document. + + + + Gets the PdfCatalog-object. + + @param pages an indirect reference to this document pages + @return PdfCatalog + + + This is the root outline of the document. + + + This is the current PdfOutline in the hierarchy of outlines. + + + Adds a named outline to the document . + @param outline the outline to be added + @param name the name of this local destination + + + Gets the root outline. All the outlines must be created with a parent. + The first level is created with this outline. + @return the root outline + + + Contains the Viewer preferences of this PDF document. + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Stores the destinations keyed by name. Value is + Object[]{PdfAction,PdfIndirectReference,PdfDestintion}. + + + The local destination to where a local goto with the same + name will jump to. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already existed + + + Stores a list of document level JavaScript actions. + + + Sets the collection dictionary. + @param collection a dictionary of type PdfCollection + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + This is the size of the next page. + + + This is the size of the several boxes of the current Page. + + + This is the size of the several boxes that will be used in + the next page. + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + This checks if the page is empty. + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the PdfTransition object + + + This are the page resources of the current Page. + + + Holds value of property strictImageSequence. + + + Setter for property strictImageSequence. + @param strictImageSequence New value of property strictImageSequence. + + + + This is the position where the image ends. + + + Method added by Pelikan Stephan + @see com.lowagie.text.DocListener#clearTextWrap() + + + This is the image that could not be shown on a previous page. + + + Adds an image to the document. + @param image the Image to add + @throws PdfException on error + @throws DocumentException on error + + + Adds a PdfPTable to the document. + @param ptable the PdfPTable to be added to the document. + @throws DocumentException on error + + + @since 5.0.1 + + + Extends PdfStream and should be used to create Streams for Embedded Files + (file attachments). + @since 2.1.3 + + + Creates a Stream object using an InputStream and a PdfWriter object + @param in the InputStream that will be read to get the Stream object + @param writer the writer to which the stream will be added + + + Creates a Stream object using a byte array + @param fileStore the bytes for the stream + + + @see com.lowagie.text.pdf.PdfDictionary#toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream) + + + Supports fast encodings for winansi and PDFDocEncoding. + + @author Paulo Soares + + + + + Checks is text only has PdfDocEncoding characters. + @param text the String to test + @return true if only PdfDocEncoding characters are present + + + Adds an extra encoding. + @param name the name of the encoding. The encoding recognition is case insensitive + @param enc the conversion class + + + + @author Paulo Soares + + + The encryption key for a particular object/generation + + + The encryption key length for a particular object/generation + + + The global encryption key + + + Work area to prepare the object/generation bytes + + + The message digest algorithm MD5 + + + The encryption key for the owner + + + The encryption key for the user + + + The public key security handler for certificate encryption + + + The generic key length. It may be 40 or 128. + + + Indicates if the encryption is only necessary for embedded files. + @since 2.1.3 + + + Indicates if only the embedded files have to be encrypted. + @return if true only the embedded files will be encrypted + @since 2.1.3 + + + + + + ownerKey, documentID must be setuped + + + + mkey must be setuped + + + + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm (Revision 2 - 4). + + @param ownerPassword owner password of the encrypted document. + @return user password, or null if revision 5 (AES256) or greater of standard encryption handler was used. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Give you a verbose analysis of the permissions. + @param permissions the permissions value of a PDF file + @return a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + @param permissions the permissions value of a PDF file + @return true if printing is allowed + + @since 2.0.7 + + + Tells you if modifying content is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying content is allowed + + @since 2.0.7 + + + Tells you if copying is allowed. + @param permissions the permissions value of a PDF file + @return true if copying is allowed + + @since 2.0.7 + + + Tells you if modifying annotations is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying annotations is allowed + + @since 2.0.7 + + + Tells you if filling in fields is allowed. + @param permissions the permissions value of a PDF file + @return true if filling in fields is allowed + + @since 2.0.7 + + + Tells you if repurposing for screenreaders is allowed. + @param permissions the permissions value of a PDF file + @return true if repurposing for screenreaders is allowed + + @since 2.0.7 + + + Tells you if document assembly is allowed. + @param permissions the permissions value of a PDF file + @return true if document assembly is allowed + + @since 2.0.7 + + + Tells you if degraded printing is allowed. + @param permissions the permissions value of a PDF file + @return true if degraded printing is allowed + + @since 2.0.7 + + + Signals that an unspecified problem while constructing a PDF document. + + @see BadPdfFormatException + + + Specifies a file or an URL. The file can be extern or embedded. + + @author Paulo Soares + + + Creates a new instance of PdfFileSpecification. The static methods are preferred. + + + Creates a file specification of type URL. + @param writer the PdfWriter + @param url the URL + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compressionLevel the compression level to be used for compressing the file + it takes precedence over filePath + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @param compressionLevel the level of compression + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification for an external file. + @param writer the PdfWriter + @param filePath the file path + @return the file specification + + + Gets the indirect reference to this file specification. + Multiple invocations will retrieve the same value. + @throws IOException on error + @return the indirect reference + + + Sets the file name (the key /F) string as an hex representation + to support multi byte file names. The name must have the slash and + backslash escaped according to the file specification rules + @param fileName the file name as a byte array + + + Adds the unicode file name (the key /UF). This entry was introduced + in PDF 1.7. The filename must have the slash and backslash escaped + according to the file specification rules. + @param filename the filename + @param unicode if true, the filename is UTF-16BE encoded; otherwise PDFDocEncoding is used; + + + Sets a flag that indicates whether an external file referenced by the file + specification is volatile. If the value is true, applications should never + cache a copy of the file. + @param volatile_file if true, the external file should not be cached + + + Adds a description for the file that is specified here. + @param description some text + @param unicode if true, the text is added as a unicode string + + + Adds the Collection item dictionary. + + + + the font metrics. + + + the size. + + + Compares this PdfFont with another + + @param object the other PdfFont + @return a value + + + Returns the size of this font. + + @return a size + + + Returns the approximative width of 1 character of this font. + + @return a width in Text Space + + + Returns the width of a certain character of this font. + + @param character a certain character + @return a width in Text Space + + + Implements form fields. + + @author Paulo Soares + + + Allows text fields to support rich text. + @since 5.0.6 + + + Holds value of property parent. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates new PdfFormField + + + Getter for property parent. + @return Value of property parent. + + + Sets the rich value for this field. + It is suggested that the regular value of this field be set to an + equivalent value. Rich text values are only supported since PDF 1.5, + and require that the FF_RV flag be set. See PDF Reference chapter + 12.7.3.4 for details. + @param rv HTML markup for the rich value of this field + @since 5.0.6 + + + PdfFormObject is a type of XObject containing a template-object. + + + This is a PdfNumber representing 0. + + + This is a PdfNumber representing 1. + + + This is the 1 - matrix. + + + Constructs a PdfFormXObject-object. + + @param template the template + @param compressionLevel the compression level for the stream + @since 2.1.3 (Replacing the existing constructor with param compressionLevel) + + + Implements PDF functions. + + @author Paulo Soares + + + Creates new PdfFunction + + + The graphic state dictionary. + + @author Paulo Soares + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + Sets the flag whether to apply overprint for stroking. + @param ov + + + Sets the flag whether to apply overprint for non stroking painting operations. + @param ov + + + Sets the flag whether to toggle knockout behavior for overprinted objects. + @param ov - accepts 0 or 1 + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for stroking operations in the transparent + imaging model. + @param n + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for nonstroking operations in the transparent + imaging model. + @param n + + + The alpha source flag specifying whether the current soft mask + and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + @param v + + + Determines the behaviour of overlapping glyphs within a text object + in the transparent imaging model. + @param v + + + The current blend mode to be used in the transparent imaging model. + @param bm + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + A PdfICCBased defines a ColorSpace + + @see PdfStream + + + Creates an ICC stream. + @param profile an ICC profile + + + Creates an ICC stream. + + @param compressionLevel the compressionLevel + + @param profile an ICC profile + @since 2.1.3 (replacing the constructor without param compressionLevel) + + + PdfImage is a PdfStream containing an image-Dictionary and -stream. + + + This is the PdfName of the image. + + + Constructs a PdfImage-object. + + @param image the Image-object + @param name the PdfName for this image + @throws BadPdfFormatException on error + + + Returns the PdfName of the image. + + @return the name + + + Called when no resource name is provided in our constructor. This generates a + name that is required to be unique within a given resource dictionary. + @since 5.0.1 + + + Represents an imported page. + + @author Paulo Soares + + + True if the imported page has been copied to a writer. + @since iText 5.0.4 + + + Reads the content from this PdfImportedPage-object from a reader. + + @return self + + + + Always throws an error. This operation is not allowed. + @param image dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + @throws DocumentException dummy + + + Always throws an error. This operation is not allowed. + @param template dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + + + Always throws an error. This operation is not allowed. + @return dummy + + + Gets the stream representing this page. + + @param compressionLevel the compressionLevel + @return the stream representing this page + @since 2.1.3 (replacing the method without param compressionLevel) + + + Always throws an error. This operation is not allowed. + @param bf dummy + @param size dummy + + + Checks if the page has to be copied. + @return true if the page has to be copied. + @since iText 5.0.4 + + + Indicate that the resources of the imported page have been copied. + @since iText 5.0.4 + + + + The object number + + + the generation number + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param objecti the direct objecti + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param generation the generation number + @param objecti the direct objecti + + + Returns a PdfIndirectReference to this PdfIndirectObject. + + @return a PdfIndirectReference + + + Writes eficiently to a stream + + @param os the stream to write to + @throws IOException on write error + + + + the object number + + + the generation number + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + + + Returns the number of the object. + + @return a number. + + + Returns the generation of the object. + + @return a number. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. + + @author Paulo Soares + + + Holds value of property on. + + + Holds value of property onPanel. + + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + @param title the title text + @param writer the PdfWriter + @return the title layer + + + Creates a new layer. + @param name the name of the layer + @param writer the writer + + + Adds a child layer. Nested layers can only have one parent. + @param child the child layer + + + Gets the parent layer. + @return the parent layer or null if the layer has no parent + + + Gets the children layers. + @return the children layers or null if the layer has no children + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Sets the name of this layer. + @param name the name of this layer + + + Gets the dictionary representing the layer. It just returns this. + @return the dictionary representing the layer + + + Gets the initial visibility of the layer. + @return the initial visibility of the layer + + + Used by the creating application to store application-specific + data associated with this optional content group. + @param creator a text string specifying the application that created the group + @param subtype a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + Specifies the language of the content controlled by this + optional content group + @param lang a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + @param preferred used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + @param export the export state + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + @param min the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + @param max the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + Specifies that the content in this group is intended for + use in printing + @param subtype a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + @param printstate indicates that the group should be + set to that state when the document is printed from a viewer application + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + @param view the view state + + + Indicates that the group contains a pagination artifact. + @param pe one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + @since 5.0.2 + + + One of more users for whom this optional content group is primarily intended. + @param type should be "Ind" (Individual), "Ttl" (Title), or "Org" (Organization). + @param names one or more names + @since 5.0.2 + + + Gets the layer visibility in Acrobat's layer panel + @return the layer visibility in Acrobat's layer panel + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + @param onPanel the visibility of the layer in Acrobat's layer panel + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. + + @author Paulo Soares + + + Visible only if all of the entries are ON. + + + Visible if any of the entries are ON. + + + Visible if any of the entries are OFF. + + + Visible only if all of the entries are OFF. + + + Creates a new, empty, membership layer. + @param writer the writer + + + Gets the PdfIndirectReference that represents this membership layer. + @return the PdfIndirectReference that represents this layer + + + Adds a new member to the layer. + @param layer the new member to the layer + + + Gets the member layers. + @return the member layers + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are ALLON, ANYON, ANYOFF and ALLOFF. + The default value is ANYON. + @param type the visibility policy + + + Sets the visibility expression for content belonging to this + membership dictionary. + @param ve A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + @since 5.0.2 + + + Gets the dictionary representing the membership layer. It just returns this. + @return the dictionary representing the layer + + + PdfLine defines an array with PdfChunk-objects + that fit into 1 line. + + + The arraylist containing the chunks. + + + The left indentation of the line. + + + The width of the line. + + + The alignment of the line. + + + The heigth of the line. + + + true if the chunk splitting was caused by a newline. + + + The original width. + + + Constructs a new PdfLine-object. + + @param left the limit of the line at the left + @param right the limit of the line at the right + @param alignment the alignment of the line + @param height the height of the line + + + Creates a PdfLine object. + @param left the left offset + @param originalWidth the original width of the line + @param remainingWidth bigger than 0 if the line isn't completely filled + @param alignment the alignment of the line + @param newlineSplit was the line splitted (or does the paragraph end with this line) + @param line an array of PdfChunk objects + @param isRTL do you have to read the line from Right to Left? + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @param currentLeading new value for the height of the line + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Returns the number of chunks in the line. + + @return a value + + + Returns an iterator of PdfChunks. + + @return an Iterator + + + Returns the height of the line. + + @return a value + + + Returns the left indentation of the line taking the alignment of the line into account. + + @return a value + + + Checks if this line has to be justified. + + @return true if the alignment equals ALIGN_JUSTIFIED and there is some width left. + + + + Adds extra indentation to the left (for Paragraph.setFirstLineIndent). + + + Returns the width that is left, after a maximum of characters is added to the line. + + @return a value + + + Returns the number of space-characters in this line. + + @return a value + + + + Returns the listsymbol of this line. + + @return a PdfChunk if the line has a listsymbol; null otherwise + + + Return the indentation needed to show the listsymbol. + + @return a value + + + Get the string representation of what is in this line. + + @return a string + + + Checks if a newline caused the line split. + @return true if a newline caused the line split + + + Gets the index of the last PdfChunk with metric attributes + @return the last PdfChunk with metric attributes + + + Gets a PdfChunk by index. + @param idx the index + @return the PdfChunk or null if beyond the array + + + Gets the original width of the line. + @return the original width of the line + + + Gets the difference between the "normal" leading and the maximum + size (for instance when there are images in the chunk and the leading + has to be taken into account). + @return an extra leading for images + @since 2.1.5 + + + Gets the number of separators in the line. + Returns -1 if there's a tab in the line. + @return the number of separators in the line + @since 2.1.2 + + + Gets the maximum size of the ascender for all the fonts used + in this line. + @return maximum size of all the ascenders used in this line + + + Gets the biggest descender for all the fonts used + in this line. Note that this is a negative number. + @return maximum size of all the ascenders used in this line + + + a Literal + + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from ABSOLUTECALORIMETRIC + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + a name used in PDF structure + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 5.0.3 + + + A name + + + A name + + + A name + + + Use ALT to specify alternate texts in Tagged PDF. + For alternate ICC profiles, use {@link #ALTERNATE} + + + Use ALTERNATE only in ICC profiles. It specifies an alternative color + space, in case the primary one is not supported, for legacy purposes. + For various types of alternate texts in Tagged PDF, use {@link #ALT} + + + A name + @since 5.5.8 + + + A name + @since 5.4.5 + + + A name + @since 5.4.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.0.7 + + + A name + + + A name + + + A name + + + A name + @since 5.3.2 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 renamed from DEFAULTCRYPTFILER + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + @since 5.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 2.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + @since 5.4.0 + + + A name of an attribute. + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.5 + + + A name + @since 2.1.5 + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.4 + + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use {@link #LANGUAGE} + + + A dictionary type, strictly for use in the content usage dictionary. For + dictionary entries in Tagged Pdf, use {@link #LANG} + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.2 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + @since 2.1.6 + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 renamed from MAX + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 renamed from MIN + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name used with Document Structure + @since 2.1.5 + + + a name used with Document Structure + @since 2.1.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name used in defining Document Structure. + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.0.2 + + + A name + @since 5.0.2 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from RELATIVECALORIMETRIC + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + @since 5.4.4 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.3 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + T is very commonly used for various dictionary entries, including title + entries in a Tagged PDF element dictionary, and target dictionaries. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + @since 5.4.3 + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.4 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + Use Title for the document's top level title (optional), and for document + outline dictionaries, which can store bookmarks. + For all other uses of a title entry, including Tagged PDF, use {@link #T} + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.2.1 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.0.2 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an encoding + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name of an encoding + + + A name + @since 5.4.3 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name + + + map strings to all known static names + @since 2.1.6 + + + Use reflection to cache all the static public readonly names so + future PdfName additions don't have to be "added twice". + A bit less efficient (around 50ms spent here on a 2.2ghz machine), + but Much Less error prone. + @since 2.1.6 + + + Constructs a new PdfName. The name length will be checked. + @param name the new name + + + Constructs a new PdfName. + @param name the new name + @param lengthCheck if true check the lenght validity, if false the name can + have any length + + + + Indicates whether some other object is "equal to" this one. + + @param obj the reference object with which to compare. + @return true if this object is the same as the obj + argument; false otherwise. + + + Returns a hash code value for the object. This method is + supported for the benefit of hashtables such as those provided by + java.util.Hashtable. + + @return a hash code value for this object. + + + Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD". + + @param name the name to encode + @return the encoded name + @since 2.1.5 + + + Decodes an escaped name in the form "/AB#20CD" into "AB CD". + @param name the name to decode + @return the decoded name + + + Creates a name tree. + @author Paulo Soares + + + Creates a name tree. + @param items the item of the name tree. The key is a String + and the value is a PdfObject. Note that although the + keys are strings only the lower byte is used and no check is made for chars + with the same lower byte and different upper byte. This will generate a wrong + tree name. + @param writer the writer + @throws IOException on error + @return the dictionary with the name tree. This dictionary is the one + generally pointed to by the key /Dests, for example + + + + This is an instance of the PdfNull-object. + + + + + actual value of this PdfNumber, represented as a double + + + Constructs a PdfNumber-object. + + @param content value of the new PdfNumber-object + + + Constructs a new int PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new long PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Returns the primitive int value of this object. + + @return a value + + + Returns the primitive long value of this object. + + @return a value + + + Returns the primitive double value of this object. + + @return a value + + + Increments the value of the PdfNumber-object with 1. + + + Creates a number tree. + @author Paulo Soares + + + Creates a number tree. + @param items the item of the number tree. The key is an Integer + and the value is a PdfObject. + @param writer the writer + @throws IOException on error + @return the dictionary with the number tree. + + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + This is an empty string used for the PdfNull-object and for an empty PdfString-object. + + + This is the default encoding to be used for converting strings into bytes and vice versa. + The default encoding is PdfDocEcoding. + + + This is the encoding to be used to output text in Unicode. + + + the content of this PdfObject + + + the type of this PdfObject + + + Holds value of property indRef. + + + Hash code of the PdfObject instance. + Unfortunately, default C# behavior does not generate unique hash code. + + + Used for generating hash code. + + + Making hash code generation thread safe. + + + Constructs a PdfObject of a certain type without any content. + + @param type type of the new PdfObject + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param content content of the new PdfObject as a String. + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param bytes content of the new PdfObject as an array of byte. + + + Writes the PDF representation of this PdfObject as an array of bytes to the writer. + @param writer for backwards compatibility + @param os the outputstream to write the bytes to. + @throws IOException + + + Gets the presentation of this object in a byte array + @return a byte array + + + Can this object be in an object stream? + @return true if this object can be in an object stream. + + + Returns the String-representation of this PdfObject. + + @return a String + + + Returns the length of the actual content of the PdfObject. +

+ In some cases, namely for PdfString and PdfStream, + this method differs from the method pdfLength because pdfLength + returns the length of the PDF representation of the object, not of the actual content + as does the method length.

+

+ Remark: the actual content of an object is in some cases identical to its representation. + The following statement is always true: Length() >= PdfLength().

+ + @return a length +
+ + Changes the content of this PdfObject. + + @param content the new content of this PdfObject + + + Returns the type of this PdfObject. + + @return a type + + + Checks if this PdfObject is of the type PdfNull. + + @return true or false + + + Checks if this PdfObject is of the type PdfBoolean. + + @return true or false + + + Checks if this PdfObject is of the type PdfNumber. + + @return true or false + + + Checks if this PdfObject is of the type PdfString. + + @return true or false + + + Checks if this PdfObject is of the type PdfName. + + @return true or false + + + Checks if this PdfObject is of the type PdfArray. + + @return true or false + + + Checks if this PdfObject is of the type PdfDictionary. + + @return true or false + + + Checks if this PdfObject is of the type PdfStream. + + @return true or false + + + Checks if this is an indirect object. + @return true if this is an indirect object + + + + the PdfIndirectReference of this object + + + value of the Count-key + + + value of the Parent-key + + + value of the Destination-key + + + The PdfAction for this outline. + + + Holds value of property tag. + + + Holds value of property open. + + + Holds value of property color. + + + Holds value of property style. + + + + + + + + + + + + + + + + Helper for the constructors. + @param parent the parent outline + @param title the title for this outline + @param open true if the children are visible + + + Gets the indirect reference of this PdfOutline. + + @return the PdfIndirectReference to this outline. + + + Gets the parent of this PdfOutline. + + @return the PdfOutline that is the parent of this outline. + + + Set the page of the PdfDestination-object. + + @param pageReference indirect reference to the page + @return true if this page was set as the PdfDestination-page. + + + Gets the destination for this outline. + @return the destination + + + returns the level of this outline. + + @return a level + + + Returns the PDF representation of this PdfOutline. + + @param writer the encryption information + @param os + @throws IOException + + + Getter for property tag. + @return Value of property tag. + + + Setter for property open. + @param open New value of property open. + + + + value of the Rotate key for a page in PORTRAIT + + + value of the Rotate key for a page in LANDSCAPE + + + value of the Rotate key for a page in INVERTEDPORTRAIT + + + value of the Rotate key for a page in SEASCAPE + + + value of the MediaBox key + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @param rotate a value for the Rotate key + @throws DocumentException + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @throws DocumentException + + + + Adds an indirect reference pointing to a PdfContents-object. + + @param contents an indirect reference to a PdfContents-object + + + Rotates the mediabox, but not the text in it. + + @return a PdfRectangle + + + Returns the MediaBox of this Page. + + @return a PdfRectangle + + + Helps the use of PdfPageEvent by implementing all the interface methods. + A class can extend PdfPageEventHelper and only implement the + needed methods. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + Page labels are used to identify each + page visually on the screen or in print. + @author Paulo Soares + + + Logical pages will have the form 1,2,3,... + + + Logical pages will have the form I,II,III,IV,... + + + Logical pages will have the form i,ii,iii,iv,... + + + Logical pages will have the form of uppercase letters + (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on) + + + Logical pages will have the form of uppercase letters + (a to z for the first 26 pages, aa to zz for the next 26, and so on) + + + No logical page numbers are generated but fixed text may + still exist + + + Dictionary values to set the logical page styles + + + The sequence of logical pages. Will contain at least a value for page 1 + + + Creates a new PdfPageLabel with a default logical page 1 + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + @param includeFirstPage If true, the page label will be added to the first page if it is page 1. + If the first page is not page 1 or this value is false, the value will not be added to the dictionary. + + + Adds or replaces a page label. The first logical page has the default + of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + + + Adds or replaces a page label. There is no text prefix and the first + logical page has the default of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + + + Adds or replaces a page label. + + + Removes a page label. The first page lagel can not be removed, only changed. + @param page the real page to remove + + + Gets the page label dictionary to insert into the document. + @return the page label dictionary + + + Retrieves the page labels from a PDF as an array of String objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a String array or null if no page labels are present + + + Retrieves the page labels from a PDF as an array of {@link PdfPageLabelFormat} objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a PdfPageLabelEntry array, containing an entry for each format change + or null if no page labels are present + + + Creates a page label format. + @param physicalPage the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param prefix the text to prefix the number. Can be null or empty + @param logicalPage the first logical page number + + + + Constructs a PdfPages-object. + + + A PdfPattern defines a ColorSpace + + @see PdfStream + + + Creates a PdfPattern object. + @param painter a pattern painter instance + + + Creates a PdfPattern object. + @param painter a pattern painter instance + @param compressionLevel the compressionLevel for the stream + @since 2.1.3 + + + Implements the pattern. + + + Creates a PdfPattern. + + + Creates new PdfPattern + + @param wr the PdfWriter + + + Gets the stream representing this pattern + @return the stream representing this pattern + + + Gets the stream representing this pattern + @param compressionLevel the compression level of the stream + @return the stream representing this pattern + @since 2.1.3 + + + Gets a duplicate of this PdfPatternPainter. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPatternPainter + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayFill(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayStroke(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFillF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStrokeF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFillF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStrokeF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#addImage(com.lowagie.text.Image, float, float, float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStroke(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStroke(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter) + + + A cell in a PdfPTable. + + + Holds value of property verticalAlignment. + + + Holds value of property paddingLeft. + + + Holds value of property paddingLeft. + + + Holds value of property paddingTop. + + + Holds value of property paddingBottom. + + + Holds value of property fixedHeight. + + + Fixed height of the cell. + + + Holds value of property noWrap. + + + Holds value of property table. + + + Holds value of property minimumHeight. + + + This field is used to cache the height which is calculated on getMaxHeight() method call; + this helps to avoid unnecessary recalculations on table drawing. + + + Holds value of property colspan. + + + Holds value of property rowspan. + @since 2.1.6 + + + Holds value of property image. + + + Holds value of property cellEvent. + + + Holds value of property useDescender. + + + Increases padding to include border if true + + + The text in the cell. + + + The rotation of the cell. Possible values are + 0, 90, 180 and 270. + + + Constructs an empty PdfPCell. + The default padding is 2. + + + Constructs a PdfPCell with a Phrase. + The default padding is 2. + @param phrase the text + + + Constructs a PdfPCell with an Image. + The default padding is 0. + @param image the Image + + + Constructs a PdfPCell with an Image. + The default padding is 0.25 for a border width of 0.5. + @param image the Image + @param fit true to fit the image to the cell + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + The default padding is 0. + @param table The PdfPTable + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + + @param table The PdfPTable + @param style The style to apply to the cell (you could use getDefaultCell()) + @since 2.1.0 + + + Constructs a deep copy of a PdfPCell. + @param cell the PdfPCell to duplicate + + + Adds an iText element to the cell. + @param element + + + Gets the Phrase from this cell. + @return the Phrase + + + Gets the horizontal alignment for the cell. + @return the horizontal alignment for the cell + + + Gets the vertical alignment for the cell. + @return the vertical alignment for the cell + + + Gets the effective left padding. This will include + the left border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingLeft. + + + @return Value of property paddingLeft. + + + Gets the effective right padding. This will include + the right border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingRight. + + + Getter for property paddingRight. + @return Value of property paddingRight. + + + Gets the effective top padding. This will include + the top border width if {@link #isUseBorderPadding()} is true. + @return effective value of property paddingTop. + + + Getter for property paddingTop. + @return Value of property paddingTop. + + + /** Gets the effective bottom padding. This will include + * the bottom border width if {@link #UseBorderPadding} is true. + * @return effective value of property paddingBottom. + + + Getter for property paddingBottom. + @return Value of property paddingBottom. + + + Sets the padding of the contents in the cell (space between content and border). + @param padding + + + Adjusts effective padding to include border widths. + @param use adjust effective padding if true + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the first paragraph line indent. + @return the indent + + + Gets the extra space between paragraphs. + @return the extra space between paragraphs + + + Getter for property fixedHeight. + @return Value of property fixedHeight. + + + Tells you whether the cell has a fixed height. + + @return true is a fixed height was set. + @since 2.1.5 + + + Gets the height which was calculated on last call of getMaxHeight(). + If cell's bBox and content wasn't changed this value is actual maxHeight of the cell. + @return max height which was calculated on last call of getMaxHeight(); if getMaxHeight() wasn't called the return value is 0 + + + Setter for property noWrap. + @param noWrap New value of property noWrap. + + + Getter for property table. + @return Value of property table. + + + Getter for property minimumHeight. + @return Value of property minimumHeight. + + + Tells you whether the cell has a minimum height. + + @return true if a minimum height was set. + @since 2.1.5 + + + Getter for property colspan. + @return Value of property colspan. + + + Getter for property rowspan. + @return Value of property rowspan. + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction of the text content in the cell + @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL. + + + Getter for property image. + @return Value of property image. + + + + Gets the cell event for this cell. + @return the cell event + + + + Gets the arabic shaping options. + @return the arabic shaping options + + + Gets state of first line height based on max ascender + @return true if an ascender is to be used. + + + Getter for property useDescender. + @return Value of property useDescender. + + + + Gets the ColumnText with the content of the cell. + @return a columntext object + + + Returns the list of composite elements of the column. + @return a List object. + @since 2.1.1 + + + Sets the rotation of the cell. Possible values are + 0, 90, 180 and 270. + @param rotation the rotation of the cell + + + Returns the height of the cell. + @return the height of the cell + @since 3.0.0 + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + A row in a PdfPTable. + + @author Paulo Soares + + + True if the table may not break after this row. + + + the bottom limit (bottom right y) + + + the right limit + @since 2.1.5 + + + extra heights that needs to be added to a cell because of rowspans. + @since 2.1.6 + + + Constructs a new PdfPRow with the cells in the array that was passed + as a parameter. + + @param cells + + + Makes a copy of an existing row. + + @param row + + + Sets the widths of the columns in the row. + + @param widths + @return true if everything went right + + + Initializes the extra heights array. + @since 2.1.6 + + + Sets an extra height for a cell. + @param cell the index of the cell that needs an extra height + @param height the extra height + @since 2.1.6 + + + Calculates the heights of each cell in the row. + + @return the maximum height of the row. + + + Writes the border and background of one cell in the row. + + @param xPos The x-coordinate where the table starts on the canvas + @param yPos The y-coordinate where the table starts on the canvas + @param currentMaxHeight The height of the cell to be drawn. + @param cell + @param canvases + @since 2.1.6 extra parameter currentMaxHeight + + + @since 2.1.6 private is now protected + + + @since 2.1.6 private is now protected + + + @since 3.0.0 protected is now public static + + + * Writes a number of cells (not necessarily all cells). + * + * @param colStart The first column to be written. + * Remember that the column index starts with 0. + * @param colEnd The last column to be written. + * Remember that the column index starts with 0. + * If -1, all the columns to the end are written. + * @param xPos The x-coordinate where the table starts on the canvas + * @param yPos The y-coordinate where the table starts on the canvas + * @param reusable if set to false, the content in the cells is "consumed"; + * if true, you can reuse the cells, the row, the parent table as many times you want. + * @since 5.1.0 added the reusable parameter + + + Checks if the dimensions of the columns were calculated. + + @return true if the dimensions of the columns were calculated + + + Gets the maximum height of the row (i.e. of the 'highest' cell). + @return the maximum height of the row + + + Copies the content of a specific row in a table to this row. + Don't do this if the rows have a different number of cells. + @param table the table from which you want to copy a row + @param idx the index of the row that needs to be copied + @since 5.1.0 + + + Splits a row to newHeight. + The returned row is the remainder. It will return null if the newHeight + was so small that only an empty row would result. + + @param new_height the new height + @return the remainder row or null if the newHeight was so small that only + an empty row would result + + + Split rowspan of cells with rowspan on next page by inserting copies with the remaining rowspan + and reducing the previous rowspan appropriately, i.e. if a cell with rowspan 7 gets split after 3 rows + of that rowspan have been laid out, its column on the next page should start with an empty cell + having the same attributes and rowspan 7 - 3 = 4. + + @since iText 5.4.3 + + + Returns the array of cells in the row. + Please be extremely careful with this method. + Use the cells as read only objects. + + @return an array of cells + @since 2.1.1 + + + Checks if a cell in the row has a rowspan greater than 1. + @since 5.1.0 + + + Implements the PostScript XObject. + + + Creates a new instance of PdfPSXObject + + + Constructs a PSXObject + @param wr + + + Gets the stream representing this object. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + @throws IOException + + + Gets a duplicate of this PdfPSXObject. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPSXObject + + + This is a table that can be put at an absolute position but can also + be added to the document as the class Table. + In the last case when crossing pages the table always break at full rows; if a + row is bigger than the page it is dropped silently to avoid infinite loops. +

+ A PdfPTableEvent can be associated to the table to do custom drawing + when the table is rendered. + @author Paulo Soares + + + The index of the original PdfcontentByte. + + + The index of the duplicate PdfContentByte where the background will be drawn. + + + The index of the duplicate PdfContentByte where the border lines will be drawn. + + + The index of the duplicate PdfContentByte where the text will be drawn. + + + The current column index. + + @since 5.1.0 renamed from currentColIdx + + + Holds value of property headerRows. + + + Holds value of property widthPercentage. + + + Holds value of property horizontalAlignment. + + + Holds value of property skipFirstHeader. + + + Holds value of property skipLastFooter. + + @since 2.1.6 + + + Holds value of property lockedWidth. + + + Holds value of property splitRows. + + + The spacing before the table. + + + The spacing after the table. + + + Holds value of property extendLastRow. + + + Holds value of property headersInEvent. + + + Holds value of property splitLate. + + + Defines if the table should be kept + on one page if possible + + + Indicates if the PdfPTable is complete once added to the document. + @since iText 2.0.8 + + + Keeps track of the completeness of the current row. + + @since 2.1.6 + + + Constructs a PdfPTable with the relative column widths. + @param relativeWidths the relative column widths + + + Constructs a PdfPTable with numColumns columns. + @param numColumns the number of columns + + + Constructs a copy of a PdfPTable. + @param table the PdfPTable to be copied + + + Makes a shallow copy of a table (format without content). + @param table + @return a shallow copy of the table + + + Copies the format of the sourceTable without copying the content. + @param sourceTable + @since 2.1.6 private is now protected + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + @since 2.1.6 private is now protected + + + Sets the full width of the table from the absolute column width. + @param columnWidth the absolute width of each column + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the percentage width of the table from the absolute column width. Warning: Don't use this with setLockedWidth(true). These two settings don't mix. + @param columnWidth the absolute width of each column + @param pageSize the page size + @throws DocumentException + + + Gets the full width of the table. + @return the full width of the table + + + Calculates the heights of the table. + + @return the total height of the table. Note that it will be 0 if you didn't + specify the width of the table with SetTotalWidth(). + and made it public + + + Changes the number of columns. Any existing rows will be deleted. + + @param the new number of columns + + + Gets the default PdfPCell that will be used as + reference for all the addCell methods except + addCell(PdfPCell). + @return default PdfPCell + + + Adds a cell element. + + @param cell the cell element + + + When updating the row index, cells with rowspan should be taken into account. + This is what happens in this method. + + @since 2.1.6 + + + Added by timmo3. This will return the correct cell taking it's cellspan into account + + @param row the row index + @param col the column index + @return PdfPCell at the given row and position or null otherwise + + + Checks if there are rows above belonging to a rowspan. + @param currRow the current row to check + @param currCol the current column to check + @return true if there's a cell above that belongs to a rowspan + @since 2.1.6 + + + Adds a cell element. + @param text the text for the cell + + + Adds a nested table. + @param table the table to be added to the cell + + + Adds an Image as Cell. + @param image the Image to add to the table. + This image will fit in the cell + + + Adds a cell element. + @param phrase the Phrase to be added to the cell + + + + + Writes the selected rows and columns to the document. + This method does not clip the columns; this is only important + if there are columns with colspan at boundaries. + canvases is obtained from beginWritingRows(). + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvases an array of 4 PdfContentByte obtained from + beginWritingRows() + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @return the y coordinate position of the bottom of the last row + @see #beginWritingRows(com.itextpdf.text.pdf.PdfContentByte) + @since 5.1.0 added the reusable parameter + + + Writes the selected rows to the document. + + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coodinate + @param yPos the y write coodinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + + + + Writes the selected rows and columns to the document. + This method clips the columns; this is only important + if there are columns with colspan at boundaries. + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @since 5.1.0 added the reusable parameter + + + + Finishes writing the table. + @param canvases the array returned by beginWritingRows() + + + Gets the number of rows in this table. + @return the number of rows in this table + + + Gets the total height of the table. + @return the total height of the table + + + Gets the height of a particular row. + @param idx the row index (starts at 0) + @return the height of a particular row + + + Gets the height of a particular row. + + @param idx the row index (starts at 0) + @param firsttime is this the first time the row heigh is calculated? + @return the height of a particular row + @since 5.0.0 + + + Gets the maximum height of a cell in a particular row (will only be different + from getRowHeight is one of the cells in the row has a rowspan > 1). + + @param rowIndex the row index + @param cellIndex the cell index + @return the height of a particular row including rowspan + @since 2.1.6 + + + Checks if a cell in a row has a rowspan greater than 1. + + @since 5.1.0 + + + Makes sure the footers value is lower than the headers value. + + @since 5.0.1 + + + Gets the height of the rows that constitute the header as defined by + setHeaderRows(). + @return the height of the rows that constitute the header and footer + + + Gets the height of the rows that constitute the header as defined by + setFooterRows(). + @return the height of the rows that constitute the footer + @since 2.1.1 + + + Deletes a row from the table. + @param rowNumber the row to be deleted + @return true if the row was deleted + + + Deletes the last row in the table. + @return true if the last row was deleted + + + Removes all of the rows except headers + + + Returns the number of columns. + @return the number of columns. + @since 2.1.1 + + + Gets all the chunks in this element. + + @return an List + + + Gets the type of the text element. + + @return a type + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isContent() + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isNestable() + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets a row with a given index. + + @param idx + @return the row at position idx + + + Returns the index of the last completed row. + + @return the index of a row + + + Defines where the table may be broken (if necessary). + + @param breakPoints int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines which rows should not allow a page break (if possible). + + @param rows int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows that should not allow a page break (if possible). + + @param start int + @param end int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows (from the parameter to the last row) that should not allow a page break (if possible). + The equivalent of calling {@link #keepRowsTogether(int,int) keepRowsTogether(start, rows.size()}. + + @param start int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Gets an arraylist with all the rows in the table. + @return an arraylist + + + Gets an arraylist with a selection of rows. + @param start the first row in the selection + @param end the first row that isn't part of the selection + @return a selection of rows + @since 2.1.6 + + + Calculates the extra height needed in a row because of rowspans. + @param start the index of the start row (the one to adjust) + @param end the index of the end row on the page + @since 2.1.6 + + + Sets the table event for this table. + + @param event the table event for this table + + + Gets the absolute sizes of each column width. + @return he absolute sizes of each column width + + + Tells you if the last footer needs to be skipped + (for instance if the footer says "continued on the next page") + + @return Value of property skipLastFooter. + @since 2.1.6 + + + When set the last row on every page will be extended to fill + all the remaining space to the bottom boundary; except maybe the + row. + + @param extendLastRows true to extend the last row on each page; false otherwise + @param extendFinalRow false if you don't want to extend the row of the complete table + @since iText 5.0.0 + + + * Gets the value of the last row extension, taking into account + * if the row is reached or not. + * + * @return true if the last row will extend; + * false otherwise + * @since iText 5.0.0 + + + If true the table will be kept on one page if it fits, by forcing a + new page if it doesn't fit on the current page. The default is to + split the table over multiple pages. + + @param p_KeepTogether whether to try to keep the table on one page + + + Completes the current row with the default cell. An incomplete row will be dropped + but calling this method will make sure that it will be present in the table. + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Gets row index where cell overlapping (rowIdx, colIdx) starts + @param rowIdx + @param colIdx + @return row index + @since iText 5.4.3 + + + + @since iText 5.4.3 + + + Correct chosen last fitting row so that the content of all cells with open rowspans will fit on the page, + i.e. the cell content won't be split. + (Only to be used with splitLate == true) + + + + @since iText 5.4.3 + + + Determine which rows fit on the page, respecting isSplitLate(). + Note: sets max heights of the inspected rows as a side effect, + just like PdfPTable.getRowHeight(int, boolean) does. + Respect row.getMaxHeights() if it has been previously set (which might be independent of the height of + individual cells). + The last row written on the page will be chosen by the caller who might choose not + the calculated one but an earlier one (due to mayNotBreak settings on the rows). + The height of the chosen last row has to be corrected if splitLate == true + by calling FittingRows.correctLastRowChosen() by the caller to avoid splitting the content of + cells with open rowspans. + + @since iText 5.4.3 + + + + @author Aiken Sam (aikensam@ieee.org) + + + Reads a PDF document. + @author Paulo Soares + @author Kazuya Ujihara + + + The iText developers are not responsible if you decide to change the + value of this static parameter. + @since 5.0.2 + + + Handler which will be used for decompression of pdf streams. + + + Holds value of property appendable. + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param partialRead if true, the reader is opened in partial mode (PDF is parsed on demand), if false, the entire PDF is parsed into memory as the reader opens + @param ownerPassword the password or null if no password is required + @param certificate the certificate or null if no certificate is required + @param certificateKey the key or null if no certificate key is required + @param certificateKeyProvider the name of the key provider, or null if no key is required + @param closeSourceOnConstructorError if true, the byteSource will be closed if there is an error during construction of this reader + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param properties the properties which will be used to create the reader + + + Reads and parses a PDF document. + @param filename the file name of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param properties the properties which will be used to create the reader + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param certificate the certificate to read the document + @param certificateKey the private key of the certificate + @param certificateKeyProvider the security provider for certificateKey + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param properties the properties which will be used to create the reader + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a PDF document. + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a pdf document. Contrary to the other constructors only the xref is read + into memory. The reader is said to be working in "partial" mode as only parts of the pdf + are read as needed. + @param raf the document location + @param ownerPassword the password or null for no password + @throws IOException on error + + + Reads and parses a pdf document. + @param raf the document location + @param ownerPassword the password or null for no password + @param partial indicates if the reader needs to read the document only partially. See {@link PdfReader#PdfReader(RandomAccessFileOrArray, byte[])} + @throws IOException on error + + + Creates an independent duplicate. + @param reader the PdfReader to duplicate + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + @param byteSource the source to check + @return a tokeniser that is guaranteed to start at the PDF header + @throws IOException if there is a problem reading the byte source + + + Gets a new file instance of the original PDF + document. + @return a new file instance of the original PDF document + + + Gets the number of pages in the document. + @return the number of pages in the document + + + Returns the document's catalog. This dictionary is not a copy, + any changes will be reflected in the catalog. + @return the document's catalog + + + Returns the document's acroform, if it has one. + @return the document's acroform + + + Gets the page rotation. This value can be 0, 90, 180 or 270. + @param index the page number. The first page is 1 + @return the page rotation + + + Gets the page size, taking rotation into account. This + is a Rectangle with the value of the /MediaBox and the /Rotate key. + @param index the page number. The first page is 1 + @return a Rectangle + + + Gets the rotated page from a page dictionary. + @param page the page dictionary + @return the rotated page + + + Gets the page size without taking rotation into account. This + is the value of the /MediaBox key. + @param index the page number. The first page is 1 + @return the page size + + + Gets the page from a page dictionary + @param page the page dictionary + @return the page + + + Gets the crop box without taking rotation into account. This + is the value of the /CropBox key. The crop box is the part + of the document to be displayed or printed. It usually is the same + as the media box but may be smaller. If the page doesn't have a crop + box the page size will be returned. + @param index the page number. The first page is 1 + @return the crop box + + + Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media". + @param index the page number. The first page is 1 + @param boxName the box name + @return the box rectangle or null + + + Returns the content of the document information dictionary as a Hashtable + of String. + @return content of the document information dictionary + + + Normalizes a Rectangle so that llx and lly are smaller than urx and ury. + @param box the original rectangle + @return a normalized Rectangle + + + Checks if the PDF is a tagged PDF. + + + Parses the entire PDF + + + @throws IOException + + + @param obj + @return a PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. + @param obj the PdfObject to read + @return the resolved PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. If the reader was opened in partial mode the object will be released + to save memory. + @param obj the PdfObject to read + @param parent + @return a PdfObject + + + @param obj + @param parent + @return a PdfObject + + + @param idx + @return a PdfObject + + + @param idx + @return aPdfObject + + + + + + + + + @param obj + + + @param obj + @return an indirect reference + + + @return the percentage of the cross reference table that has been read + + + Eliminates the reference to the object freeing the memory used by it and clearing + the xref entry. + @param obj the object. If it's an indirect reference it will be eliminated + @return the object or the already erased dereferenced object + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + @param in + @param dicPar + @return a byte array + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + @param in the input data + @return the decoded data + + + Checks if the document had errors and was rebuilt. + @return true if rebuilt. + + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a Dictionary object + + + @param pageNum + + + + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @param file the location of the PDF document + @throws IOException on error + @return the content + + + Gets the content from the page dictionary. + @param page the page dictionary + @throws IOException on error + @return the content + @since 5.0.6 + + + Retrieve the given page's resource dictionary + @param pageNum 1-based page number from which to retrieve the resource dictionary + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Retrieve the given page's resource dictionary + @param pageDict the given page + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @throws IOException on error + @return the content + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @throws IOException on error + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @since 2.1.3 (the method already existed without param compressionLevel) + + + Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @param filterHandlers the map used to look up a handler for each type of filter + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Get the content from a stream applying the required filters. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream applying the required filters. + @param stream the stream + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @throws IOException on error + @return the stream content + + + Eliminates shared streams if they exist. + + + Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper. + @param tampered the tampered state + + + Gets the XML metadata. + @throws IOException on error + @return the XML metadata + + + Gets the byte address of the last xref table. + @return the byte address of the last xref table + + + Gets the number of xref objects. + @return the number of xref objects + + + Gets the byte address of the %%EOF marker. + @return the byte address of the %%EOF marker + + + Gets the PDF version. Only the last version char is returned. For example + version 1.4 is returned as '4'. + @return the PDF version + + + Returns true if the PDF is encrypted. + @return true if the PDF is encrypted + + + Gets the encryption permissions. It can be used directly in + PdfWriter.SetEncryption(). + @return the encryption permissions + + + Returns true if the PDF has a 128 bit key encryption. + @return true if the PDF has a 128 bit key encryption + + + Gets the trailer dictionary + @return the trailer dictionary + + + Finds all the font subsets and changes the prefixes to some + random values. + @return the number of font subsets altered + + + Finds all the fonts not subset but embedded and marks them as subset. + @return the number of fonts altered + + + Gets all the named destinations as an Hashtable. The key is the name + and the value is the destinations array. + @return gets all the named destinations + + + Gets all the named destinations as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets all the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Dests key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Names key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Removes all the fields from the document. + + + Removes all the annotations and fields from the document. + + + Replaces remote named links with local destinations that have the same name. + @since 5.0 + + + Converts a remote named destination GoToR with a local named destination + if there's a corresponding name. + @param obj an annotation that needs to be screened for links to external named destinations. + @param names a map with names of local named destinations + @since iText 5.0 + + + Replaces all the local named links with the actual destinations. + + + Closes the reader, and any underlying stream or data source used to create the reader + + + Removes all the unreachable objects. + @return the number of indirect objects removed + + + Gets a read-only version of AcroFields. + @return a read-only version of AcroFields + + + Gets the global document JavaScript. + @param file the document file + @throws IOException on error + @return the global document JavaScript + + + Gets the global document JavaScript. + @throws IOException on error + @return the global document JavaScript + + + Selects the pages to keep in the document. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param ranges the comma separated ranges as described in {@link SequenceList} + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + @param removeUnused indicate if to remove unsed objects. @see removeUnusedObjects + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param key a key for a viewer preference + @param value a value for the viewer preference + @see PdfViewerPreferences#addViewerPreference + + + Returns a bitset representing the PageMode and PageLayout viewer preferences. + Doesn't return any information about the ViewerPreferences dictionary. + @return an int that contains the Viewer Preferences. + + + Getter for property newXrefType. + @return Value of property newXrefType. + + + Getter for property fileLength. + @return Value of property fileLength. + + + Getter for property hybridXref. + @return Value of property hybridXref. + + + Keeps track of all pages nodes to avoid circular references. + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a dictionary object + + + @param pageNum + @return an indirect reference + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + @param pageNum + + + + + + Checks if this PDF has usage rights enabled. + + @return true if usage rights are present; false otherwise + + + Removes any usage rights that this PDF may have. Only Adobe can grant usage rights + and any PDF modification with iText will invalidate them. Invalidated usage rights may + confuse Acrobat and it's advisabe to remove them altogether. + + + Gets the certification level for this document. The return values can be PdfSignatureAppearance.NOT_CERTIFIED, + PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, + PdfSignatureAppearance.CERTIFIED_FORM_FILLING and + PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS. +

+ No signature validation is made, use the methods availabe for that in AcroFields. +

+ @return gets the certification level for this document +
+ + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return true. + @return true if the document was opened with the owner password or if it's not encrypted, + false if the document was opened with the user password + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + @return user password, or null if not a standard encryption handler was used, + if standard encryption handler was used with AES256 encryption algorithm, + or if ownerPasswordUsed wasn't use to open the document. + + + Instance of PdfReader in each output document. + + @author Paulo Soares + + + Gets the content stream of a page as a PdfStream object. + @param pageNumber the page of which you want the stream + @param compressionLevel the compression level you want to apply to the stream + @return a PdfStream object + @since 2.1.3 (the method already existed without param compressionLevel) + + + + lower left x + + + lower left y + + + upper right x + + + upper right y + + + Constructs a PdfRectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + + @since rugPdf0.10 + + + Constructs a PdfRectangle-object starting from the origin (0, 0). + + @param urx upper right x + @param ury upper right y + + + Constructs a PdfRectangle-object with a Rectangle-object. + + @param rectangle a Rectangle + + + Returns the high level version of this PdfRectangle + @return this PdfRectangle translated to class Rectangle + + + Overrides the add-method in PdfArray in order to prevent the adding of extra object to the array. + + @param object PdfObject to add (will not be added here) + @return false + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param object Ignored. + @since 2.1.5 + + + Returns the lower left x-coordinate. + + @return the lower left x-coordinaat + + + Returns the upper right x-coordinate. + + @return the upper right x-coordinate + + + Returns the upper right y-coordinate. + + @return the upper right y-coordinate + + + Returns the lower left y-coordinate. + + @return the lower left y-coordinate + + + Returns the lower left x-coordinate, considering a given margin. + + @param margin a margin + @return the lower left x-coordinate + + + Returns the upper right x-coordinate, considering a given margin. + + @param margin a margin + @return the upper right x-coordinate + + + Returns the upper right y-coordinate, considering a given margin. + + @param margin a margin + @return the upper right y-coordinate + + + Returns the lower left y-coordinate, considering a given margin. + + @param margin a margin + @return the lower left y-coordinate + + + Returns the width of the rectangle. + + @return a width + + + Returns the height of the rectangle. + + @return a height + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + @return a PdfRectangle + + + A Rendition dictionary (pdf spec 1.5) + + + + Constructs a PDF ResourcesDictionary. + + + Implements the shading dictionary (or stream). + + @author Paulo Soares + + + Holds value of property bBox. + + + Holds value of property antiAlias. + + + Creates new PdfShading + + + Implements the shading pattern dictionary. + + @author Paulo Soares + + + Creates new PdfShadingPattern + + + Implements the signature dictionary. + + @author Paulo Soares + + + Creates new PdfSignature + + + Sets the signature creator name in the + {@link PdfSignatureBuildProperties} dictionary. + + @param name + + + Gets the {@link PdfSignatureBuildProperties} instance if it exists, if + not it adds a new one and returns this. + + @return {@link PdfSignatureBuildProperties} + + + Class that takes care of the cryptographic options + and appearances that form a signature. + + + Constructs a PdfSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Approval signature + + + Author signature, no changes allowed + + + Author signature, form filling allowed + + + Author signature, form filling and annotations allowed + + + The certification level + + + Sets the document type to certified instead of simply signed. + @param certificationLevel the values can be: NOT_CERTIFIED, CERTIFIED_NO_CHANGES_ALLOWED, + CERTIFIED_FORM_FILLING and CERTIFIED_FORM_FILLING_AND_ANNOTATIONS + + + The caption for the reason for signing. + + + The caption for the location of signing. + + + The reason for signing. + + + Holds value of property location. + + + Holds value of property signDate. + + + Gets and setsthe signing reason. + @return the signing reason + + + Sets the caption for signing reason. + @param reasonCaption the signing reason caption + + + Gets and sets the signing location. + @return the signing location + + + Sets the caption for the signing location. + @param locationCaption the signing location caption + + + Holds value of the application that creates the signature + + + Gets the signature creator. + @return the signature creator + + Sets the name of the application used to create the signature. + @param signatureCreator the name of the signature creating application + + + The contact name of the signer. + + + Gets the signing contact. + @return the signing contact + + + Gets the signature date. + @return the signature date + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null) + + + Array containing the byte positions of the bytes that need to be hashed. + + + + @return the underlying source + @throws IOException + + + The signing certificate + + + Adds the appropriate developer extension. + + + The crypto dictionary + + + Gets the user made signature dictionary. This is the dictionary at the /V key. + @return the user made signature dictionary + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + @param sig the signature dictionary + + + Holds value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + @param signatureEvent the signature event + + + The name of the field + + + Gets the field name. + @return the field name + + + Gets a new signature field name that + doesn't clash with any existing name. + @return a new signature field name + + + The page where the signature will appear. + + + Gets the page number of the field. + @return the page number of the field + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + Gets the rectangle representing the signature dimensions. + @return the rectangle representing the signature dimensions. It may be null + or have zero width or height for invisible signatures + + + rectangle that represent the position and dimension of the signature in the page. + + + Gets the rectangle that represent the position and dimension of the signature in the page. + @return the rectangle that represent the position and dimension of the signature in the page + + + Gets the visibility status of the signature. + @return the visibility status of the signature + + + Sets the signature to be visible. It creates a new visible signature field. + @param pageRect the position and dimension of the field in the page + @param page the page to place the field. The fist page is 1 + @param fieldName the field name or null to generate automatically a new field name + + + Sets the signature to be visible. An empty signature field with the same name must already exist. + @param fieldName the existing empty signature field name + + + Signature rendering modes + @since 5.0.1 + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + The rendering mode chosen for visible signatures + + + Gets the rendering mode for this signature. + @return the rendering mode for this signature + @since 5.0.1 + + + The image that needs to be used for a visible signature + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC + or RenderingMode.GRAPHIC_AND_DESCRIPTION. + @param signatureGraphic image rendered. If null the mode is defaulted + to RenderingMode.DESCRIPTION + + + Appearance compliant with the recommendations introduced in Acrobat 6? + + + Acrobat 6.0 and higher recommends that only layer n0 and n2 be present. + Use this method with value false if you want to ignore this recommendation. + @param acro6Layers if true only the layers n0 and n2 will be present + @deprecated Adobe no longer supports Adobe Acrobat / Reader versions older than 9 + + + Layers for a visible signature. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Indicates that the existing appearances needs to be reused as layer 0. + + + An appearance that can be used for layer 1 (if acro6Layers is false). + + + A background image for the text in layer 2. + + + Gets the background image for the layer 2. + @return the background image for the layer 2 + + + the scaling to be applied to the background image.t + + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + @param imageScale the scaling to be applied to the background image + + + The text that goes in Layer 2 of the signature appearance. + + + Sets the signature text identifying the signer. + @param text the signature text identifying the signer. If null or not set + a standard description will be used + + + Font for the text in Layer 2. + + + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + @param layer2Font the n2 and n4 font + + + Run direction for the text in layers 2 and 4. + + + Sets the run direction in the n2 and n4 layer. + @param runDirection the run direction + + + The text that goes in Layer 4 of the appearance. + + + Sets the text identifying the signature status. Will be ignored if acro6Layers is true. + @param text the text identifying the signature status. If null or not set + the description "Signature Not Verified" will be used + + + Template containing all layers drawn on top of each other. + + + + extra space at the top. + + + margin for the content inside the signature rectangle. + + + + The PdfStamper that creates the signed PDF. + + + Gets the PdfStamper associated with this instance. + @return the PdfStamper associated with this instance + + + Sets the PdfStamper + @param stamper PdfStamper + + + The PdfStamperImp object corresponding with the stamper. + + + A byte buffer containing the bytes of the Stamper. + + + Getter for the byte buffer. + + + OutputStream for the bytes of the stamper. + + + Temporary file in case you don't want to sign in memory. + + + Gets the temporary file. + @return the temporary file or null is the document is created in memory + + + Name and content of keys that can only be added in the close() method. + + + Length of the output. + + + Indicates if the stamper has already been pre-closed. + + + + Signature field lock dictionary. + + + + + Signature field lock dictionary. + + + If a signature is created on an existing signature field, then its /Lock dictionary + takes the precedence (if it exists). + + + + Checks if the document is in the process of closing. + @return true if the document is in the process of closing, + false otherwise + + + + Adds keys to the signature dictionary that define + the certification level and the permissions. + This method is only used for Certifying signatures. + @param crypto the signature dictionary + + + Adds keys to the signature dictionary that define + the field permissions. + This method is only used for signatures that lock fields. + @param crypto the signature dictionary + + + + PdfSmartCopy has the same functionality as PdfCopy, + but when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. + + + the cache with the streams and references. + + + Creates a PdfSmartCopy instance. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file if it wasn't available + in the cache yet. If it's in the cache, the reference to + the already used stream is returned. + + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + A PdfSpotColor defines a ColorSpace + + @see PdfDictionary + + + Constructs a new PdfSpotColor. + + @param name a string value + @param tint a tint value between 0 and 1 + @param altcs a altnative colorspace value + + + + The writer + + + + + + Gets the optional String map to add or change values in + the info dictionary. + @return the map or null + + An optional String map to add or change values in + the info dictionary. Entries with null + values delete the key in the original info dictionary + @param moreInfo additional entries to the info dictionary + + + + Replaces a page from this document with a page from other document. Only the content + is replaced not the fields and annotations. This method must be called before + getOverContent() or getUndercontent() are called for the same page. + @param r the PdfReader from where the new page will be imported + @param pageImported the page number of the imported page + @param pageReplaced the page to replace in this document + + + Inserts a blank page. All the pages above and including pageNumber will + be shifted up. If pageNumber is bigger than the total number of pages + the new page will be the last one. + @param pageNumber the page number position where the new page will be inserted + @param mediabox the size of the new page + + + Gets the signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + Gets the xml signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + + Gets a PdfContentByte to write under the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write under the page of + the original document + + + Gets a PdfContentByte to write over the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write over the page of + the original document + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the encryption was set too late + + + Gets a page from other PDF document. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the underlying PdfReader. + @return the underlying PdfReader + + + Gets the AcroFields object that allows to get and set field values + and to merge FDF forms. + @return the AcroFields object + + + Determines if the fields are flattened on close. The fields added with + {@link #addAnnotation(PdfAnnotation,int)} will never be flattened. + @param flat true to flatten the fields, false + to keep the fields + + + Determines if the FreeText annotations are flattened on close. + @param flat true to flatten the FreeText annotations, false + (the default) to keep the FreeText annotations as active content. + + + Flatten annotations with an appearance stream on close(). + + @param flat boolean to indicate whether iText should flatten annotations or not. + + + Adds an annotation of form field in a specific page. This page number + can be overridden with {@link PdfAnnotation#setPlaceInPage(int)}. + @param annot the annotation + @param page the page + + + Adds an empty signature. + @param name the name of the signature + @param page the page number + @param llx lower left x coordinate of the signature's position + @param lly lower left y coordinate of the signature's position + @param urx upper right x coordinate of the signature's position + @param ury upper right y coordinate of the signature's position + @return a signature form field + @since 2.1.4 + + + Adds the comments present in an FDF file. + @param fdf the FDF file + @throws IOException on error + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Sets the thumbnail image for a page. + @param image the image + @param page the page + @throws PdfException on error + @throws DocumentException on error + + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param js the JavaScript code + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param name the name for the JavaScript snippet in the name tree + @param js the JavaScript code + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fs the file specification + + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Sets the XMP metadata. + @param xmp + @see PdfWriter#setXmpMetadata(byte[]) + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. Be attentive!!! If you want set full compression , you should set immediately after creating PdfStamper, + before editing the document.It can be set once and it can't be unset. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + Integer(page number) -> PageStamp + + + Holds value of property rotateContents. + + + Creates new PdfStamperImp. + @param reader the read PDF + @param os the output destination + @param pdfVersion the new pdf version or '\0' to keep the same version as the original + document + @param append + @throws DocumentException on error + @throws IOException + + + @param reader + @param openFile + @throws IOException + + + @param reader + + + @param fdf + @throws IOException + + + If true, annotations with an appearance stream will be flattened. + + @since 5.5.3 + @param flatAnnotations boolean + + + @see com.lowagie.text.pdf.PdfWriter#getPageReference(int) + + + @see com.lowagie.text.pdf.PdfWriter#addAnnotation(com.lowagie.text.pdf.PdfAnnotation) + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfWriter#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + Always throws an UnsupportedOperationException. + @param actionType ignore + @param action ignore + @throws PdfException ignore + @see PdfStamper#setPageAction(PdfName, PdfAction, int) + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Always throws an UnsupportedOperationException. + @param seconds ignore + + + Always throws an UnsupportedOperationException. + @param transition ignore + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + Getter for property append. + @return Value of property append. + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(com.lowagie.text.pdf.PdfAction) + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(java.lang.String) + + + @see com.lowagie.text.pdf.PdfWriter#setThumbnail(com.lowagie.text.Image) + + + Reads the OCProperties dictionary from the catalog of the existing document + and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. + Note that the original OCProperties of the existing document can contain more information. + @since 2.1.2 + + + Recursive method to reconstruct the documentOCGorder variable in the writer. + @param parent a parent PdfLayer (can be null) + @param arr an array possibly containing children for the parent PdfLayer + @param ocgmap a Hashtable with indirect reference Strings as keys and PdfLayer objects as values. + @since 2.1.2 + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + is the stream compressed? + + + The level of compression. + @since 2.1.3 + + + Constructs a PdfStream-object. + + @param bytes content of the new PdfObject as an array of byte. + + + Creates an efficient stream. No temporary array is ever created. The InputStream + is totally consumed but is not closed. The general usage is: +
+            InputStream in = ...;
+            PdfStream stream = new PdfStream(in, writer);
+            stream.FlateCompress();
+            writer.AddToBody(stream);
+            stream.WriteLength();
+            in.Close();
+            
+ @param inputStream the data to write to this stream + @param writer the PdfWriter for this stream +
+ + Constructs a PdfStream-object. + + + Writes the stream length to the PdfWriter. +

+ This method must be called and can only be called if the contructor {@link #PdfStream(InputStream,PdfWriter)} + is used to create the stream. +

+ @throws IOException on error + @see #PdfStream(InputStream,PdfWriter) +
+ + Compresses the stream. + + + Compresses the stream. + @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) + @since 2.1.3 + + + Writes the data content to an Stream. + @param os the destination to write to + @throws IOException on error + + + @see com.lowagie.text.pdf.PdfObject#toString() + + + + The value of this object. + + + The encoding. + + + Constructs an empty PdfString-object. + + + Constructs a PdfString-object. + + @param value the content of the string + + + Constructs a PdfString-object. + + @param value the content of the string + @param encoding an encoding + + + Constructs a PdfString-object. + + @param bytes an array of byte + + + Returns the PDF representation of this PdfString. + + @return an array of bytes + + + Returns the string value of the PdfString-object. + + @return a string + + + Gets the encoding of this string. + + @return a string + + + This is a node in a document logical structure. It may contain a mark point or it may contain + other nodes. + @author Paulo Soares + + + Holds value of property kids. + + + Holds value of property reference. + + + Creates a new instance of PdfStructureElement. + @param parent the parent of this node + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Creates a new instance of PdfStructureElement. + @param root the structure tree root + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Gets the parent of this node. + @return the parent of this node + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + The structure tree root corresponds to the highest hierarchy level in a tagged PDF. + @author Paulo Soares + + + Holds value of property writer. + + + Creates a new instance of PdfStructureTreeRoot + + + Maps the user tags to the standard tags. The mapping will allow a standard application to make some sense of the tagged + document whatever the user tags may be. + @param used the user tag + @param standard the standard tag + + + Gets the writer. + @return the writer + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + Implements the form XObject. + + + The indirect reference to this template + + + The resources used by this template + + + The bounding box of this template + + + A dictionary with additional information + @since 5.1.0 + + + Creates a PdfTemplate. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + + Gets the bounding width of this template. + + @return width the bounding width + + + Gets the bounding heigth of this template. + + @return heigth the bounding height + + + Gets the layer this template belongs to. + @return the layer this template belongs to or null for no layer defined + + + Gets the indirect reference to this template. + + @return the indirect reference to this template + + + Constructs the resources used by this template. + + @return the resources used by this template + + + Gets the stream representing this template. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + + + Gets a duplicate of this PdfTemplate. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfTemplate + + + Sets/gets a dictionary with extra entries, for instance /Measure. + + @param additional + a PdfDictionary with additional information. + @since 5.1.0 + + + + Adds a PdfNumber to the PdfArray. + + @param number displacement of the string + + + Out Vertical Split + + + Out Horizontal Split + + + In Vertical Split + + + IN Horizontal Split + + + Vertical Blinds + + + Vertical Blinds + + + Inward Box + + + Outward Box + + + Left-Right Wipe + + + Right-Left Wipe + + + Bottom-Top Wipe + + + Top-Bottom Wipe + + + Dissolve + + + Left-Right Glitter + + + Top-Bottom Glitter + + + Diagonal Glitter + + + duration of the transition effect + + + type of the transition effect + + + Constructs a Transition. + + + + Constructs a Transition. + + @param type type of the transition effect + + + Constructs a Transition. + + @param type type of the transition effect + @param duration duration of the transition effect + + + The transparency group dictionary. + + @author Paulo Soares + + + Constructs a transparencyGroup. + + + Determining the initial backdrop against which its stack is composited. + @param isolated + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + @param knockout + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + @since 5.0.2 + + + A boolean operator. + + + A boolean operator. + + + A boolean operator. + + + Creates a visibility expression. + @param type should be AND, OR, or NOT + + + @see com.itextpdf.text.pdf.PdfArray#add(int, com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#addFirst(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(float[]) + + + @see com.itextpdf.text.pdf.PdfArray#add(int[]) + + + A DocWriter class for PDF. +

+ When this PdfWriter is added + to a certain PdfDocument, the PDF representation of every Element + added to this Document will be written to the outputstream.

+
+ + The highest generation number possible. + @since iText 2.1.6 + + + + PdfCrossReference is an entry in the PDF Cross-Reference table. + + + Byte offset in the PDF file. + + + generation of the object. + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + @param generation generationnumber of the object + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + + + Returns the PDF representation of this PdfObject. + @param os + @throws IOException + + + Writes PDF syntax to the Stream + @param midSize + @param os + @throws IOException + + + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @see java.lang.Object#equals(java.lang.Object) + + + array containing the cross-reference table of the normal objects. + + + the current byteposition in the body. + + + Constructs a new PdfBody. + @param writer + + + + Gets a PdfIndirectReference for an object that will be created in the future. + @return a PdfIndirectReference + + + + Returns the offset of the Cross-Reference table. + + @return an offset + + + Returns the total number of objects contained in the CrossReferenceTable of this Body. + + @return a number of objects + + + Returns the CrossReferenceTable of the Body. + @param os + @param root + @param info + @param encryption + @param fileID + @param prevxref + @throws IOException + + + + Constructs a PDF-Trailer. + + @param size the number of entries in the PdfCrossReferenceTable + @param offset offset of the PdfCrossReferenceTable + @param root an indirect reference to the root of the PDF document + @param info an indirect reference to the info object of the PDF document + @param encryption + @param fileID + @param prevxref + + + Returns the PDF representation of this PdfObject. + @param writer + @param os + @throws IOException + + + Constructs a PdfWriter. + + + + Use this method to get an instance of the PdfWriter. + + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @return a new PdfWriter + + @throws DocumentException on error + + + Use this method to get an instance of the PdfWriter. + + @return a new PdfWriter + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @param listener A DocListener to pass to the PdfDocument. + @throws DocumentException on error + + + the pdfdocument object. + + + Gets the PdfDocument associated with this writer. + @return the PdfDocument + + + Use this method to get the info dictionary if you want to + change it directly (add keys and values to the info dictionary). + @return the info dictionary + + + Use this method to get the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Sets the initial leading for the PDF document. + This has to be done before the document is opened. + @param leading the initial leading + @since 2.1.6 + @throws DocumentException if you try setting the leading after the document was opened. + + + The direct content in this document. + + + The direct content under in this document. + + + Use this method to get the direct content for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Use this method to get the direct content under for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Resets all the direct contents to empty. + This happens when a new page is started. + + + body of the PDF document + + + Adds the local destinations to the body of the document. + @param dest the Hashtable containing the destinations + @throws IOException on error + + + Adds an object to the PDF body. + @param object + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Use this method for caching objects. + @param iobj @see PdfIndirectObject + + + Gets a PdfIndirectReference for an object that + will be created in the future. + @return the PdfIndirectReference + + + Returns the outputStreamCounter. + @return the outputStreamCounter + + + Holds value of property extraCatalog. + + + Sets extra keys to the catalog. + @return the catalog to change + + + The root of the page tree. + + + The PdfIndirectReference to the pages. + + + The current page number. + + + The value of the Tabs entry in the page dictionary. + @since 2.1.5 + + + Additional page dictionary entries. + @since 5.1.0 + + + Adds an additional entry for the page dictionary. + @since 5.1.0 + + + Gets the additional pageDictEntries. + @since 5.1.0 + + + Resets the additional pageDictEntries. + @since 5.1.0 + + + Use this method to make sure the page tree has a lineair structure + (every leave is attached directly to the root). + Use this method to allow page reordering with method reorderPages. + + + Use this method to reorder the pages in the document. + A null argument value only returns the number of pages to process. + It is advisable to issue a Document.NewPage() before using this method. + @return the total number of pages + @param order an array with the new page sequence. It must have the + same size as the number of pages. + @throws DocumentException if all the pages are not present in the array + + + Use this method to get a reference to a page existing or not. + If the page does not exist yet the reference will be created + in advance. If on closing the document, a page number greater + than the total number of pages was requested, an exception + is thrown. + @param page the page number. The first page is 1 + @return the reference to the page + + + Gets the pagenumber of this document. + This number can be different from the real pagenumber, + if you have (re)set the page number previously. + @return a page number + + + Sets the Viewport for the next page. + @param viewport an array consisting of Viewport dictionaries. + @since 5.1.0 + + + Sets the value for the Tabs entry in the page tree. + @param tabs Can be PdfName.R, PdfName.C or PdfName.S. + Since the Adobe Extensions Level 3, it can also be PdfName.A + or PdfName.W + @since 2.1.5 + + + + The PdfPageEvent for this document. + + + Gets the PdfPageEvent for this document or null + if none is set. + @return the PdfPageEvent for this document or null + if none is set + + + A number refering to the previous Cross-Reference Table. + + + The original file ID (if present). + + + + + Use this method to get the root outline + and construct bookmarks. + @return the root outline + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + Stores the version information for the header and the catalog. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Returns the version information. + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Use this method to add page labels + @param pageLabels the page labels + + + Adds named destinations in bulk. + Valid keys and values of the map can be found in the map + that is created by SimpleNamedDestination. + @param map a map with strings as keys for the names, + and structured strings as values for the destinations + @param page_offset number of pages that has to be added to + the page numbers in the destinations (useful if you + use this method in combination with PdfCopy). + @since iText 5.0 + + + Adds one named destination. + @param name the name for the destination + @param page the page number where you want to jump to + @param dest an explicit destination + @since iText 5.0 + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param js The JavaScript action + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param js The JavaScript action + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Use this method to adds a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + + + Adds a file attachment at the document level. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. + @param description the file description + @param fs the file specification + + + Adds a file attachment at the document level. + @param fs the file specification + + + action value + + + action value + + + action value + + + action value + + + action value + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + Sets the Collection dictionary. + @param collection a dictionary of type PdfCollection + + + signature value + + + signature value + + + Gets the AcroForm object. + @return the PdfAcroForm + + + Adds a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Adds the PdfAnnotation to the calculation order + array. + @param annot the PdfAnnotation to be added + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + XMP Metadata for the document. + + + Sets XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to set the XMP Metadata for each page. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to creates XMP Metadata based + on the metadata in the PdfDocument. + @since 5.4.4 just creates XmpWriter instance which will be serialized in close. + + + PDF/X level + + + PDF/X level + + + PDF/X level + + + Stores the PDF ISO conformance. + + + Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It + must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#isPdfX() + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + @param outputConditionIdentifier a value + @param outputCondition a value + @param registryName a value + @param info a value + @param destOutputProfile a value + @throws IOException on error + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + + Prefer the ICC_Profile-based version of this method. + @param outputConditionIdentifier a value + @param outputCondition a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance. + @param registryName a value + @param info a value + @param destOutputProfile a value + @since 1.x + + @throws IOException + + + Copies the output intent dictionary from other document to this one. + @param reader the other document + @param checkExistence true to just check for the existence of a valid output intent + dictionary, false to insert the dictionary if it exists + @throws IOException on error + @return true if the output intent dictionary exists, false + otherwise + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Mask to separate the encryption type from the encryption mode. + + + Add this to the mode to keep the metadata in clear text + + + Add this to the mode to keep encrypt only the embedded files. + @since 2.1.3 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_CONTENTS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_COPY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_ANNOTATIONS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_FILL_IN} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_SCREENREADERS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_ASSEMBLY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_DEGRADED_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_40} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_128} instead. Scheduled for removal at or after 2.2.0 + + + Contains the business logic for cryptography. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Holds value of property fullCompression. + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + The compression level of the content streams. + @since 2.1.3 + + + Sets the compression level to be used for streams written by this writer. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + The fonts of this document + + + The font number counter for the fonts in the document. + + + Adds a BaseFont to the document but not to the page resources. + It is used for templates. + @param bf the BaseFont to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The form XObjects in this document. The key is the xref and the value + is Object[]{PdfName, template}. + + + The name counter for the form XObjects name. + + + Adds a template to the document but not to the page resources. + @param template the template to add + @param forcedName the template name, rather than a generated one. Can be null + @return the PdfName for this template + + + Releases the memory used by a template by writing it to the output. The template + can still be added to any content but changes to the template itself won't have + any effect. + @param tp the template to release + @throws IOException on error + + + Gets a page from other PDF document. The page can be used as + any other PdfTemplate. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Returns the PdfReaderInstance associated with the specified reader. + Multiple calls with the same reader object will return the same + PdfReaderInstance. + @param reader the PDF reader that you want an instance for + @return the instance for the provided reader + @since 5.0.3 + + + Writes the reader to the document and frees the memory used by it. + The main use is when concatenating multiple documents to keep the + memory usage restricted to the current appending document. + @param reader the PdfReader to free + @throws IOException on error + + + Gets the current document size. This size only includes + the data already writen to the output stream, it does not + include templates or fonts. It is usefull if used with + freeReader() when concatenating many documents + and an idea of the current size is needed. + @return the approximate size without fonts or templates + + + The colors of this document + + + The color number counter for the colors in the document. + + + Adds a SpotColor to the document but not to the page resources. + @param spc the SpotColor to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The patterns of this document + + + The patten number counter for the colors in the document. + + + Mark this document for tagging. It must be called before open. + + + Check if the document is marked for tagging. + @return true if the document is marked for tagging + + + Fix structure of tagged document: remove unused objects, remove unused items from class map, + fix xref table due to removed objects. + + + Flushes merged AcroFields to document (if any). + + + Gets the structure tree root. If the document is not marked for tagging it will return null. + @return the structure tree root + + + Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer + state. It's advisable to only call this method right before close and do any modifications + at that time. + @return the Optional Content Properties Dictionary + + + Sets a collection of optional content groups whose states are intended to follow + a "radio button" paradigm. That is, the state of at most one optional + content group in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + @param group the radio group + + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + @param layer the layer that needs to be added to the array of locked OCGs + @since 2.1.2 + + + Gives the size of the media box. + @return a Rectangle + + + Sets the crop box. The crop box should not be rotated even if the + page is rotated. This change only takes effect in the next + page. + @param crop the crop box + + + Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed". + @param boxName the box size + @param size the size + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + Returns the intersection between the crop, trim art or bleed box and the parameter intersectingRectangle. + This method returns null when + - there is no intersection + - any of the above boxes are not defined + - the parameter intersectingRectangle is null + + @param boxName crop, trim, art, bleed + @param intersectingRectangle the rectangle that intersects the rectangle associated to the boxName + @return the intersection of the two rectangles + + + Use this method to make sure a page is added, + even if it's empty. If you use SetPageEmpty(false), + invoking NewPage() after a blank page will add a newPage. + SetPageEmpty(true) won't have any effect. + @param pageEmpty the state + + + action value + + + action value + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the the thumbnail image for the current page. + @param image the image + @throws PdfException on error + @throws DocumentException or error + + + A group attributes dictionary specifying the attributes + of the page�s page group for use in the transparent + imaging model + + + The default space-char ratio. + + + Disable the inter-character spacing. + + + The ratio between the extra word spacing and the extra character spacing. + Extra word spacing will grow ratio times more than extra character spacing. + + + Sets the ratio between the extra word spacing and the extra character spacing + when the text is fully justified. + Extra word spacing will grow spaceCharRatio times more than extra character spacing. + If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing + will be zero. + @param spaceCharRatio the ratio between the extra word spacing and the extra character spacing + + + Use the default run direction. + + + Do not use bidirectional reordering. + + + Use bidirectional reordering with left-to-right + preferential run direction. + + + Use bidirectional reordering with right-to-left + preferential run direction. + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + A UserUnit is a value that defines the default user space unit. + The minimum UserUnit is 1 (1 unit = 1/72 inch). + The maximum UserUnit is 75,000. + Remark that this userunit only works starting with PDF1.6! + + + Gets the default colorspaces. + @return the default colorspaces + + + + Sets the image sequence to follow the text in strict order. + @param strictImageSequence new value of property strictImageSequence + + + + Clears text wrapping around images (if applicable). + Method suggested by Pelikan Stephan + @throws DocumentException + + + Dictionary, containing all the images of the PDF document + + + This is the list with all the images in the document. + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @param fixedRef the reference to used. It may be null, + a PdfIndirectReference or a PRIndirectReference. + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Writes a PdfImage to the outputstream. + + @param pdfImage the image to be added + @return a PdfIndirectReference to the encapsulated image + @throws PdfException when a document isn't open yet, or has been closed + + + return the PdfIndirectReference to the image with a given name. + + @param name the name of the image + @return a PdfIndirectReference + + + A Hashtable with Stream objects containing JBIG2 Globals + @since 2.1.5 + + + Gets an indirect reference to a JBIG2 Globals stream. + Adds the stream if it hasn't already been added to the writer. + @param content a byte array that may already been added to the writer inside a stream object. + @since 2.1.5 + + + A flag indicating the presence of structure elements that contain user properties attributes. + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + @param userProperties the user properties flag + + + Holds value of property RGBTranparency. + + + Sets the transparency blending colorspace to RGB. The default blending colorspace is + CMYK and will result in faded colors in the screen and in printing. Calling this method + will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages + until other value is set. + Note that this is a generic solution that may not work in all cases. + @param rgbTransparencyBlending true to set the transparency blending colorspace to RGB, false + to use the default blending colorspace + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param rect + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param title + @param content + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param action + @param subtype + @return + + + Gets the list of the standard structure element names (roles). + @return + + + + @author psoares + + + Creates a new instance of PdfXConformanceException. + + + Creates a new instance of PdfXConformanceException. + @param s + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + @param inp the PFM file + @param outp the AFM file + @throws IOException on error + + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + Character class. This is a minor attempt to overcome the problem that + in the pfm file, all unused characters are given the width of space. + Note that this array isn't used in iText. + + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + This class captures an AcroForm on input. Basically, it extends Dictionary + by indexing the fields of an AcroForm + @author Mark Thompson + + + This class holds the information for a single field + + + Returns the name of the widget annotation (the /NM entry). + @return a String or null (if there's no /NM key) + + + Constructor + @param reader reader of the input file + + + Number of fields found + @return size + + + Given the title (/T) of a reference, return the associated reference + @param name a string containing the path + @return a reference to the field, or null + + + Read, and comprehend the acroform + @param root the docment root + + + After reading, we index all of the fields. Recursive. + @param fieldlist An array of fields + @param fieldDict the last field dictionary we encountered (recursively) + @param parentPath the pathname of the field, up to this point or null + + + merge field attributes from two dictionaries + @param parent one dictionary + @param child the other dictionary + @return a merged dictionary + + + stack a level of dictionary. Merge in a dictionary from this level + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + + + Creates a new PDF stream object that will replace a stream + in a existing PDF file. + @param reader the reader that holds the existing PDF + @param conts the new content + @param compressionLevel the compression level for the content + @since 2.1.3 (replacing the existing constructor without param compressionLevel) + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @since iText 2.1.1 + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @param compressionLevel a value between -1 and 9 (ignored if compress == false) + @since iText 2.1.3 + + + Sets the data associated with the stream, as-is. This method will not + remove or change any existing filter: the data has to match an existing + filter or an appropriate filter has to be set. + + @param data data, possibly encrypted and/or compressed + @since 5.5.0 + + + Sets the data associated with the stream + @param data raw data, decrypted and uncompressed. + + + + @author Paulo Soares + + + Creates a PRTokeniser for the specified {@link RandomAccessSource}. + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + @param file the source + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
The same as calling {@link #isWhitespace(int, boolean) isWhiteSpace(ch, true)}. + @param ch int + @return boolean + @since 5.5.1 +
+ + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + @param ch int + @param isWhitespace boolean + @return boolean + @since 5.5.1 + + + Gets current reference number. If parsing was failed with NumberFormatException -1 will be return. + + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. +
The same as calling {@link #readLineSegment(byte[], boolean) readLineSegment(input, true)}. + + @param input byte[] + @return boolean + @throws IOException + @since 5.5.1 +
+ + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. + + @param input byte[] + @param isNullWhitespace boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method {@link #readLineSegment(byte[]) readLineSegment(input)} + @return boolean + @throws IOException + @since 5.5.1 + + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + Holds value of property layout. + + + Holds value of property image. + + + Holds value of property template. + + + Holds value of property scaleIcon. + + + Holds value of property proportionalIcon. + + + Holds value of property iconVerticalAdjustment. + + + Holds value of property iconHorizontalAdjustment. + + + Holds value of property iconFitToBounds. + + + Creates a new instance of PushbuttonField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, + LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, + LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, + LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. + The default is LAYOUT_LABEL_ONLY. + @param layout New value of property layout. + + + Sets the icon as an image. + @param image the image + + + Sets the icon as a template. + @param template the template + + + Sets the way the icon will be scaled. Possible values are + SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, + SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. + The default is SCALE_ICON_ALWAYS. + @param scaleIcon the way the icon will be scaled + + + Sets the way the icon is scaled. If true the icon is scaled proportionally, + if false the scaling is done anamorphicaly. + @param proportionalIcon the way the icon is scaled + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. + A value of 0 positions the icon at the bottom of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconVerticalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. + A value of 0 positions the icon at the left of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconHorizontalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon + + + Gets the button appearance. + @throws IOException on error + @throws DocumentException on error + @return the button appearance + + + Gets the pushbutton field. + @throws IOException on error + @throws DocumentException on error + @return the pushbutton field + + + If true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account. The default + is false. + @param iconFitToBounds if true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account + + + Holds value of property iconReference. + + + Sets the reference to an existing icon. + @param iconReference the reference to an existing icon + + +

A simple, fast array of bits, represented compactly by an array of ints internally.

+ + @author Sean Owen +
+ + @param i bit to get + @return true iff bit i is set + + + Sets bit i. + + @param i bit to set + + + Flips bit i. + + @param i bit to set + + + Sets a block of 32 bits, starting at bit i. + + @param i first bit to set + @param newBits the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + @param start start of range, inclusive. + @param end end of range, exclusive + @param value if true, checks that bits in range are set, otherwise checks that they are not set + @return true iff all bits are set or not set in range, according to value argument + @throws IllegalArgumentException if end is less than or equal to start + + + @return underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + Reverses all bits in the array. + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+ +

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+ +

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+ + @author Sean Owen + @author dswitkin@google.com (Daniel Switkin) +
+ +

Gets the requested bit, where true means black.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) + @return value of given bit in matrix +
+ +

Sets the given bit to true.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ +

Flips the given bit.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ + @param left The horizontal position to begin at (inclusive) + @param top The vertical position to begin at (inclusive) + @param width The width of the region + @param height The height of the region +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + @param y The row to retrieve + @param row An optional caller-allocated BitArray, will be allocated if null or too small + @return The resulting BitArray - this reference should always be used even when passing + your own row + + + @return The width of the matrix + + + @return The height of the matrix + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + @return row/column dimension of this matrix + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This class implements an array of unsigned bytes. + + @author dswitkin@google.com (Daniel Switkin) + + + Access an unsigned byte at location index. + @param index The index in the array to access. + @return The unsigned value of the byte as an int. + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + @author Sean Owen + + + @param name character set ECI encoding name + @return {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal + but unsupported + + + These are a set of hints that you may pass to Writers to specify their behavior. + + @author dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by ChooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + + @return the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + Append mode info. On success, store the result in "bits". + + + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + +

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard.

+ + @author Sean Owen +
+ + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + @param bits int containing the two bits encoding a QR Code's error correction level + @return {@link ErrorCorrectionLevel} representing the encoded error correction level + + +

Encapsulates a QR Code's format information, including the data mask used and + error correction level.

+ + @author Sean Owen + @see ErrorCorrectionLevel +
+ + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + @param maskedFormatInfo1 format info indicator, with mask still applied + @param maskedFormatInfo2 second copy of same info; both are checked at the same time + to establish best match + @return information about the format it specifies, or null + if doesn't seem to match any known pattern + + +

This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations.

+ +

Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used.

+ + @author Sean Owen +
+ + Create a representation of GF(256) using the given primitive polynomial. + + @param primitive irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + @return the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + + @return sum/difference of a and b + + + @return 2 to the power of a in GF(256) + + + @return base 2 log of a in GF(256) + + + @return multiplicative inverse of a + + + @param a + @param b + @return product of a and b in GF(256) + + +

Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable.

+ +

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+ + @author Sean Owen +
+ + @param field the {@link GF256} instance representing the field to use + to perform computations + @param coefficients coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + @throws IllegalArgumentException if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + @return degree of this polynomial + + + @return true iff this polynomial is the monomial "0" + + + @return coefficient of x^degree term in this polynomial + + + @return evaluation of this polynomial at a given point + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + +

See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard.

+ + @author Sean Owen +
+ + @param bits four bits encoding a QR Code data mode + @return {@link Mode} encoded by these bits + @throws IllegalArgumentException if bits do not correspond to a known mode + + + @param version version in question + @return number of bits used, in this QR Code symbol {@link Version}, to encode the + count of characters that will follow encoded in this {@link Mode} + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + + @author dswitkin@google.com (Daniel Switkin) + + +

Implements Reed-Solomon enbcoding, as the name implies.

+ + @author Sean Owen + @author William Rucklidge +
+ +

Thrown when an exception occurs during Reed-Solomon decoding, such as when + there are too many errors to correct.

+ + @author Sean Owen +
+ + See ISO 18004:2006 Annex D + + @author Sean Owen + + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + +

Deduces version information purely from QR Code dimensions.

+ + @param dimension dimension in modules + @return {@link Version} for a QR Code of that dimension + @throws FormatException if dimension is not 1 mod 4 +
+ + See ISO 18004:2006 Annex E + + +

Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version.

+
+ +

Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format.

+
+ + See ISO 18004:2006 6.5.1 Table 9 + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + @author dswitkin@google.com (Daniel Switkin) + + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Holds value of property checkType. + + + Holds value of property onValue. + + + Holds value of property checked. + + + Creates a new instance of RadioCheckField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. It must not be null + @param onValue the value when the field is checked + + + Sets the checked symbol. It can be + TYPE_CHECK, + TYPE_CIRCLE, + TYPE_CROSS, + TYPE_DIAMOND, + TYPE_SQUARE and + TYPE_STAR. + @param checkType the checked symbol + + + Sets the value when the field is checked. + @param onValue the value when the field is checked + + + Sets the state of the field to checked or unchecked. + @param checked the state of the field, true for checked + and false for unchecked + + + Gets the field appearance. + @param isRadio true for a radio field and false + for a check field + @param on true for the checked state, false + otherwise + @throws IOException on error + @throws DocumentException on error + @return the appearance + + + Gets the special field appearance for the radio circle. + @param on true for the checked state, false + otherwise + @return the appearance + + + Gets a radio group. It's composed of the field specific keys, without the widget + ones. This field is to be used as a field aggregator with {@link PdfFormField#addKid(PdfFormField) AddKid()}. + @param noToggleToOff if true, exactly one radio button must be selected at all + times; clicking the currently selected button has no effect. + If false, clicking + the selected button deselects it, leaving no button selected. + @param radiosInUnison if true, a group of radio buttons within a radio button field that + use the same value for the on state will turn on and off in unison; that is if + one is checked, they are all checked. If false, the buttons are mutually exclusive + (the same behavior as HTML radio buttons) + @return the radio group + + + Gets the radio field. It's only composed of the widget keys and must be used + with {@link #getRadioGroup(bool,bool)}. + @return the radio field + @throws IOException on error + @throws DocumentException on error + + + Gets the check field. + @return the check field + @throws IOException on error + @throws DocumentException on error + + + Gets a radio or check field. + @param isRadio true to get a radio field, false to get + a check field + @throws IOException on error + @throws DocumentException on error + @return the field + + + Intended to be layered on top of a low level RandomAccessSource object. Provides + functionality useful during parsing: +
    +
  • tracks current position in the file
  • +
  • allows single byte pushback
  • +
  • allows reading of multi-byte data structures (int, long, String) for both Big and Little Endian representations
  • +
  • allows creation of independent 'views' of the underlying data source
  • +
+ + @author Paulo Soares, Kevin Day +
+ + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + @deprecated use {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + @param filename + @throws IOException + + + Creates an independent view of the specified source. Closing the new object will not close the source. + Closing the source will have adverse effect on the behavior of the new view. + @deprecated use {@link RandomAccessFileOrArray#createView()} instead + @param source the source for the new independent view + + + Creates an independent view of this object (with it's own file pointer and pushback queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + @return the new view + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + @param byteSource the byte source to wrap + + + Constructs a new RandomAccessFileOrArrayObject + @param filename the file to open (can be a file system file or one of the following url strings: file://, http://, https://, jar:, wsjar:, vfszip: + @param forceRead if true, the entire file will be read into memory + @param plainRandomAccess if true, a regular RandomAccessFile is used to access the file contents. If false, a memory mapped file will be used, unless the file cannot be mapped into memory, in which case regular RandomAccessFile will be used + @throws IOException if there is a failure opening or reading the file + @deprecated use {@link RandomAccessSourceFactory#createBestSource(String)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param url + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(URL)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param is + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(InputStream)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param arrayIn + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(byte[])} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + @param b the byte to push + + + Reads a single byte + @return the byte, or -1 if EOF is reached + @throws IOException + + + + + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + Interface to sign a document. The signing is fully done externally, including the container composition. + @author Paulo Soares + + + Produces the container with the signature. + @param data the data to sign + @return a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + @throws GeneralSecurityException + + + Modifies the signature dictionary to suit the container. At least the keys PdfName.FILTER and + PdfName.SUBFILTER will have to be set. + @param signDic the signature dictionary + + + Helps to locate xml stream + + + Constructor for XPath2 expression + + + Get XPath2 expression + + + Get XmlNamespaceManager to resolve namespace conflicts + + + Class that signs your XML. + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param keyInfo KeyInfo for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param includeSignaturePolicy if true SignaturePolicyIdentifier will be included (XAdES-EPES) + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param publicKey PublicKey for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates new PdfSignatureAppDictionary + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary + + @param name + + + Dictionary that stores signature build properties. + @author Kwinten Pisman + + + Creates new PdfSignatureBuildProperties + + + Sets the signatureCreator property in the underlying + {@link PdfSignatureAppDictionary} dictionary. + + @param name + + + Gets the {@link PdfSignatureAppDictionary} from this dictionary. If it + does not exist, it adds a new {@link PdfSignatureAppDictionary} and + returns this instance. + + @return {@link PdfSignatureAppDictionary} + + + Class that encapsulates the signature policy information + @author J. Arturo + + Sample: + + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + a class that holds an X509 name + + + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + + email address in Verisign certificates + + + object identifier + + + LDAP User id. + + + A Hashtable with default symbols + + + A Hashtable with values + + + Constructs an X509 name + @param seq an Asn1 Sequence + + + Constructs an X509 name + @param dirName a directory name + + + gets a field array from the values Hashmap + @param name + @return an ArrayList + + + getter for values + @return a Hashtable with the fields of the X509 name + + + @see java.lang.Object#toString() + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + Get the issuer fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in + @param enc a TBSCertificate in a byte array + @return a DERObject + + + Get the subject fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "subject" from the TBSCertificate bytes that are passed in + @param enc A TBSCertificate in a byte array + @return a DERObject + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + Gets the URL of the Certificate Revocation List for a Certificate + @param certificate the Certificate + @return the String where you can check if the certificate was revoked + @throws CertificateParsingException + @throws IOException + + + Retrieves the OCSP URL from the given certificate. + @param certificate the certificate + @return the URL or null + @throws IOException + + + Gets the URL of the TSA if it's available on the certificate + @param certificate a certificate + @return a TSA URL + @throws IOException + + + @param certificate the certificate from which we need the ExtensionValue + @param oid the Object Identifier value for the extension. + @return the extension value as an ASN1Primitive object + @throws IOException + + + Gets a String from an ASN1Primitive + @param names the ASN1Primitive + @return a human-readable String + @throws IOException + + + This class consists of some methods that allow you to verify certificates. + + + Verifies a single certificate. + @param cert the certificate to verify + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return a String with the error description or null + if no error + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies an OCSP response against a KeyStore. + @param ocsp the OCSP response + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + Verifies a time stamp against a KeyStore. + @param ts the time stamp + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the CertificateVerifier in a chain of verifiers. + @param verifier the previous verifier in the chain + + + Decide whether or not online checking is allowed. + @param onlineCheckingAllowed + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @param signDate the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + @author Paulo Soares + + + The CRL as a byte array. + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + @param crlEncoded the CRL bytes + + + Returns the CRL bytes (the parameters are ignored). + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + @author Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + Creates a CrlClientOnline instance using one or more URLs. + + + Creates a CrlClientOnline instance using a certificate chain. + + + Adds an URL to the list of CRL URLs + @param url an URL in the form of a String + + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + @param verifier the next verifier in the chain + @param crls a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single CRL. + @param crl the Certificate Revocation List + @param signCert a certificate that needs to be verified + @param issuerCert its issuer + @param signDate the sign date + @return true if the verification succeeded + @throws GeneralSecurityException + + + Fetches a CRL for a specific certificate online (without further checking). + @param signCert the certificate + @param issuerCert its issuer + @return an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + @param crl the CRL + @param crlIssuer the trusted anchor + @return true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3 + + + Algorithm available for signatures since PDF 1.6 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps the name of a digest algorithm with its ID. + + + Creates a MessageDigest object that can be used to create a hash. + @param hashAlgorithm the algorithm you want to use to create a hash + @param provider the provider you want to use to create the hash + @return a MessageDigest object + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws GeneralSecurityException + + + Creates a hash using a specific digest algorithm and a provider. + @param data the message of which you want to create a hash + @param hashAlgorithm the algorithm used to create the hash + @param provider the provider used to create the hash + @return the hash + @throws GeneralSecurityException + @throws IOException + + + Gets the digest name for a certain id + @param oid an id (for instance "1.2.840.113549.2.5") + @return a digest name (for instance "MD5") + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + @param name the name of the digest algorithm + @return an oid + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + @param oid an id (for instance "1.2.840.113549.1.1.1") + @return an algorithm name (for instance "RSA") + @since 2.1.6 + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists into your PDF. + @author Paulo Soares + + + Gets a collection of byte array each representing a crl. + @param checkCert the certificate from which a CRL URL can be obtained + @param url a CRL url if you don't want to obtain it from the certificate + @return a collection of byte array each representing a crl. It may return null or an empty collection + + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + @author Paulo Soares + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + + + Signs it using the encryption algorithm in combination with + the digest algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @throws GeneralSecurityException + + + Interface for the OCSP Client. + @since 2.1.6 + + + * Gets an encoded byte array with OCSP validation. The method should not throw an exception. + * @param checkCert to certificate to check + * @param rootCert the parent certificate + * @param url the url to get the verification. It it's null it will be taken + * from the check cert or from other implementation specific source + * @return a byte array with the validation or null if the validation could not be obtained + + + + Get the time stamp token size estimate. + Implementation must return value large enough to accomodate the entire token + returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call. + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint byte[] - data imprint to be time-stamped + @return byte[] - encoded, TSA signed data of the timeStampToken + @throws Exception - TSA request failed + + + PAdES-LTV Timestamp + @author Pulo Soares + + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. + @param sap the signature appearance + @param tsa the timestamp generator + @param signatureName the signature name or null to have a name generated + automatically + @throws Exception + + + Add verification according to PAdES-LTV (part 4) + @author psoares + + + What type of verification to include + + + Include only OCSP + + + Include only CRL + + + Include both OCSP and CRL + + + Include CRL only if OCSP can't be read + + + Options for how many certificates to include + + + Include verification just for the signing certificate + + + Include verification for the whole chain of certificates + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys + + + Include certificates in the DSS and VRI dictionaries + + + Do not include certificates in the DSS and VRI dictionaries + + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + @param stp the PdfStamper to apply the validation to + + + Add verification for a particular signature + @param signatureName the signature to validate (it may be a timestamp) + @param ocsp the interface to get the OCSP + @param crl the interface to get the CRL + @param certOption + @param level the validation options to include + @param certInclude + @return true if a validation was generated, false otherwise + @throws Exception + + + Returns the issuing certificate for a child certificate. + @param cert the certificate for which we search the parent + @param certs an array with certificates that contains the parent + @return the partent certificate + + + Alternative addVerification. + I assume that inputs are deduplicated. + + @throws IOException + @throws GeneralSecurityException + + + + Merges the validation with any validation already in the document or creates + a new one. + @throws IOException + + + The Logger instance + + + Do we need to check all certificate, or only the signing certificate? + + + Verify root. + + + A reader object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + Creates a VerificationData object for a PdfReader + @param reader a reader for the document we want to verify. + @throws GeneralSecurityException + + + Sets an extra verifier. + @param verifier the verifier to set + + + Sets the certificate option. + @param option Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + @return a PdfPKCS7 object + @throws GeneralSecurityException + + + Verifies all the document-level timestamps and all the signatures in the document. + @throws IOException + @throws GeneralSecurityException + + + Verifies a document level timestamp. + @throws GeneralSecurityException + @throws IOException + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + @param chain + @throws GeneralSecurityException + + + Verifies certificates against a list of CRLs and OCSP responses. + @param signingCert + @param issuerCert + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate) + + + Switches to the previous revision. + @throws IOException + @throws GeneralSecurityException + + + Gets a list of X509CRL objects from a Document Security Store. + @return a list of CRLs + @throws GeneralSecurityException + @throws IOException + + + Gets OCSP responses from the Document Security Store. + @return a list of BasicOCSPResp objects + @throws IOException + @throws GeneralSecurityException + + + Class that signs your PDF. + @author Paulo Soares + + + The Logger instance. + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Processes a CRL list. + @param cert a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + @param crlList a list of CrlClient implementations + @return a collection of CRL bytes that can be embedded in a PDF. + + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. + @param sap the PdfSignatureAppearance + @param externalSignatureContainer the interface providing the actual signing + @param estimatedSize the reserved size for the signature + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs a PDF where space was already reserved. + @param reader the original PDF + @param fieldName the field to sign. It must be the last field + @param outs the output PDF + @param externalSignatureContainer the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + + + OcspClient implementation using BouncyCastle. + @author Paulo Soares + + + Create default implemention of {@code OcspClient}. + Note, if you use this constructor, OCSP response will not be verified. + + + Create {@code OcspClient} + @param verifier will be used for response verification. {@see OCSPVerifier}. + + + Gets OCSP response. If {@see OCSPVerifier} was set, the response will be checked. + + + Gets an encoded byte array with OCSP validation. The method should not throw an exception. + + @param checkCert to certificate to check + @param rootCert the parent certificate + @param url to get the verification. It it's null it will be taken + from the check cert or from other implementation specific source + @return a byte array with the validation or null if the validation could not be obtained + + + Generates an OCSP request using BouncyCastle. + @param issuerCert certificate of the issues + @param serialNumber serial number + @return an OCSP request + @throws OCSPException + @throws IOException + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + @param verifier the next verifier in the chain + @param ocsps a list of OCSP responses + + + Verifies if a a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single OCSP response + @param ocspResp the OCSP response + @param signCert the certificate that needs to be checked + @param issuerCert the certificate of CA + @param signDate sign date + @return {@code true}, in case successful check, otherwise false. + @throws GeneralSecurityException + @throws IOException + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + @param ocspResp the OCSP response + @param issuerCert the issuer certificate + @throws GeneralSecurityException + @throws IOException + + + Verifies if the response is valid. + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + NOTE. Use {@code isValidResponse()} instead. + @param ocspResp the response object + @param issuerCert the issuer certificate + @return true if the response can be trusted + + + Checks if an OCSP response is genuine + @param ocspResp the OCSP response + @param responderCert the responder certificate + @return true if the OCSP response verifies against the responder certificate + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking). + @param signCert the signing certificate + @param issuerCert the issuer certificate + @return an OCSP response + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + Assembles all the elements needed to create a signature, except for the data. + @param privKey the private key + @param certChain the certificate chain + @param interfaceDigest the interface digest + @param hashAlgorithm the hash algorithm + @param provider the provider or null for the default provider + @param hasRSAdata true if the sub-filter is adbe.pkcs7.sha1 + @throws InvalidKeyException on error + @throws NoSuchProviderException on error + @throws NoSuchAlgorithmException on error + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + @param contentsKey the /Contents key + @param certsKey the /Cert key + + + Use this constructor if you want to verify a signature. + @param contentsKey the /Contents key + @param filterSubtype the filtersubtype + @param provider the provider or null for the default provider + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Getter/setter for property sigName. + @return Value of property sigName. + + + Getter for property reason. + @return Value of property reason. + + + Getter for property location. + @return Value of property location. + + + Getter for property signDate. + @return Value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + @return the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + @return the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1" + + + Returns the name of the digest algorithm, e.g. "SHA256". + @return the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + @return the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + @param digest the digest. This is the actual signature + @param RSAdata the extra data that goes into the data tag in PKCS#7 + @param digestEncryptionAlgorithm the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + This method is used both for signing and verifying + @param buf the data buffer + @param off the offset in the data buffer + @param len the data length + @throws SignatureException on error + + + Gets the bytes for the PKCS#1 object. + @return a byte array + + + Gets the bytes for the PKCS7SignedData object. + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + @param secondDigest the digest in the authenticatedAttributes + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, OR a time-stamp-authority client + may be provided. + @param secondDigest the digest in the authenticatedAttributes + @param tsaClient TSAClient - null or an optional time stamp authority client + @return byte[] the bytes for the PKCS7SignedData object + @since 2.1.6 + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + @param timeStampToken byte[] - time stamp token, DER encoded signedData + @return ASN1EncodableVector + @throws IOException + + + + This method provides that encoding and the parameters must be + exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. + + @param secondDigest the content digest + @return the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + Verify the digest. + @throws SignatureException on error + @return true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + @throws java.security.NoSuchAlgorithmException on error + @return true if it checks false otherwise + @since 2.1.6 + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + @return the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + @return the X.509 certificates associated with this PKCS#7 object + @since 2.1.6 + + + Get the X.509 certificate actually used to sign the digest. + @return the X.509 certificate actually used to sign the digest + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + @return the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + @return the OCSP basic response or null + @since 2.1.6 + + + Checks if OCSP revocation refers to the document signing certificate. + @return true if it checks, false otherwise + @since 2.1.6 + + + Helper method that creates the BasicOCSPResp object. + @param seq + @throws IOException + + + True if there's a PAdES LTV time stamp. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + @return true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + @return the timestamp token or null + @since 2.1.6 + + + Gets the timestamp date + @return a date + @since 2.1.6 + + + Returns the filter subtype. + + + Returns the encryption algorithm + @return the name of an encryption algorithm + + + Implementation of the ExternalSignature interface that can be used + when you have a PrivateKey object. + @author Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Creates an ExternalSignature instance + @param pk a PrivateKey object + @param hashAlgorithm the hash algorithm (e.g. "SHA-1", "SHA-256",...) + @param provider the security provider (e.g. "BC") + + + Creates a message digest using the hash algorithm + and signs it using the encryption algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @see com.itextpdf.text.pdf.security.ExternalSignature#sign(byte[]) + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + The Logger instance + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + + @param verifier + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + + @param keyStore + a root store + + + Verifies a single certificate against a key store (if present). + + @param signCert + the certificate to verify + @param issuerCert + the issuer certificate + @param signDate + the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + A list of IDs that are used by the security classes + + + Class that contains a field lock action and + an array of the fields that are involved. + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance + + + Getter for the field lock action. + + + Getter for the fields involved in the lock action. + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + + Getter to find out if the signature is a certification signature. + @return true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + @return true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + @return true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + @return an Array with field names + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. +

+ Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. +

+ @since 2.1.6 +
+ + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + The default value for the hash algorithm + + + Estimate of the received time stamp token + + + The default value for the hash algorithm + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + @param tokSzEstimate int - estimated size of received time stamp token (DER encoded) + + + @param tsaInfo the tsaInfo to set + + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint data imprint to be time-stamped + @return encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + @return - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + @param info a TimeStampTokenInfo object + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + @param certificate the certificate that was successfully verified + @param verifierClass the class that was used for verification + @param message the reason why the certificate could be verified + + + A single String explaining which certificate was verified, how and why. + @see java.lang.Object#toString() + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + + + + The certificate with the private key + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + The certificate with the private key + The hash algorithm for the signature. As the Windows CAPI is used + to do the signature the only hash guaranteed to exist is SHA-1 + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + + Generates a list of numbers from a string. + @param ranges the comma separated ranges + @param maxNumber the maximum number in the range + @return a list with the numbers as Integer + + + Implements a shading pattern as a Color. + + @author Paulo Soares + + + + Creates a new instance of SimpleBookmark + + + Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. + (Contributed by Kazuya Ujihara) + @param indirect + 2004-06-13 + + + Gets a List with the bookmarks. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @return a List with the bookmarks or null if the + document doesn't have any + + + Gets a List with the bookmarks that are children of outline. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @param outline the outline dictionary to get bookmarks from + @param includeRoot indicates if to include outline parameter itself into returned list of bookmarks + @return a List with the bookmarks or null if the + document doesn't have any + + + Removes the bookmark entries for a number of page ranges. The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageRange the page ranges, always in pairs. + + + For the pages in range add the pageShift to the page number. + The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageShift the number to add to the pages in range + @param pageRange the page ranges, always in pairs. It can be null + to include all the pages + + + Exports the bookmarks to XML. Only of use if the generation is to be include in + some other XML document. + @param list the bookmarks + @param out the export destination. The writer is not closed + @param indent the indentation level. Pretty printing significant only. Use -1 for no indents. + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + + Exports the bookmarks to XML. + @param list the bookmarks + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the bookmarks from XML. + @param in the XML source. The stream is not closed + @throws IOException on error + @return the bookmarks + + + Import the bookmarks from XML. + @param in the XML source. The reader is not closed + @throws IOException on error + @return the bookmarks + + + + @author Paulo Soares + + + + Exports the bookmarks to XML. + @param names the names + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the names from XML. + @param inp the XML source. The stream is not closed + @throws IOException on error + @return the names + + + Import the names from XML. + @param inp the XML source. The reader is not closed + @throws IOException on error + @return the names + + + + @author psoares + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + @return an escaped byte array + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + + + Converts an array of unsigned 16bit numbers to an array of bytes. + The input values are presented as chars for convenience. + + @param chars the array of 16bit numbers that should be converted + @return the resulting byte array, twice as large as the input + + + Supports text, combo and list fields generating the correct appearances. + All the option in the Acrobat GUI are supported in an easy to use API. + @author Paulo Soares + + + Holds value of property defaultText. + + + Holds value of property choices. + + + Holds value of property choiceExports. + + + Holds value of property choiceSelection. + + + Represents the /TI value + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Obfuscates a password String. + Every character is replaced by an asterisk (*). + + @param text + @return String + @since 2.1.5 + + + Get the PdfAppearance of a text or combo field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Get the PdfAppearance of a list field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Gets a new text field. + @throws IOException on error + @throws DocumentException on error + @return a new text field + + + Gets a new combo field. + @throws IOException on error + @throws DocumentException on error + @return a new combo field + + + Gets a new list field. + @throws IOException on error + @throws DocumentException on error + @return a new list field + + + Sets the default text. It is only meaningful for text fields. + @param defaultText the default text + + + Sets the choices to be presented to the user in list/combo + fields. + @param choices the choices to be presented to the user + + + Sets the export values in list/combo fields. If this array + is null then the choice values will also be used + as the export values. + @param choiceExports the export values in list/combo fields + + + Sets the zero based index of the selected item. + @param choiceSelection the zero based index of the selected item + + + Sets the top visible choice for lists; + + @since 5.5.3 + @param visibleTopChoice index of the first visible item (zero-based array) + Returns the index of the top visible choice of a list. Default is -1. + @return the index of the top visible choice + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Holds value of property substitutionFonts. + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Holds value of property extensionFont. + + + Sets the extensionFont. This font will be searched before the + substitution fonts. It may be null. + @param extensionFont New value of property extensionFont. + + + Reads a Truetype font + + @author Paulo Soares + + + The code pages possible for a True Type font. + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + The file in use. + + + The file name. + + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + The index for the TTC font. It is an empty string for a + TTF file. + + + The style modifier + + + The content of table 'head'. + + + The content of table 'hhea'. + + + The content of table 'OS/2'. + + + The width of the glyphs. This is essentially the content of table + 'hmtx' normalized to 1000 units. + + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an int[2] where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 + units. + + + + + By James for unicode Ext.B + + + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + The font name. + This name is usually extracted from the table 'name' with + the 'Name ID' 6. + + + The font subfamily + This subFamily name is usually extracted from the table 'name' with + the 'Name ID' 2 or 'Name ID' 17. + + + The full name of the font 'Name ID' 1 or 'Name ID' 16 + + + All the names auf the Names-Table + + + The family name of the font + + + + true if all the glyphs have the same width. + + + The components of table 'head'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'hhea'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'OS/2'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + This constructor is present to allow extending the class. + + + Creates a new TrueType font. + @param ttFile the location of the font on file. The file must end in '.ttf' or + '.ttc' but can have modifiers after the name + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + @param name the full name + @return the simple file name + + + Reads the tables 'head', 'hhea', 'OS/2', 'post' and 'maxp' filling several variables. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the Postscript font name. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + @return the Postscript font name + + + Extracts the names of the font in all the languages available. + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Extracts all the names of the names-Table + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Reads the font data. + @param ttfAfm the font as a byte array, possibly null + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Reads a Unicode string from the font file. Each character is + represented by two bytes. + @param length the length of bytes to read. The string will have length/2 + characters + @return the string read + @throws IOException the font file could not be read + + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets a glyph width. + @param glyph the glyph to get the width of + @return the width of the glyph in normalized 1000 units + + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + Reads the kerning information from the 'kern' table. + @throws IOException the font file could not be read + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Gets the width from the font according to the unicode char c. + If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Generates the font descriptor for this font. + @return the PdfDictionary containing the font descriptor or null + @param subsetPrefix the subset prefix + @param fontStream the indirect reference to a PdfStream containing the font or null + @throws DocumentException if there is an error + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param subsetPrefix the subset prefx + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + @throws DocumentException if there is an error + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + @return a byte array + @since 2.1.3 + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Gets the postscript font name. + @return the postscript font name + + + Gets the code pages supported by the font. + @return the code pages supported by the font + + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Checks whether this font may be used with winansi encoding. + + @return true if the font can be correctly used with winansi encodings + + + Subsets a True Type font by removing the unneeded glyphs from + the font. + + @author Paulo Soares + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[3] where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + @param directoryOffset The offset from the start of the file to the table directory + @param fileName the file name of the font + @param glyphsUsed the glyphs used + @param includeCmap true if the table cmap is to be included in the generated font + + + Does the actual work of subsetting the font. + @throws IOException on error + @throws DocumentException on error + @return the subset font + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Represents a True Type font with Unicode encoding. All the character + in the font can be used directly by using the encoding Identity-H or + Identity-V. This is the only way to represent some character sets such + as Thai. + @author Paulo Soares + + + Creates a new TrueType font addressed by Unicode characters. The font + will always be embedded. + @param ttFile the location of the font on file. The file must end in '.ttf'. + The modifiers after the name are ignored. + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + @param metrics metrics[0] contains the glyph index and metrics[2] + contains the Unicode code + @throws DocumentException on error + @return the stream representing this CMap or null + + + Gets an hex string in the format "<HHHH>". + @param n the number + @return the hex string + + + Generates the CIDFontTyte2 dictionary. + @param fontDescriptor the indirect reference to the font descriptor + @param subsetPrefix the subset prefix + @param metrics the horizontal width metrics + @return a stream + + + Generates the font dictionary. + @param descendant the descendant dictionary + @param subsetPrefix the subset prefix + @param toUnicode the ToUnicode stream + @return the stream + + + The method used to sort the metrics array. + @param o1 the first element + @param o2 the second element + @return the comparisation + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + A forbidden operation. Will throw a null pointer exception. + @param text the text + @return always null + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Reads a Type1 font + + @author Paulo Soares + + + The PFB file if the input was made with a byte array. + + + The Postscript font name. + + + The full name of the font. + + + The family name of the font. + + + The weight of the font: normal, bold, etc. + + + The italic angle of the font, usually 0.0 or negative. + + + true if all the characters have the same + width. + + + The character set of the font. + + + The llx of the FontBox. + + + The lly of the FontBox. + + + The lurx of the FontBox. + + + The ury of the FontBox. + + + The underline position. + + + The underline thickness. + + + The font's encoding name. This encoding is 'StandardEncoding' or + 'AdobeStandardEncoding' for a font that can be totally encoded + according to the characters names. For all other names the + font is treated as symbolic. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + Represents the section CharMetrics in the AFM file. Each + value of this array contains a Object[4] with an + Integer, Integer, String and int[]. This is the code, width, name and char bbox. + The key is the name of the char and also an Integer with the char number. + + + Represents the section KernPairs in the AFM file. The key is + the name of the first character and the value is a Object[] + with 2 elements for each kern pair. Position 0 is the name of + the second character and position 1 is the kerning distance. This is + repeated for all the pairs. + + + The file in use. + + + true if this font is one of the 14 built in fonts. + + + Types of records in a PFB file. ASCII is 1 and BINARY is 2. + They have to appear in the PFB file in this sequence. + + + Creates a new Type1 font. + @param ttfAfm the AFM file if the input is made with a byte array + @param pfb the PFB file if the input is made with a byte array + @param afmFile the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + Gets the width from the font according to the name or, + if the name is null, meaning it is a symbolic font, + the char c. + @param c the char if the font is symbolic + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode characters. The characters + are converted to names and this names are used to find the kerning + pairs in the Hashtable KernPairs. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Reads the font metrics + @param rf the AFM file + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + If the embedded flag is false or if the font is + one of the 14 built in types, it returns null, + otherwise the font is read and output in a PdfStream object. + @return the PdfStream containing the font or null + @throws DocumentException if there is an error reading the font + + + Generates the font descriptor for this font or null if it is + one of the 14 built in fonts. + @param fontStream the indirect reference to a PdfStream containing the font or null + @return the PdfDictionary containing the font descriptor or null + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the postscript font name. + @return the postscript font name + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + A class to support Type3 fonts. + + + Creates a Type3 font. + @param writer the writer + @param chars an array of chars corresponding to the glyphs used (not used, prisent for compability only) + @param colorized if true the font may specify color, if false no color commands are allowed + and only images as masks can be used + + + + Defines a glyph. If the character was already defined it will return the same content + @param c the character to match this glyph. + @param wx the advance this character will have + @param llx the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param lly the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param urx the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param ury the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @return a content where the glyph can be defined + + + Always returns null, because you can't get the FontStream of a Type3 font. + @return null + @since 2.1.3 + + + The content where Type3 glyphs are written to. + + + Writes text vertically. Note that the naming is done according + to horizontal text although it referrs to vertical text. + A line with the alignment Element.LEFT_ALIGN will actually + be top aligned. + + + Signals that there are no more text available. + + + Signals that there is no more column. + + + The chunks that form the text. + + + The PdfContent where the text will be written to. + + + The column Element. Default is left Element. + + + Marks the chunks to be eliminated when the line is written. + + + The chunk created by the splitting. + + + The chunk created by the splitting. + + + The leading + + + The X coordinate. + + + The Y coordinate. + + + The maximum number of vertical lines. + + + The height of the text. + + + Creates new VerticalText + @param text the place where the text will be written to. Can + be a template. + + + Adds a Phrase to the current text array. + @param phrase the text + + + Adds a Chunk to the current text array. + @param chunk the text + + + Sets the layout. + @param startX the top right X line position + @param startY the top right Y line position + @param height the height of the lines + @param maxLines the maximum number of lines + @param leading the separation between the lines + + + Gets the separation between the vertical lines. + @return the vertical line separation + + + Creates a line from the chunk array. + @param width the width of the line + @return the line or null if no more chunks + + + Normalizes the list of chunks when the line is accepted. + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Sets the new text origin. + @param startX the X coordinate + @param startY the Y coordinate + + + Gets the X coordinate where the next line will be writen. This value will change + after each call to go(). + @return the X coordinate + + + Gets the Y coordinate where the next line will be writen. + @return the Y coordinate + + + Gets the maximum number of available lines. This value will change + after each call to go(). + @return Value of property maxLines. + + + Gets the height of the line + @return the height + + + Gets the Element. + @return the alignment + + + Processes XFA forms. + @author Paulo Soares + + + An empty constructor to build on. + + + Return the XFA Object, could be an array, could be a Stream. + Returns null f no XFA Object is present. + @param reader a PdfReader instance + @return the XFA object + @since 2.1.3 + + + A constructor from a PdfReader. It basically does everything + from finding the XFA stream to the XML parsing. + @param reader the reader + @throws java.io.IOException on error + @throws javax.xml.parsers.ParserConfigurationException on error + @throws org.xml.sax.SAXException on error + + + Extracts the nodes from the domDocument. + @since 2.1.5 + + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + Sets the XFA key from a byte array. The old XFA is erased. + @param form the data + @param reader the reader + @param writer the writer + @throws java.io.IOException on error + + + Sets the XFA key from the instance data. The old XFA is erased. + @param writer the writer + @throws java.io.IOException on error + + + Serializes a XML document to a byte array. + @param n the XML document + @throws java.io.IOException on error + @return the serialized XML document + + + Returns true if it is a XFA form. + @return true if it is a XFA form + + + Gets the top level DOM document. + @return the top level DOM document + + + Finds the complete field name contained in the "classic" forms from a partial + name. + @param name the complete or partial name + @param af the fields + @return the complete name or null if not found + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the complete name or null if not found + + + Finds the Node contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + @param n the Node + @return the text found or "" if no text was found + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param n the Node to add the text to + @param text the text to add + + + Sets the PdfReader to be used by this instance. + @param reader the PdfReader to be used by this instance + + + Checks if this XFA form was changed. + @return true if this XFA form was changed + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchie. + + + Gets the full name by traversing the hiearchie using only the + index 0. + @return the full name + + + Search the current node for a similar name. A similar name starts + with the same name but has a differnt index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + @param name the name to search + @return true if a similitude was found + + + Another stack implementation. The main use is to facilitate + the porting to other languages. + + + Looks at the object at the top of this stack without removing it from the stack. + @return the object at the top of this stack + + + Removes the object at the top of this stack and returns that object as the value of this function. + @return the object at the top of this stack + + + Pushes an item onto the top of this stack. + @param item the item to be pushed onto this stack + @return the item argument + + + Tests if this stack is empty. + @return true if and only if this stack contains no items; false otherwise + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchie. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + @param s the unescaped string + @return the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + @param s the escaped string + @return the unescaped string + + + Outputs the stack as the sequence of elements separated + by '.'. + @return the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + @param s the long name + @return the short name + + + Adds a SOM name to the search node chain. + @param unstack the SOM name + + + Adds a SOM name to the search node chain. + @param inverseSearch the start point + @param stack the stack with the separeted SOM parts + @param unstack the full name + + + Searchs the SOM hiearchie from the bottom. + @param parts the SOM parts + @return the full name or null if not found + + + Splits a SOM name in the individual parts. + @param name the full SOM name + @return the split name + + + Gets the order the names appear in the XML, depth first. + @return the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + @return the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchie. + @return the data to do a search from the bottom hierarchie + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + @param n the datasets node + + + Inserts a new Node that will match the short name. + @param n the datasets top Node + @param shortName the short name + @return the new Node of the inserted name + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + @param items the Collection + + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + @return the mapping from short names to long names + + + Processes the template section in the XFA form. + + + Creates a new instance from the datasets node. + @param n the template node + + + Gets the field type as described in the template section of the XFA. + @param s the exact template name + @return the field type or null if not found + + + true if it's a dynamic form; false + if it's a static form. + @return true if it's a dynamic form; false + if it's a static form + + + Gets the class that contains the template processing section of the XFA. + @return the class that contains the template processing section of the XFA + + + Gets the class that contains the datasets processing section of the XFA. + @return the class that contains the datasets processing section of the XFA + + + Gets the class that contains the "classic" fields processing. + @return the class that contains the "classic" fields processing + + + Gets the Node that corresponds to the datasets part. + @return the Node that corresponds to the datasets part + + + Replaces the data under datasets/data. + @since iText 5.0.0 + + + Helps to locate xml stream inside PDF document with Xfa form. + + + Gets Document to sign + + + Save document as single XML stream in AcroForm. + @param document signed document + @throws IOException + @throws DocumentException + + + Constructor for xpath expression for signing XfaForm + + + Possible xdp packages to sign + + + Empty constructor, no transform. + + + Construct for Xpath expression. Depends from selected xdp package. + @param xdpPackage + + + Get XPath expression + + + Reads a XFDF. + @author Leonard Rosenthol (leonardr@pdfsages.com) + + + Storage for field values if there's more than one value for a field. + @since 2.1.4 + + + Reads an XFDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an XFDF form. + @param xfdfIn the byte array with the form + @throws IOException on error + + + Reads an XFDF form. + @param is an InputStream to read the form + @throws IOException on error + @since 5.0.1 + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field value. + @param name the fully qualified field name + @return the field's value + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the field values for a list or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field values or null + @since 2.1.4 + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + Constructs XmlSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Holds value of property xades:SigningTime. + + + Holds value of property xades:Description. + + + Holds value of property xades:MimeType. + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + Gets the signature date. + @return the signature date + + + Sets the signature date. + @param signDate the signature date + + + Helps to locate xml stream + @return XmlLocator, cannot be null. + + + Constructor for xpath expression in case signing only part of XML document. + @return XpathConstructor, can be null + + + Close PdfStamper + @throws IOException + @throws DocumentException + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static GetDefaultFilterHandlers() method, then obtain the desired {@link IFilterHandler} + via a lookup. + @since 5.0.4 + + + The main interface for creating a new {@link IFilterHandler} + + + The default {@link IFilterHandler}s used by iText + + + @return the default {@link IFilterHandler}s used by iText + + + Creates a {@link MemoryLimitsAwareOutputStream} which will be used for decompression of the passed pdf stream. + + @param streamDictionary the pdf stream which is going to be decompressed. + @return the {@link ByteArrayOutputStream} which will be used for decompression of the passed pdf stream + + + Handles FLATEDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles LZWDECODE filter + + + Handles CCITTFAXDECODE filter + + + A filter that doesn't modify the stream at all + + + Handles RUNLENGTHDECODE filter + + + A PdfArray object consisting of nothing but PdfNumber objects + @since 5.1.0 + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers float values + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers a List containing PdfNumber objects + + + Signals that a table will continue in the next page. + + @since 5.0.6 + + + This method is called to indicate that table is being split. It's called + before the tableLayout method and before the table is drawn. + + @param table the PdfPTable in use + + + Wrapper class for PdfCopy and PdfSmartCopy. + Allows you to concatenate existing PDF documents with much less code. + + + The Document object for PdfCopy. + + + The actual PdfWriter + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + @param smart do we want PdfCopy to detect redundant content? + + + Adds the pages from an existing PDF document. + @param reader the reader for the existing PDF document + @return the number of pages that were added + @throws DocumentException + @throws IOException + + + Gets the PdfCopy instance so that you can add bookmarks or change preferences before you close PdfConcatenate. + + + Opens the document (if it isn't open already). + Opening the document is done implicitly. + + + We've finished writing the concatenated document. + + + The spacing before the table. + + + The spacing after the table. + + + Defines if the div should be kept on one page if possible + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual height the div would require to layout it's content + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual width the div would require to layout it's content + + + Image will be scaled to fit in the div occupied area. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Gets the type of the text element. + + @return a type + + + @see com.itextpdf.text.Element#isContent() + @since iText 2.0.8 + + + @see com.itextpdf.text.Element#isNestable() + @since iText 2.0.8 + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Serial version UID + + + Creates a new instance of PdfIsoConformanceException. + + + Creates a new instance of PdfIsoConformanceException. + @param s + + + A signature field lock dictionary. + + + Enumerates the different actions of a signature lock. + Indicates the set of fields that should be locked: + all the fields in the document, + all the fields specified in the /Fields array + all the fields except those specified in the /Fields array + + + Enumerates the different levels of permissions. + + + Creates a signature lock valid for all fields in the document. + + + Creates a signature lock for all fields in the document, + setting specific permissions. + + + Creates a signature lock for specific fields in the document. + + + Creates a signature lock for specific fields in the document. + + + Add kid to structureTreeRoot from structTreeRoot + + + + An Anchor can be a reference or a destination of a reference. + + + An Anchor is a special kind of . + It is constructed in the same way. + + + + + + + This is the name of the Anchor. + + + + + This is the reference of the Anchor. + + + + + Constructs an Anchor without specifying a leading. + + + Has nine overloads. + + + + + Constructs an Anchor with a certain leading. + + the leading + + + + Constructs an Anchor with a certain Chunk. + + a Chunk + + + + Constructs an Anchor with a certain string. + + a string + + + + Constructs an Anchor with a certain string + and a certain Font. + + a string + a Font + + + + Constructs an Anchor with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs an Anchor with a certain leading + and a certain string. + + the leading + a string + + + + Constructs an Anchor with a certain leading, + a certain string and a certain Font. + + the leading + a string + a Font + + + Constructs an Anchor with a certain Phrase. + + @param phrase a Phrase + + + + Processes the element by adding it (or the different parts) to an + + + an IElementListener + true if the element was processed successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + Applies the properties of the Anchor to a Chunk. + @param chunk the Chunk (part of the Anchor) + @param notGotoOK if true, this chunk will determine the local destination + @param localDestination true if the chunk is a local goto and the reference a local destination + @return the value of notGotoOK or false, if a previous Chunk was used to determine the local destination + + + + Gets the type of the text element. + + a type + + + + Name of this Anchor. + + + + + reference of this Anchor. + + + + + reference of this Anchor. + + an Uri + + + + An Annotation is a little note that can be added to a page + on a document. + + + + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is the type of annotation. + + + This is the title of the Annotation. + + + This is the lower left x-value + + + This is the lower left y-value + + + This is the upper right x-value + + + This is the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + the destination in this file + + + + Creates a Screen anotation to embed media clips + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + path to the media clip file + mime type of the media + if true play on display of the page + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + a page number in this file + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + a named destination in this file + + Has nine overloads. + + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external application + parameters to pass to this application + the operation to pass to this application + the default directory to run this application in + + + + Gets the type of the text element + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was process successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + + Sets the dimensions of this annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Returns the lower left x-value. + + a value + + + + Returns the lower left y-value. + + a value + + + + Returns the uppper right x-value. + + a value + + + + Returns the uppper right y-value. + + a value + + + + Returns the lower left x-value. + + the default value + a value + + + + Returns the lower left y-value. + + the default value + a value + + + + Returns the upper right x-value. + + the default value + a value + + + + Returns the upper right y-value. + + the default value + a value + + + + Returns the type of this Annotation. + + a type + + + + Returns the title of this Annotation. + + a name + + + + Gets the content of this Annotation. + + a reference + + + + Gets the content of this Annotation. + + a reference + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Signals an attempt to create an Element that hasn't got the right form. + + + + + + + Base class for Color, serves as wrapper class for + to allow extension. + + + + Construct a new BaseColor. + @param red the value for the red gamma + @param green the value for the green gamma + @param blue the value for the blue gamma + @param alpha the value for the alpha gamma + + + @param red + @param green + @param blue + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + @param alpha + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + + + Construct a BaseColor by setting the combined value. + @param argb + + + Construct a BaseColor by System.Drawing.Color. + @param color + + + @return the combined color value + + + + @return the value for red + + + + @return the value for green + + + + @return the value for blue + + + + @return the value for the alpha channel + + + Make this BaseColor brighter. Factor used is 0.7. + @return the new BaseColor + + + Make this color darker. Factor used is 0.7 + @return the new BaseColor + + + + A Chapter is a special Section. + + + A chapter number has to be created using a Paragraph as title + and an int as chapter number. The chapter number is shown be + default. If you don't want to see the chapter number, you have to set the + numberdepth to 0. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + chapter2.SetNumberDepth(0); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new BaseColor(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + + + + + Constructs a new Chapter. + @param number the Chapter number + + + + Constructs a new Chapter. + + the Chapter title (as a Paragraph) + the Chapter number + + Has three overloads. + + + + + Constructs a new Chapter. + + the Chapter title (as a string) + the Chapter number + + Has three overloads. + + + + + Gets the type of the text element. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Chapter with auto numbering. + + @author Michael Niedermair + + + Is the chapter number already set? + @since 2.1.4 + + + Create a new object. + + @param para the Chapter title (as a Paragraph) + + + Create a new objet. + + @param title the Chapter title (as a String) + + + Create a new section for this chapter and ad it. + + @param title the Section title (as a String) + @return Returns the new section. + + + Create a new section for this chapter and add it. + + @param title the Section title (as a Paragraph) + @return Returns the new section. + + + Changes the Chapter number. + @param number the new chapter number + @since 2.1.4 + + + + This is the smallest significant part of text that can be added to a document. + + + Most elements can be divided in one or more Chunks. + A chunk is a string with a certain Font. + all other layoutparameters should be defined in the object to which + this chunk of text is added. + + + + Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, Font.ITALIC, new BaseColor(255, 0, 0))); + document.Add(chunk); + + + + + The character stand in for an image or a separator. + + + This is a Chunk containing a newline. + + + This is a Chunk containing a newpage. + + + This is the content of this chunk of text. + + + This is the Font of this chunk of text. + + + Contains some of the attributes for this Chunk. + + + + Empty constructor. + + + Has six overloads. + + + + A Chunk copy constructor. + @param ck the Chunk to be copied + + + + Constructs a chunk of text with a certain content and a certain Font. + + the content + the font + + + + Constructs a chunk of text with a certain content, without specifying a Font. + + the content + + + Constructs a chunk of text with a char and a certain Font. + + @param c the content + @param font the font + + + Constructs a chunk of text with a char, without specifying a Font. + + @param c the content + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + + + Key for drawInterface of the Separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @param vertical true if this is a vertical separator + @since 2.1.2 + + + Key for drawInterface of the tab. + @since 2.1.2 + + + Key for tab stops of the tab. + @since 5.4.1 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @since 2.1.2 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @param newline if true, a newline will be added if the tabPosition has already been reached. + @since 2.1.2 + + + Creates a tab Chunk. + + @param tabInterval an interval that will be used if tab stops are omitted. + @param isWhitespace if true, the current tab is treated as white space. + @since 5.4.1 + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + true if the leading has to be adapted to the image + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + appends some text to this Chunk. + + a string + a StringBuilder + + + + Get/set the font of this Chunk. + + a Font + + + + Returns the content of this Chunk. + + a string + + + + Checks is this Chunk is empty. + + false if the Chunk contains other characters than space. + + + Gets the width of the Chunk in points. + @return a width in points + + + + Checks the attributes of this Chunk. + + false if there aren't any. + + + Checks the accessible attributes of this Chunk. + + @return false if there aren't any. + + + + Sets/Gets the attributes for this Chunk. + + + It may be null. + + a Hashtable + + + + Sets an arbitrary attribute. + + the key for the attribute + the value of the attribute + this Chunk + + + Key for text horizontal scaling. + + + Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f + shrinks the text to half it's width. + @param scale the horizontal scaling factor + @return this Chunk + + + Gets the horizontal scaling. + @return a percentage in float + + + Key for underline. + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param thickness the absolute thickness of the line + @param yPosition the absolute y position relative to the baseline + @return this Chunk + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param color the color of the line or null to follow + the text color + @param thickness the absolute thickness of the line + @param thicknessMul the thickness multiplication factor with the font size + @param yPosition the absolute y position relative to the baseline + @param yPositionMul the position multiplication factor with the font size + @param cap the end line cap. Allowed values are + PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and + PdfContentByte.LINE_CAP_PROJECTING_SQUARE + @return this Chunk + + + Key for sub/basescript. + + + + Sets the text displacement relative to the baseline. Positive values rise the text, + negative values lower the text. + + + It can be used to implement sub/basescript. + + the displacement in points + this Chunk + + + Key for text skewing. + + + Skews the text to simulate italic and other effects. + Try alpha=0 and beta=12. + @param alpha the first angle in degrees + @param beta the second angle in degrees + @return this Chunk + + + Key for background. + + + + Sets the color of the background Chunk. + + the color of the background + this Chunk + + + Sets the color and the size of the background Chunk. + @param color the color of the background + @param extraLeft increase the size of the rectangle in the left + @param extraBottom increase the size of the rectangle in the bottom + @param extraRight increase the size of the rectangle in the right + @param extraTop increase the size of the rectangle in the top + @return this Chunk + + + Key for text rendering mode. + + + Sets the text rendering mode. It can outline text, simulate bold and make + text invisible. + @param mode the text rendering mode. It can be PdfContentByte.TEXT_RENDER_MODE_FILL, + PdfContentByte.TEXT_RENDER_MODE_STROKE, PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE + and PdfContentByte.TEXT_RENDER_MODE_INVISIBLE. + @param strokeWidth the stroke line width for the modes PdfContentByte.TEXT_RENDER_MODE_STROKE and + PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE. + @param strokeColor the stroke color or null to follow the text color + @return this Chunk + + + Key for split character. + + + + Sets the split characters. + + the SplitCharacter interface + this Chunk + + + Key for hyphenation. + + + + sets the hyphenation engine to this Chunk. + + the hyphenation engine + this Chunk + + + Key for remote goto. + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the name of the destination to go to + this Chunk + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the page of the destination to go to. First page is 1 + this Chunk + + + Key for local goto. + + + + Sets a local goto for this Chunk. + + + There must be a local destination matching the name. + + the name of the destination to go to + this Chunk + + + Key for local destination. + + + + Sets a local destination for this Chunk. + + the name for this destination + this Chunk + + + Key for generic tag. + + + + Sets the generic tag Chunk. + + + The text for this tag can be retrieved with PdfPageEvent. + + the text for the tag + this Chunk + + + Key for line-height (alternative for leading in Phrase). + + + Sets a line height tag. + + @return this Chunk + + + Key for image. + + + + Returns the image. + + an Image + + + Key for Action. + + + + Sets an action for this Chunk. + + the action + this Chunk + + + + Sets an anchor for this Chunk. + + the Uri to link to + this Chunk + + + + Sets an anchor for this Chunk. + + the url to link to + this Chunk + + + Key for newpage. + + + + Sets a new page tag. + + this Chunk + + + Key for annotation. + + + + Sets a generic annotation to this Chunk. + + the annotation + this Chunk + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Returns the hyphenation (if present). + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Key for color. + + + Key for encoding. + + + Key for character spacing. + + + Sets the character spacing. + + @param charSpace the character spacing value + @return this Chunk + + + Gets the character spacing. + + @return a value in float + + + Key for word spacing. + + + Sets the word spacing. + + @param wordSpace the word spacing value + @return this Chunk + + + Gets the word spacing. + + @return a value in float + + + Sets the textual expansion of the abbreviation or acronym. + It is highly recommend to set textuual expansion when generating PDF/UA documents. + @param value + + + + A generic Document class. + + + All kinds of Text-elements can be added to a HTMLDocument. + The Document signals all the listeners when an element + has been added.

+

    +
  1. Once a document is created you can add some meta information. +
  2. You can also set the headers/footers. +
  3. You have to open the document before you can write content. +
  4. You can only write content (no more meta-formation!) once a document is opened. +
  5. When you change the header/footer on a certain page, this will be effective starting on the next page. +
  6. Ater closing the document, every listener (as well as its OutputStream) is closed too. +
+
+ + + // creation of the document with a certain size and certain margins + Document document = new Document(PageSize.A4, 50, 50, 50, 50); + try { + // creation of the different writers + HtmlWriter.GetInstance(document, System.out); + PdfWriter.GetInstance(document, new FileOutputStream("text.pdf")); + // we add some meta information to the document + document.AddAuthor("Bruno Lowagie"); + document.AddSubject("This is the result of a Test."); + + // we define a header and a footer + HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false); + HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase(".")); + footer.SetAlignment(Element.ALIGN_CENTER); + document.SetHeader(header); + document.SetFooter(footer); + // we open the document for writing + document.Open(); + document.Add(new Paragraph("Hello world")); + } + catch (DocumentException de) { + Console.Error.WriteLine(de.Message); + } + document.Close(); + + +
+ + Allows the pdf documents to be produced without compression for debugging purposes. + + + Scales the WMF font size. The default value is 0.86. + + + The IDocListener. + + + Is the document open or not? + + + Has the document already been closed? + + + The size of the page. + + + margin in x direction starting from the left + + + margin in x direction starting from the right + + + margin in y direction starting from the top + + + margin in y direction starting from the bottom + + + mirroring of the top/bottom margins + @since 2.1.6 + + + Content of JavaScript onLoad function + + + Content of JavaScript onUnLoad function + + + Style class in HTML body tag + + + Current pagenumber + + + This is a chapter number in case ChapterAutoNumber is used. + + + + Constructs a new Document-object. + + + Has three overloads. + + + + + Constructs a new Document-object. + + the pageSize + + + + Constructs a new Document-object. + + the pageSize + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Adds a IDocListener to the Document. + + the new IDocListener + + + + Removes a IDocListener from the Document. + + the IDocListener that has to be removed. + + + + Adds an Element to the Document. + + the Element to add + true if the element was added, false if not + + + + Opens the document. + + + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Opens the document. + + + Version for languages that are not case-dependant. + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Sets the pagesize. + + the new pagesize + a bool + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + + + Sets the page number. + + an int + + + + Returns the current page number. + + an int + + + + Closes the document. + + + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Closes the document. + + + Version for languages that are not case-dependant. + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Adds a user defined header to the document. + + the name of the header + the content of the header + true if successful, false otherwise + + + + Adds the title to a Document. + + the title + true if successful, false otherwise + + + + Adds the subject to a Document. + + the subject + true if successful, false otherwise + + + + Adds the keywords to a Document. + + keywords to add + true if successful, false otherwise + + + + Adds the author to a Document. + + the name of the author + true if successful, false otherwise + + + + Adds the creator to a Document. + + the name of the creator + true if successful, false otherwise + + + + Adds the producer to a Document. + + true if successful, false otherwise + + + Adds a language to th document. Required for PDF/UA compatible documents. + @param language + @return true if successfull, false otherwise + + + + Adds the current date and time to a Document. + + true if successful, false otherwise + + + + Returns the left margin. + + the left margin + + + + Return the right margin. + + the right margin + + + + Returns the top margin. + + the top margin + + + + Returns the bottom margin. + + the bottom margin + + + + Returns the lower left x-coordinate. + + the lower left x-coordinate + + + + Returns the upper right x-coordinate. + + the upper right x-coordinate. + + + + Returns the upper right y-coordinate. + + the upper right y-coordinate. + + + + Returns the lower left y-coordinate. + + the lower left y-coordinate. + + + + Returns the lower left x-coordinate considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Gets the pagesize. + + the page size + + + + Checks if the document is open. + + true if the document is open + + + + Gets the JavaScript onLoad command. + + the JavaScript onLoad command. + + + + Gets the JavaScript onUnLoad command. + + the JavaScript onUnLoad command + + + + Gets the style class of the HTML body tag + + the style class of the HTML body tag + + + + + Gets the margin mirroring flag. + + @return the margin mirroring flag + + + + Signals that an error has occurred in a Document. + + + + + + + + + Constructs a new DocumentException + + + Has two overloads. + + + + + Construct a new DocumentException + + error message + + + + Constructs a DocumentException with a message and a Exception. + + a message describing the exception + an exception that has to be turned into a DocumentException + + + + An abstract Writer class for documents. + + + DocWriter is the abstract class of several writers such + as PdfWriter and HtmlWriter. + A DocWriter can be added as a DocListener + to a certain Document by getting an instance (see method + GetInstance() in the specific writer-classes). + Every Element added to the original Document + will be written to the stream of the listening + DocWriter. + + + + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + The pageSize. + + + This is the document that has to be written. + + + The stream of this writer. + + + Is the writer open for writing? + + + Do we have to pause all writing actions? + + + Closes the stream on document close + + + + Constructs a DocWriter. + + The Document that has to be written + The Stream the writer has to write to. + + + + Signals that an Element was added to the Document. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class. + + + false + + + + Signals that the Document was opened. + + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + + This does nothing. Has to be overridden if needed. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + + This does nothing. Has to be overridden if needed. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Sets the page number. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + + + Converts a string into a Byte array + according to the ISO-8859-1 codepage. + + the text to be converted + the conversion result + + + + Let the writer know that all writing has to be paused. + + + + Checks if writing is paused. + + @return true if writing temporarely has to be paused, false otherwise. + + + + Let the writer know that writing may be resumed. + + + + + Flushes the Stream. + + + + + Writes a string to the stream. + + the string to write + + + + Writes a number of tabs. + + the number of tabs to add + + + + Writes a key-value pair to the stream. + + the name of an attribute + the value of an attribute + + + + Writes a starttag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + + + + Writes the markup attributes of the specified MarkupAttributes + object to the stream. + + the MarkupAttributes to write. + + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.5 + + + This is a possible type of Element. + @since 5.3.0 + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.2 + + + This is an element thats not an element. + @see WritableDirectElement + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the center + and extra whitespace should be placed equally on + the left and right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the right + indent and extra whitespace should be placed on + the left. + + + + + A possible value for paragraph Element. This + specifies that extra whitespace should be spread + out through the rows of the paragraph with the + text lined up with the left and right indent + except on the last line which should be aligned + to the left. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + Does the same as ALIGN_JUSTIFIED but the last line is also spread out. + + + + + Pure two-dimensional encoding (Group 4) + + + + + Pure one-dimensional encoding (Group 3, 1-D) + + + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows + parameter. The use of this flag will set the key /EndOfBlock to false. + + + + Localizes error messages. The messages are located in the package + com.lowagie.text.error_messages in the form language_country.lng. + The internal file encoding is UTF-8 without any escape chars, it's not a + normal property file. See en.lng for more information on the internal format. + @author Paulo Soares (psoares@glintt.com) + + + Get a message without parameters. + @param key the key to the message + @return the message + + + Get a message with parameters. The parameters will replace the strings + "{1}", "{2}", ..., "{n}" found in the message. + @param key the key to the message + @param p the variable parameter + @return the message + + + Sets the language to be used globally for the error messages. The language + is a two letter lowercase country designation like "en" or "pt". The country + is an optional two letter uppercase code like "US" or "PT". + @param language the language + @param country the country + @return true if the language was found, false otherwise + @throws IOException on error + + + Sets the error messages directly from a Reader. + @param r the Reader + @throws IOException on error + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 It was written for iText 2.0.8, but moved to another package + + + Creates an exception saying the user password was incorrect. + + + Typed exception used when creating PDF syntax that isn't valid. + @since 2.1.6 + + + Creates an exception saying the PDF syntax isn't correct. + @param message some extra info about the exception + + + RuntimeException to indicate that the provided Image is invalid/corrupted. + Should only be thrown/not caught when ignoring invalid images. + @since 5.4.2 + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 + + + Creates an instance of with a message and no cause + @param message the reason why the document isn't a PDF document according to iText. + + + Creates an exception with a message and a cause + @param message the reason why the document isn't a PDF document according to iText. + @param cause the cause of the exception, if any + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document according to iText, + but it's different from the InvalidPdfException in the sense that it may + be an iText limitation (most of the times it isn't but you might have + bumped into something that has been added to the PDF specs, but that isn't + supported in iText yet). + @since 2.1.5 + + + Creates an instance of an UnsupportedPdfException. + @param message the reason why the document isn't a PDF document according to iText. + + + This class can produce String combinations representing a number built with + Greek letters (from alpha to omega, then alpha alpha, alpha beta, alpha gamma). + We are aware of the fact that the original Greek numbering is different; + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a upper case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a Greek letter combination. + @param index the original number + @return the letter combination + + + This class can produce String combinations representing a number. + "a" to "z" represent 1 to 26, "AA" represents 27, "AB" represents 28, + and so on; "ZZ" is followed by "AAA". + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'A' to 'Z'; + 1 = A, 2 = B, ..., 26 = Z, 27 = AA, 28 = AB,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z' + (a = 1, b = 2, ..., z = 26, aa = 27, ab = 28,...). + + + This class can produce String combinations representing a roman number. + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + @param digit the roman digit + @param value the value + @param pre can it be used as a prefix + + + Array with Roman digits. + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into an upper case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a roman number. + @param index the original number + @return the roman number (lower case) + + + + Contains all the specifications of a font: fontfamily, size, style and color. + + + + Paragraph p = new Paragraph("This is a paragraph", + new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + the value of an undefined attribute. + + + the value of the default size. + + + the value of the fontfamily. + + + the value of the fontsize. + + + the value of the style. + + + the value of the color. + + + the external font + + + Copy constructor of a Font + @param other the font that has to be copied + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + + + + Constructs a Font. + + the external font + the size of this font + + + + Constructs a Font. + + the external font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + + + + Constructs a Font. + + the family to which this font belongs + + + + Constructs a Font. + + + Has nine overloads. + + + + + Compares this Font with another + + the other Font + a value + + + + Gets the family of this font. + + the value of the family + + + + Gets the familyname as a string. + + the familyname + + + + Sets the family using a String ("Courier", + "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats"). + + A String representing a certain font-family. + + + + Translates a string-value of a certain family + into the index that is used for this family in this class. + + A string representing a certain font-family + the corresponding index + + + + Get/set the size of this font. + + the size of this font + + + Gets the size that can be used with the calculated BaseFont. + @return the size that can be used with the calculated BaseFont + + + Gets the leading that can be used with this font. + + @param multipliedLeading + a certain multipliedLeading + @return the height of a line + + + + Gets the style of this font. + + the style of this font + + + Gets the style that can be used with the calculated BaseFont. + @return the style that can be used with the calculated BaseFont + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is underlined. + + a boolean + + + + checks if the style of this font is STRIKETHRU. + + a boolean + + + + Sets the style using a String containing one of + more of the following values: normal, bold, italic, underline, strike. + + A String representing a certain style. + + + Sets the style. + @param style the style. + + + + Translates a string-value of a certain style + into the index value is used for this style in this class. + + a string + the corresponding value + + + + Get/set the color of this font. + + the color of this font + + + + Sets the color. + + the red-value of the new color + the green-value of the new color + the blue-value of the new color + + + + Gets the BaseFont inside this object. + + the BaseFont + + + Gets the BaseFont this class represents. + For the built-in fonts a BaseFont is calculated. + @param specialEncoding true to use the special encoding for Symbol and ZapfDingbats, + false to always use Cp1252 + @return the BaseFont this class represents + + + + Checks if the properties of this font are undefined or null. +

+ If so, the standard should be used. +

+ a boolean +
+ + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this static class first and then create fonts in your code using one of the static getFont-method + without having to enter a path as parameter. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks whether the given font is contained within the object + + the name of the font + true if font is contained within the object + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + + This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file. + + + This is a map of fontfamilies. + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in windows + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + A special-version of LIST whitch use greek-letters. + + @see com.lowagie.text.List + + + Initialization + + @param symbolIndent indent + + + Initialisierung + + @param symbolIndent indent + + + Initialisierung + @param greeklower greek-char in lowercase + @param symbolIndent indent + + + change the font to SYMBOL + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + This is an Element that contains + some userdefined meta information about the document. + + + + Header header = new Header("inspired by", "William Shakespeare"); + + + + + This is the content of this chunk of text. + + + + Constructs a Header. + + the name of the meta-information + the content + + + + Returns the name of the meta information. + + a string + + + + List with the HTML translation of all the characters. + + + Set containing tags that trigger a new line. + @since iText 5.0.6 + + + Converts a String to the HTML-format of this String. + + @param string The String to convert + @return a String + + + Converts a BaseColor into a HTML representation of this BaseColor. + + @param color the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + Translates the alignment value. + + @param alignment the alignment value + @return the translated value + + + Returns true if the tag causes a new line like p, br etc. + @since iText 5.0.6 + + + Static final values of supported HTML tags and attributes. + @since 5.0.6 + @deprecated since 5.5.2 + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + The possible value of an alignment attribute. + @since 5.0.6 + + + The possible value of an alignment attribute. + @since 5.0.6 + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + This is used for inline css style information + + + Attribute for specifying externally defined CSS class. + @since 5.0.6 + + + the CSS tag for text color + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + the CSS tag for text decorations + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + Stores the hierarchy of tags along with the attributes of each tag. + @since 5.0.6 renamed from ChainedProperties + @deprecated since 5.5.2 + + + Class that stores the info about one tag in the chain. + + + A possible tag + + + The styles corresponding with the tag + + + Constructs a chained property. + @param tag an XML/HTML tag + @param attrs the tag's attributes + + + A list of chained properties representing the tag hierarchy. + + + Creates a new instance of ChainedProperties + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns a value as soon as a match + is found or null if the key can't be found. + @param key the key of the property + @return the value of the property + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns true as soon as a match is + found or false if the key can't be found. + @param key the key of the property + @return true if the key is found + + + Adds a tag and its corresponding properties to the chain. + @param tag the tags that needs to be added to the chain + @param props the tag's attributes + + + If the properties contain a font size, the size may need to + be adjusted based on font sizes higher in the hierarchy. + @param attrs the attributes that may have to be updated + @since 5.0.6 (renamed) + + + Old iText class that allows you to convert HTML to PDF. + We've completely rewritten HTML to PDF conversion and we made it a separate project named XML Worker. + @deprecated since 5.5.2; please switch to XML Worker instead (this is a separate project) + + + DocListener that will listen to the Elements + produced by parsing the HTML. + This can be a com.lowagie.text.Document adding + the elements to a Document directly, or an + HTMLWorker instance strong the objects in a List + + + The map with all the supported tags. + @since 5.0.6 + + + The object defining all the styles. + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + @param tags A map containing the supported tags + @param style A StyleSheet + @since 5.0.6 + + + Sets the map with supported tags. + @param tags + @since 5.0.6 + + + Setter for the StyleSheet + @param style the StyleSheet + + + Parses content read from a java.io.Reader object. + @param reader the content + @throws IOException + + + Stack with the Elements that already have been processed. + @since iText 5.0.6 (private => protected) + + + Keeps the content of the current paragraph + @since iText 5.0.6 (private => protected) + + + The current hierarchy chain of tags. + @since 5.0.6 + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Dictionary) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + Adds a new line to the currentParagraph. + @since 5.0.6 + + + Flushes the current paragraph, indicating that we're starting + a new block. + If the stack is empty, the paragraph is added to the document. + Otherwise the Paragraph is added to the stack. + @since 5.0.6 + + + Stacks the current paragraph, indicating that we're starting + a new span. + @since 5.0.6 + + + Pushes an element to the Stack. + @param element + @since 5.0.6 + + + Updates the chain with a new tag and new attributes. + @param tag the new tag + @param attrs the corresponding attributes + @since 5.0.6 + + + Updates the chain by removing a tag. + @param tag the new tag + @since 5.0.6 + + + Key used to store the image provider in the providers map. + @since 5.0.6 + + + Key used to store the image processor in the providers map. + @since 5.0.6 + + + Key used to store the image store in the providers map. + @since 5.0.6 + + + Key used to store the image baseurl provider in the providers map. + @since 5.0.6 + + + Key used to store the font provider in the providers map. + @since 5.0.6 + + + Key used to store the link provider in the providers map. + @since 5.0.6 + + + IDictionary containing providers such as a FontProvider or ImageProvider. + @since 5.0.6 (renamed from interfaceProps) + + + Setter for the providers. + If a FontProvider is added, the ElementFactory is updated. + @param providers a IDictionary with different providers + @since 5.0.6 + + + Factory that is able to create iText Element objects. + @since 5.0.6 + + + Creates a Chunk using the factory. + @param content the content of the chunk + @return a Chunk with content + @since 5.0.6 + + + Creates a Paragraph using the factory. + @return a Paragraph without any content + @since 5.0.6 + + + Creates a List object. + @param tag should be "ol" or "ul" + @return a List object + @since 5.0.6 + + + Creates a ListItem object. + @return a ListItem object + @since 5.0.6 + + + Creates a LineSeparator object. + @param attrs properties of the LineSeparator + @return a LineSeparator object + @since 5.0.6 + + + Creates an Image object. + @param attrs properties of the Image + @return an Image object (or null if the Image couldn't be found) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Creates a Cell. + @param tag the tag + @return a CellWrapper object + @since 5.0.6 + + + Adds a link to the current paragraph. + @since 5.0.6 + + + Fetches the List from the Stack and adds it to + the TextElementArray on top of the Stack, + or to the Document if the Stack is empty. + @throws DocumentException + @since 5.0.6 + + + Looks for the List object on the Stack, + and adds the ListItem to the List. + @throws DocumentException + @since 5.0.6 + + + Processes an Image. + @param img + @param attrs + @throws DocumentException + @since 5.0.6 + + + Processes the Table. + @throws DocumentException + @since 5.0.6 + + + Gets the TableWrapper from the Stack and adds a new row. + @since 5.0.6 + + + Stack to keep track of table tags. + + + Boolean to keep track of TR tags. + + + Boolean to keep track of TD and TH tags + + + Boolean to keep track of LI tags + + + Boolean to keep track of PRE tags + @since 5.0.6 renamed from isPRE + + + Indicates if text needs to be skipped. + @since iText 5.0.6 (private => protected) + + + Pushes the values of pendingTR and pendingTD + to a state stack. + @since 5.0.6 + + + Pops the values of pendingTR and pendingTD + from a state stack. + @since 5.0.6 + + + @return the pendingTR + @since 5.0.6 + + + @param pendingTR the pendingTR to set + @since 5.0.6 + + + @return the pendingTD + @since 5.0.6 + + + @param pendingTD the pendingTD to set + @since 5.0.6 + + + @return the pendingLI + @since 5.0.6 + + + @param pendingLI the pendingLI to set + @since 5.0.6 + + + @return the insidePRE + @since 5.0.6 + + + @param insidePRE the insidePRE to set + @since 5.0.6 + + + @return the skipText + @since 5.0.6 + + + @param skipText the skipText to set + @since 5.0.6 + + + The resulting list of elements. + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param tags a map containing supported tags and their processors + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + @since 5.0.6 + + + @see com.itextpdf.text.ElementListener#add(com.itextpdf.text.Element) + + + @see com.itextpdf.text.DocListener#close() + + + @see com.itextpdf.text.DocListener#newPage() + + + @see com.itextpdf.text.DocListener#open() + + + @see com.itextpdf.text.DocListener#resetPageCount() + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + @since 2.1.6 + + + @see com.itextpdf.text.DocListener#setMargins(float, float, float, float) + + + @see com.itextpdf.text.DocListener#setPageCount(int) + + + @see com.itextpdf.text.DocListener#setPageSize(com.itextpdf.text.Rectangle) + + + Sets the providers. + @deprecated use SetProviders() instead + + + Gets the providers + @deprecated use GetProviders() instead + + + @deprecated since 5.5.2 + + + Old class to define styles for HTMLWorker. + We've completely rewritten HTML to PDF functionality; see project XML Worker. + XML Worker is able to parse CSS files and "style" attribute values. + @deprecated since 5.5.2 + + + IDictionary storing tags and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + IDictionary storing possible names of the "class" attribute + and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + Creates a new instance of StyleSheet + + + Associates a IDictionary containing styles with a tag. + @param tag the name of the HTML/XML tag + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param tag the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Associates a IDictionary containing styles with a class name. + @param className the value of the class attribute + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param className the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Resolves the styles based on the tag name and the value + of the class attribute. + @param tag the tag that needs to be resolved + @param attrs existing style map that will be updated + + + Method contributed by Lubos Strapko + @param h + @param chain + @since 2.1.3 + + + We use a CellWrapper because we need some extra info + that isn't available in PdfPCell. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The cell that is wrapped in this stub. + + + The width of the cell. + @since iText 5.0.6 + + + Indicates if the width is a percentage. + @since iText 5.0.6 + + + Creates a new instance of IncCell. + @param tag the cell that is wrapped in this object. + @param chain properties such as width + @since 5.0.6 + + + Creates a PdfPCell element based on a tag and its properties. + @param tag a cell tag + @param chain the hierarchy chain + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Factory that produces iText Element objects, + based on tags and their properties. + @author blowagie + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The font provider that will be used to fetch fonts. + @since iText 5.0 This used to be a FontFactoryImp + + + Creates a new instance of FactoryProperties. + + + Setter for the font provider + @param provider + @since 5.0.6 renamed from setFontImp + + + Creates a Font object based on a chain of properties. + @param chain chain of properties + @return an iText Font object + + + Creates an iText Chunk + @param content the content of the Chunk + @param chain the hierarchy chain + @return a Chunk + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a Paragraph without any content + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a ListItem without any content + + + Method that does the actual Element creating for + the createParagraph and createListItem method. + @param paragraph + @param chain + + + Sets the leading of a Paragraph object. + @param paragraph the Paragraph for which we set the leading + @param leading the String value of the leading + + + Gets a HyphenationEvent based on the hyphenation entry in + the hierarchy chain. + @param chain the hierarchy chain + @return a HyphenationEvent + @since 2.1.2 + + + Creates a LineSeparator. + @since 5.0.6 + + + This class maps tags such as div and span to their corresponding + TagProcessor classes. + @deprecated since 5.5.2 + + + Creates a Map containing supported tags. + + + Object that processes the following tags: + i, em, b, strong, s, strike, u, sup, sub + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Maps em to i, strong to b, and strike to s. + This is a convention: the style parser expects i, b and s. + @param tag the original tag + @return the mapped tag + + + Object that processes the a tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Object that processes the br tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Interface that needs to be implemented by every tag that is supported by HTMLWorker. + @deprecated since 5.5.2 + + + Implement this class to tell the HTMLWorker what to do + when an open tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @param attrs the current attributes of the tag + @throws DocumentException + @throws IOException + + + Implement this class to tell the HTMLWorker what to do + when an close tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @throws DocumentException + + + Implement this interface to process images and + to indicate if the image needs to be added or + skipped. + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Allows you to (pre)process the image before (or instead of) + adding it to the DocListener with HTMLWorker. + @param img the Image object + @param attrs attributes of the image + @param chain hierarchy of attributes + @param doc the DocListener to which the Image needs to be added + @return false if you still want HTMLWorker to add the Image + + + Allows you to do additional processing on a Paragraph that contains a link. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Does additional processing on a link paragraph + @param current the Paragraph that has the link + @param attrs the attributes + @return false if the Paragraph no longer needs processing + + + @since 5.0.6 + @deprecated since 5.5.2 + + + We use a TableWrapper because PdfPTable is rather complex + to put on the HTMLWorker stack. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The styles that need to be applied to the table + @since 5.0.6 renamed from props + + + Nested list containing the PdfPCell elements that are part of this table. + + + Array containing the widths of the columns. + @since iText 5.0.6 + + + Creates a new instance of IncTable. + @param attrs a Map containing attributes + + + Adds a new row to the table. + @param row a list of PdfPCell elements + + + Setter for the column widths + @since iText 5.0.6 + + + Creates a new PdfPTable based on the info assembled + in the table stub. + @return a PdfPTable + + + This class is a HashMap that contains the names of colors as a key and the + corresponding Color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + @author blowagie + @deprecated since 5.5.2 + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + @param colStr + A non-null, lower case string that might describe an RGB color + in hex. + @return Is this a web color hex string without the leading #? + @since 5.0.6 + + + Gives you a BaseColor based on a name. + + @param name + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + @return the corresponding BaseColor object. Never returns null. + @throws IllegalArgumentException + if the String isn't a know representation of a color. + + + A class that contains some utilities to parse HTML attributes and content. + @since 5.0.6 (some of these methods used to be in the Markup class) + @deprecated since 5.5.2 + + + a default value for font-size + @since 2.1.3 + + + Parses a length. + + @param str + a length in the form of an optional + or -, followed by a + number and a unit. + @return a float + + + New method contributed by: Lubos Strapko + + @since 2.1.3 + + + Converts a BaseColor into a HTML representation of this + BaseColor. + + @param s + the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + This method parses a String with attributes and returns a Properties + object. + + @param str + a String of this form: 'key1="value1"; key2="value2";... + keyN="valueN" ' + @return a Properties object + + + Removes the comments sections of a String. + + @param str + the original String + @param startComment + the String that marks the start of a Comment section + @param endComment + the String that marks the end of a Comment section. + @return the String stripped of its comment section + + + Helper class that reduces the white space in a String + @param content content containing whitespace + @return the content without all unnecessary whitespace + + + A series of predefined font sizes. + @since 5.0.6 (renamed) + + + Picks a font size from a series of predefined font sizes. + @param value the new value of a font, expressed as an index + @param previous the previous value of the font size + @return a new font size. + + + Translates a String value to an alignment value. + (written by Norman Richards, integrated into iText by Bruno) + @param alignment a String (one of the ALIGN_ constants of this class) + @return an alignment value (one of the ALIGN_ constants of the Element interface) + + + + A class that implements DocListener will perform some + actions when some actions are performed on a Document. + + + + + + + + Signals that the Document has been opened and that + Elements can be added. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + The output stream of every writer implementing IDocListener will be closed. + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Parameter that allows you to do margin mirroring (odd/even pages) + @param marginMirroring + @return true if succesfull + + + Parameter that allows you to do top/bottom margin mirroring (odd/even pages) + @param marginMirroringTopBottom + @return true if successful + @since 2.1.6 + + + + Sets the page number. + + the new page number + + + + Sets the page number to 0. + + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + Checks if this element is a content object. + If not, it's a metadata object. + @since iText 2.0.8 + @return true if this is a 'content' element; false if this is a 'medadata' element + + + Checks if this element is nestable. + @since iText 2.0.8 + @return true if this element can be nested inside other elements. + + + + Gets all the chunks in this element. + + an ArrayList + + + + Gets the content of the text element. + + the content of the text element + + + + A class that implements ElementListener will perform some + actions when an Element is added. + + + + + Signals that an Element was added to the Document. + + Element added + true if the element was added, false if not. + + + These two methods are used by FactoryProperties (for HTMLWorker). + It's implemented by FontFactoryImp. + @since iText 5.0 + + + Checks if a certain font is registered. + + @param fontname the name of the font that has to be checked. + @return true if the font is found + + + Constructs a Font-object. + + @param fontname the name of the font + @param encoding the encoding of the font + @param embedded true if the font is to be embedded in the PDF + @param size the size of this font + @param style the style of this font + @param color the BaseColor of this font. + @return the Font constructed based on the parameters + + + Interface implemented by Element objects that can potentially consume + a lot of memory. Objects implementing the LargeElement interface can + be added to a Document more than once. If you have invoked setCompleted(false), + they will be added partially and the content that was added will be + removed until you've invoked setCompleted(true); + @since iText 2.0.8 + + + If you invoke setCompleted(false), you indicate that the content + of the object isn't complete yet; it can be added to the document + partially, but more will follow. If you invoke setCompleted(true), + you indicate that you won't add any more data to the object. + @since iText 2.0.8 + @param complete false if you'll be adding more data after + adding the object to the document. + + + Flushes the content that has been added. + + + + An Image is the representation of a graphic element (JPEG, PNG or GIF) + that has to be inserted into the document + + + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The imagetype. + + + The URL of the image. + + + The raw data of the image. + + + The template to be treated as an image. + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + if the annotation is not null the image will be clickable. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalType. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + + Constructs an Image-object, using an url. + + the URL where the image can be found. + + + + Constructs an Image object duplicate. + + another Image object. + + + + Gets an instance of an Image. + + an Image + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + a byte array + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image from a System.Drwaing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + + Gets an instance of an Image from a System.Drawing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + an object of type ImgRaw + + + + Gets an instance of an Image. + + a filename + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + an object of type ImgRaw + + + Creates a JBIG2 Image. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + @since 2.1.5 + + + Reuses an existing image. + @param ref the reference to the image dictionary + @throws BadElementException on error + @return the image + + + + Gets an instance of an Image in raw mode. + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + + + + + + + + + + + + + + + + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + + transparency information in the Mask format of the + image dictionary + + an object of type ImgRaw + + + + Sets the absolute position of the Image. + + + + + + + Scale the image to the dimensions of the rectangle + + dimensions to scale the Image + + + + Scale the image to an absolute width and an absolute height. + + the new width + the new height + + + + Scale the image to an absolute width. + + the new width + + + + Scale the image to an absolute height. + + the new height + + + + Scale the image to a certain percentage. + + the scaling percentage + + + + Scale the width and height of an image to a certain percentage. + + the scaling percentage of the width + the scaling percentage of the height + + + + Scales the images to the dimensions of the rectangle. + + the dimensions to fit + + + + Scales the image so that it fits a certain width and height. + + the width to fit + the height to fit + + + Gets the current image rotation in radians. + @return the current image rotation in radians + + + + Sets the rotation of the image in radians. + + rotation in radians + + + + Sets the rotation of the image in degrees. + + rotation in degrees + + + + Get/set the annotation. + + the Annotation + + + + Gets the bpc for the image. + + + this only makes sense for Images of the type RawImage. + + a bpc value + + + + Gets the raw data for the image. + + + this only makes sense for Images of the type RawImage. + + the raw data + + + + Get/set the template to be used as an image. + + + this only makes sense for Images of the type ImgTemplate. + + the template + + + + Checks if the Images has to be added at an absolute position. + + a bool + + + + Checks if the Images has to be added at an absolute X position. + + a bool + + + + Returns the absolute X position. + + a position + + + + Returns the absolute Y position. + + a position + + + + Returns the type. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Returns true if the image is a Jpeg-object. + + a bool + + + + Returns true if the image is a ImgRaw-object. + + a bool + + + + Returns true if the image is an ImgTemplate-object. + + a bool + + + + Gets the string-representation of the reference to the image. + + a string + + + + Get/set the alignment for the image. + + a value + + + + Get/set the alternative text for the image. + + a string + + + + Gets the scaled width of the image. + + a value + + + + Gets the scaled height of the image. + + a value + + + + Gets the colorspace for the image. + + + this only makes sense for Images of the type Jpeg. + + a colorspace value + + + + Returns the transformation matrix of the image. + + an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + Returns the transformation matrix of the image. + + @return an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + + Returns the transparency. + + the transparency + + + + Gets the plain width of the image. + + a value + + + + Gets the plain height of the image. + + a value + + + + generates new serial id + + + + + returns serial id for this object + + + + + Gets the dots-per-inch in the X direction. Returns 0 if not available. + + the dots-per-inch in the X direction + + + + Gets the dots-per-inch in the Y direction. Returns 0 if not available. + + the dots-per-inch in the Y direction + + + Sets the dots per inch value + + @param dpiX + dpi for x coordinates + @param dpiY + dpi for y coordinates + + + + Returns true if this Image has the + requisites to be a mask. + + true if this Image can be a mask + + + + Make this Image a mask. + + + + + Get/set the explicit masking. + + the explicit masking + + + + Returns true if this Image is a mask. + + true if this Image is a mask + + + + Inverts the meaning of the bits of a mask. + + true to invert the meaning of the bits of a mask + + + + Sets the image interpolation. Image interpolation attempts to + produce a smooth transition between adjacent sample values. + + New value of property interpolation. + + + Tags this image with an ICC profile. + @param profile the profile + + + Checks is the image has an ICC profile. + @return the ICC profile or null + + + Indicates if the image should be scaled to fit the line + when the image exceeds the available width. + @since iText 5.0.6 + + + Indicates if the image should be scaled to fit + when the image exceeds the available height. + @since iText 5.4.2 + + + Gets and sets the value of scaleToFitHeight. + @return true if the image size has to scale to the available height + @since iText 5.4.2 + + + Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray. + + + Some image formats, like TIFF may present the images rotated that have + to be compensated. + + + Sets the compression level to be used if the image is written as a compressed stream. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + CCITT Image data that has to be inserted into the document + + @see Element + @see Image + + @author Paulo Soares + + CCITT Image data that has to be inserted into the document + + + + + + + Creats an Image in CCITT mode. + + the exact width of the image + the exact height of the image + + reverses the bits in data. + Bit 0 is swapped with bit 7 and so on + + + the type of compression in data. It can be + CCITTG4, CCITTG31D, CCITTG32D + + + parameters associated with this stream. Possible values are + CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a + combination of them + + the image data + + + Support for JBIG2 images. + @since 2.1.5 + + + JBIG2 globals + + + A unique hash + + + Copy contstructor. + @param image another Image + + + Empty constructor. + + + Actual constructor for ImgJBIG2 images. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + + + Getter for the JBIG2 global data. + @return an array of bytes + + + Getter for the unique hash. + @return an array of bytes + + + + Raw Image data that has to be inserted into the document + + + + + + + Creats an Image in raw mode. + + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + data the image data + + + + PdfTemplate that has to be inserted into the document + + + + + + + Creats an Image from a PdfTemplate. + + the Image + + + + Creats an Image from a PdfTemplate. + + the PdfTemplate + + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + @see Element + @see Image + @see Gif + @see Png + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + + + + Constructs an ImgWMF-object + + a Image + + + + Constructs an ImgWMF-object, using an url. + + the URL where the image can be found + + + + Constructs an ImgWMF-object, using a filename. + + a string-representation of the file that contains the image. + + + + Constructs an ImgWMF-object from memory. + + the memory image + + + + This method checks if the image is a valid WMF and processes some parameters. + + + + + Reads the WMF into a template. + + the template to read to + + + A RandomAccessSource that is based on an underlying byte array + @since 5.3.5 + + + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + A RandomAccessSource that is based on a set of underlying sources, treating the sources as if they were a contiguous block of data. + @since 5.3.5 + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + Constructs a new {@link GroupedRandomAccessSource} based on the specified set of sources + @param sources the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently (for example {@link FileChannelRandomAccessSource} takes advantage of fixed size page buffers to compute the index) + @param offset the offset + @return the index of the input source that contains the specified offset, or 0 if unknown + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup when the source is no longer the active source + @param offset the offset of the byte to look for + @return the SourceEntry that contains the byte at the specified offset + @throws IOException if there is a problem with IO (usually the result of the sourceReleased() call) + + + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + @param source the source that is no longer the active source + @throws IOException if there are any problems + + + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + @param source the source that is about to become the active source + @throws IOException if there are any problems + + + {@inheritDoc} + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Closes all of the underlying sources + + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + @param index the index + @param source the source + @param offset the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + @param absoluteOffset the offset in the parent GroupedRandomAccessSource + @return the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSouce but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + @since 5.3.5 + + + Gets a byte at the specified position + @param position + @return the byte, or -1 if EOF is reached + + + Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be + read will be placed in bytes and the number actually read will be returned. + @param position the position in the RandomAccessSource to read from + @param bytes output buffer + @param off offset into the output buffer where results will be placed + @param len the number of bytes to read + @return the number of bytes actually read, or -1 if the file is at EOF + + + @return the length of this source + + + Closes this source. The underlying data structure or source (if any) will also be closed + @throws IOException + + + + A RandomAccessSource that uses a {@link RandomAccessFile} as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + The source + + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of IOExceptions when reading the length. + + + Creates this object + @param raf the source for this RandomAccessSource + @throws IOException if the RAF can't be read + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Note: the length is determined when the {@link RAFRandomAccessSource} is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + Closes the underlying RandomAccessFile + + + Factory to create {@link RandomAccessSource} objects based on various types of sources + @since 5.3.5 + + + + whether the full content of the source should be read into memory at construction + + + Whether {@link RandomAccessFile} should be used instead of a {@link FileChannel}, where applicable + + + Whether the underlying file should have a RW lock on it or just an R lock + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + Determines whether the full content of the source will be read into memory + @param forceRead true if the full content will be read, false otherwise + @return this object (this allows chaining of method calls) + + + Creates a {@link RandomAccessSource} based on a byte array + @param data the byte array + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a URL. The data available at the URL is read into memory and used + as the source for the {@link RandomAccessSource} + @param url the url to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on an {@link InputStream}. The full content of the InputStream is read into memory and used + as the source for the {@link RandomAccessSource} + @param is the stream to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if forceRead is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened using {@link RandomAccessFile} access (if usePlainRandomAccess is true) + This call will automatically failover to using {@link RandomAccessFile} if the memory map operation fails + @param filename the name of the file or resource to create the {@link RandomAccessSource} for + @return the newly created {@link RandomAccessSource} + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + An input stream that uses a RandomAccessSource as it's underlying source + @since 5.3.5 + + + The source + + + The current position in the source + + + Creates an input stream based on the source + @param source the source + + + Utility class with commonly used stream operations + @since 5.3.5 + + + + Reads the full content of a stream and returns them in a byte array + @param is the stream to read + @return a byte array containing all of the bytes from the stream + @throws IOException if there is a problem reading from the input stream + + + Gets the font resources. + @param key the name of the resource + @return the Stream to get the resource or + null if not found + + + A RandomAccessSource that wraps another RandomAccessSouce and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + @since 5.3.5 + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + @param source the source + @param offset the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + @param source the source + @param offset the amount of the offset to use + @param length the number of bytes to be included in this RAS + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the length will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + + + The RTF jar depends on the iText jar, but the iText jar may not + depend on the RTF jar. This interface offers a temporary solution + until we find a more elegant way to solve this. + + + + Interface for customizing the split character. + + + + + + Interface for a text element to which other objects can be added. + + + + + + + + + + + + Adds an object to the TextElementArray. + + an object that has to be added + true if the addition succeeded; false otherwise + + + + An Jpeg is the representation of a graphic element (JPEG) + that has to be inserted into the document + + + + + + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Construct a Jpeg-object, using a Image + + a Image + + + + Constructs a Jpeg-object, using an Uri. + + + Deprecated, use Image.GetInstance(...) to create an Image + + the Uri where the image can be found + + + + Constructs a Jpeg-object from memory. + + the memory image + + + + Constructs a Jpeg-object from memory. + + the memory image. + the width you want the image to have + the height you want the image to have + + + + Reads a short from the Stream. + + the Stream + an int + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Returns a type of marker. + + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + + This method checks if the image is a valid JPEG and processes some parameters. + + + + An Jpeg2000 is the representation of a graphic element (JPEG) + that has to be inserted into the document + + @see Element + @see Image + + + Constructs a Jpeg2000-object, using an url. + + @param url the URL where the image can be found + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image. + @param width the width you want the image to have + @param height the height you want the image to have + @throws BadElementException + @throws IOException + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + A List contains several ListItems. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + +
+ + a possible value for the numbered parameter + + + a possible value for the numbered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + This is the ArrayList containing the different ListItems. + + + Indicates if the list has to be numbered. + + + Indicates if the listsymbols are numerical or alphabetical. + + + Indicates if the listsymbols are lowercase or uppercase. + + + Indicates if the indentation has to be set automatically. + + + Indicates if the indentation of all the items has to be aligned. + + + This variable indicates the first number of a numbered list. + + + This is the listsymbol of a list that is not numbered. + + + In case you are using numbered/lettered lists, this String is added before the number/letter. + @since iText 2.1.1 + + + In case you are using numbered/lettered lists, this String is added after the number/letter. + @since iText 2.1.1 + + + The indentation of this list on the left side. + + + The indentation of this list on the right side. + + + The indentation of the listitems. + + + Constructs a List. + + + Constructs a List with a specific symbol indentation. + @param symbolIndent the symbol indentation + @since iText 2.0.8 + + + Constructs a List. + + @param numbered a bool + + + Constructs a List. + + @param numbered a bool + @param lettered has the list to be 'numbered' with letters + + + + Constructs a List. + + + the parameter symbolIndent is important for instance when + generating PDF-documents; it indicates the indentation of the listsymbol. + + a bool + the indentation that has to be used for the listsymbol + + + + Constructs a List. + + a bool + a bool + the indentation that has to be used for the listsymbol + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + Adds an Object to the List. + + the object to add + true is successful + + + Makes sure all the items in the list have the same indentation. + + + + Alias for VB.NET compatibility. + + + + + Get/set the first number + + an int + + + + Sets the symbol + + a Chunk + + + + Sets the listsymbol. + + + This is a shortcut for SetListSymbol(Chunk symbol). + + a string + + + + Get/set the indentation of this paragraph on the left side. + + the indentation + + + + Get/set the indentation of this paragraph on the right side. + + the indentation + + + + Gets the symbol indentation. + + the symbol indentation + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Gets all the items in the list. + + an ArrayList containing ListItems + + + + Gets the size of the list. + + a size + + + Returns true if the list is empty. + + @return true if the list is empty + + + + Gets the leading of the first listitem. + + a leading + + + + Get/set the symbol indentation. + + a Chunk + + + Returns the String that is after a number or letter in the list symbol. + @return the String that is after a number or letter in the list symbol + @since iText 2.1.1 + + + Sets the String that has to be added after a number or letter in the list symbol. + @since iText 2.1.1 + @param postSymbol the String that has to be added after a number or letter in the list symbol. + + + Sets the String that has to be added before a number or letter in the list symbol. + @since iText 2.1.1 + @param preSymbol the String that has to be added before a number or letter in the list symbol. + + + + A ListItem is a Paragraph + that can be added to a List. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + + +
+ + this is the symbol that wil proceed the listitem. + + + + Constructs a ListItem. + + + + + Constructs a ListItem with a certain leading. + + the leading + + + + Constructs a ListItem with a certain Chunk. + + a Chunk + + + + Constructs a ListItem with a certain string. + + a string + + + + Constructs a ListItem with a certain string + and a certain Font. + + a string + a string + + + + Constructs a ListItem with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a ListItem with a certain string + and a certain leading. + + the leading + a string + + + Constructs a ListItem with a certain leading, string + and Font. + + @param leading the leading + @param string a string + @param font a Font + + Constructs a ListItem with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a ListItem with a certain Phrase. + + a Phrase + + + + Gets the type of the text element. + + a type + + + + Get/set the listsymbol. + + a Chunk + + + Sets the indentation of this paragraph on the left side. + + @param indentation the new indentation + + + Changes the font of the list symbol to the font of the first chunk + in the list item. + @since 5.0.6 + + + Factory that creates a counter for every reader or writer class. + You can implement your own counter and declare it like this: + CounterFactory.getInstance().setCounter(new SysoCounter()); + SysoCounter is just an example of a Counter implementation. + It writes info about files being read and written to the System.out. + + This functionality can be used to create metrics in a SaaS context. + + + The singleton instance. + + + The current counter implementation. + + + The empty constructor. + + + Returns the singleton instance of the factory. + + + Returns a counter factory. + + + Getter for the counter. + + + Setter for the counter. + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass + @return this Counter implementation + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Interface that can be implemented if you want to count the number of documents + that are being processed by iText. + + Implementers may use this method to record actual system usage for licensing purposes + (e.g. count the number of documents or the volumne in bytes in the context of a SaaS license). + + + Gets a Counter instance for a specific class. + + + This method gets triggered if a file is read. + @param l the length of the file that was written + + + This method gets triggered if a file is written. + @param l the length of the file that was written + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass The Class asking for the Counter + @return the Counter instance + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + The name of the class for which the Counter was created + (or iText if no name is available) + + + Empty SysoCounter constructor. + + + Constructs a SysoCounter for a specific class. + @param klass + + + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Logger interface + {@link LoggerFactory#setLogger(Logger)}. + + @author redlab_b + + + + @param klass + @return the logger for the given klass + + + @param level + @return true if there should be logged for the given level + + + Log a warning message. + @param message + + + Log a trace message. + @param message + + + Log a debug message. + @param message + + + Log an info message. + @param message + + + Log an error message. + @param message + + + Log an error message and exception. + @param message + @param e + + + The different log levels. + @author redlab_b + + + + LoggerFactory can be used to set a logger. The logger should be created by + implementing {@link Logger}. In the implementation users can choose how they + log received messages. Added for developers. For some cases it can be handy + to receive logging statements while developing applications with iText + + @author redlab_b + + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param klass + @return the logger. + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param name + @return the logger. + + + Returns the LoggerFactory + @return singleton instance of this LoggerFactory + + + Set the global logger to process logging statements with. + + @param logger the logger + + + Get the logger. + + @return the logger + + + The no-operation logger, it does nothing with the received logging + statements. And returns false by default for {@link NoOpLogger#isLogging(Level)} + + @author redlab_b + + + + A Simple System.out logger. + @author redlab_be + + + + Defaults packageReduce to 1. + + + Amount of characters each package name should be reduced with. + @param packageReduce + + + + @param klass + @param shorten + + + @param name2 + @return + + + Wrapper that allows to add properties to 'basic building block' objects. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + The element that is wrapped in a MarkedObject. + + + Contains extra markupAttributes + + + This constructor is for internal use only. + + + Creates a MarkedObject. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets the type of the text element. + + @return a type + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + @return the markupAttributes + + + Wrapper that allows to add properties to a Chapter/Section object. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + This is the title of this section. + + + Creates a MarkedObject with a Section or Chapter object. + @param section the marked section + + + Adds a Paragraph, List or Table + to this Section. + + @param index index at which the specified element is to be inserted + @param o an object of type Paragraph, List or Table= + @throws ClassCastException if the object is not a Paragraph, List or Table + + + Adds a Paragraph, List, Table or another Section + to this Section. + + @param o an object of type Paragraph, List, Table or another Section + @return a bool + @throws ClassCastException if the object is not a Paragraph, List, Table or Section + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Adds a collection of Elements + to this Section. + + @param collection a collection of Paragraphs, Lists and/or Tables + @return true if the action succeeded, false if not. + @throws ClassCastException if one of the objects isn't a Paragraph, List, Table + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @return a new Section object + + + Creates a Section, add it to this Section and returns it. + + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @return a new Section object + + + Sets the title of this section. + + @param title the new title + + + + Sets the indentation of this Section on the left side. + + @param indentation the indentation + + + Sets the indentation of this Section on the right side. + + @param indentation the indentation + + + Sets the indentation of the content of this Section. + + @param indentation the indentation + + + Setter for property bookmarkOpen. + @param bookmarkOpen false if the bookmark children are not + visible. + + + Setter for property triggerNewPage. + @param triggerNewPage true if a new page has to be triggered. + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Adds a new page to the section. + @since 2.1.1 + + + + This is an Element that contains + some meta information about the document. + + + An object of type Meta can not be constructed by the user. + Userdefined meta information should be placed in a Header-object. + Meta is reserved for: Subject, Keywords, Author, Title, Producer + and Creationdate information. + + + + + + This is the type of Meta-information this object contains. + + + This is the content of the Meta-information. + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + + Constructs a Meta. + + the type of meta-information + the content + + + + Constructs a Meta. + + the tagname of the meta-information + the content + + + + Processes the element by adding it (or the different parts) to a + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + appends some text to this Meta. + + a string + a StringBuilder + + + + Returns the content of the meta information. + + a string + + + + Returns the name of the meta information. + + a string + + + + Returns the name of the meta information. + + name to match + a string + + + + The PageSize-object contains a number of read only rectangles representing the most common paper sizes. + + + + + This is the letter format + + + This is the note format + + + This is the legal format + + + This is the tabloid format + + + This is the executive format + + + This is the postcard format + + + This is the a0 format + + + This is the a1 format + + + This is the a2 format + + + This is the a3 format + + + This is the a4 format + + + This is the a5 format + + + This is the a6 format + + + This is the a7 format + + + This is the a8 format + + + This is the a9 format + + + This is the a10 format + + + This is the b0 format + + + This is the b1 format + + + This is the b2 format + + + This is the b3 format + + + This is the b4 format + + + This is the b5 format + + + This is the b6 format + + + This is the b7 format + + + This is the b8 format + + + This is the b9 format + + + This is the b10 format + + + This is the archE format + + + This is the archD format + + + This is the archC format + + + This is the archB format + + + This is the archA format + + + This is the American Foolscap format + + + This is the European Foolscap format + + + This is the halfletter format + + + This is the 11x17 format + + + This is the ISO 7810 ID-1 format (85.60 x 53.98 mm or 3.370 x 2.125 inch) + + + This is the ISO 7810 ID-2 format (A7 rotated) + + + This is the ISO 7810 ID-3 format (B7 rotated) + + + This is the ledger format + + + This is the Crown Quarto format + + + This is the Large Crown Quarto format + + + This is the Demy Quarto format. + + + This is the Royal Quarto format. + + + This is the Crown Octavo format + + + This is the Large Crown Octavo format + + + This is the Demy Octavo format + + + This is the Royal Octavo format. + + + This is the small paperback format. + + + This is the Pengiun small paperback format. + + + This is the Penguin large paparback format. + + + This is the letter format + @since iText 5.0.6 + + + This is the legal format + @since iText 5.0.6 + + + This is the a4 format + @since iText 5.0.6 + + + This method returns a Rectangle based on a String. + Possible values are the the names of a constant in this class + (for instance "A4", "LETTER",...) or a value like "595 842" + + + + A Paragraph is a series of Chunks and/or Phrases. + + + A Paragraph has the same qualities of a Phrase, but also + some additional layout-parameters: +
    +
  • the indentation +
  • the alignment of the text +
+
+ + + Paragraph p = new Paragraph("This is a paragraph", + FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + +
+ + The alignment of the text. + + + The indentation of this paragraph on the left side. + + + The indentation of this paragraph on the right side. + + + Holds value of property firstLineIndent. + + + The spacing before the paragraph. + + + The spacing after the paragraph. + + + Holds value of property extraParagraphSpace. + + + Does the paragraph has to be kept together on 1 page. + + + + Constructs a Paragraph. + + + + + Constructs a Paragraph with a certain leading. + + the leading + + + + Constructs a Paragraph with a certain Chunk. + + a Chunk + + + + Constructs a Paragraph with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a Paragraph with a certain string. + + a string + + + + Constructs a Paragraph with a certain string + and a certain Font. + + a string + a Font + + + + Constructs a Paragraph with a certain string + and a certain leading. + + the leading + a string + + + + Constructs a Paragraph with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a Paragraph with a certain Phrase. + + a Phrase + + + Creates a shallow clone of the Paragraph. + @return + + + Creates a shallow clone of the Paragraph. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + + Gets the type of the text element. + + a type + + + + Adds an Object to the Paragraph. + + the object to add + a bool + + + + Get/set the alignment of this paragraph. + + a integer + + + + Get/set the indentation of this paragraph on the left side. + + a float + + + + Get/set the indentation of this paragraph on the right side. + + a float + + + + Set/get if this paragraph has to be kept together on one page. + + a bool + + + + A Phrase is a series of Chunks. + + + A Phrase has a main Font, but some chunks + within the phrase can have a Font that differs from the + main Font. All the Chunks in a Phrase + have the same leading. + + + + // When no parameters are passed, the default leading = 16 + Phrase phrase0 = new Phrase(); + Phrase phrase1 = new Phrase("this is a phrase"); + // In this example the leading is passed as a parameter + Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16"); + // When a Font is passed (explicitely or embedded in a chunk), the default leading = 1.5 * size of the font + Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.GetFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0))); + Phrase phrase4 = new Phrase(new Chunk("this is a phrase")); + Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + + + + + This is the leading of this phrase. + + + The text leading that is multiplied by the biggest font size in the line. + + + This is the font of this phrase. + + + Null, unless the Phrase has to be hyphenated. + @since 2.1.2 + + + Predefined tab position and properties(alignment, leader and etc.); + @since 5.4.1 + + + + Constructs a Phrase without specifying a leading. + + + Has nine overloads. + + + + Copy constructor for Phrase. + + + + Constructs a Phrase with a certain leading. + + the leading + + + + Constructs a Phrase with a certain Chunk. + + a Chunk + + + + Constructs a Phrase with a certain Chunk and a certain leading. + + the leading + a Chunk + + + + Constructs a Phrase with a certain string. + + a string + + + + Constructs a Phrase with a certain string and a certain Font. + + a string + a Font + + + + Constructs a Phrase with a certain leading and a certain string. + + the leading + a string + + + + Processes the element by adding it (or the different parts) to an + . + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Chunk, an Anchor or another Phrase + to this Phrase. + + index at which the specified element is to be inserted + an object of type Chunk, Anchor, or Phrase + + + Adds a String to this Phrase. + + @param s a string + @return a boolean + @since 5.0.1 + + + + Adds a Chunk, Anchor or another Phrase + to this Phrase. + + an object of type Chunk, Anchor or Phrase + a bool + + + + Adds a collection of Chunks + to this Phrase. + + a collection of Chunks, Anchors and Phrases. + true if the action succeeded, false if not. + + + + Adds a Chunk. + + + This method is a hack to solve a problem I had with phrases that were split between chunks + in the wrong place. + + a Chunk + a bool + + + + Adds a Object to the Paragraph. + + the object to add. + + + + Checks is this Phrase contains no or 1 empty Chunk. + + + false if the Phrase + contains more than one or more non-emptyChunks. + + + + + + + Gets/sets the leading of this phrase. + + the linespacing + + + Gets the total leading. + This method is based on the assumption that the + font of the Paragraph is the font of all the elements + that make part of the paragraph. This isn't necessarily + true. + @return the total leading (fixed and multiplied) + + + + Gets the font of the first Chunk that appears in this Phrase. + + a Font + + + Returns the content as a String object. + This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase. + + + Setter/getter for the hyphenation. + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Setter/getter for the tabSettings. + @param tabSettings a TabSettings instance + @since 5.4.1 + + + Constructs a Phrase that can be used in the static GetInstance() method. + @param dummy a dummy parameter + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @param font + @return a newly constructed Phrase + + + + A Rectangle is the representation of a geometric figure. + + + + + + + + This is the value that will be used as undefined. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents a rectangle without borders. + + + This represents a type of border. + + + the lower left x-coordinate. + + + the lower left y-coordinate. + + + the upper right x-coordinate. + + + the upper right y-coordinate. + + + This represents the status of the 4 sides of the rectangle. + + + This is the width of the border around this rectangle. + + + This is the color of the border of this rectangle. + + + The color of the left border of this rectangle. + + + The color of the right border of this rectangle. + + + The color of the top border of this rectangle. + + + The color of the bottom border of this rectangle. + + + The width of the left border of this rectangle. + + + The width of the right border of this rectangle. + + + The width of the top border of this rectangle. + + + The width of the bottom border of this rectangle. + + + Whether variable width borders are used. + + + This is the color of the background of this rectangle. + + + This is the rotation value of this rectangle. + + + + Constructs a Rectangle-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a Rectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation (0, 90, 180, or 270) + @since iText 5.0.6 + + + + Constructs a Rectangle-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a Rectangle-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the rectangle + @since iText 5.0.6 + + + + Constructs a Rectangle-object. + + another Rectangle + + + Constructs a Rectangle-object based on a com.itextpdf.awt.geom.Rectangle object + @param rect com.itextpdf.awt.geom.Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Switches lowerleft with upperright + + + + Gets a Rectangle that is altered to fit on the page. + + the top position + the bottom position + a Rectangle + + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + a Rectangle + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Returns the lower left x-coordinate, considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Returns the width of the rectangle. + + a width + + + + Returns the height of the rectangle. + + a height + + + + Indicates if the table has borders. + + a bool + + + + Indicates if the table has a some type of border. + + the type of border + a bool + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Updates the border flag for a side based on the specified width. A width + of 0 will disable the border on that side. Any other width enables it. + + @param width + width of border + @param side + border side constant + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A RectangleReadOnly is the representation of a geometric figure. + It's the same as a Rectangle but immutable. + + + + + + + + + Constructs a RectangleReadOnly-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a RectangleReadOnly -object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the Rectangle (0, 90, 180, 270) + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a RectangleReadOnly-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object. + + another Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Switches lowerleft with upperright + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A special-version of LIST which use roman-letters. + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + Initialization + + + Initialization + + @param symbolIndent indent + + + Initialization + @param romanlower roman-char in lowercase + @param symbolIndent indent + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A Section is a part of a Document containing + other Sections, Paragraphs, List + and/or Tables. + + + You can not construct a Section yourself. + You will have to ask an instance of Section to the + Chapter or Section to which you want to + add the new Section. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0))); + Section section11 = section1.AddSection(40, title211, 2); + section11.Add(someSectionText);strong> + + + + + A possible number style. The default number style: "1.2.3." + @since iText 2.0.8 + + + A possible number style. For instance: "1.2.3" + @since iText 2.0.8 + + + This is the title of this section. + + + This is the number of sectionnumbers that has to be shown before the section title. + + + The style for sectionnumbers. + @since iText 2.0.8 + + + The indentation of this section on the left side. + + + The indentation of this section on the right side. + + + The additional indentation of the content of this section. + + + This is the number of subsections. + + + This is the complete list of sectionnumbers of this section and the parents of this section. + + + Indicates if the Section will be complete once added to the document. + @since iText 2.0.8 + + + Indicates if the Section was added completely to the document. + @since iText 2.0.8 + + + Indicates if this is the first time the section was added. + @since iText 2.0.8 + + + false if the bookmark children are not visible + + + true if the section has to trigger a new page + + + The bookmark title if different from the content title + + + + Constructs a new Section. + + + Has 2 overloads. + + + + + Constructs a new Section. + + a Paragraph + the numberDepth + + + + Sets the number of this section. + + the number of this section + an ArrayList, containing the numbers of the Parent + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Paragraph, List or Table + to this Section. + + index at which the specified element is to be inserted + an object of type Paragraph, List or Table + + + + Adds a Paragraph, List, Table or another Section + to this Section. + + an object of type Paragraph, List, Table or another Section + a bool + + + + Adds a collection of Elements + to this Section. + + a collection of Paragraphs, Lists and/or Tables + true if the action succeeded, false if not. + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Creates a Section, add it to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a marked section. For use in class MarkedSection only! + + + + Creates a Section, adds it to this Section and returns it. + + the title of the new section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param indentation the indentation of the new section + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the title of the new section + the newly added Section + + + + Get/set the title of this section + + a Paragraph + + + Sets the style for numbering sections. + Possible values are NUMBERSTYLE_DOTTED: 1.2.3. (the default) + or NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT: 1.2.3 + @since iText 2.0.8 + + + Constructs a Paragraph that will be used as title for a Section or Chapter. + @param title the title of the section + @param numbers a list of sectionnumbers + @param numberDepth how many numbers have to be shown + @param numberStyle the numbering style + @return a Paragraph object + @since iText 2.0.8 + + + + Checks if this object is a Chapter. + + + true if it is a Chapter, + false if it is a Section + + + + + Checks if this object is a Section. + + + true if it is a Section, + false if it is a Chapter. + + + + + Get/set the numberdepth of this Section. + + a int + + + + Get/set the indentation of this Section on the left side. + + the indentation + + + + Get/set the indentation of this Section on the right side. + + the indentation + + + + Get/set the indentation of the content of this Section. + + the indentation + + + + Returns the depth of this section. + + the depth + + + + Get/set the bookmark + + a bool + + + Gets the bookmark title. + @return the bookmark title + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Changes the Chapter number. + + + Indicates if this is the first time the section is added. + @since iText2.0.8 + @return true if the section wasn't added yet + + + @see com.lowagie.text.LargeElement#isAddedCompletely() + @since iText 2.0.8 + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Adds a new page to the section. + @since 2.1.1 + + + Returns the first occurrence of a special symbol in a String. + + @param string a String + @return an index of -1 if no special symbol was found + + + Gets a chunk with a symbol character. + @param c a character that has to be changed into a symbol + @param font Font if there is no SYMBOL character corresponding with c + @return a SYMBOL version of a character + + + Looks for the corresponding symbol in the font Symbol. + + @param c the original ASCII-char + @return the corresponding symbol in font Symbol + + + A collection of convenience methods that were present in many different iText + classes. + + + + + + + + + + Utility method to extend an array. + @param original the original array or null + @param item the item to be added to the array + @return a new array with the item appended + + + Checks for a true/false value of a key in a Properties object. + @param attributes + @param key + @return + + + + This method makes a valid URL from a given filename. + + + + + a given filename + a valid URL + + + Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value. + @param src the url to unescape + @return the eunescaped value + + + + This method is an alternative for the Stream.Skip()-method + that doesn't seem to work properly for big values of size. + + the stream + the number of bytes to skip + + + Measurement conversion from millimeters to points. + @param value a value in millimeters + @return a value in points + @since 2.1.2 + + + Measurement conversion from millimeters to inches. + @param value a value in millimeters + @return a value in inches + @since 2.1.2 + + + Measurement conversion from points to millimeters. + @param value a value in points + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from points to inches. + @param value a value in points + @return a value in inches + @since 2.1.2 + + + Measurement conversion from inches to millimeters. + @param value a value in inches + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from inches to points. + @param value a value in inches + @return a value in points + @since 2.1.2 + + + Reads the contents of a file to a String. + @param path the path to the file + @return a String with the contents of the file + @since iText 5.0.0 + + + Converts an array of bytes to a String of hexadecimal values + @param bytes a byte array + @return the same bytes expressed as hexadecimal values + + + + The ParserBase-class provides XML document parsing. + + + + + Begins the process of processing an XML document + + the XML document to parse + + + + This method gets called when a start tag is encountered. + + + + the name of the tag that is encountered + the list of attributes + + + + This method gets called when an end tag is encountered. + + + + the name of the tag that ends + + + + This method gets called when characters are encountered. + + an array of characters + the start position in the array + the number of characters to read from the array + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains all possible id values of the entity tag + that can be translated to a character in font Symbol. + + + Gets a chunk with a symbol character. + @param e a symbol value (see Entities class: alfa is greek alfa,...) + @param font the font if the symbol isn't found (otherwise Font.SYMBOL) + @return a Chunk + + + Looks for the corresponding symbol in the font Symbol. + + @param name the name of the entity + @return the corresponding character in font Symbol + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains the names of entities and their unicode value. + + + Translates an entity to a unicode character. + + @param name the name of the entity + @return the corresponding unicode character + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a comment is found. + @param text the comment text + + + + possible states + + + the state stack + + + The current character. + + + The previous character. + + + the line we are currently reading + + + the column where the current character occurs + + + was the last character equivalent to a newline? + + + A boolean indicating if the next character should be taken into account + if it's a space character. When nospace is false, the previous character + wasn't whitespace. + @since 2.1.5 + + + the current state + + + Are we parsing HTML? + + + current text (whatever is encountered between tags) + + + + current tagname + + + current attributes + + + The handler to which we are going to forward document content + + + The handler to which we are going to forward comments. + + + Keeps track of the number of tags that are open. + + + the quote character that was used to open the quote. + + + the attribute key. + + + the attribute value. + + + Creates a Simple XML parser object. + Call Go(BufferedReader) immediately after creation. + + + Does the actual parsing. Perform this immediately + after creating the parser object. + + + Gets a state from the stack + @return the previous state + + + Adds a state to the stack. + @param s a state to add to the stack + + + Flushes the text that is currently in the buffer. + The text can be ignored, added to the document + as content or as comment,... depending on the current state. + + + Initialized the tag name and attributes. + + + Sets the name of the tag. + + + processes the tag. + @param start if true we are dealing with a tag that has just been opened; if false we are closing a tag. + + + Throws an exception + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param r the document. The encoding is already resolved. The reader is not closed + @throws IOException on error + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param in the document. The encoding is deduced from the stream. The stream is not closed + @throws IOException on error + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + + + This {@link NewLineHandler} returns true on the tags p, + blockqouteand br + + @author Balder + + + + Default constructor + + @since 5.0.6 + + + Always returns false. + @author Balder + @since 5.0.6 + + + + A NewLineHandler determines if an encountered tag should result in a new line + in a document. + + @author Balder + @since 5.0.6 + + + @param tag the tag to check if after this one a new line should be in a document + @return true in case a new line should be added. + @since 5.0.6 + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + @param shorthand + @throws IOException + + + Adds a title. + @param title + + + Adds a title. + @param title + + + Adds a description. + @param desc + + + Adds a description. + @param desc + + + Adds a subject. + @param subject + + + Adds a subject. + @param subject array of subjects + + + Adds a single author. + @param author + + + Adds an array of authors. + @param author + + + Adds a single publisher. + @param publisher + + + Adds an array of publishers. + @param publisher + + + + A wrapper for an Encoding to suppress the preamble. + + + + Key for the default language. + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Add a language. + + + Process a property. + + + Creates a String that can be used in an XmpSchema. + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + @throws IOException + + + Adds keywords. + @param keywords + + + Adds the producer. + @param producer + + + Adds the version. + @param version + + + StringBuilder to construct an XMP array. + + + An array that is unordered. + + + An array that is ordered. + + + An array with alternatives. + + + the type of array. + + + Creates an XmpArray. + @param type the type of array: UNORDERED, ORDERED or ALTERNATIVE. + + + Returns the String representation of the XmpArray. + @return a String representation + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History�s softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + @param shorthand + @throws IOException + + + Adds the creatortool. + @param creator + + + Adds the creation date. + @param date + + + Adds the modification date. + @param date + + + Adds the meta data date. + @param date + + + Adds the identifier. + @param id + + + Adds the nickname. + @param name + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + @throws IOException + + + Reads an XMP stream into an org.w3c.dom.Document objects. + Allows you to replace the contents of a specific tag. + @since 2.1.3 + + + String used to fill the extra space. + + + Processing Instruction required at the start of an XMP stream + @since iText 2.1.6 + + + Processing Instruction required at the end of an XMP stream for XMP streams that can be updated + @since iText 2.1.6 + + + Constructs an XMP reader + @param bytes the XMP content + @throws ExceptionConverter + @throws IOException + @throws SAXException + + + Replaces the content of a tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 2.1.6 the return type has changed from void to boolean + + + Replaces the content of an attribute in the description tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 5.0.0 the return type has changed from void to boolean + + + Adds a tag. + @param namespaceURI the URI of the namespace + @param parent the tag name of the parent + @param localName the name of the tag to add + @param value the new content for the tag + @return true if the content was successfully added + @since 2.1.6 + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param domDocument the Document that contains the node + @param n the Node to add the text to + @param value the text to add + + + Writes the document to a byte array. + + + Abstract superclass of the XmpSchemas supported by iText. + + + the namesspace + + + Constructs an XMP schema. + @param xmlns + + + The String representation of the contents. + @return a String representation. + + + Processes a property + @param buf + @param p + + + @return Returns the xmlns. + + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @see java.util.Properties#setProperty(java.lang.String, java.lang.String) + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @param content + @return + + + With this class you can create an Xmp Stream that can be used for adding + Metadata to a PDF Dictionary. Remark that this class doesn't cover the + complete XMP specification. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + Creates an XmpWriter. + @param os + @param utfEncoding + @param extraSpace + @throws IOException + + + Creates an XmpWriter. + @param os + @throws IOException + + + @param os + @param info + @throws IOException + + + @param os + @param info + @throws IOException + @since 5.0.1 (generic type in signature) + + + Sets the XMP to read-only + + + @param about The about to set. + + + Adds an rdf:Description. + @param xmlns + @param content + @throws IOException + + + Adds an rdf:Description. + @param s + @throws IOException + + + @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + @param propName The name of the property. + Has the same usage as in getProperty(). + @param value the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + @throws XMPException Wraps all errors and exceptions that may occur. +
+ + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an ordered array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an alternate array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Flushes and closes the XmpWriter. + @throws IOException + + + Flushes and closes the XmpWriter. + @throws IOException + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + Adds a title. + + @param xmpMeta + @param title + + + Sets a title. + + @param xmpMeta + @param title + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a description. + + @param xmpMeta + @param desc + + + Sets a description. + + @param xmpMeta + @param desc + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a subject. + + @param xmpMeta + @param subject + + + Sets a subject. + + @param xmpMeta + @param subject array of subjects + + + Adds a single author. + + @param xmpMeta + @param author + + + Sets an array of authors. + + @param xmpMeta + @param author + + + Adds a single publisher. + + @param xmpMeta + @param publisher + + + Sets an array of publishers. + + @param xmpMeta + @param publisher + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + Adds keywords. + + @param xmpMeta + @param keywords + + + Adds the producer. + + @param xmpMeta + @param producer + + + Adds the version. + + @param xmpMeta + @param version + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + Adds the creatortool. + + @param xmpMeta + @param creator + + + Adds the creation date. + + @param xmpMeta + @param date + + + Adds the modification date. + + @param xmpMeta + @param date + + + Adds the meta data date. + + @param xmpMeta + @param date + + + Sets the identifier. + + @param xmpMeta + @param id + + + Adds the nickname. + + @param xmpMeta + @param name + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + + @author psoares + + + Print writer. + + + Canonical output. + + + Processing XML 1.1 document. + + + Default constructor. + + + Sets whether output is canonical. + + + Sets the output stream for printing. + + + Sets the output writer. + + + Writes the specified node, recursively. + + + Returns a sorted list of attributes. + + + Normalizes and prints the given string. + + + Normalizes and print the given character. + + + This class converts XML into plain text stripping all tags. + + + Buffer that stores all content that is encountered. + + + Static method that parses an XML Stream. + @param is the XML input that needs to be parsed + @return a String obtained by removing all tags from the XML + + + Creates an instance of XML to TXT. + + + @return the String after parsing. + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Map) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + Contains utility methods for XML. + @author Balder + @since 5.0.6 + + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + @since 5.0.6 + + + + Unescapes 'lt', 'gt', 'apos', 'quote' and 'amp' to the + corresponding character values. + @param s a string representing a character + @return a character value + + + Checks if a character value should be escaped/unescaped. + @param s the String representation of an integer + @return true if it's OK to escape or unescape this value + + + Checks if a character value should be escaped/unescaped. + @param c a character value + @return true if it's OK to escape or unescape this value + + + Looks for a character in a character array, starting from a certain position + @param needle the character you're looking for + @param haystack the character array + @param start the start position + @return the position where the character was found, or -1 if it wasn't found. + + + Returns the IANA encoding name that is auto-detected from + the bytes specified, with the endian-ness of that encoding where appropriate. + (method found in org.apache.xerces.impl.XMLEntityManager, originally published + by the Apache Software Foundation under the Apache Software License; now being + used in iText under the MPL) + @param b4 The first four bytes of the input. + @return an IANA-encoding string + @since 5.0.6 + + + + A special-version of LIST whitch use zapfdingbats-letters. + + @see com.lowagie.text.List + @author Michael Niedermair and Bruno Lowagie + + + char-number in zapfdingbats + + + Creates a ZapfDingbatsList + + @param zn a char-number + + + Creates a ZapfDingbatsList + + @param zn a char-number + @param symbolIndent indent + + + Sets the dingbat's color. + + @param zapfDingbatColor color for the ZapfDingbat + + + set the char-number + @param zn a char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A special-version of LIST whitch use zapfdingbats-numbers (1..10). + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + which type + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + get the type + + @return char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + Objects implementing Indentable allow to set indentation left and right. + + + Sets the indentation on the left side. + + @param indentation the new indentation + + + Sets the indentation on the right side. + + @param indentation the new indentation + + + Objects implementing Spaceable allow setting spacing before and after. + + + Sets the spacing before. + + @param spacing the new spacing + + + Sets the spacing after. + + @param spacing the new spacing + + + @author itextpdf.com + + + + Receive a writer and the document to do certain operations on them. + @param writer the PdfWriter + @param doc the document + @throws DocumentException + + + This class contains version information about iText. + DO NOT CHANGE THE VERSION INFORMATION WITHOUT PERMISSION OF THE COPYRIGHT HOLDERS OF ITEXT. + Changing the version makes it extremely difficult to debug an application. + Also, the nature of open source software is that you honor the copyright of the original creators of the software. + + + String that will indicate if the AGPL version is used. + + + The iText version instance. + + + This String contains the name of the product. + iText is a registered trademark by iText Group NV. + Please don't change this constant. + + + This String contains the version number of this iText release. + For debugging purposes, we request you NOT to change this constant. + + + This String contains the iText version as shown in the producer line. + iText is a product developed by iText Group NV. + iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + The license key. + + + Gets an instance of the iText version that is currently used. + Note that iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + * Gets the product name. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the product name + + + * Gets the release number. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the release number + + + * Returns the iText version as shown in the producer line. + * iText is a product developed by iText Group NV. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return iText version + + + Returns a license key if one was provided, or null if not. + @return a license key. + + + Checks if the AGPL version is used. + @return returns true if the AGPL version is used. + + + An element that is not an element, it holds {@link Element#WRITABLE_DIRECT} + as Element type. It implements WriterOperation to do operations on the + {@link PdfWriter} and the {@link Document} that must be done at the time of + the writing. Much like a {@link VerticalPositionMark} but little different. + + @author itextpdf.com + + + + @return {@link Element#WRITABLE_DIRECT} + + + The TYPE_UNKNOWN is an initial type value + + + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Multiply matrix of two AffineTransform objects + @param t1 - the AffineTransform object is a multiplicand + @param t2 - the AffineTransform object is a multiplier + @return an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + @version $Revision: 1.4 $ + + + + + marker for invalid bytes + + + + marker for accepted whitespace bytes + + + + marker for an equal symbol + + + + Encode the given byte[]. + + the source string. + the base64-encoded data. + + + + Encode the given byte[]. + + the source string. + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + the base64-encoded data. + + + + Encode the given string. + the source string. + the base64-encoded string. + + + + Decode the given byte[]. + + + the base64-encoded data. + the decoded data. + + + + Decode the given string. + + the base64-encoded string. + the decoded string. + + + + Byte buffer container including length of valid data. + + @since 11.10.2006 + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + + Loads the stream into a buffer. + + an InputStream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + + Appends a byte to the buffer. + a byte + + + + Appends a byte array or part of to the buffer. + + a byte array + an offset with + + + + + Append a byte array to the buffer + a byte array + + + + Append another buffer to this buffer. + another ByteBuffer + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + Reads a single character. + + @exception IOException If an I/O error occurs + + + Reads characters into a portion of an array. + + @exception IOException If an I/O error occurs + + + ** + + + + @since 22.08.2006 + + + + + the result of the escaping sequence + + + + count the digits of the sequence + + + + the state of the automaton + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + @since 16.02.2006 + + + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + + + @since 22.08.2006 + + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + + Skips the next char. + + + + Returns the current position. + + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + + @since 12.10.2006 + + + + + Private constructor + + + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + + @since 11.08.2006 + + + + + private constructor + + + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + + Asserts that a specific language is set. + a specific lang + Specific language is null or empty + + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + + Asserts that any string parameter is set. + any string parameter + Thrown if the parameter is null or has length 0. + + + + Asserts that the xmp object is of this implemention + (). + the XMP object + A wrong implentaion is used. + + + + Parser for "normal" XML serialisation of RDF. + + @since 14.07.2006 + + + + + Start of coreSyntaxTerms. + + + + End of coreSyntaxTerms + + + + Start of additions for syntax Terms. + + + + End of of additions for syntaxTerms. + + + + Start of oldTerms. + + + + End of oldTerms. + + + + ! Yes, the syntax terms include the core terms. + + + + this prefix is used for default namespaces + + + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + thown on parsing errors + + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* )* + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.14 propertyElt + + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + Add a leaf node with the text value and qualifiers for the attributes. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thown on parsing errors + + + + + Adds a child node. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thown on parsing errors + + + + Adds a qualifier node. + + the parent xmp node + the name of the qualifier which has to be + QName including the default prefix + the value of the qualifier + Returns the newly created child node. + thown on parsing errors + + + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thown on parsing errors + + + + Checks if the node is a white space. + an XML-node + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + If an I/O error occurs + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + If an I/O error occurs + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + If the pushback buffer is full, + or if some other I/O error occurs + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + If an I/O error occurs + + + + @since 09.11.2006 + + + + + XML localname + + + + XML namespace prefix + + + + Splits a qname into prefix and localname. + a QName + + + + Constructor that initializes the fields + the prefix + the name + + + the localName + + + the prefix + + + Returns whether the QName has a prefix. + + + + Utility functions for the XMPToolkit implementation. + + @since 06.06.2006 + + + + + segments of a UUID + + + + length of a UUID + + + + + + init char tables + + + + Private constructor + + + + + + + + a schema namespace + + an XMP Property + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + Check some requirements for an UUID: +
    +
  • Length of the UUID is 32
  • +
  • The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23)
  • +
+ +
+ uuid to test + true - this is a well formed UUID, false - UUID has not the expected format +
+ + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + + + Replaces the ASCII control chars with a space. + + + a node value + Returns the cleaned up value + + + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + @since 16.02.2006 + + + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Use NO time zone as default + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZone. + + a date describing an absolute point in time + a TimeZone how to interpret the date + + + + Creates an XMPDateTime-instance from an ISO 8601 string. + + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + @since 29.06.2006 + + + + + the node iterator doing the work + + + + stores the iterator options + + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + + flag to indicate that skipSiblings() has been called. + + + + Constructor with optionsl initial values. If propName is provided, + schemaNs has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNs + advanced iteration options, see + If the node defined by the paramters is not existing. + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + + + + + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + @since 29.06.2006 + + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + + Implementation for . + + @since 17.02.2006 + + + + + Property values are Strings by default + + + + root of the metadata tree + + + + the xpacket processing instructions content + + + + Constructor for an empty metadata object. + + + + + Constructor for a cloned metadata tree. + + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + Returns the root node of the XMP tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for SetProperty() and related calls, used after the node is + found or created. + + + the newly created node + + the node value, can be null + + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + + an int indicating the value type + + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + @since 01.02.2006 + + + + + Hidden constructor, initialises the SAX parser handler. + + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + the parse options + Returns the resulting XMP metadata object + Thrown if parsing or normalisation fails. + + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + Possible improvements: + + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + @since 21.02.2006 + + + + + flag if the node is an alias + + + + list of child nodes, lazy initialized + + + + flag if the node has aliases + + + + flag if the node has an "rdf:value" child node. + + + + flag if the node is implicitly created + + + + name of the node, contains different information depending of the node kind + + + + options describing the kind of the node + + + + link to the parent node + + + + list of qualifier of the node, lazy initialized + + + + value of the node, contains different information depending of the node kind + + + + Creates an XMPNode with initial values. + + the name of the node + the value of the node + the options of the node + + + + Constructor for the node without value. + + the name of the node + the options of the node + + + Returns the parent node. + + + Returns the number of children without neccessarily creating a list. + + + Returns the number of qualifier without neccessarily creating a list. + + + Returns the name. + + + Returns the value. + + + Returns the options. + + + Returns the implicit flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + Returns if the node contains aliases (applies only to schema nodes) + + + the hasValueChild + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + + + Resets the node. + + + + an index [1..size] + Returns the child with the requested index. + + + + Adds a node as child to this node. + an XMPNode + + + + + Adds a node as child to this node. + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + an XMPNode + + + + + Replaces a node with another one. + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + the replacement XMPNode + + + + Removes a child at the requested index. + the index to remove [1..size] + + + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + + Removes all children from the node. + + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + + Removes all qualifiers from the node and sets the options appropriate. + + + + qualifier node name to look for + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + Returns whether the node has children. + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + Returns whether the node has qualifier attached. + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + + Renders this node and the tree unter this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + + Utilities for XMPNode. + + @since Aug 28, 2006 + + + + + Private Constructor + + + + + Find or create a schema node if createNodes is false and + + the root of the xmp tree. + a namespace + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + + the parent node + + the node name to find + + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + + Follow an expanded path expression to find or create a node. + + the node to begin the search. + the complete xpath + flag if nodes shall be created + (when called by setProperty()) + the options for the created leaf nodes (only when + createNodes == true). + Returns the node if found or created or null. + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + the top-most node to delete. + + + + This is setting the value of a leaf node. + + an XMPNode + a value + + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + + the node value to set + Returns the String representation of the node value. + + + + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XmpPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + Returns the index of th + + + + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + + an alt text array node + + + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + + the array node to check if its an alt-text array + + + + Appends a language item to an alt text array. + + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + Looks for the appropriate language item in a text alternative array.item + + + an array node + + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + + @since Aug 18, 2006 + + + + + caches the correct dc-property array forms + + + + init char tables + + + + Hidden constructor + + + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + + Visit all schemas to do general fixes and handle special cases. + + the metadata object implementation + Thrown if the normalisation fails. + + + + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + the property node of the array to repair. + Forwards unexpected exceptions. + + + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + Forwards XMP errors + + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + +
+            1. If there is no dc:rights array, or an empty array -
+               Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
+            
+            2. If there is a dc:rights array but it has no x-default item -
+               Create an x-default item as a copy of the first item then apply rule #3.
+            
+            3. If there is a dc:rights array with an x-default item, 
+               Look for a double linefeed in the value.
+                A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
+                    A1. If they match then leave the x-default value alone.
+                    A2. Otherwise, append a double linefeed and 
+                        the xmpDM:copyright value to the x-default value.
+                B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
+                    B1. If they match then leave the x-default value alone.
+                    B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
+            
+            4. In all cases, delete the xmpDM:copyright property.
+            
+
+ the metadata object + the "dm:copyright"-property +
+ + + Initializes the map that contains the known arrays, that are fixed by + . + + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + @since 27.01.2006 + + + + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + + a map from a namespace URI to its registered prefix + + + + a map from a prefix to the associated namespace URI + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + If the registrations of at least one alias fails. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + @since 11.07.2006 + + + + + Static method to Serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to Serialize to + serialization options, can be null for default. + + + + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see + ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + @since 11.07.2006 + + + + + default padding + + + + The w/r is missing inbetween + + + + a set of all rdf attribute qualifier + + + + the stored serialization options + + + + the output stream to Serialize to + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + this writer is used to do the actual serialization + + + + the metadata object to be serialized. + + + + The actual serialization. + + the metadata object to be serialized + outputStream the output stream to Serialize to + the serialization options + + If case of wrong options or any other serialization error. + + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + +
+ +
+             	<ns:UnqualifiedStructProperty-1
+             		... The fields as attributes, if all are simple and unqualified
+             	/>
+             
+             	<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
+             		... The fields as elements, if none are simple and unqualified
+             	</ns:UnqualifiedStructProperty-2>
+             
+             	<ns:UnqualifiedStructProperty-3>
+             		<rdf:Description
+             			... The simple and unqualified fields as attributes
+             		>
+             			... The compound or qualified fields as elements
+             		</rdf:Description>
+             	</ns:UnqualifiedStructProperty-3>
+             
+             	<ns:UnqualifiedArrayProperty>
+             		<rdf:Bag> or Seq or Alt
+             			... Array items as rdf:li elements, same forms as top level properties
+             		</rdf:Bag>
+             	</ns:UnqualifiedArrayProperty>
+             
+             	<ns:QualifiedProperty rdf:parseType="Resource">
+             		<rdf:value> ... Property "value" 
+             			following the unqualified forms ... </rdf:value>
+             		... Qualifiers looking like named struct fields
+             	</ns:QualifiedProperty>
+            
+ +
+ + *** Consider numbered array items, but has compatibility problems. *** + Consider qualified form with rdf:Description and attributes. +
+ the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. +
+ + + Serializes a simple property. + + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + + Serializes an array property. + + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes a struct property. + + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + +
+ +
+            	<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
+            
+            	<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
+            		<rdf:Description>
+            			... Fields, same forms as top level properties
+            		</rdf:Description>
+            	</ns:UnqualifiedStructProperty>
+            
+            	<ns:ResourceStructProperty rdf:resource="URI"
+            		... Fields as attributes
+            	>
+            
+            	<ns:UnqualifiedArrayProperty>
+            		<rdf:Bag> or Seq or Alt
+            			... Array items as rdf:li elements, same forms as top level properties
+            		</rdf:Bag>
+            	</ns:UnqualifiedArrayProperty>
+            
+            	<ns:QualifiedProperty>
+            		<rdf:Description>
+            			<rdf:value> ... Property "value" following the unqualified 
+            				forms ... </rdf:value>
+            			... Qualifiers looking like named struct fields
+            		</rdf:Description>
+            	</ns:QualifiedProperty>
+            
+ +
+
+ the property node + property shall be rendered as attribute rather than tag + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. +
+ + + Writes the array start and end tags. + + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + + Writes indents and automatically includes the baseindend from the options. + number of indents to write + forwards exception + + + + Writes a char to the output. + a char + forwards writer exceptions + + + + Writes a String to the output. + a String + forwards writer exceptions + + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + + Writes a newline according to the options. + Forwards exception + + + + @since 11.08.2006 + + + + + + + + + + Private constructor, as + + + + + + see {@link XMPUtils#separateArrayItems(XMPMeta, String, String, String, + PropertyOptions, boolean)} + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + + Option flags to control the separation. + + Flag if commas shall be preserved + + + Forwards the Exceptions from the metadata processing + + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + + a schema node + + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + + opened and closing quote in a string + + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + + a char + Return the character kind. + + + + the open quote char + Returns the matching closing quote for an open quote. + + + + Add quotes to the item. + + + the array item + + the open quote character + + the closing quote character + + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + Representates an XMP XmpPath with segment accessor methods. + + @since 28.02.2006 + + + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + + Marks an array index step + + + + stores the segments of an XmpPath + + + + Append a path segment + + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + + Parser for XMP XPaths. + + @since 01.03.2006 + + + Private constructor + + + + @param path + @param pos + @throws XmpException + + + Parses a struct segment + @param pos the current position in the path + @return Retusn the segment or an errror + @throws XmpException If the sement is empty + + + Parses an array index segment. + + @param pos the xmp path + @return Returns the segment or an error + @throws XmpException thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + @param schemaNs the root namespace + @param pos the parsing position helper + @param expandedXPath the path to contribute to + @throws XmpException If the path is not valid. + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + @param qualName + a qualifier name + @throws XmpException + If the name is not conformant + + + Verify if an XML name is conformant. + + @param name + an XML name + @throws XmpException + When the name is not XML conformant + + + + This objects contains all needed char positions to parse. + + + the complete path + the end of a segment name + + + the begin of a step + + + the end of a step + + + + A segment of a parsed XmpPath. + + @since 23.06.2006 + + + + + flag if segment is an alias + + + + alias form if applicable + + + + kind of the path segment + + + + name of the path segment + + + + Constructor with initial values. + + the name of the segment + + + + Constructor with initial values. + + the name of the segment + the kind of the segment + + + Returns the kind. + + + Returns the name. + + + the flag to set + + + Returns the aliasForm if this segment has been created by an alias. + + + + + Returns the year, can be negative. + + + Returns The month in the range 1..12. + + + Returns the day of the month in the range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + Returns the time zone. + + + + Returns the ISO 8601 string representation of the date and time. + + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and Serialize the metadata + to a String, byte-array or OutputStream. + + @since 20.01.2006 + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last existing array + item. + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + Wraps all errors and exceptions that may occur. + + + + Returns the number of items in the array. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + + + + + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use to find + out the length of the array. + the new value of the array item. Has the same usage as propValue in + SetProperty(). + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XmpConst.ARRAY_LAST_ITEM to append items. + the new value of the array item. Has the same usage as + propValue in SetProperty(). + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + + + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + the value of thefield, if the field has a value. + Has the same usage as propValue in GetProperty. + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in GetProperty. + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. Has the same usage as in GetProperty. + + + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns true if the property exists. + + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + GetProperty(). + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + Returns true if the array exists, false otherwise. + + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + Returns true if the field exists. + + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty(). + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + Returns true if the qualifier exists. + + + + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + GetProperty(). + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + + These are very similar to GetProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Boolean value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns an Integer value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Long value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Double value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a XMPDateTime-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Java Calendar-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + Note: There is no SetPropertyString(), + because SetProperty() sets a string value. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a String value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as Java Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + Option flags to control the iteration. See for + details. + Returns an XMPIterator for this XMPMeta-object + considering the given options. + Wraps all errors and exceptions that may occur. + + + + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + + Determines if a name is an alias, and what it is aliased to. + + + The namespace URI of the alias. Must not be null or the empty + string. + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + + Searches for registered aliases. + + + an XML conform qname + Returns if an alias definition for the given qname to another + schema and property is registered. + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + Options for XMPSchemaRegistryImpl#registerAlias. + + @since 20.02.2006 + + + + + This is a direct mapping. The actual data type does not matter. + + + + The actual is an unordered array, the alias is to the first element of the array. + + + + The actual is an ordered array, the alias is to the first element of the array. + + + + The actual is an alternate array, the alias is to the first element of the array. + + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + + returns a s object + If the options are not consistant. + + + + + Options for XMPIterator construction. + + @since 24.01.2006 + + + + + Just do the immediate children of the root, default is subtree. + + + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + + Return just the leaf part of the path, default is the full path. + + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + + + + Options for . + + @since 24.01.2006 + + + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + + Do not reconcile alias differences, throw an exception instead. + + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + + Sets the options to the default values. + + + + Returns the requireXMPMeta. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the option "omit normalization". + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + @since 03.07.2006 + + + + + may be used in the future + + + + Updated by iText. Indicates if the property should be writted as a separate node + + + + + Default constructor + + + + + Intialization constructor + + the initialization options + If the options are not valid + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + the value to set + Returns this to enable cascaded options. + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns true if only array options are set. + + + + + Compares two options set for array compatibility. + + other options + Returns true if the array options of the sets are equal. + + + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + other options + If illegal options are provided + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + @since 24.01.2006 + + + + + Omit the XML packet wrapper. + + + + Mark packet as read-only. Default is a writeable packet. + + + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To Serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + + Use the canonical form of RDF if set. By default the compact form is used + + + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + + + Sort the struct properties and qualifier before serializing + + + + Bit indicating little endian encoding, unset is big endian + + + + Bit indication UTF16 encoding. + + + + UTF8 encoding; this is the default + + + + UTF16BE encoding + + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + + Default constructor. + + + + + Constructor using inital options + the inital options + Thrown if options are not consistant. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the baseIndent. + + + Returns the indent. + + + Returns the newline. + + + Returns the padding. + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + Returns the encoding as Java encoding String. + + + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + @since 24.01.2006 + + + + + a map containing the bit names + + + + the internal int containing all options + + + + The default constructor. + + + + + Constructor with the options bit mask. + + the options bit mask + If the options are not correct + + + + Is friendly to access it during the tests. + Returns the options. + + + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + Returns a String listing all options that are set to true by their name, + like "option1 | option4". + + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + + Resets the options. + + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + + + Returns the options as hex bitmask. + + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional -method is called. + + the options to check + Thrown if the options are invalid. + + + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + This interface is used to return info about an alias. + + @since 27.01.2006 + + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + + @since 23.01.2006 + + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + Returns the language of the alt-text item. + + + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + @since 06.07.2006 + + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + Common constants for the XMP Toolkit. + + @since 20.01.2006 + + + + + The XML namespace for XML. + + + + The XML namespace for RDF. + + + + The XML namespace for the Dublin Core schema. + + + + The XML namespace for the IPTC Core schema. + + + + The XML namespace for the IPTC Extension schema. + + + + The XML namespace for the DICOM medical schema. + + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + + The XML namespace Adobe XMP Metadata. + + + + The XML namespace for the XMP "basic" schema. + + + + The XML namespace for the XMP copyright schema. + + + + The XML namespace for the XMP digital asset management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the Photoshop custom schema. + + + + The XML namespace for the Photoshop Album schema. + + + + The XML namespace for Adobe's EXIF schema. + + + + NS for the CIPA XMP for Exif document v1.1 + + + + The XML namespace for Adobe's TIFF schema. + + + + BExt Schema + + + + RIFF Info Schema + + + + Transform XMP + + + + Adobe Flash SWF + + + + legacy Dublin Core NS, will be converted to NS_DC + + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + + The XML namespace for fields of the Dimensions type. + + + + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + + The XML namespace for fields of the ResourceEvent type. + + + + The XML namespace for fields of the ResourceRef type. + + + + The XML namespace for fields of the Version type. + + + + The XML namespace for fields of the JobRef type. + + + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + + Index that has the meaning to be always the last item in an array. + + + + Node name of an array item. + + + + The x-default string for localized properties + + + + xml:lang qualfifier + + + + rdf:type qualfifier + + + + Processing Instruction (PI) for xmp packet + + + + XMP meta tag version new + + + + XMP meta tag version old + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + @since 16.02.2006 + + + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + + + + Creates an XMPDateTime from an ISO 8601 string. + + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + When the ISO 8601 string is non-conform + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + Returns an updated XMPDateTime-object. + + + + @since 21.09.2006 + + + + + Note: This is an error code introduced by Java. + + + + This exception wraps all errors that occur in the XMP Toolkit. + + @since 16.02.2006 + + + + + the errorCode of the XMP toolkit + + + + Constructs an exception with a message and an error code. + the message + the error code + + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Creates XMPMeta-instances from an InputStream + + @since 30.01.2006 + + + + + The singleton instance of the XMPSchemaRegistry. + + + + + cache for version info + + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + + + + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into an OutputStream. + + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + + Resets the _schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNs and + "i" is the decimal representation of itemIndex. + Throws exeption if index zero is used. + + + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + The name of the field. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNs and "fNS" is the prefix for fieldNs. + Thrown if the path to create is not valid. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNs and "qNS" is the prefix for qualNs. + Thrown if the path to create is not valid. + + + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNs. + + + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + @since 21.02.2006 + + + + + Private constructor + + + + Create a single edit string from an array of strings. + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + Separate a single edit string into an array of strings. + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Forwards the Exceptions from the metadata processing + + + + + + Convert from boolean to string. + + + a boolean value + The XMP string representation of the boolean. The values used are + given by the constnts and + . + + + + Converts a string value to an int. + + + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + + + an int value + The string representation of the int. + + + + Converts a string value to a long. + + + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to a double. + + + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to an XMPDateTime. + + + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + + + an XMPDateTime + The string representation of the long. + + + + Convert from a byte array to a base64 encoded string. + + + the byte array to be converted + Returns the base64 string. + + + + Decode from Base64 encoded string to raw data. + + + a base64 encoded string + Returns a byte array containg the decoded string. + Thrown if the given string is not property base64 encoded + + + + Implementation of the IndicLigaturizer for Devanagari. + + Warning: this is an incomplete and experimental implementation of Devanagari. This implementation should not be used in production. + + + Constructor for the IndicLigaturizer for Devanagari. + + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + @author Paulo Soares + + + + Add + args: ByVal key As IComparable, ByVal data As Object + key is object that implements IComparable interface + performance tip: change to use use int type (such as the hashcode) + + + + + RestoreAfterInsert + Additions to red-black trees usually destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + RotateLeft + Rebalance the tree by rotating the nodes to the left + + + + + RotateRight + Rebalance the tree by rotating the nodes to the right + + + + + + + + + + + + + + + + + RestoreAfterDelete + Deletions from red-black trees may destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + + + + Key + + + + + Data + + + + + Determine order, walk the tree and push the nodes onto the stack + + + + + HasMoreElements + + + + + NextElement + + + + + MoveNext + For .NET compatibility + + + + + Key + + + + + Data + + + + + Color + + + + + Left + + + + + Right + + + + + Provides the base class for a generic read-only dictionary. + + + The type of keys in the dictionary. + + + The type of values in the dictionary. + + + + An instance of the ReadOnlyDictionary generic class is + always read-only. A dictionary that is read-only is simply a + dictionary with a wrapper that prevents modifying the + dictionary; therefore, if changes are made to the underlying + dictionary, the read-only dictionary reflects those changes. + See for a modifiable version of + this class. + + + Notes to Implementers This base class is provided to + make it easier for implementers to create a generic read-only + custom dictionary. Implementers are encouraged to extend this + base class instead of creating their own. + + + + + + Initializes a new instance of the + class that wraps + the supplied . + + The + that will be wrapped. + + Thrown when the dictionary is null. + + + + + Gets the number of key/value pairs contained in the + . + + The number of key/value pairs. + The number of key/value pairs contained in the + . + + + Gets a collection containing the keys in the + . + A + containing the keys. + A + + containing the keys in the + . + + + + + Gets a collection containing the values of the + . + + The collection of values. + + + Gets a value indicating whether the dictionary is read-only. + This value will always be true. + + + + Gets a value indicating whether access to the dictionary + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to dictionary. + + + + + Gets or sets the value associated with the specified key. + + + The value associated with the specified key. If the specified key + is not found, a get operation throws a + , + and a set operation creates a new element with the specified key. + + The key of the value to get or set. + + Thrown when the key is null. + + + The property is retrieved and key does not exist in the collection. + + + + This method is not supported by the + . + + The object to use as the key of the element to add. + + The object to use as the value of the element to add. + + + Determines whether the + contains the specified key. + + True if the contains + an element with the specified key; otherwise, false. + + The key to locate in the + . + + Thrown when the key is null. + + + + + This method is not supported by the . + + The key of the element to remove. + + True if the element is successfully removed; otherwise, false. + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value + associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. + This parameter is passed uninitialized. + + true if the contains + an element with the specified key; otherwise, false. + + + + This method is not supported by the + . + + The object to add to the . + + + + This method is not supported by the + . + + + + Determines whether the contains a + specific value. + + + The object to locate in the . + + + true if item is found in the ICollection; + otherwise, false. + + + + + Copies the elements of the ICollection to an Array, starting at a + particular Array index. + + The one-dimensional Array that is the + destination of the elements copied from ICollection. + The Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + This method is not supported by the + . + + The object to remove from the ICollection. + + Will never return a value. + + + + Returns an enumerator that iterates through the collection. + + + A IEnumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + For a description of this member, see . + + + The one-dimensional Array that is the destination of the elements copied from + ICollection. The Array must have zero-based indexing. + + + The zero-based index in Array at which copying begins. + + + + + Summary description for ListIterator. + + + + + Summary description for Properties. + + + + + Summary description for Util. + + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.config b/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.config new file mode 100644 index 0000000..c294af8 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.config @@ -0,0 +1,65 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.dll new file mode 100644 index 0000000..8646b6f Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.dll differ diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.xml b/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.xml new file mode 100644 index 0000000..dee43d6 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/终端/Debug/log4net.xml @@ -0,0 +1,32450 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Prepare entire database command object to be executed. + + The command to prepare. + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Ansi code to reset terminal + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Defaults to %logger + + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. + For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Syslog port 514 + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Send the email message + + the body text to include in the mail + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + trims leading and trailing commas or semicolons + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + The logger that this object is wrapping + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + returns a stack frame item from a stack frame. This + + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + The global context properties instance + + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Initializes a new instance of the class. + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + + + + + + + + + + + + + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + Total number of bytes written. + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + The singleton instance of the . + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + See + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Format + + + + + Args + + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + diff --git a/采集器3.5框架封装包2023-10-26/终端/Debug/x86/SQLite.Interop.dll b/采集器3.5框架封装包2023-10-26/终端/Debug/x86/SQLite.Interop.dll new file mode 100644 index 0000000..1395272 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/终端/Debug/x86/SQLite.Interop.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/BouncyCastle.Crypto.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/BouncyCastle.Crypto.dll new file mode 100644 index 0000000..9059e64 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/BouncyCastle.Crypto.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.dll new file mode 100644 index 0000000..6b0519c Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.dll.config b/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.dll.config new file mode 100644 index 0000000..a388a5b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.dll.config @@ -0,0 +1,12 @@ + + + +
+ + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.pdb b/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.pdb new file mode 100644 index 0000000..35b39f6 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/CommonUtils.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.dll new file mode 100644 index 0000000..a6560bb Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.dll.config b/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.dll.config new file mode 100644 index 0000000..497a120 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.dll.config @@ -0,0 +1,19 @@ + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.pdb b/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.pdb new file mode 100644 index 0000000..eeeea5a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/DataBridge.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..11a8f2f Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.pdb b/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.pdb new file mode 100644 index 0000000..edfc1d2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.xml new file mode 100644 index 0000000..eee718a --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/ICSharpCode.SharpZipLib.xml @@ -0,0 +1,9880 @@ + + + + ICSharpCode.SharpZipLib + + + + + An example class to demonstrate compression and decompression of BZip2 streams. + + + + + Decompress the input writing + uncompressed data to the output stream + + The readable stream containing data to decompress. + The output stream to receive the decompressed data. + Both streams are closed on completion if true. + + + + Compress the input stream sending + result data to output stream + + The readable stream to compress. + The output stream to receive the compressed data. + Both streams are closed on completion if true. + Block size acts as compression level (1 to 9) with 1 giving + the lowest compression and 9 the highest. + + + + Defines internal values for both compression and decompression + + + + + Random numbers used to randomise repetitive blocks + + + + + When multiplied by compression parameter (1-9) gives the block size for compression + 9 gives the best compression but uses the most memory. + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + BZip2Exception represents exceptions specific to BZip2 classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + An input stream that decompresses files in the BZip2 format + + + + + Construct instance for reading from stream + + Data source + + + + Get/set flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + + + + Gets a value indicating if the stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + This property always returns false + + + + + Gets the length in bytes of the stream. + + + + + Gets the current position of the stream. + Setting the position is not supported and will throw a NotSupportException. + + Any attempt to set the position. + + + + Flushes the stream. + + + + + Set the streams position. This operation is not supported and will throw a NotSupportedException + + A byte offset relative to the parameter. + A value of type indicating the reference point used to obtain the new position. + The new position of the stream. + Any access + + + + Sets the length of this stream to the given value. + This operation is not supported and will throw a NotSupportedExceptionortedException + + The new length for the stream. + Any access + + + + Writes a block of bytes to this stream using data from a buffer. + This operation is not supported and will throw a NotSupportedException + + The buffer to source data from. + The offset to start obtaining data from. + The number of bytes of data to write. + Any access + + + + Writes a byte to the current position in the file stream. + This operation is not supported and will throw a NotSupportedException + + The value to write. + Any access + + + + Read a sequence of bytes and advances the read position by one byte. + + Array of bytes to store values in + Offset in array to begin storing data + The maximum number of bytes to read + The total number of bytes read into the buffer. This might be less + than the number of bytes requested if that number of bytes are not + currently available or zero if the end of the stream is reached. + + + + + Closes the stream, releasing any associated resources. + + + + + Read a byte from stream advancing position + + byte read or -1 on end of stream + + + + An output stream that compresses into the BZip2 format + including file header chars into another stream. + + + + + Construct a default output stream with maximum block size + + The stream to write BZip data onto. + + + + Initialise a new instance of the + for the specified stream, using the given blocksize. + + The stream to write compressed data to. + The block size to use. + + Valid block sizes are in the range 1..9, with 1 giving + the lowest compression and 9 the highest. + + + + + Ensures that resources are freed and other cleanup operations + are performed when the garbage collector reclaims the BZip2OutputStream. + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking + + + + + Gets a value indicating whether the current stream supports writing + + + + + Gets the length in bytes of the stream + + + + + Gets or sets the current position of this stream. + + + + + Sets the current position of this stream to the given value. + + The point relative to the offset from which to being seeking. + The reference point from which to begin seeking. + The new position in the stream. + + + + Sets the length of this stream to the given value. + + The new stream length. + + + + Read a byte from the stream advancing the position. + + The byte read cast to an int; -1 if end of stream. + + + + Read a block of bytes + + The buffer to read into. + The offset in the buffer to start storing data at. + The maximum number of bytes to read. + The total number of bytes read. This might be less than the number of bytes + requested if that number of bytes are not currently available, or zero + if the end of the stream is reached. + + + + Write a block of bytes to the stream + + The buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + + + + Write a byte to the stream. + + The byte to write to the stream. + + + + Get the number of bytes written to output. + + + + + Get the number of bytes written to the output. + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Flush output buffers + + + + + Computes Adler32 checksum for a stream of data. An Adler32 + checksum is not as reliable as a CRC32 checksum, but a lot faster to + compute. + + The specification for Adler32 may be found in RFC 1950. + ZLIB Compressed Data Format Specification version 3.3) + + + From that document: + + "ADLER32 (Adler-32 checksum) + This contains a checksum value of the uncompressed data + (excluding any dictionary data) computed according to Adler-32 + algorithm. This algorithm is a 32-bit extension and improvement + of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + standard. + + Adler-32 is composed of two sums accumulated per byte: s1 is + the sum of all bytes, s2 is the sum of all s1 values. Both sums + are done modulo 65521. s1 is initialized to 1, s2 to zero. The + Adler-32 checksum is stored as s2*65536 + s1 in most- + significant-byte first (network) order." + + "8.2. The Adler-32 algorithm + + The Adler-32 algorithm is much faster than the CRC32 algorithm yet + still provides an extremely low probability of undetected errors. + + The modulo on unsigned long accumulators can be delayed for 5552 + bytes, so the modulo operation time is negligible. If the bytes + are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + and order sensitive, unlike the first sum, which is just a + checksum. That 65521 is prime is important to avoid a possible + large class of two-byte errors that leave the check unchanged. + (The Fletcher checksum uses 255, which is not prime and which also + makes the Fletcher check insensitive to single byte changes 0 - + 255.) + + The sum s1 is initialized to 1 instead of zero to make the length + of the sequence part of s2, so that the length does not have to be + checked separately. (Any sequence of zeroes has a Fletcher + checksum of zero.)" + + + + + + + largest prime smaller than 65536 + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the Adler32 data checksum as if no update was ever called. + + + + + Returns the Adler32 data checksum computed so far. + + + + + Updates the checksum with the byte b. + + + The data value to add. The high byte of the int is ignored. + + + + + Updates the Adler32 data checksum with the bytes taken from + a block of data. + + Contains the data to update the checksum with. + + + + Update Adler32 data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + CRC-32 with unreversed data and reversed output + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the CRC data checksum as if no update was ever called. + + + + + Returns the CRC data checksum computed so far. + + Reversed Out = true + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of bval + + Reversed Data = false + + + + Updates the CRC data checksum with the bytes taken from + a block of data. + + Contains the data to update the CRC with. + + + + Update CRC data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + CRC-32 with reversed data and unreversed output + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the CRC data checksum as if no update was ever called. + + + + + Returns the CRC data checksum computed so far. + + Reversed Out = false + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of bval + + Reversed Data = true + + + + Updates the CRC data checksum with the bytes taken from + a block of data. + + Contains the data to update the CRC with. + + + + Update CRC data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + Interface to compute a data checksum used by checked input/output streams. + A data checksum can be updated by one byte or with a byte array. After each + update the value of the current checksum can be returned by calling + getValue. The complete checksum object can also be reset + so it can be used again with new data. + + + + + Resets the data checksum as if no update was ever called. + + + + + Returns the data checksum computed so far. + + + + + Adds one byte to the data checksum. + + + the data value to add. The high byte of the int is ignored. + + + + + Updates the data checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + the number of data bytes to add. + + + + + Event arguments for scanning. + + + + + Initialise a new instance of + + The file or directory name. + + + + The file or directory name for this event. + + + + + Get set a value indicating if scanning should continue or not. + + + + + Event arguments during processing of a single file or directory. + + + + + Initialise a new instance of + + The file or directory name if known. + The number of bytes processed so far + The total number of bytes to process, 0 if not known + + + + The name for this event if known. + + + + + Get set a value indicating wether scanning should continue or not. + + + + + Get a percentage representing how much of the has been processed + + 0.0 to 100.0 percent; 0 if target is not known. + + + + The number of bytes processed so far + + + + + The number of bytes to process. + + Target may be 0 or negative if the value isnt known. + + + + Event arguments for directories. + + + + + Initialize an instance of . + + The name for this directory. + Flag value indicating if any matching files are contained in this directory. + + + + Get a value indicating if the directory contains any matching files or not. + + + + + Arguments passed when scan failures are detected. + + + + + Initialise a new instance of + + The name to apply. + The exception to use. + + + + The applicable name. + + + + + The applicable exception. + + + + + Get / set a value indicating wether scanning should continue. + + + + + Delegate invoked before starting to process a file. + + The source of the event + The event arguments. + + + + Delegate invoked during processing of a file or directory + + The source of the event + The event arguments. + + + + Delegate invoked when a file has been completely processed. + + The source of the event + The event arguments. + + + + Delegate invoked when a directory failure is detected. + + The source of the event + The event arguments. + + + + Delegate invoked when a file failure is detected. + + The source of the event + The event arguments. + + + + FileSystemScanner provides facilities scanning of files and directories. + + + + + Initialise a new instance of + + The file filter to apply when scanning. + + + + Initialise a new instance of + + The file filter to apply. + The directory filter to apply. + + + + Initialise a new instance of + + The file filter to apply. + + + + Initialise a new instance of + + The file filter to apply. + The directory filter to apply. + + + + Delegate to invoke when a directory is processed. + + + + + Delegate to invoke when a file is processed. + + + + + Delegate to invoke when processing for a file has finished. + + + + + Delegate to invoke when a directory failure is detected. + + + + + Delegate to invoke when a file failure is detected. + + + + + Raise the DirectoryFailure event. + + The directory name. + The exception detected. + + + + Raise the FileFailure event. + + The file name. + The exception detected. + + + + Raise the ProcessFile event. + + The file name. + + + + Raise the complete file event + + The file name + + + + Raise the ProcessDirectory event. + + The directory name. + Flag indicating if the directory has matching files. + + + + Scan a directory. + + The base directory to scan. + True to recurse subdirectories, false to scan a single directory. + + + + The file filter currently in use. + + + + + The directory filter currently in use. + + + + + Flag indicating if scanning should continue running. + + + + + INameTransform defines how file system names are transformed for use with archives, or vice versa. + + + + + Given a file name determine the transformed value. + + The name to transform. + The transformed file name. + + + + Given a directory name determine the transformed value. + + The name to transform. + The transformed directory name + + + + Scanning filters support filtering of names. + + + + + Test a name to see if it 'matches' the filter. + + The name to test. + Returns true if the name matches the filter, false if it does not match. + + + + NameFilter is a string matching class which allows for both positive and negative + matching. + A filter is a sequence of independant regular expressions separated by semi-colons ';'. + To include a semi-colon it may be quoted as in \;. Each expression can be prefixed by a plus '+' sign or + a minus '-' sign to denote the expression is intended to include or exclude names. + If neither a plus or minus sign is found include is the default. + A given name is tested for inclusion before checking exclusions. Only names matching an include spec + and not matching an exclude spec are deemed to match the filter. + An empty filter matches any name. + + The following expression includes all name ending in '.dat' with the exception of 'dummy.dat' + "+\.dat$;-^dummy\.dat$" + + + + + Construct an instance based on the filter expression passed + + The filter expression. + + + + Test a string to see if it is a valid regular expression. + + The expression to test. + True if expression is a valid false otherwise. + + + + Test an expression to see if it is valid as a filter. + + The filter expression to test. + True if the expression is valid, false otherwise. + + + + Split a string into its component pieces + + The original string + Returns an array of values containing the individual filter elements. + + + + Convert this filter to its string equivalent. + + The string equivalent for this filter. + + + + Test a value to see if it is included by the filter. + + The value to test. + True if the value is included, false otherwise. + + + + Test a value to see if it is excluded by the filter. + + The value to test. + True if the value is excluded, false otherwise. + + + + Test a value to see if it matches the filter. + + The value to test. + True if the value matches, false otherwise. + + + + Compile this filter. + + + + + PathFilter filters directories and files using a form of regular expressions + by full path name. + See NameFilter for more detail on filtering. + + + + + Initialise a new instance of . + + The filter expression to apply. + + + + Test a name to see if it matches the filter. + + The name to test. + True if the name matches, false otherwise. + is used to get the full path before matching. + + + + ExtendedPathFilter filters based on name, file size, and the last write time of the file. + + Provides an example of how to customise filtering. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum to include. + The maximum to include. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + The minimum to include. + The maximum to include. + + + + Test a filename to see if it matches the filter. + + The filename to test. + True if the filter matches, false otherwise. + The doesnt exist + + + + Get/set the minimum size/length for a file that will match this filter. + + The default value is zero. + value is less than zero; greater than + + + + Get/set the maximum size/length for a file that will match this filter. + + The default value is + value is less than zero or less than + + + + Get/set the minimum value that will match for this filter. + + Files with a LastWrite time less than this value are excluded by the filter. + + + + Get/set the maximum value that will match for this filter. + + Files with a LastWrite time greater than this value are excluded by the filter. + + + + NameAndSizeFilter filters based on name and file size. + + A sample showing how filters might be extended. + + + + Initialise a new instance of NameAndSizeFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + + + + Test a filename to see if it matches the filter. + + The filename to test. + True if the filter matches, false otherwise. + + + + Get/set the minimum size for a file that will match this filter. + + + + + Get/set the maximum size for a file that will match this filter. + + + + + Provides simple " utilities. + + + + + Read from a ensuring all the required data is read. + + The stream to read. + The buffer to fill. + + + + + Read from a " ensuring all the required data is read. + + The stream to read data from. + The buffer to store data in. + The offset at which to begin storing data. + The number of bytes of data to store. + Required parameter is null + and or are invalid. + End of stream is encountered before all the data has been read. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + The progress handler delegate to use. + The minimum between progress updates. + The source for this event. + The name to use with the event. + This form is specialised for use within #Zip to support events during archive operations. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + The progress handler delegate to use. + The minimum between progress updates. + The source for this event. + The name to use with the event. + A predetermined fixed target value to use with progress updates. + If the value is negative the target is calculated by looking at the stream. + This form is specialised for use within #Zip to support events during archive operations. + + + + Initialise an instance of + + + + + WindowsPathUtils provides simple utilities for handling windows paths. + + + + + Initializes a new instance of the class. + + + + + Remove any path root present in the path + + A containing path information. + The path with the root removed if it was present; path otherwise. + Unlike the class the path isnt otherwise checked for validity. + + + + PkzipClassic embodies the classic or original encryption facilities used in Pkzip archives. + While it has been superceded by more recent and more powerful algorithms, its still in use and + is viable for preventing casual snooping + + + + + Generates new encryption keys based on given seed + + The seed value to initialise keys with. + A new key value. + + + + PkzipClassicCryptoBase provides the low level facilities for encryption + and decryption using the PkzipClassic algorithm. + + + + + Transform a single byte + + + The transformed value + + + + + Set the key schedule for encryption/decryption. + + The data use to set the keys from. + + + + Update encryption keys + + + + + Reset the internal state. + + + + + PkzipClassic CryptoTransform for encryption. + + + + + Initialise a new instance of + + The key block to use. + + + + Transforms the specified region of the specified byte array. + + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + The computed transform. + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + The number of bytes written. + + + + Gets a value indicating whether the current transform can be reused. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Cleanup internal state. + + + + + PkzipClassic CryptoTransform for decryption. + + + + + Initialise a new instance of . + + The key block to decrypt with. + + + + Transforms the specified region of the specified byte array. + + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + The computed transform. + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + The number of bytes written. + + + + Gets a value indicating whether the current transform can be reused. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Cleanup internal state. + + + + + Defines a wrapper object to access the Pkzip algorithm. + This class cannot be inherited. + + + + + Get / set the applicable block size in bits. + + The only valid block size is 8. + + + + Get an array of legal key sizes. + + + + + Generate an initial vector. + + + + + Get an array of legal block sizes. + + + + + Get / set the key value applicable. + + + + + Generate a new random key. + + + + + Create an encryptor. + + The key to use for this encryptor. + Initialisation vector for the new encryptor. + Returns a new PkzipClassic encryptor + + + + Create a decryptor. + + Keys to use for this new decryptor. + Initialisation vector for the new decryptor. + Returns a new decryptor. + + + + Encrypts and decrypts AES ZIP + + + Based on information from http://www.winzip.com/aes_info.htm + and http://www.gladman.me.uk/cryptography_technology/fileencrypt/ + + + + + Constructor + + The stream on which to perform the cryptographic transformation. + Instance of ZipAESTransform + Read or Write + + + + Reads a sequence of bytes from the current CryptoStream into buffer, + and advances the position within the stream by the number of bytes read. + + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Transforms stream using AES in CTR mode + + + + + Constructor. + + Password string + Random bytes, length depends on encryption strength. + 128 bits = 8 bytes, 192 bits = 12 bytes, 256 bits = 16 bytes. + The encryption strength, in bytes eg 16 for 128 bits. + True when creating a zip, false when reading. For the AuthCode. + + + + + Implement the ICryptoTransform method. + + + + + Returns the 2 byte password verifier + + + + + Returns the 10 byte AUTH CODE to be checked or appended immediately following the AES data stream. + + + + + Not implemented. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Gets a value indicating whether the current transform can be reused. + + + + + Cleanup internal state. + + + + + An example class to demonstrate compression and decompression of GZip streams. + + + + + Decompress the input writing + uncompressed data to the output stream + + The readable stream containing data to decompress. + The output stream to receive the decompressed data. + Both streams are closed on completion if true. + + + + Compress the input stream sending + result data to output stream + + The readable stream to compress. + The output stream to receive the compressed data. + Both streams are closed on completion if true. + Block size acts as compression level (1 to 9) with 1 giving + the lowest compression and 9 the highest. + + + + This class contains constants used for gzip. + + + + + Magic number found at start of GZIP header + + + + + Flag bit mask for text + + + + + Flag bitmask for Crc + + + + + Flag bit mask for extra + + + + + flag bitmask for name + + + + + flag bit mask indicating comment is present + + + + + Initialise default instance. + + Constructor is private to prevent instances being created. + + + + GZipException represents exceptions specific to GZip classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This filter stream is used to decompress a "GZIP" format stream. + The "GZIP" format is described baseInputStream RFC 1952. + + author of the original java version : John Leuner + + This sample shows how to unzip a gzipped file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.GZip; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream inStream = new GZipInputStream(File.OpenRead(args[0]))) + using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + byte[] buffer = new byte[4096]; + StreamUtils.Copy(inStream, outStream, buffer); + } + } + } + + + + + + CRC-32 value for uncompressed data + + + + + Flag to indicate if we've read the GZIP header yet for the current member (block of compressed data). + This is tracked per-block as the file is parsed. + + + + + Flag to indicate if at least one block in a stream with concatenated blocks was read successfully. + This allows us to exit gracefully if downstream data is not in gzip format. + + + + + Creates a GZipInputStream with the default buffer size + + + The stream to read compressed data from (baseInputStream GZIP format) + + + + + Creates a GZIPInputStream with the specified buffer size + + + The stream to read compressed data from (baseInputStream GZIP format) + + + Size of the buffer to use + + + + + Reads uncompressed data into an array of bytes + + + The buffer to read uncompressed data into + + + The offset indicating where the data should be placed + + + The number of uncompressed bytes to be read + + Returns the number of bytes actually read. + + + + This filter stream is used to compress a stream into a "GZIP" stream. + The "GZIP" format is described in RFC 1952. + + author of the original java version : John Leuner + + This sample shows how to gzip a file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.GZip; + using ICSharpCode.SharpZipLib.Core; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream s = new GZipOutputStream(File.Create(args[0] + ".gz"))) + using (FileStream fs = File.OpenRead(args[0])) { + byte[] writeData = new byte[4096]; + Streamutils.Copy(s, fs, writeData); + } + } + } + } + + + + + + CRC-32 value for uncompressed data + + + + + Creates a GzipOutputStream with the default buffer size + + + The stream to read data (to be compressed) from + + + + + Creates a GZipOutputStream with the specified buffer size + + + The stream to read data (to be compressed) from + + + Size of the buffer to use + + + + + Sets the active compression level (1-9). The new level will be activated + immediately. + + The compression level to set. + + Level specified is not supported. + + + + + + Get the current compression level. + + The current compression level. + + + + Write given buffer to output updating crc + + Buffer to write + Offset of first byte in buf to write + Number of bytes to write + + + + Writes remaining compressed output data to the output stream + and closes it. + + + + + Finish compression and write any footer information required to stream + + + + + This class contains constants used for LZW + + + + + Magic number found at start of LZW header: 0x1f 0x9d + + + + + Maximum number of bits per code + + + + + Mask for 'number of compression bits' + + + + + Indicates the presence of a fourth header byte + + + + + Reserved bits + + + + + Block compression: if table is full and compression rate is dropping, + clear the dictionary. + + + + + LZW file header size (in bytes) + + + + + Initial number of bits per code + + + + + LzwException represents exceptions specific to LZW classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This filter stream is used to decompress a LZW format stream. + Specifically, a stream that uses the LZC compression method. + This file format is usually associated with the .Z file extension. + + See http://en.wikipedia.org/wiki/Compress + See http://wiki.wxwidgets.org/Development:_Z_File_Format + + The file header consists of 3 (or optionally 4) bytes. The first two bytes + contain the magic marker "0x1f 0x9d", followed by a byte of flags. + + Based on Java code by Ronald Tschalar, which in turn was based on the unlzw.c + code in the gzip package. + + This sample shows how to unzip a compressed file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.LZW; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream inStream = new LzwInputStream(File.OpenRead(args[0]))) + using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + byte[] buffer = new byte[4096]; + StreamUtils.Copy(inStream, outStream, buffer); + // OR + inStream.Read(buffer, 0, buffer.Length); + // now do something with the buffer + } + } + } + + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Creates a LzwInputStream + + + The stream to read compressed data from (baseInputStream LZW format) + + + + + See + + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + + + Moves the unread data in the buffer to the beginning and resets + the pointers. + + + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Flag indicating wether this instance has been closed or not. + + + + + SharpZipBaseException is the base exception class for SharpZipLib. + All library exceptions are derived from this. + + NOTE: Not all exceptions thrown will be derived from this class. + A variety of other exceptions are possible for example + + + + Initializes a new instance of the SharpZipBaseException class. + + + + + Initializes a new instance of the SharpZipBaseException class with a specified error message. + + A message describing the exception. + + + + Initializes a new instance of the SharpZipBaseException class with a specified + error message and a reference to the inner exception that is the cause of this exception. + + A message describing the exception. + The inner exception + + + + This exception is used to indicate that there is a problem + with a TAR archive header. + + + + + Initialise a new instance of the InvalidHeaderException class. + + + + + Initialises a new instance of the InvalidHeaderException class with a specified message. + + Message describing the exception cause. + + + + Initialise a new instance of InvalidHeaderException + + Message describing the problem. + The exception that is the cause of the current exception. + + + + Used to advise clients of 'events' while processing archives + + + + + The TarArchive class implements the concept of a + 'Tape Archive'. A tar archive is a series of entries, each of + which represents a file system object. Each entry in + the archive consists of a header block followed by 0 or more data blocks. + Directory entries consist only of the header block, and are followed by entries + for the directory's contents. File entries consist of a + header followed by the number of blocks needed to + contain the file's contents. All entries are written on + block boundaries. Blocks are 512 bytes long. + + TarArchives are instantiated in either read or write mode, + based upon whether they are instantiated with an InputStream + or an OutputStream. Once instantiated TarArchives read/write + mode can not be changed. + + There is currently no support for random access to tar archives. + However, it seems that subclassing TarArchive, and using the + TarBuffer.CurrentRecord and TarBuffer.CurrentBlock + properties, this would be rather trivial. + + + + + Client hook allowing detailed information to be reported during processing + + + + + Raises the ProgressMessage event + + The TarEntry for this event + message for this event. Null is no message + + + + Constructor for a default . + + + + + Initalise a TarArchive for input. + + The to use for input. + + + + Initialise a TarArchive for output. + + The to use for output. + + + + The InputStream based constructors create a TarArchive for the + purposes of extracting or listing a tar archive. Thus, use + these constructors when you wish to extract files from or list + the contents of an existing tar archive. + + The stream to retrieve archive data from. + Returns a new suitable for reading from. + + + + Create TarArchive for reading setting block factor + + A stream containing the tar archive contents + The blocking factor to apply + Returns a suitable for reading. + + + + Create a TarArchive for writing to, using the default blocking factor + + The to write to + Returns a suitable for writing. + + + + Create a tar archive for writing. + + The stream to write to + The blocking factor to use for buffering. + Returns a suitable for writing. + + + + Set the flag that determines whether existing files are + kept, or overwritten during extraction. + + + If true, do not overwrite existing files. + + + + + Get/set the ascii file translation flag. If ascii file translation + is true, then the file is checked to see if it a binary file or not. + If the flag is true and the test indicates it is ascii text + file, it will be translated. The translation converts the local + operating system's concept of line ends into the UNIX line end, + '\n', which is the defacto standard for a TAR archive. This makes + text files compatible with UNIX. + + + + + Set the ascii file translation flag. + + + If true, translate ascii text files. + + + + + PathPrefix is added to entry names as they are written if the value is not null. + A slash character is appended after PathPrefix + + + + + RootPath is removed from entry names if it is found at the + beginning of the name. + + + + + Set user and group information that will be used to fill in the + tar archive's entry headers. This information is based on that available + for the linux operating system, which is not always available on other + operating systems. TarArchive allows the programmer to specify values + to be used in their place. + is set to true by this call. + + + The user id to use in the headers. + + + The user name to use in the headers. + + + The group id to use in the headers. + + + The group name to use in the headers. + + + + + Get or set a value indicating if overrides defined by SetUserInfo should be applied. + + If overrides are not applied then the values as set in each header will be used. + + + + Get the archive user id. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current user id. + + + + + Get the archive user name. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current user name. + + + + + Get the archive group id. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current group id. + + + + + Get the archive group name. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current group name. + + + + + Get the archive's record size. Tar archives are composed of + a series of RECORDS each containing a number of BLOCKS. + This allowed tar archives to match the IO characteristics of + the physical device being used. Archives are expected + to be properly "blocked". + + + The record size this archive is using. + + + + + Sets the IsStreamOwner property on the underlying stream. + Set this to false to prevent the Close of the TarArchive from closing the stream. + + + + + Close the archive. + + + + + Perform the "list" command for the archive contents. + + NOTE That this method uses the progress event to actually list + the contents. If the progress display event is not set, nothing will be listed! + + + + + Perform the "extract" command and extract the contents of the archive. + + + The destination directory into which to extract. + + + + + Extract an entry from the archive. This method assumes that the + tarIn stream has been properly set with a call to GetNextEntry(). + + + The destination directory into which to extract. + + + The TarEntry returned by tarIn.GetNextEntry(). + + + + + Write an entry to the archive. This method will call the putNextEntry + and then write the contents of the entry, and finally call closeEntry() + for entries that are files. For directories, it will call putNextEntry(), + and then, if the recurse flag is true, process each entry that is a + child of the directory. + + + The TarEntry representing the entry to write to the archive. + + + If true, process the children of directory entries. + + + + + Write an entry to the archive. This method will call the putNextEntry + and then write the contents of the entry, and finally call closeEntry() + for entries that are files. For directories, it will call putNextEntry(), + and then, if the recurse flag is true, process each entry that is a + child of the directory. + + + The TarEntry representing the entry to write to the archive. + + + If true, process the children of directory entries. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases the unmanaged resources used by the FileStream and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Closes the archive and releases any associated resources. + + + + + Ensures that resources are freed and other cleanup operations are performed + when the garbage collector reclaims the . + + + + + The TarBuffer class implements the tar archive concept + of a buffered input stream. This concept goes back to the + days of blocked tape drives and special io devices. In the + C# universe, the only real function that this class + performs is to ensure that files have the correct "record" + size, or other tars will complain. +

+ You should never have a need to access this class directly. + TarBuffers are created by Tar IO Streams. +

+
+
+ + + The size of a block in a tar archive in bytes. + + This is 512 bytes. + + + + The number of blocks in a default record. + + + The default value is 20 blocks per record. + + + + + The size in bytes of a default record. + + + The default size is 10KB. + + + + + Get the record size for this buffer + + The record size in bytes. + This is equal to the multiplied by the + + + + Get the TAR Buffer's record size. + + The record size in bytes. + This is equal to the multiplied by the + + + + Get the Blocking factor for the buffer + + This is the number of blocks in each record. + + + + Get the TAR Buffer's block factor + + The block factor; the number of blocks per record. + + + + Construct a default TarBuffer + + + + + Create TarBuffer for reading with default BlockFactor + + Stream to buffer + A new suitable for input. + + + + Construct TarBuffer for reading inputStream setting BlockFactor + + Stream to buffer + Blocking factor to apply + A new suitable for input. + + + + Construct TarBuffer for writing with default BlockFactor + + output stream for buffer + A new suitable for output. + + + + Construct TarBuffer for writing Tar output to streams. + + Output stream to write to. + Blocking factor to apply + A new suitable for output. + + + + Initialization common to all constructors. + + + + + Determine if an archive block indicates End of Archive. End of + archive is indicated by a block that consists entirely of null bytes. + All remaining blocks for the record should also be null's + However some older tars only do a couple of null blocks (Old GNU tar for one) + and also partial records + + The data block to check. + Returns true if the block is an EOF block; false otherwise. + + + + Determine if an archive block indicates the End of an Archive has been reached. + End of archive is indicated by a block that consists entirely of null bytes. + All remaining blocks for the record should also be null's + However some older tars only do a couple of null blocks (Old GNU tar for one) + and also partial records + + The data block to check. + Returns true if the block is an EOF block; false otherwise. + + + + Skip over a block on the input stream. + + + + + Read a block from the input stream. + + + The block of data read. + + + + + Read a record from data stream. + + + false if End-Of-File, else true. + + + + + Get the current block number, within the current record, zero based. + + Block numbers are zero based values + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Get the current block number, within the current record, zero based. + + + The current zero based block number. + + + The absolute block number = (record number * block factor) + block number. + + + + + Get the current record number. + + + The current zero based record number. + + + + + Get the current record number. + + + The current zero based record number. + + + + + Write a block of data to the archive. + + + The data to write to the archive. + + + + + Write an archive record to the archive, where the record may be + inside of a larger array buffer. The buffer must be "offset plus + record size" long. + + + The buffer containing the record data to write. + + + The offset of the record data within buffer. + + + + + Write a TarBuffer record to the archive. + + + + + WriteFinalRecord writes the current record buffer to output any unwritten data is present. + + Any trailing bytes are set to zero which is by definition correct behaviour + for the end of a tar stream. + + + + Close the TarBuffer. If this is an output buffer, also flush the + current block before closing. + + + + + This class represents an entry in a Tar archive. It consists + of the entry's header, as well as the entry's File. Entries + can be instantiated in one of three ways, depending on how + they are to be used. +

+ TarEntries that are created from the header bytes read from + an archive are instantiated with the TarEntry( byte[] ) + constructor. These entries will be used when extracting from + or listing the contents of an archive. These entries have their + header filled in using the header bytes. They also set the File + to null, since they reference an archive entry not a file.

+

+ TarEntries that are created from files that are to be written + into an archive are instantiated with the CreateEntryFromFile(string) + pseudo constructor. These entries have their header filled in using + the File's information. They also keep a reference to the File + for convenience when writing entries.

+

+ Finally, TarEntries can be constructed from nothing but a name. + This allows the programmer to construct the entry by hand, for + instance when only an InputStream is available for writing to + the archive, and the header information is constructed from + other information. In this case the header fields are set to + defaults and the File is set to null.

+ +
+
+ + + Initialise a default instance of . + + + + + Construct an entry from an archive's header bytes. File is set + to null. + + + The header bytes from a tar archive entry. + + + + + Construct a TarEntry using the header provided + + Header details for entry + + + + Clone this tar entry. + + Returns a clone of this entry. + + + + Construct an entry with only a name. + This allows the programmer to construct the entry's header "by hand". + + The name to use for the entry + Returns the newly created + + + + Construct an entry for a file. File is set to file, and the + header is constructed from information from the file. + + The file name that the entry represents. + Returns the newly created + + + + Determine if the two entries are equal. Equality is determined + by the header names being equal. + + The to compare with the current Object. + + True if the entries are equal; false if not. + + + + + Derive a Hash value for the current + + A Hash code for the current + + + + Determine if the given entry is a descendant of this entry. + Descendancy is determined by the name of the descendant + starting with this entry's name. + + + Entry to be checked as a descendent of this. + + + True if entry is a descendant of this. + + + + + Get this entry's header. + + + This entry's TarHeader. + + + + + Get/Set this entry's name. + + + + + Get/set this entry's user id. + + + + + Get/set this entry's group id. + + + + + Get/set this entry's user name. + + + + + Get/set this entry's group name. + + + + + Convenience method to set this entry's group and user ids. + + + This entry's new user id. + + + This entry's new group id. + + + + + Convenience method to set this entry's group and user names. + + + This entry's new user name. + + + This entry's new group name. + + + + + Get/Set the modification time for this entry + + + + + Get this entry's file. + + + This entry's file. + + + + + Get/set this entry's recorded file size. + + + + + Return true if this entry represents a directory, false otherwise + + + True if this entry is a directory. + + + + + Fill in a TarHeader with information from a File. + + + The TarHeader to fill in. + + + The file from which to get the header information. + + + + + Get entries for all files present in this entries directory. + If this entry doesnt represent a directory zero entries are returned. + + + An array of TarEntry's for this entry's children. + + + + + Write an entry's header information to a header buffer. + + + The tar entry header buffer to fill in. + + + + + Convenience method that will modify an entry's name directly + in place in an entry header buffer byte array. + + + The buffer containing the entry header to modify. + + + The new name to place into the header buffer. + + + + + Fill in a TarHeader given only the entry's name. + + + The TarHeader to fill in. + + + The tar entry name. + + + + + The name of the file this entry represents or null if the entry is not based on a file. + + + + + The entry's header information. + + + + + TarException represents exceptions specific to Tar classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This class encapsulates the Tar Entry Header used in Tar Archives. + The class also holds a number of tar constants, used mostly in headers. + + + The tar format and its POSIX successor PAX have a long history which makes for compatability + issues when creating and reading files. + + This is further complicated by a large number of programs with variations on formats + One common issue is the handling of names longer than 100 characters. + GNU style long names are currently supported. + + This is the ustar (Posix 1003.1) header. + + struct header + { + char t_name[100]; // 0 Filename + char t_mode[8]; // 100 Permissions + char t_uid[8]; // 108 Numerical User ID + char t_gid[8]; // 116 Numerical Group ID + char t_size[12]; // 124 Filesize + char t_mtime[12]; // 136 st_mtime + char t_chksum[8]; // 148 Checksum + char t_typeflag; // 156 Type of File + char t_linkname[100]; // 157 Target of Links + char t_magic[6]; // 257 "ustar" or other... + char t_version[2]; // 263 Version fixed to 00 + char t_uname[32]; // 265 User Name + char t_gname[32]; // 297 Group Name + char t_devmajor[8]; // 329 Major for devices + char t_devminor[8]; // 337 Minor for devices + char t_prefix[155]; // 345 Prefix for t_name + char t_mfill[12]; // 500 Filler up to 512 + }; + + + + + The length of the name field in a header buffer. + + + + + The length of the mode field in a header buffer. + + + + + The length of the user id field in a header buffer. + + + + + The length of the group id field in a header buffer. + + + + + The length of the checksum field in a header buffer. + + + + + Offset of checksum in a header buffer. + + + + + The length of the size field in a header buffer. + + + + + The length of the magic field in a header buffer. + + + + + The length of the version field in a header buffer. + + + + + The length of the modification time field in a header buffer. + + + + + The length of the user name field in a header buffer. + + + + + The length of the group name field in a header buffer. + + + + + The length of the devices field in a header buffer. + + + + + The length of the name prefix field in a header buffer. + + + + + The "old way" of indicating a normal file. + + + + + Normal file type. + + + + + Link file type. + + + + + Symbolic link file type. + + + + + Character device file type. + + + + + Block device file type. + + + + + Directory file type. + + + + + FIFO (pipe) file type. + + + + + Contiguous file type. + + + + + Posix.1 2001 global extended header + + + + + Posix.1 2001 extended header + + + + + Solaris access control list file type + + + + + GNU dir dump file type + This is a dir entry that contains the names of files that were in the + dir at the time the dump was made + + + + + Solaris Extended Attribute File + + + + + Inode (metadata only) no file content + + + + + Identifies the next file on the tape as having a long link name + + + + + Identifies the next file on the tape as having a long name + + + + + Continuation of a file that began on another volume + + + + + For storing filenames that dont fit in the main header (old GNU) + + + + + GNU Sparse file + + + + + GNU Tape/volume header ignore on extraction + + + + + The magic tag representing a POSIX tar archive. (would be written with a trailing NULL) + + + + + The magic tag representing an old GNU tar archive where version is included in magic and overwrites it + + + + + Initialise a default TarHeader instance + + + + + Get/set the name for this tar entry. + + Thrown when attempting to set the property to null. + + + + Get the name of this entry. + + The entry's name. + + + + Get/set the entry's Unix style permission mode. + + + + + The entry's user id. + + + This is only directly relevant to unix systems. + The default is zero. + + + + + Get/set the entry's group id. + + + This is only directly relevant to linux/unix systems. + The default value is zero. + + + + + Get/set the entry's size. + + Thrown when setting the size to less than zero. + + + + Get/set the entry's modification time. + + + The modification time is only accurate to within a second. + + Thrown when setting the date time to less than 1/1/1970. + + + + Get the entry's checksum. This is only valid/updated after writing or reading an entry. + + + + + Get value of true if the header checksum is valid, false otherwise. + + + + + Get/set the entry's type flag. + + + + + The entry's link name. + + Thrown when attempting to set LinkName to null. + + + + Get/set the entry's magic tag. + + Thrown when attempting to set Magic to null. + + + + The entry's version. + + Thrown when attempting to set Version to null. + + + + The entry's user name. + + + + + Get/set the entry's group name. + + + This is only directly relevant to unix systems. + + + + + Get/set the entry's major device number. + + + + + Get/set the entry's minor device number. + + + + + Create a new that is a copy of the current instance. + + A new that is a copy of the current instance. + + + + Parse TarHeader information from a header buffer. + + + The tar entry header buffer to get information from. + + + + + 'Write' header information to buffer provided, updating the check sum. + + output buffer for header information + + + + Get a hash code for the current object. + + A hash code for the current object. + + + + Determines if this instance is equal to the specified object. + + The object to compare with. + true if the objects are equal, false otherwise. + + + + Set defaults for values used when constructing a TarHeader instance. + + Value to apply as a default for userId. + Value to apply as a default for userName. + Value to apply as a default for groupId. + Value to apply as a default for groupName. + + + + Parse an octal string from a header buffer. + + The header buffer from which to parse. + The offset into the buffer from which to parse. + The number of header bytes to parse. + The long equivalent of the octal string. + + + + Parse a name from a header buffer. + + + The header buffer from which to parse. + + + The offset into the buffer from which to parse. + + + The number of header bytes to parse. + + + The name parsed. + + + + + Add name to the buffer as a collection of bytes + + The name to add + The offset of the first character + The buffer to add to + The index of the first byte to add + The number of characters/bytes to add + The next free index in the + + + + Add name to the buffer as a collection of bytes + + The name to add + The offset of the first character + The buffer to add to + The index of the first byte to add + The number of characters/bytes to add + The next free index in the + + + + Add an entry name to the buffer + + + The name to add + + + The buffer to add to + + + The offset into the buffer from which to start adding + + + The number of header bytes to add + + + The index of the next free byte in the buffer + + + + + Add an entry name to the buffer + + The name to add + The buffer to add to + The offset into the buffer from which to start adding + The number of header bytes to add + The index of the next free byte in the buffer + + + + Add a string to a buffer as a collection of ascii bytes. + + The string to add + The offset of the first character to add. + The buffer to add to. + The offset to start adding at. + The number of ascii characters to add. + The next free index in the buffer. + + + + Put an octal representation of a value into a buffer + + + the value to be converted to octal + + + buffer to store the octal string + + + The offset into the buffer where the value starts + + + The length of the octal string to create + + + The offset of the character next byte after the octal string + + + + + Put an octal or binary representation of a value into a buffer + + Value to be convert to octal + The buffer to update + The offset into the buffer to store the value + The length of the octal string. Must be 12. + Index of next byte + + + + Add the checksum integer to header buffer. + + + The header buffer to set the checksum for + The offset into the buffer for the checksum + The number of header bytes to update. + It's formatted differently from the other fields: it has 6 digits, a + null, then a space -- rather than digits, a space, then a null. + The final space is already there, from checksumming + + The modified buffer offset + + + + Compute the checksum for a tar entry header. + The checksum field must be all spaces prior to this happening + + The tar entry's header buffer. + The computed checksum. + + + + Make a checksum for a tar entry ignoring the checksum contents. + + The tar entry's header buffer. + The checksum for the buffer + + + + The TarInputStream reads a UNIX tar archive as an InputStream. + methods are provided to position at each successive entry in + the archive, and the read each entry as a normal input stream + using read(). + + + + + Construct a TarInputStream with default block factor + + stream to source data from + + + + Construct a TarInputStream with user specified block factor + + stream to source data from + block factor to apply to archive + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking + This property always returns false. + + + + + Gets a value indicating if the stream supports writing. + This property always returns false. + + + + + The length in bytes of the stream + + + + + Gets or sets the position within the stream. + Setting the Position is not supported and throws a NotSupportedExceptionNotSupportedException + + Any attempt to set position + + + + Flushes the baseInputStream + + + + + Set the streams position. This operation is not supported and will throw a NotSupportedException + + The offset relative to the origin to seek to. + The to start seeking from. + The new position in the stream. + Any access + + + + Sets the length of the stream + This operation is not supported and will throw a NotSupportedException + + The new stream length. + Any access + + + + Writes a block of bytes to this stream using data from a buffer. + This operation is not supported and will throw a NotSupportedException + + The buffer containing bytes to write. + The offset in the buffer of the frist byte to write. + The number of bytes to write. + Any access + + + + Writes a byte to the current position in the file stream. + This operation is not supported and will throw a NotSupportedException + + The byte value to write. + Any access + + + + Reads a byte from the current tar archive entry. + + A byte cast to an int; -1 if the at the end of the stream. + + + + Reads bytes from the current tar archive entry. + + This method is aware of the boundaries of the current + entry in the archive and will deal with them appropriately + + + The buffer into which to place bytes read. + + + The offset at which to place bytes read. + + + The number of bytes to read. + + + The number of bytes read, or 0 at end of stream/EOF. + + + + + Closes this stream. Calls the TarBuffer's close() method. + The underlying stream is closed by the TarBuffer. + + + + + Set the entry factory for this instance. + + The factory for creating new entries + + + + Get the record size being used by this stream's TarBuffer. + + + + + Get the record size being used by this stream's TarBuffer. + + + TarBuffer record size. + + + + + Get the available data that can be read from the current + entry in the archive. This does not indicate how much data + is left in the entire archive, only in the current entry. + This value is determined from the entry's size header field + and the amount of data already read from the current entry. + + + The number of available bytes for the current entry. + + + + + Skip bytes in the input buffer. This skips bytes in the + current entry's data, not the entire archive, and will + stop at the end of the current entry's data if the number + to skip extends beyond that point. + + + The number of bytes to skip. + + + + + Return a value of true if marking is supported; false otherwise. + + Currently marking is not supported, the return value is always false. + + + + Since we do not support marking just yet, we do nothing. + + + The limit to mark. + + + + + Since we do not support marking just yet, we do nothing. + + + + + Get the next entry in this tar archive. This will skip + over any remaining data in the current entry, if there + is one, and place the input stream at the header of the + next entry, and read the header and instantiate a new + TarEntry from the header bytes and return that entry. + If there are no more entries in the archive, null will + be returned to indicate that the end of the archive has + been reached. + + + The next TarEntry in the archive, or null. + + + + + Copies the contents of the current tar archive entry directly into + an output stream. + + + The OutputStream into which to write the entry's data. + + + + + This interface is provided, along with the method , to allow + the programmer to have their own subclass instantiated for the + entries return from . + + + + + Create an entry based on name alone + + + Name of the new EntryPointNotFoundException to create + + created TarEntry or descendant class + + + + Create an instance based on an actual file + + + Name of file to represent in the entry + + + Created TarEntry or descendant class + + + + + Create a tar entry based on the header information passed + + + Buffer containing header information to create an an entry from. + + + Created TarEntry or descendant class + + + + + Standard entry factory class creating instances of the class TarEntry + + + + + Create a based on named + + The name to use for the entry + A new + + + + Create a tar entry with details obtained from file + + The name of the file to retrieve details from. + A new + + + + Create an entry based on details in header + + The buffer containing entry details. + A new + + + + Flag set when last block has been read + + + + + Size of this entry as recorded in header + + + + + Number of bytes read for this entry so far + + + + + Buffer used with calls to Read() + + + + + Working buffer + + + + + Current entry being read + + + + + Factory used to create TarEntry or descendant class instance + + + + + Stream used as the source of input data. + + + + + The TarOutputStream writes a UNIX tar archive as an OutputStream. + Methods are provided to put entries, and then write their contents + by writing to this stream using write(). + + public + + + + Construct TarOutputStream using default block factor + + stream to write to + + + + Construct TarOutputStream with user specified block factor + + stream to write to + blocking factor + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + true if the stream supports reading; otherwise, false. + + + + + true if the stream supports seeking; otherwise, false. + + + + + true if stream supports writing; otherwise, false. + + + + + length of stream in bytes + + + + + gets or sets the position within the current stream. + + + + + set the position within the current stream + + The offset relative to the to seek to + The to seek from. + The new position in the stream. + + + + Set the length of the current stream + + The new stream length. + + + + Read a byte from the stream and advance the position within the stream + by one byte or returns -1 if at the end of the stream. + + The byte value or -1 if at end of stream + + + + read bytes from the current stream and advance the position within the + stream by the number of bytes read. + + The buffer to store read bytes in. + The index into the buffer to being storing bytes at. + The desired number of bytes to read. + The total number of bytes read, or zero if at the end of the stream. + The number of bytes may be less than the count + requested if data is not avialable. + + + + All buffered data is written to destination + + + + + Ends the TAR archive without closing the underlying OutputStream. + The result is that the EOF block of nulls is written. + + + + + Ends the TAR archive and closes the underlying OutputStream. + + This means that Finish() is called followed by calling the + TarBuffer's Close(). + + + + Get the record size being used by this stream's TarBuffer. + + + + + Get the record size being used by this stream's TarBuffer. + + + The TarBuffer record size. + + + + + Get a value indicating wether an entry is open, requiring more data to be written. + + + + + Put an entry on the output stream. This writes the entry's + header and positions the output stream for writing + the contents of the entry. Once this method is called, the + stream is ready for calls to write() to write the entry's + contents. Once the contents are written, closeEntry() + MUST be called to ensure that all buffered data + is completely written to the output stream. + + + The TarEntry to be written to the archive. + + + + + Close an entry. This method MUST be called for all file + entries that contain data. The reason is that we must + buffer data written to the stream in order to satisfy + the buffer's block based writes. Thus, there may be + data fragments still being assembled that must be written + to the output stream before this entry is closed and the + next entry written. + + + + + Writes a byte to the current tar archive entry. + This method simply calls Write(byte[], int, int). + + + The byte to be written. + + + + + Writes bytes to the current tar archive entry. This method + is aware of the current entry and will throw an exception if + you attempt to write bytes past the length specified for the + current entry. The method is also (painfully) aware of the + record buffering required by TarBuffer, and manages buffers + that are not a multiple of recordsize in length, including + assembling records from small buffers. + + + The buffer to write to the archive. + + + The offset in the buffer from which to get bytes. + + + The number of bytes to write. + + + + + Write an EOF (end of archive) block to the tar archive. + The end of the archive is indicated by two blocks consisting entirely of zero bytes. + + + + + bytes written for this entry so far + + + + + current 'Assembly' buffer length + + + + + Flag indicating wether this instance has been closed or not. + + + + + Size for the current entry + + + + + single block working buffer + + + + + 'Assembly' buffer used to assemble data before writing + + + + + TarBuffer used to provide correct blocking factor + + + + + the destination stream for the archive contents + + + + + This is the Deflater class. The deflater class compresses input + with the deflate algorithm described in RFC 1951. It has several + compression levels and three different strategies described below. + + This class is not thread safe. This is inherent in the API, due + to the split of deflate and setInput. + + author of the original java version : Jochen Hoenicke + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Compression Level as an enum for safer use + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Creates a new deflater with default compression level. + + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION, or DEFAULT_COMPRESSION. + + if lvl is out of range. + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION. + + + true, if we should suppress the Zlib/RFC1950 header at the + beginning and the adler checksum at the end of the output. This is + useful for the GZIP/PKZIP formats. + + if lvl is out of range. + + + + Resets the deflater. The deflater acts afterwards as if it was + just created with the same compression level and strategy as it + had before. + + + + + Gets the current adler checksum of the data that was processed so far. + + + + + Gets the number of input bytes processed so far. + + + + + Gets the number of output bytes so far. + + + + + Flushes the current input block. Further calls to deflate() will + produce enough output to inflate everything in the current input + block. This is not part of Sun's JDK so I have made it package + private. It is used by DeflaterOutputStream to implement + flush(). + + + + + Finishes the deflater with the current input block. It is an error + to give more input after this method was called. This method must + be called to force all bytes to be flushed. + + + + + Returns true if the stream was finished and no more output bytes + are available. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method can also return true when the stream + was finished. + + + + + Sets the data which should be compressed next. This should be only + called when needsInput indicates that more input is needed. + If you call setInput when needsInput() returns false, the + previous input that is still pending will be thrown away. + The given byte array should not be changed, before needsInput() returns + true again. + This call is equivalent to setInput(input, 0, input.length). + + + the buffer containing the input data. + + + if the buffer was finished() or ended(). + + + + + Sets the data which should be compressed next. This should be + only called when needsInput indicates that more input is needed. + The given byte array should not be changed, before needsInput() returns + true again. + + + the buffer containing the input data. + + + the start of the data. + + + the number of data bytes of input. + + + if the buffer was Finish()ed or if previous input is still pending. + + + + + Sets the compression level. There is no guarantee of the exact + position of the change, but if you call this when needsInput is + true the change of compression level will occur somewhere near + before the end of the so far given input. + + + the new compression level. + + + + + Get current compression level + + Returns the current compression level + + + + Sets the compression strategy. Strategy is one of + DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact + position where the strategy is changed, the same as for + SetLevel() applies. + + + The new compression strategy. + + + + + Deflates the current input block with to the given array. + + + The buffer where compressed data is stored + + + The number of compressed bytes added to the output, or 0 if either + IsNeedingInput() or IsFinished returns true or length is zero. + + + + + Deflates the current input block to the given array. + + + Buffer to store the compressed data. + + + Offset into the output array. + + + The maximum number of bytes that may be stored. + + + The number of compressed bytes added to the output, or 0 if either + needsInput() or finished() returns true or length is zero. + + + If Finish() was previously called. + + + If offset or length don't match the array length. + + + + + Sets the dictionary which should be used in the deflate process. + This call is equivalent to setDictionary(dict, 0, dict.Length). + + + the dictionary. + + + if SetInput () or Deflate () were already called or another dictionary was already set. + + + + + Sets the dictionary which should be used in the deflate process. + The dictionary is a byte array containing strings that are + likely to occur in the data which should be compressed. The + dictionary is not stored in the compressed output, only a + checksum. To decompress the output you need to supply the same + dictionary again. + + + The dictionary data + + + The index where dictionary information commences. + + + The number of bytes in the dictionary. + + + If SetInput () or Deflate() were already called or another dictionary was already set. + + + + + Compression level. + + + + + If true no Zlib/RFC1950 headers or footers are generated + + + + + The current state. + + + + + The total bytes of output written. + + + + + The pending output. + + + + + The deflater engine. + + + + + This class contains constants used for deflation. + + + + + Set to true to enable debugging + + + + + Written to Zip file to identify a stored block + + + + + Identifies static tree in Zip file + + + + + Identifies dynamic tree in Zip file + + + + + Header flag indicating a preset dictionary for deflation + + + + + Sets internal buffer sizes for Huffman encoding + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Strategies for deflater + + + + + The default strategy + + + + + This strategy will only allow longer string repetitions. It is + useful for random data with a small character set. + + + + + This strategy will not look for string repetitions at all. It + only encodes with Huffman trees (which means, that more common + characters get a smaller encoding. + + + + + Low level compression engine for deflate algorithm which uses a 32K sliding window + with secondary compression from Huffman/Shannon-Fano codes. + + + + + Construct instance with pending buffer + + + Pending buffer to use + > + + + + Deflate drives actual compression of data + + True to flush input buffers + Finish deflation with the current input. + Returns true if progress has been made. + + + + Sets input data to be deflated. Should only be called when NeedsInput() + returns true + + The buffer containing input data. + The offset of the first byte of data. + The number of bytes of data to use as input. + + + + Determines if more input is needed. + + Return true if input is needed via SetInput + + + + Set compression dictionary + + The buffer containing the dictionary data + The offset in the buffer for the first byte of data + The length of the dictionary data. + + + + Reset internal state + + + + + Reset Adler checksum + + + + + Get current value of Adler checksum + + + + + Total data processed + + + + + Get/set the deflate strategy + + + + + Set the deflate level (0-9) + + The value to set the level to. + + + + Fill the window + + + + + Inserts the current string in the head hash and returns the previous + value for this hash. + + The previous hash value + + + + Find the best (longest) string in the window matching the + string starting at strstart. + + Preconditions: + + strstart + DeflaterConstants.MAX_MATCH <= window.length. + + + True if a match greater than the minimum length is found + + + + Hashtable, hashing three characters to an index for window, so + that window[index]..window[index+2] have this hash code. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + prev[index & WMASK] points to the previous index that has the + same hash code as the string starting at index. This way + entries with the same hash code are in a linked list. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + Points to the current character in the window. + + + + + lookahead is the number of characters starting at strstart in + window that are valid. + So window[strstart] until window[strstart+lookahead-1] are valid + characters. + + + + + This array contains the part of the uncompressed stream that + is of relevance. The current character is indexed by strstart. + + + + + The current compression function. + + + + + The input data for compression. + + + + + The total bytes of input read. + + + + + The offset into inputBuf, where input data starts. + + + + + The end offset of the input data. + + + + + The adler checksum + + + + + This is the DeflaterHuffman class. + + This class is not thread safe. This is inherent in the API, due + to the split of Deflate and SetInput. + + author of the original java version : Jochen Hoenicke + + + + + Resets the internal state of the tree + + + + + Check that all frequencies are zero + + + At least one frequency is non-zero + + + + + Set static codes and length + + new codes + length for new codes + + + + Build dynamic codes and lengths + + + + + Get encoded length + + Encoded length, the sum of frequencies * lengths + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + + + + Write tree values + + Tree to write + + + + Pending buffer to use + + + + + Construct instance with pending buffer + + Pending buffer to use + + + + Reset internal state + + + + + Write all trees to pending buffer + + The number/rank of treecodes to send. + + + + Compress current buffer writing data to pending buffer + + + + + Flush block to output with no compression + + Data to write + Index of first byte to write + Count of bytes to write + True if this is the last block + + + + Flush block to output with compression + + Data to flush + Index of first byte to flush + Count of bytes to flush + True if this is the last block + + + + Get value indicating if internal buffer is full + + true if buffer is full + + + + Add literal to buffer + + Literal value to add to buffer. + Value indicating internal buffer is full + + + + Add distance code and length to literal and distance trees + + Distance code + Length + Value indicating if internal buffer is full + + + + Reverse the bits of a 16 bit value. + + Value to reverse bits + Value with bits reversed + + + + This class stores the pending output of the Deflater. + + author of the original java version : Jochen Hoenicke + + + + + Construct instance with default buffer size + + + + + Inflater is used to decompress data that has been compressed according + to the "deflate" standard described in rfc1951. + + By default Zlib (rfc1950) headers and footers are expected in the input. + You can use constructor public Inflater(bool noHeader) passing true + if there is no Zlib header information + + The usage is as following. First you have to set some input with + SetInput(), then Inflate() it. If inflate doesn't + inflate any bytes there may be three reasons: +
    +
  • IsNeedingInput() returns true because the input buffer is empty. + You have to provide more input with SetInput(). + NOTE: IsNeedingInput() also returns true when, the stream is finished. +
  • +
  • IsNeedingDictionary() returns true, you have to provide a preset + dictionary with SetDictionary().
  • +
  • IsFinished returns true, the inflater has finished.
  • +
+ Once the first output byte is produced, a dictionary will not be + needed at a later stage. + + author of the original java version : John Leuner, Jochen Hoenicke +
+
+ + + Copy lengths for literal codes 257..285 + + + + + Extra bits for literal codes 257..285 + + + + + Copy offsets for distance codes 0..29 + + + + + Extra bits for distance codes + + + + + These are the possible states for an inflater + + + + + This variable contains the current state. + + + + + The adler checksum of the dictionary or of the decompressed + stream, as it is written in the header resp. footer of the + compressed stream. + Only valid if mode is DECODE_DICT or DECODE_CHKSUM. + + + + + The number of bits needed to complete the current state. This + is valid, if mode is DECODE_DICT, DECODE_CHKSUM, + DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. + + + + + True, if the last block flag was set in the last block of the + inflated stream. This means that the stream ends after the + current block. + + + + + The total number of inflated bytes. + + + + + The total number of bytes set with setInput(). This is not the + value returned by the TotalIn property, since this also includes the + unprocessed input. + + + + + This variable stores the noHeader flag that was given to the constructor. + True means, that the inflated stream doesn't contain a Zlib header or + footer. + + + + + Creates a new inflater or RFC1951 decompressor + RFC1950/Zlib headers and footers will be expected in the input data + + + + + Creates a new inflater. + + + True if no RFC1950/Zlib header and footer fields are expected in the input data + + This is used for GZIPed/Zipped input. + + For compatibility with + Sun JDK you should provide one byte of input more than needed in + this case. + + + + + Resets the inflater so that a new stream can be decompressed. All + pending input and output will be discarded. + + + + + Decodes a zlib/RFC1950 header. + + + False if more input is needed. + + + The header is invalid. + + + + + Decodes the dictionary checksum after the deflate header. + + + False if more input is needed. + + + + + Decodes the huffman encoded symbols in the input stream. + + + false if more input is needed, true if output window is + full or the current block ends. + + + if deflated stream is invalid. + + + + + Decodes the adler checksum after the deflate stream. + + + false if more input is needed. + + + If checksum doesn't match. + + + + + Decodes the deflated stream. + + + false if more input is needed, or if finished. + + + if deflated stream is invalid. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + The index into buffer where the dictionary starts. + + + The number of bytes in the dictionary. + + + No dictionary is needed. + + + The adler checksum for the buffer is invalid + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + the input. + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + The source of input data + + + The index into buffer where the input starts. + + + The number of bytes of input to use. + + + No input is needed. + + + The index and/or count are wrong. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether IsNeedingDictionary(), + IsNeedingInput() or IsFinished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + The number of bytes written to the buffer, 0 if no further + output can be produced. + + + if buffer has length 0. + + + if deflated stream is invalid. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether needsDictionary(), + needsInput() or finished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + the offset in buffer where storing starts. + + + the maximum number of bytes to output. + + + the number of bytes written to the buffer, 0 if no further output can be produced. + + + if count is less than 0. + + + if the index and / or count are wrong. + + + if deflated stream is invalid. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method also returns true when the stream is finished. + + + + + Returns true, if a preset dictionary is needed to inflate the input. + + + + + Returns true, if the inflater has finished. This means, that no + input is needed and no output can be produced. + + + + + Gets the adler checksum. This is either the checksum of all + uncompressed bytes returned by inflate(), or if needsDictionary() + returns true (and thus no output was yet produced) this is the + adler checksum of the expected dictionary. + + + the adler checksum. + + + + + Gets the total number of output bytes returned by Inflate(). + + + the total number of output bytes. + + + + + Gets the total number of processed compressed input bytes. + + + The total number of bytes of processed input bytes. + + + + + Gets the number of unprocessed input bytes. Useful, if the end of the + stream is reached and you want to further process the bytes after + the deflate stream. + + + The number of bytes of the input which have not been processed. + + + + + The current decode mode + + + + + Huffman tree used for inflation + + + + + Literal length tree + + + + + Distance tree + + + + + Constructs a Huffman tree from the array of code lengths. + + + the array of code lengths + + + + + Reads the next symbol from input. The symbol is encoded using the + huffman tree. + + + input the input source. + + + the next symbol, or -1 if not enough input is available. + + + + + This class is general purpose class for writing data to a buffer. + + It allows you to write bits as well as bytes + Based on DeflaterPending.java + + author of the original java version : Jochen Hoenicke + + + + + Internal work buffer + + + + + construct instance using default buffer size of 4096 + + + + + construct instance using specified buffer size + + + size to use for internal buffer + + + + + Clear internal state/buffers + + + + + Write a byte to buffer + + + The value to write + + + + + Write a short value to buffer LSB first + + + The value to write. + + + + + write an integer LSB first + + The value to write. + + + + Write a block of data to buffer + + data to write + offset of first byte to write + number of bytes to write + + + + The number of bits written to the buffer + + + + + Align internal buffer on a byte boundary + + + + + Write bits to internal buffer + + source of bits + number of bits to write + + + + Write a short value to internal buffer most significant byte first + + value to write + + + + Indicates if buffer has been flushed + + + + + Flushes the pending buffer into the given output array. If the + output array is to small, only a partial flush is done. + + The output array. + The offset into output array. + The maximum number of bytes to store. + The number of bytes flushed. + + + + Convert internal buffer to byte array. + Buffer is empty on completion + + + The internal buffer contents converted to a byte array. + + + + + A special stream deflating or compressing the bytes that are + written to it. It uses a Deflater to perform actual deflating.
+ Authors of the original java version : Tom Tromey, Jochen Hoenicke +
+
+ + + Creates a new DeflaterOutputStream with a default Deflater and default buffer size. + + + the output stream where deflated output should be written. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + default buffer size. + + + the output stream where deflated output should be written. + + + the underlying deflater. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + buffer size. + + + The output stream where deflated output is written. + + + The underlying deflater to use + + + The buffer size in bytes to use when deflating (minimum value 512) + + + bufsize is less than or equal to zero. + + + baseOutputStream does not support writing + + + deflater instance is null + + + + + Finishes the stream by calling finish() on the deflater. + + + Not all input is deflated + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Allows client to determine if an entry can be patched after its added + + + + + Returns the 10 byte AUTH CODE to be appended immediately following the AES data stream. + + + + + Get/set the password used for encryption. + + When set to null or if the password is empty no encryption is performed + + + + Encrypt a block of data + + + Data to encrypt. NOTE the original contents of the buffer are lost + + + Offset of first byte in buffer to encrypt + + + Number of bytes in buffer to encrypt + + + + + Initializes encryption keys based on given . + + The password. + + + + Initializes encryption keys based on given password. + + + + + Deflates everything in the input buffers. This will call + def.deflate() until all bytes from the input buffers + are processed. + + + + + Gets value indicating stream can be read from + + + + + Gets a value indicating if seeking is supported for this stream + This property always returns false + + + + + Get value indicating if this stream supports writing + + + + + Get current length of stream + + + + + Gets the current position within the stream. + + Any attempt to set position + + + + Sets the current position of this stream to the given value. Not supported by this class! + + The offset relative to the to seek. + The to seek from. + The new position in the stream. + Any access + + + + Sets the length of this stream to the given value. Not supported by this class! + + The new stream length. + Any access + + + + Read a byte from stream advancing position by one + + The byte read cast to an int. THe value is -1 if at the end of the stream. + Any access + + + + Read a block of bytes from stream + + The buffer to store read data in. + The offset to start storing at. + The maximum number of bytes to read. + The actual number of bytes read. Zero if end of stream is detected. + Any access + + + + Flushes the stream by calling Flush on the deflater and then + on the underlying stream. This ensures that all bytes are flushed. + + + + + Calls and closes the underlying + stream when is true. + + + + + Writes a single byte to the compressed output stream. + + + The byte value. + + + + + Writes bytes from an array to the compressed stream. + + + The byte array + + + The offset into the byte array where to start. + + + The number of bytes to write. + + + + + This buffer is used temporarily to retrieve the bytes from the + deflater and write them to the underlying output stream. + + + + + The deflater which is used to deflate the stream. + + + + + Base stream the deflater depends on. + + + + + An input buffer customised for use by + + + The buffer supports decryption of incoming data. + + + + + Initialise a new instance of with a default buffer size + + The stream to buffer. + + + + Initialise a new instance of + + The stream to buffer. + The size to use for the buffer + A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. + + + + Get the length of bytes bytes in the + + + + + Get the contents of the raw data buffer. + + This may contain encrypted data. + + + + Get the number of useable bytes in + + + + + Get the contents of the clear text buffer. + + + + + Get/set the number of bytes available + + + + + Call passing the current clear text buffer contents. + + The inflater to set input for. + + + + Fill the buffer from the underlying input stream. + + + + + Read a buffer directly from the input stream + + The buffer to fill + Returns the number of bytes read. + + + + Read a buffer directly from the input stream + + The buffer to read into + The offset to start reading data into. + The number of bytes to read. + Returns the number of bytes read. + + + + Read clear text data from the input stream. + + The buffer to add data to. + The offset to start adding data at. + The number of bytes to read. + Returns the number of bytes actually read. + + + + Read a from the input stream. + + Returns the byte read. + + + + Read an in little endian byte order. + + The short value read case to an int. + + + + Read an in little endian byte order. + + The int value read. + + + + Read a in little endian byte order. + + The long value read. + + + + Get/set the to apply to any data. + + Set this value to null to have no transform applied. + + + + This filter stream is used to decompress data compressed using the "deflate" + format. The "deflate" format is described in RFC 1951. + + This stream may form the basis for other decompression filters, such + as the GZipInputStream. + + Author of the original java version : John Leuner. + + + + + Create an InflaterInputStream with the default decompressor + and a default buffer size of 4KB. + + + The InputStream to read bytes from + + + + + Create an InflaterInputStream with the specified decompressor + and a default buffer size of 4KB. + + + The source of input data + + + The decompressor used to decompress data read from baseInputStream + + + + + Create an InflaterInputStream with the specified decompressor + and the specified buffer size. + + + The InputStream to read bytes from + + + The decompressor to use + + + Size of the buffer to use + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Skip specified number of bytes of uncompressed data + + + Number of bytes to skip + + + The number of bytes skipped, zero if the end of + stream has been reached + + + The number of bytes to skip is less than or equal to zero. + + + + + Clear any cryptographic state. + + + + + Returns 0 once the end of the stream (EOF) has been reached. + Otherwise returns 1. + + + + + Fills the buffer with more data to decompress. + + + Stream ends early + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + Inflater needs a dictionary + + + + + Decompressor for this stream + + + + + Input buffer for this stream. + + + + + Base stream the inflater reads from. + + + + + The compressed size + + + + + Flag indicating wether this instance has been closed or not. + + + + + Contains the output from the Inflation process. + We need to have a window so that we can refer backwards into the output stream + to repeat stuff.
+ Author of the original java version : John Leuner +
+
+ + + Write a byte to this output window + + value to write + + if window is full + + + + + Append a byte pattern already in the window itself + + length of pattern to copy + distance from end of window pattern occurs + + If the repeated data overflows the window + + + + + Copy from input manipulator to internal window + + source of data + length of data to copy + the number of bytes copied + + + + Copy dictionary to window + + source dictionary + offset of start in source dictionary + length of dictionary + + If window isnt empty + + + + + Get remaining unfilled space in window + + Number of bytes left in window + + + + Get bytes available for output in window + + Number of bytes filled + + + + Copy contents of window to output + + buffer to copy to + offset to start at + number of bytes to count + The number of bytes copied + + If a window underflow occurs + + + + + Reset by clearing window so GetAvailable returns 0 + + + + + This class allows us to retrieve a specified number of bits from + the input buffer, as well as copy big byte blocks. + + It uses an int buffer to store up to 31 bits for direct + manipulation. This guarantees that we can get at least 16 bits, + but we only need at most 15, so this is all safe. + + There are some optimizations in this class, for example, you must + never peek more than 8 bits more than needed, and you must first + peek bits before you may drop them. This is not a general purpose + class but optimized for the behaviour of the Inflater. + + authors of the original java version : John Leuner, Jochen Hoenicke + + + + + Get the next sequence of bits but don't increase input pointer. bitCount must be + less or equal 16 and if this call succeeds, you must drop + at least n - 8 bits in the next call. + + The number of bits to peek. + + the value of the bits, or -1 if not enough bits available. */ + + + + + Drops the next n bits from the input. You should have called PeekBits + with a bigger or equal n before, to make sure that enough bits are in + the bit buffer. + + The number of bits to drop. + + + + Gets the next n bits and increases input pointer. This is equivalent + to followed by , except for correct error handling. + + The number of bits to retrieve. + + the value of the bits, or -1 if not enough bits available. + + + + + Gets the number of bits available in the bit buffer. This must be + only called when a previous PeekBits() returned -1. + + + the number of bits available. + + + + + Gets the number of bytes available. + + + The number of bytes available. + + + + + Skips to the next byte boundary. + + + + + Returns true when SetInput can be called + + + + + Copies bytes from input buffer to output buffer starting + at output[offset]. You have to make sure, that the buffer is + byte aligned. If not enough bytes are available, copies fewer + bytes. + + + The buffer to copy bytes to. + + + The offset in the buffer at which copying starts + + + The length to copy, 0 is allowed. + + + The number of bytes copied, 0 if no bytes were available. + + + Length is less than zero + + + Bit buffer isnt byte aligned + + + + + Resets state and empties internal buffers + + + + + Add more input for consumption. + Only call when IsNeedingInput returns true + + data to be input + offset of first byte of input + number of bytes of input to add. + + + + FastZipEvents supports all events applicable to FastZip operations. + + + + + Delegate to invoke when processing directories. + + + + + Delegate to invoke when processing files. + + + + + Delegate to invoke during processing of files. + + + + + Delegate to invoke when processing for a file has been completed. + + + + + Delegate to invoke when processing directory failures. + + + + + Delegate to invoke when processing file failures. + + + + + Raise the directory failure event. + + The directory causing the failure. + The exception for this event. + A boolean indicating if execution should continue or not. + + + + Fires the file failure handler delegate. + + The file causing the failure. + The exception for this failure. + A boolean indicating if execution should continue or not. + + + + Fires the ProcessFile delegate. + + The file being processed. + A boolean indicating if execution should continue or not. + + + + Fires the delegate + + The file whose processing has been completed. + A boolean indicating if execution should continue or not. + + + + Fires the process directory delegate. + + The directory being processed. + Flag indicating if the directory has matching files as determined by the current filter. + A of true if the operation should continue; false otherwise. + + + + The minimum timespan between events. + + The minimum period of time between events. + + The default interval is three seconds. + + + + FastZip provides facilities for creating and extracting zip files. + + + + + Defines the desired handling when overwriting files during extraction. + + + + + Prompt the user to confirm overwriting + + + + + Never overwrite files. + + + + + Always overwrite files. + + + + + Initialise a default instance of . + + + + + Initialise a new instance of + + The events to use during operations. + + + + Get/set a value indicating wether empty directories should be created. + + + + + Get / set the password value. + + + + + Get or set the active when creating Zip files. + + + + + + Get or set the active when creating Zip files. + + + + + Gets or sets the setting for Zip64 handling when writing. + + + The default value is dynamic which is not backwards compatible with old + programs and can cause problems with XP's built in compression which cant + read Zip64 archives. However it does avoid the situation were a large file + is added and cannot be completed correctly. + NOTE: Setting the size for entries before they are added is the best solution! + By default the EntryFactory used by FastZip will set fhe file size. + + + + + Get/set a value indicating wether file dates and times should + be restored when extracting files from an archive. + + The default value is false. + + + + Get/set a value indicating whether file attributes should + be restored during extract operations + + + + + Get/set the Compression Level that will be used + when creating the zip + + + + + Delegate called when confirming overwriting of files. + + + + + Create a zip file. + + The name of the zip file to create. + The directory to source files from. + True to recurse directories, false for no recursion. + The file filter to apply. + The directory filter to apply. + + + + Create a zip file/archive. + + The name of the zip file to create. + The directory to obtain files and directories from. + True to recurse directories, false for no recursion. + The file filter to apply. + + + + Create a zip archive sending output to the passed. + + The stream to write archive data to. + The directory to source files from. + True to recurse directories, false for no recursion. + The file filter to apply. + The directory filter to apply. + The is closed after creation. + + + + Extract the contents of a zip file. + + The zip file to extract from. + The directory to save extracted information in. + A filter to apply to files. + + + + Extract the contents of a zip file. + + The zip file to extract from. + The directory to save extracted information in. + The style of overwriting to apply. + A delegate to invoke when confirming overwriting. + A filter to apply to files. + A filter to apply to directories. + Flag indicating whether to restore the date and time for extracted files. + + + + Extract the contents of a zip file held in a stream. + + The seekable input stream containing the zip to extract from. + The directory to save extracted information in. + The style of overwriting to apply. + A delegate to invoke when confirming overwriting. + A filter to apply to files. + A filter to apply to directories. + Flag indicating whether to restore the date and time for extracted files. + Flag indicating whether the inputStream will be closed by this method. + + + + Defines factory methods for creating new values. + + + + + Create a for a file given its name + + The name of the file to create an entry for. + Returns a file entry based on the passed. + + + + Create a for a file given its name + + The name of the file to create an entry for. + If true get details from the file system if the file exists. + Returns a file entry based on the passed. + + + + Create a for a file given its actual name and optional override name + + The name of the file to create an entry for. + An alternative name to be used for the new entry. Null if not applicable. + If true get details from the file system if the file exists. + Returns a file entry based on the passed. + + + + Create a for a directory given its name + + The name of the directory to create an entry for. + Returns a directory entry based on the passed. + + + + Create a for a directory given its name + + The name of the directory to create an entry for. + If true get details from the file system for this directory if it exists. + Returns a directory entry based on the passed. + + + + Get/set the applicable. + + + + + WindowsNameTransform transforms names to windows compatible ones. + + + + + The maximum windows path name permitted. + + This may not valid for all windows systems - CE?, etc but I cant find the equivalent in the CLR. + + + + In this case we need Windows' invalid path characters. + Path.GetInvalidPathChars() only returns a subset invalid on all platforms. + + + + + Initialises a new instance of + + + + + + Initialise a default instance of + + + + + Gets or sets a value containing the target directory to prefix values with. + + + + + Gets or sets a value indicating wether paths on incoming values should be removed. + + + + + Transform a Zip directory name to a windows directory name. + + The directory name to transform. + The transformed name. + + + + Transform a Zip format file name to a windows style one. + + The file name to transform. + The transformed name. + + + + Test a name to see if it is a valid name for a windows filename as extracted from a Zip archive. + + The name to test. + Returns true if the name is a valid zip name; false otherwise. + The filename isnt a true windows path in some fundamental ways like no absolute paths, no rooted paths etc. + + + + Force a name to be valid by replacing invalid characters with a fixed value + + The name to make valid + The replacement character to use for any invalid characters. + Returns a valid name + + + + Gets or set the character to replace invalid characters during transformations. + + + + + Determines how entries are tested to see if they should use Zip64 extensions or not. + + + + + Zip64 will not be forced on entries during processing. + + An entry can have this overridden if required + + + + Zip64 should always be used. + + + + + #ZipLib will determine use based on entry values when added to archive. + + + + + The kind of compression used for an entry in an archive + + + + + A direct copy of the file contents is held in the archive + + + + + Common Zip compression method using a sliding dictionary + of up to 32KB and secondary compression from Huffman/Shannon-Fano trees + + + + + An extension to deflate with a 64KB window. Not supported by #Zip currently + + + + + BZip2 compression. Not supported by #Zip. + + + + + WinZip special for AES encryption, Now supported by #Zip. + + + + + Identifies the encryption algorithm used for an entry + + + + + No encryption has been used. + + + + + Encrypted using PKZIP 2.0 or 'classic' encryption. + + + + + DES encryption has been used. + + + + + RC2 encryption has been used for encryption. + + + + + Triple DES encryption with 168 bit keys has been used for this entry. + + + + + Triple DES with 112 bit keys has been used for this entry. + + + + + AES 128 has been used for encryption. + + + + + AES 192 has been used for encryption. + + + + + AES 256 has been used for encryption. + + + + + RC2 corrected has been used for encryption. + + + + + Blowfish has been used for encryption. + + + + + Twofish has been used for encryption. + + + + + RC4 has been used for encryption. + + + + + An unknown algorithm has been used for encryption. + + + + + Defines the contents of the general bit flags field for an archive entry. + + + + + Bit 0 if set indicates that the file is encrypted + + + + + Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) + + + + + Bit 3 if set indicates a trailing data desciptor is appended to the entry data + + + + + Bit 4 is reserved for use with method 8 for enhanced deflation + + + + + Bit 5 if set indicates the file contains Pkzip compressed patched data. + Requires version 2.7 or greater. + + + + + Bit 6 if set indicates strong encryption has been used for this entry. + + + + + Bit 7 is currently unused + + + + + Bit 8 is currently unused + + + + + Bit 9 is currently unused + + + + + Bit 10 is currently unused + + + + + Bit 11 if set indicates the filename and + comment fields for this file must be encoded using UTF-8. + + + + + Bit 12 is documented as being reserved by PKware for enhanced compression. + + + + + Bit 13 if set indicates that values in the local header are masked to hide + their actual values, and the central directory is encrypted. + + + Used when encrypting the central directory contents. + + + + + Bit 14 is documented as being reserved for use by PKware + + + + + Bit 15 is documented as being reserved for use by PKware + + + + + This class contains constants used for Zip format files + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See . + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipInputStream.CanDecompressEntry. + + + + + The minimum version required to support strong encryption + + + + + The minimum version required to support strong encryption + + + + + Version indicating AES encryption + + + + + The version required for Zip64 extensions (4.5 or higher) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of Zip64 data descriptor + + + + + Size of data descriptor + + + + + Size of data descriptor + + + + + Size of central header entry (excluding variable fields) + + + + + Size of central header entry + + + + + Size of end of central record (excluding variable fields) + + + + + Size of end of central record (excluding variable fields) + + + + + Size of 'classic' cryptographic header stored before any entry data + + + + + Size of cryptographic header stored before entry data + + + + + Signature for local entry header + + + + + Signature for local entry header + + + + + Signature for spanning entry + + + + + Signature for spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for central header + + + + + Signature for central header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central directory locator + + + + + Signature for archive extra data signature (were headers are encrypted). + + + + + Central header digitial signature + + + + + Central header digitial signature + + + + + End of central directory record signature + + + + + End of central directory record signature + + + + + The original Zip specification (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) states + that file names should only be encoded with IBM Code Page 437 or UTF-8. + In practice, most zip apps use OEM or system encoding (typically cp437 on Windows). + Let's be good citizens and default to UTF-8 http://utf8everywhere.org/ + + + + + Default encoding used for string conversion. 0 gives the default system OEM code page. + Using the default code page isnt the full solution neccessarily + there are many variable factors, codepage 850 is often a good choice for + European users, however be careful about compatability. + + + + + Convert a portion of a byte array to a string. + + + Data to convert to string + + + Number of bytes to convert starting from index 0 + + + data[0]..data[count - 1] converted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + + dataconverted to a string + + + + + Convert a byte array to string + + The applicable general purpose bits flags + + Byte array to convert + + The number of bytes to convert. + + dataconverted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + The applicable general purpose bits flags + + dataconverted to a string + + + + + Convert a string to a byte array + + + String to convert to an array + + Converted array + + + + Convert a string to a byte array + + The applicable general purpose bits flags + + String to convert to an array + + Converted array + + + + Initialise default instance of ZipConstants + + + Private to prevent instances being created. + + + + + Defines known values for the property. + + + + + Host system = MSDOS + + + + + Host system = Amiga + + + + + Host system = Open VMS + + + + + Host system = Unix + + + + + Host system = VMCms + + + + + Host system = Atari ST + + + + + Host system = OS2 + + + + + Host system = Macintosh + + + + + Host system = ZSystem + + + + + Host system = Cpm + + + + + Host system = Windows NT + + + + + Host system = MVS + + + + + Host system = VSE + + + + + Host system = Acorn RISC + + + + + Host system = VFAT + + + + + Host system = Alternate MVS + + + + + Host system = BEOS + + + + + Host system = Tandem + + + + + Host system = OS400 + + + + + Host system = OSX + + + + + Host system = WinZIP AES + + + + + This class represents an entry in a zip archive. This can be a file + or a directory + ZipFile and ZipInputStream will give you instances of this class as + information about the members in an archive. ZipOutputStream + uses an instance of this class when creating an entry in a Zip file. +
+
Author of the original java version : Jochen Hoenicke +
+
+ + + Creates a zip entry with the given name. + + + The name for this entry. Can include directory components. + The convention for names is 'unix' style paths with relative names only. + There are with no device names and path elements are separated by '/' characters. + + + The name passed is null + + + + + Creates a zip entry with the given name and version required to extract + + + The name for this entry. Can include directory components. + The convention for names is 'unix' style paths with no device names and + path elements separated by '/' characters. This is not enforced see CleanName + on how to ensure names are valid if this is desired. + + + The minimum 'feature version' required this entry + + + The name passed is null + + + + + Initializes an entry with the given name and made by information + + Name for this entry + Version and HostSystem Information + Minimum required zip feature version required to extract this entry + Compression method for this entry. + + The name passed is null + + + versionRequiredToExtract should be 0 (auto-calculate) or > 10 + + + This constructor is used by the ZipFile class when reading from the central header + It is not generally useful, use the constructor specifying the name only. + + + + + Creates a deep copy of the given zip entry. + + + The entry to copy. + + + + + Get a value indicating wether the entry has a CRC value available. + + + + + Get/Set flag indicating if entry is encrypted. + A simple helper routine to aid interpretation of flags + + This is an assistant that interprets the flags property. + + + + Get / set a flag indicating wether entry name and comment text are + encoded in unicode UTF8. + + This is an assistant that interprets the flags property. + + + + Value used during password checking for PKZIP 2.0 / 'classic' encryption. + + + + + Get/Set general purpose bit flag for entry + + + General purpose bit flag
+
+ Bit 0: If set, indicates the file is encrypted
+ Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating
+ Imploding:
+ Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used
+ Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise
+
+ Deflating:
+ Bit 2 Bit 1
+ 0 0 Normal compression was used
+ 0 1 Maximum compression was used
+ 1 0 Fast compression was used
+ 1 1 Super fast compression was used
+
+ Bit 3: If set, the fields crc-32, compressed size + and uncompressed size are were not able to be written during zip file creation + The correct values are held in a data descriptor immediately following the compressed data.
+ Bit 4: Reserved for use by PKZIP for enhanced deflating
+ Bit 5: If set indicates the file contains compressed patch data
+ Bit 6: If set indicates strong encryption was used.
+ Bit 7-10: Unused or reserved
+ Bit 11: If set the name and comments for this entry are in unicode.
+ Bit 12-15: Unused or reserved
+
+ + +
+ + + Get/Set index of this entry in Zip file + + This is only valid when the entry is part of a + + + + Get/set offset for use in central header + + + + + Get/Set external file attributes as an integer. + The values of this are operating system dependant see + HostSystem for details + + + + + Get the version made by for this entry or zero if unknown. + The value / 10 indicates the major version number, and + the value mod 10 is the minor version number + + + + + Get a value indicating this entry is for a DOS/Windows system. + + + + + Test the external attributes for this to + see if the external attributes are Dos based (including WINNT and variants) + and match the values + + The attributes to test. + Returns true if the external attributes are known to be DOS/Windows + based and have the same attributes set as the value passed. + + + + Gets the compatability information for the external file attribute + If the external file attributes are compatible with MS-DOS and can be read + by PKZIP for DOS version 2.04g then this value will be zero. Otherwise the value + will be non-zero and identify the host system on which the attributes are compatible. + + + + The values for this as defined in the Zip File format and by others are shown below. The values are somewhat + misleading in some cases as they are not all used as shown. You should consult the relevant documentation + to obtain up to date and correct information. The modified appnote by the infozip group is + particularly helpful as it documents a lot of peculiarities. The document is however a little dated. + + 0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems) + 1 - Amiga + 2 - OpenVMS + 3 - Unix + 4 - VM/CMS + 5 - Atari ST + 6 - OS/2 HPFS + 7 - Macintosh + 8 - Z-System + 9 - CP/M + 10 - Windows NTFS + 11 - MVS (OS/390 - Z/OS) + 12 - VSE + 13 - Acorn Risc + 14 - VFAT + 15 - Alternate MVS + 16 - BeOS + 17 - Tandem + 18 - OS/400 + 19 - OS/X (Darwin) + 99 - WinZip AES + remainder - unused + + + + + + Get minimum Zip feature version required to extract this entry + + + Minimum features are defined as:
+ 1.0 - Default value
+ 1.1 - File is a volume label
+ 2.0 - File is a folder/directory
+ 2.0 - File is compressed using Deflate compression
+ 2.0 - File is encrypted using traditional encryption
+ 2.1 - File is compressed using Deflate64
+ 2.5 - File is compressed using PKWARE DCL Implode
+ 2.7 - File is a patch data set
+ 4.5 - File uses Zip64 format extensions
+ 4.6 - File is compressed using BZIP2 compression
+ 5.0 - File is encrypted using DES
+ 5.0 - File is encrypted using 3DES
+ 5.0 - File is encrypted using original RC2 encryption
+ 5.0 - File is encrypted using RC4 encryption
+ 5.1 - File is encrypted using AES encryption
+ 5.1 - File is encrypted using corrected RC2 encryption
+ 5.1 - File is encrypted using corrected RC2-64 encryption
+ 6.1 - File is encrypted using non-OAEP key wrapping
+ 6.2 - Central directory encryption (not confirmed yet)
+ 6.3 - File is compressed using LZMA
+ 6.3 - File is compressed using PPMD+
+ 6.3 - File is encrypted using Blowfish
+ 6.3 - File is encrypted using Twofish
+
+ +
+ + + Get a value indicating whether this entry can be decompressed by the library. + + This is based on the and + wether the compression method is supported. + + + + Force this entry to be recorded using Zip64 extensions. + + + + + Get a value indicating wether Zip64 extensions were forced. + + A value of true if Zip64 extensions have been forced on; false if not. + + + + Gets a value indicating if the entry requires Zip64 extensions + to store the full entry values. + + A value of true if a local header requires Zip64 extensions; false if not. + + + + Get a value indicating wether the central directory entry requires Zip64 extensions to be stored. + + + + + Get/Set DosTime value. + + + The MS-DOS date format can only represent dates between 1/1/1980 and 12/31/2107. + + + + + Gets/Sets the time of last modification of the entry. + + + The property is updated to match this as far as possible. + + + + + Returns the entry name. + + + The unix naming convention is followed. + Path components in the entry should always separated by forward slashes ('/'). + Dos device names like C: should also be removed. + See the class, or + + + + + Gets/Sets the size of the uncompressed data. + + + The size or -1 if unknown. + + Setting the size before adding an entry to an archive can help + avoid compatability problems with some archivers which dont understand Zip64 extensions. + + + + Gets/Sets the size of the compressed data. + + + The compressed entry size or -1 if unknown. + + + + + Gets/Sets the crc of the uncompressed data. + + + Crc is not in the range 0..0xffffffffL + + + The crc value or -1 if unknown. + + + + + Gets/Sets the compression method. Only Deflated and Stored are supported. + + + The compression method for this entry + + + + + + + Gets the compression method for outputting to the local or central header. + Returns same value as CompressionMethod except when AES encrypting, which + places 99 in the method and places the real method in the extra data. + + + + + Gets/Sets the extra data. + + + Extra data is longer than 64KB (0xffff) bytes. + + + Extra data or null if not set. + + + + + For AES encrypted files returns or sets the number of bits of encryption (128, 192 or 256). + When setting, only 0 (off), 128 or 256 is supported. + + + + + AES Encryption strength for storage in extra data in entry header. + 1 is 128 bit, 2 is 192 bit, 3 is 256 bit. + + + + + Returns the length of the salt, in bytes + + + + + Number of extra bytes required to hold the AES Header fields (Salt, Pwd verify, AuthCode) + + + + + Process extra data fields updating the entry based on the contents. + + True if the extra data fields should be handled + for a local header, rather than for a central header. + + + + + Gets/Sets the entry comment. + + + If comment is longer than 0xffff. + + + The comment or null if not set. + + + A comment is only available for entries when read via the class. + The class doesnt have the comment data available. + + + + + Gets a value indicating if the entry is a directory. + however. + + + A directory is determined by an entry name with a trailing slash '/'. + The external file attributes can also indicate an entry is for a directory. + Currently only dos/windows attributes are tested in this manner. + The trailing slash convention should always be followed. + + + + + Get a value of true if the entry appears to be a file; false otherwise + + + This only takes account of DOS/Windows attributes. Other operating systems are ignored. + For linux and others the result may be incorrect. + + + + + Test entry to see if data can be extracted. + + Returns true if data can be extracted for this entry; false otherwise. + + + + Creates a copy of this zip entry. + + An that is a copy of the current instance. + + + + Gets a string representation of this ZipEntry. + + A readable textual representation of this + + + + Test a compression method to see if this library + supports extracting data compressed with that method + + The compression method to test. + Returns true if the compression method is supported; false otherwise + + + + Cleans a name making it conform to Zip file conventions. + Devices names ('c:\') and UNC share names ('\\server\share') are removed + and forward slashes ('\') are converted to back slashes ('/'). + Names are made relative by trimming leading slashes which is compatible + with the ZIP naming convention. + + The name to clean + The 'cleaned' name. + + The Zip name transform class is more flexible. + + + + + Basic implementation of + + + + + Defines the possible values to be used for the . + + + + + Use the recorded LastWriteTime value for the file. + + + + + Use the recorded LastWriteTimeUtc value for the file + + + + + Use the recorded CreateTime value for the file. + + + + + Use the recorded CreateTimeUtc value for the file. + + + + + Use the recorded LastAccessTime value for the file. + + + + + Use the recorded LastAccessTimeUtc value for the file. + + + + + Use a fixed value. + + The actual value used can be + specified via the constructor or + using the with the setting set + to which will use the when this class was constructed. + The property can also be used to set this value. + + + + Initialise a new instance of the class. + + A default , and the LastWriteTime for files is used. + + + + Initialise a new instance of using the specified + + The time setting to use when creating Zip entries. + + + + Initialise a new instance of using the specified + + The time to set all values to. + + + + Get / set the to be used when creating new values. + + + Setting this property to null will cause a default name transform to be used. + + + + + Get / set the in use. + + + + + Get / set the value to use when is set to + + + + + A bitmask defining the attributes to be retrieved from the actual file. + + The default is to get all possible attributes from the actual file. + + + + A bitmask defining which attributes are to be set on. + + By default no attributes are set on. + + + + Get set a value indicating wether unidoce text should be set on. + + + + + Make a new for a file. + + The name of the file to create a new entry for. + Returns a new based on the . + + + + Make a new for a file. + + The name of the file to create a new entry for. + If true entry detail is retrieved from the file system if the file exists. + Returns a new based on the . + + + + Make a new from a name. + + The name of the file to create a new entry for. + An alternative name to be used for the new entry. Null if not applicable. + If true entry detail is retrieved from the file system if the file exists. + Returns a new based on the . + + + + Make a new for a directory. + + The raw untransformed name for the new directory + Returns a new representing a directory. + + + + Make a new for a directory. + + The raw untransformed name for the new directory + If true entry detail is retrieved from the file system if the file exists. + Returns a new representing a directory. + + + + ZipException represents exceptions specific to Zip classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + ExtraData tagged value interface. + + + + + Get the ID for this tagged data value. + + + + + Set the contents of this instance from the data passed. + + The data to extract contents from. + The offset to begin extracting data from. + The number of bytes to extract. + + + + Get the data representing this instance. + + Returns the data for this instance. + + + + A raw binary tagged value + + + + + Initialise a new instance. + + The tag ID. + + + + Get the ID for this tagged data value. + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Get /set the binary data representing this instance. + + The raw binary data representing this instance. + + + + The tag ID for this instance. + + + + + Class representing extended unix date time values. + + + + + Flags indicate which values are included in this instance. + + + + + The modification time is included + + + + + The access time is included + + + + + The create time is included. + + + + + Get the ID + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Test a value to see if is valid and can be represented here. + + The value to test. + Returns true if the value is valid and can be represented; false if not. + The standard Unix time is a signed integer data type, directly encoding the Unix time number, + which is the number of seconds since 1970-01-01. + Being 32 bits means the values here cover a range of about 136 years. + The minimum representable time is 1901-12-13 20:45:52, + and the maximum representable time is 2038-01-19 03:14:07. + + + + + Get /set the Modification Time + + + + + + + Get / set the Access Time + + + + + + + Get / Set the Create Time + + + + + + + Get/set the values to include. + + + + + Class handling NT date time values. + + + + + Get the ID for this tagged data value. + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Test a valuie to see if is valid and can be represented here. + + The value to test. + Returns true if the value is valid and can be represented; false if not. + + NTFS filetimes are 64-bit unsigned integers, stored in Intel + (least significant byte first) byte order. They determine the + number of 1.0E-07 seconds (1/10th microseconds!) past WinNT "epoch", + which is "01-Jan-1601 00:00:00 UTC". 28 May 60056 is the upper limit + + + + + Get/set the last modification time. + + + + + Get /set the create time + + + + + Get /set the last access time. + + + + + A factory that creates tagged data instances. + + + + + Get data for a specific tag value. + + The tag ID to find. + The data to search. + The offset to begin extracting data from. + The number of bytes to extract. + The located value found, or null if not found. + + + + + A class to handle the extra data field for Zip entries + + + Extra data contains 0 or more values each prefixed by a header tag and length. + They contain zero or more bytes of actual data. + The data is held internally using a copy on write strategy. This is more efficient but + means that for extra data created by passing in data can have the values modified by the caller + in some circumstances. + + + + + Initialise a default instance. + + + + + Initialise with known extra data. + + The extra data. + + + + Get the raw extra data value + + Returns the raw byte[] extra data this instance represents. + + + + Clear the stored data. + + + + + Gets the current extra data length. + + + + + Get a read-only for the associated tag. + + The tag to locate data for. + Returns a containing tag data or null if no tag was found. + + + + Get the tagged data for a tag. + + The tag to search for. + Returns a tagged value or null if none found. + + + + Get the length of the last value found by + + This is only valid if has previously returned true. + + + + Get the index for the current read value. + + This is only valid if has previously returned true. + Initially the result will be the index of the first byte of actual data. The value is updated after calls to + , and . + + + + Get the number of bytes remaining to be read for the current value; + + + + + Find an extra data value + + The identifier for the value to find. + Returns true if the value was found; false otherwise. + + + + Add a new entry to extra data. + + The value to add. + + + + Add a new entry to extra data + + The ID for this entry. + The data to add. + If the ID already exists its contents are replaced. + + + + Start adding a new entry. + + Add data using , , , or . + The new entry is completed and actually added by calling + + + + + Add entry data added since using the ID passed. + + The identifier to use for this entry. + + + + Add a byte of data to the pending new entry. + + The byte to add. + + + + + Add data to a pending new entry. + + The data to add. + + + + + Add a short value in little endian order to the pending new entry. + + The data to add. + + + + + Add an integer value in little endian order to the pending new entry. + + The data to add. + + + + + Add a long value in little endian order to the pending new entry. + + The data to add. + + + + + Delete an extra data field. + + The identifier of the field to delete. + Returns true if the field was found and deleted. + + + + Read a long in little endian form from the last found data value + + Returns the long value read. + + + + Read an integer in little endian form from the last found data value. + + Returns the integer read. + + + + Read a short value in little endian form from the last found data value. + + Returns the short value read. + + + + Read a byte from an extra data + + The byte value read or -1 if the end of data has been reached. + + + + Skip data during reading. + + The number of bytes to skip. + + + + Internal form of that reads data at any location. + + Returns the short value read. + + + + Dispose of this instance. + + + + + Arguments used with KeysRequiredEvent + + + + + Initialise a new instance of + + The name of the file for which keys are required. + + + + Initialise a new instance of + + The name of the file for which keys are required. + The current key value. + + + + Gets the name of the file for which keys are required. + + + + + Gets or sets the key value + + + + + The strategy to apply to testing. + + + + + Find the first error only. + + + + + Find all possible errors. + + + + + The operation in progress reported by a during testing. + + TestArchive + + + + Setting up testing. + + + + + Testing an individual entries header + + + + + Testing an individual entries data + + + + + Testing an individual entry has completed. + + + + + Running miscellaneous tests + + + + + Testing is complete + + + + + Status returned returned by during testing. + + TestArchive + + + + Initialise a new instance of + + The this status applies to. + + + + Get the current in progress. + + + + + Get the this status is applicable to. + + + + + Get the current/last entry tested. + + + + + Get the number of errors detected so far. + + + + + Get the number of bytes tested so far for the current entry. + + + + + Get a value indicating wether the last entry test was valid. + + + + + Delegate invoked during testing if supplied indicating current progress and status. + + If the message is non-null an error has occured. If the message is null + the operation as found in status has started. + + + + The possible ways of applying updates to an archive. + + + + + Perform all updates on temporary files ensuring that the original file is saved. + + + + + Update the archive directly, which is faster but less safe. + + + + + This class represents a Zip archive. You can ask for the contained + entries, or get an input stream for a file entry. The entry is + automatically decompressed. + + You can also update the archive adding or deleting entries. + + This class is thread safe for input: You can open input streams for arbitrary + entries in different threads. +
+
Author of the original java version : Jochen Hoenicke +
+ + + using System; + using System.Text; + using System.Collections; + using System.IO; + + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + static public void Main(string[] args) + { + using (ZipFile zFile = new ZipFile(args[0])) { + Console.WriteLine("Listing of : " + zFile.Name); + Console.WriteLine(""); + Console.WriteLine("Raw Size Size Date Time Name"); + Console.WriteLine("-------- -------- -------- ------ ---------"); + foreach (ZipEntry e in zFile) { + if ( e.IsFile ) { + DateTime d = e.DateTime; + Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize, + d.ToString("dd-MM-yy"), d.ToString("HH:mm"), + e.Name); + } + } + } + } + } + + +
+ + + Delegate for handling keys/password setting during compresion/decompression. + + + + + Event handler for handling encryption keys. + + + + + Handles getting of encryption keys when required. + + The file for which encryption keys are required. + + + + Get/set the encryption key value. + + + + + Password to be used for encrypting/decrypting files. + + Set to null if no password is required. + + + + Get a value indicating wether encryption keys are currently available. + + + + + Opens a Zip file with the given name for reading. + + The name of the file to open. + The argument supplied is null. + + An i/o error occurs + + + The file doesn't contain a valid zip archive. + + + + + Opens a Zip file reading the given . + + The to read archive data from. + The supplied argument is null. + + An i/o error occurs. + + + The file doesn't contain a valid zip archive. + + + + + Opens a Zip file reading the given . + + The to read archive data from. + + An i/o error occurs + + + The stream doesn't contain a valid zip archive.
+
+ + The stream doesnt support seeking. + + + The stream argument is null. + +
+ + + Initialises a default instance with no entries and no file storage. + + + + + Finalize this instance. + + + + + Closes the ZipFile. If the stream is owned then this also closes the underlying input stream. + Once closed, no further instance methods should be called. + + + An i/o error occurs. + + + + + Create a new whose data will be stored in a file. + + The name of the archive to create. + Returns the newly created + is null + + + + Create a new whose data will be stored on a stream. + + The stream providing data storage. + Returns the newly created + is null + doesnt support writing. + + + + Get/set a flag indicating if the underlying stream is owned by the ZipFile instance. + If the flag is true then the stream will be closed when Close is called. + + + The default value is true in all cases. + + + + + Get a value indicating wether + this archive is embedded in another file or not. + + + + + Get a value indicating that this archive is a new one. + + + + + Gets the comment for the zip file. + + + + + Gets the name of this zip file. + + + + + Gets the number of entries in this zip file. + + + The Zip file has been closed. + + + + + Get the number of entries contained in this . + + + + + Indexer property for ZipEntries + + + + + Gets an enumerator for the Zip entries in this Zip file. + + Returns an for this archive. + + The Zip file has been closed. + + + + + Return the index of the entry with a matching name + + Entry name to find + If true the comparison is case insensitive + The index position of the matching entry or -1 if not found + + The Zip file has been closed. + + + + + Searches for a zip entry in this archive with the given name. + String comparisons are case insensitive + + + The name to find. May contain directory components separated by slashes ('/'). + + + A clone of the zip entry, or null if no entry with that name exists. + + + The Zip file has been closed. + + + + + Gets an input stream for reading the given zip entry data in an uncompressed form. + Normally the should be an entry returned by GetEntry(). + + The to obtain a data for + An input containing data for this + + The ZipFile has already been closed + + + The compression method for the entry is unknown + + + The entry is not found in the ZipFile + + + + + Creates an input stream reading a zip entry + + The index of the entry to obtain an input stream for. + + An input containing data for this + + + The ZipFile has already been closed + + + The compression method for the entry is unknown + + + The entry is not found in the ZipFile + + + + + Test an archive for integrity/validity + + Perform low level data Crc check + true if all tests pass, false otherwise + Testing will terminate on the first error found. + + + + Test an archive for integrity/validity + + Perform low level data Crc check + The to apply. + The handler to call during testing. + true if all tests pass, false otherwise + The object has already been closed. + + + + Test a local header against that provided from the central directory + + + The entry to test against + + The type of tests to carry out. + The offset of the entries data in the file + + + + The kind of update to apply. + + + + + Get / set the to apply to names when updating. + + + + + Get/set the used to generate values + during updates. + + + + + Get /set the buffer size to be used when updating this zip file. + + + + + Get a value indicating an update has been started. + + + + + Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + + + + + Begin updating this archive. + + The archive storage for use during the update. + The data source to utilise during updating. + ZipFile has been closed. + One of the arguments provided is null + ZipFile has been closed. + + + + Begin updating to this archive. + + The storage to use during the update. + + + + Begin updating this archive. + + + + + + + + Commit current updates, updating this archive. + + + + ZipFile has been closed. + + + + Abort updating leaving the archive unchanged. + + + + + + + Set the file comment to be recorded when the current update is commited. + + The comment to record. + ZipFile has been closed. + + + + Add a new entry to the archive. + + The name of the file to add. + The compression method to use. + Ensure Unicode text is used for name and comment for this entry. + Argument supplied is null. + ZipFile has been closed. + Compression method is not supported. + + + + Add a new entry to the archive. + + The name of the file to add. + The compression method to use. + ZipFile has been closed. + The compression method is not supported. + + + + Add a file to the archive. + + The name of the file to add. + Argument supplied is null. + + + + Add a file to the archive. + + The name of the file to add. + The name to use for the on the Zip file created. + Argument supplied is null. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + The compression method to use. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + The compression method to use. + Ensure Unicode text is used for name and comments for this entry. + + + + Add a that contains no data. + + The entry to add. + This can be used to add directories, volume labels, or empty file entries. + + + + Add a directory entry to the archive. + + The directory to add. + + + + Delete an entry by name + + The filename to delete + True if the entry was found and deleted; false otherwise. + + + + Delete a from the archive. + + The entry to delete. + + + + Write an unsigned short in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Write an unsigned int in little endian byte order. + + + + + Write a long in little endian byte order. + + + + + Get a raw memory buffer. + + Returns a raw memory buffer. + + + + Get the size of the source descriptor for a . + + The update to get the size for. + The descriptor size, zero if there isnt one. + + + + Get an output stream for the specified + + The entry to get an output stream for. + The output stream obtained for the entry. + + + + Class used to sort updates. + + + + + Compares two objects and returns a value indicating whether one is + less than, equal to or greater than the other. + + First object to compare + Second object to compare. + Compare result. + + + + Represents a pending update to a Zip file. + + + + + Copy an existing entry. + + The existing entry to copy. + + + + Get the for this update. + + This is the source or original entry. + + + + Get the that will be written to the updated/new file. + + + + + Get the command for this update. + + + + + Get the filename if any for this update. Null if none exists. + + + + + Get/set the location of the size patch for this update. + + + + + Get /set the location of the crc patch for this update. + + + + + Get/set the size calculated by offset. + Specifically, the difference between this and next entry's starting offset. + + + + + Releases the unmanaged resources used by the this instance and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Read an unsigned short in little endian byte order. + + Returns the value read. + + The stream ends prematurely + + + + + Read a uint in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Search for and read the central directory of a zip file filling the entries array. + + + An i/o error occurs. + + + The central directory is malformed or cannot be found + + + + + Locate the data for a given entry. + + + The start offset of the data. + + + The stream ends prematurely + + + The local header signature is invalid, the entry and central header file name lengths are different + or the local and entry compression methods dont match + + + + + Represents a string from a which is stored as an array of bytes. + + + + + Initialise a with a string. + + The textual string form. + + + + Initialise a using a string in its binary 'raw' form. + + + + + + Get a value indicating the original source of data for this instance. + True if the source was a string; false if the source was binary data. + + + + + Get the length of the comment when represented as raw bytes. + + + + + Get the comment in its 'raw' form as plain bytes. + + + + + Reset the comment to its initial state. + + + + + Implicit conversion of comment to a string. + + The to convert to a string. + The textual equivalent for the input value. + + + + An enumerator for Zip entries + + + + + An is a stream that you can write uncompressed data + to and flush, but cannot read, seek or do anything else to. + + + + + Gets a value indicating whether the current stream supports reading. + + + + + Write any buffered data to underlying storage. + + + + + Gets a value indicating whether the current stream supports writing. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Get the length in bytes of the stream. + + + + + Gets or sets the position within the current stream. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + The sum of offset and count is larger than the buffer length. + Methods were called after the stream was closed. + The stream does not support reading. + buffer is null. + An I/O error occurs. + offset or count is negative. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type indicating the reference point used to obtain the new position. + + The new position within the current stream. + + An I/O error occurs. + The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + Methods were called after the stream was closed. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + An I/O error occurs. + Methods were called after the stream was closed. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + An I/O error occurs. + The stream does not support writing. + Methods were called after the stream was closed. + buffer is null. + The sum of offset and count is greater than the buffer length. + offset or count is negative. + + + + A is an + whose data is only a part or subsection of a file. + + + + + Initialise a new instance of the class. + + The containing the underlying stream to use for IO. + The start of the partial data. + The length of the partial data. + + + + Read a byte from this stream. + + Returns the byte read or -1 on end of stream. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + The sum of offset and count is larger than the buffer length. + Methods were called after the stream was closed. + The stream does not support reading. + buffer is null. + An I/O error occurs. + offset or count is negative. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + An I/O error occurs. + The stream does not support writing. + Methods were called after the stream was closed. + buffer is null. + The sum of offset and count is greater than the buffer length. + offset or count is negative. + + + + When overridden in a derived class, sets the length of the current stream. + + The desired length of the current stream in bytes. + The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + An I/O error occurs. + Methods were called after the stream was closed. + + + + When overridden in a derived class, sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type indicating the reference point used to obtain the new position. + + The new position within the current stream. + + An I/O error occurs. + The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + Methods were called after the stream was closed. + + + + Clears all buffers for this stream and causes any buffered data to be written to the underlying device. + + An I/O error occurs. + + + + Gets or sets the position within the current stream. + + + The current position within the stream. + An I/O error occurs. + The stream does not support seeking. + Methods were called after the stream was closed. + + + + Gets the length in bytes of the stream. + + + A long value representing the length of the stream in bytes. + A class derived from Stream does not support seeking. + Methods were called after the stream was closed. + + + + Gets a value indicating whether the current stream supports writing. + + false + true if the stream supports writing; otherwise, false. + + + + Gets a value indicating whether the current stream supports seeking. + + true + true if the stream supports seeking; otherwise, false. + + + + Gets a value indicating whether the current stream supports reading. + + true. + true if the stream supports reading; otherwise, false. + + + + Gets a value that determines whether the current stream can time out. + + + A value that determines whether the current stream can time out. + + + + Provides a static way to obtain a source of data for an entry. + + + + + Get a source of data by creating a new stream. + + Returns a to use for compression input. + Ideally a new stream is created and opened to achieve this, to avoid locking problems. + + + + Represents a source of data that can dynamically provide + multiple data sources based on the parameters passed. + + + + + Get a data source. + + The to get a source for. + The name for data if known. + Returns a to use for compression input. + Ideally a new stream is created and opened to achieve this, to avoid locking problems. + + + + Default implementation of a for use with files stored on disk. + + + + + Initialise a new instnace of + + The name of the file to obtain data from. + + + + Get a providing data. + + Returns a provising data. + + + + Default implementation of for files stored on disk. + + + + + Get a providing data for an entry. + + The entry to provide data for. + The file name for data if known. + Returns a stream providing data; or null if not available + + + + Defines facilities for data storage when updating Zip Archives. + + + + + Get the to apply during updates. + + + + + Get an empty that can be used for temporary output. + + Returns a temporary output + + + + + Convert a temporary output stream to a final stream. + + The resulting final + + + + + Make a temporary copy of the original stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The current stream. + Returns a stream suitable for direct updating. + This may be the current stream passed. + + + + Dispose of this instance. + + + + + An abstract suitable for extension by inheritance. + + + + + Initializes a new instance of the class. + + The update mode. + + + + Gets a temporary output + + Returns the temporary output stream. + + + + + Converts the temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + + Make a temporary copy of a . + + The to make a copy of. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The to open for direct update. + Returns a stream suitable for direct updating. + + + + Disposes this instance. + + + + + Gets the update mode applicable. + + The update mode. + + + + An implementation suitable for hard disks. + + + + + Initializes a new instance of the class. + + The file. + The update mode. + + + + Initializes a new instance of the class. + + The file. + + + + Gets a temporary output for performing updates on. + + Returns the temporary output stream. + + + + Converts a temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + Make a temporary copy of a stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The current stream. + Returns a stream suitable for direct updating. + If the is not null this is used as is. + + + + Disposes this instance. + + + + + An implementation suitable for in memory streams. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The to use + This constructor is for testing as memory streams dont really require safe mode. + + + + Get the stream returned by if this was in fact called. + + + + + Gets the temporary output + + Returns the temporary output stream. + + + + Converts the temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + Make a temporary copy of the original stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The original source stream + Returns a stream suitable for direct updating. + If the passed is not null this is used; + otherwise a new is returned. + + + + Disposes this instance. + + + + + Holds data pertinent to a data descriptor. + + + + + Get /set the compressed size of data. + + + + + Get / set the uncompressed size of data + + + + + Get /set the crc value. + + + + + This class assists with writing/reading from Zip files. + + + + + Initialise an instance of this class. + + The name of the file to open. + + + + Initialise a new instance of . + + The stream to use. + + + + Get / set a value indicating wether the the underlying stream is owned or not. + + If the stream is owned it is closed when this instance is closed. + + + + Close the stream. + + + The underlying stream is closed only if is true. + + + + + Locates a block with the desired . + + The signature to find. + Location, marking the end of block. + Minimum size of the block. + The maximum variable data. + Eeturns the offset of the first byte after the signature; -1 if not found + + + + Write Zip64 end of central directory records (File header and locator). + + The number of entries in the central directory. + The size of entries in the central directory. + The offset of the dentral directory. + + + + Write the required records to end the central directory. + + The number of entries in the directory. + The size of the entries in the directory. + The start of the central directory. + The archive comment. (This can be null). + + + + Read an unsigned short in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Read an int in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Read a long in little endian byte order. + + The value read. + + + + Write an unsigned short in little endian byte order. + + The value to write. + + + + Write a ushort in little endian byte order. + + The value to write. + + + + Write an int in little endian byte order. + + The value to write. + + + + Write a uint in little endian byte order. + + The value to write. + + + + Write a long in little endian byte order. + + The value to write. + + + + Write a ulong in little endian byte order. + + The value to write. + + + + Write a data descriptor. + + The entry to write a descriptor for. + Returns the number of descriptor bytes written. + + + + Read data descriptor at the end of compressed data. + + if set to true [zip64]. + The data to fill in. + Returns the number of bytes read in the descriptor. + + + + This is an InflaterInputStream that reads the files baseInputStream an zip archive + one after another. It has a special method to get the zip entry of + the next file. The zip entry contains information about the file name + size, compressed size, Crc, etc. + It includes support for Stored and Deflated entries. +
+
Author of the original java version : Jochen Hoenicke +
+ + This sample shows how to read a zip file + + using System; + using System.Text; + using System.IO; + + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + public static void Main(string[] args) + { + using ( ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) { + + ZipEntry theEntry; + const int size = 2048; + byte[] data = new byte[2048]; + + while ((theEntry = s.GetNextEntry()) != null) { + if ( entry.IsFile ) { + Console.Write("Show contents (y/n) ?"); + if (Console.ReadLine() == "y") { + while (true) { + size = s.Read(data, 0, data.Length); + if (size > 0) { + Console.Write(new ASCIIEncoding().GetString(data, 0, size)); + } else { + break; + } + } + } + } + } + } + } + } + + +
+ + + Delegate for reading bytes from a stream. + + + + + The current reader this instance. + + + + + Creates a new Zip input stream, for reading a zip archive. + + The underlying providing data. + + + + Creates a new Zip input stream, for reading a zip archive. + + The underlying providing data. + Size of the buffer. + + + + Optional password used for encryption when non-null + + A password for all encrypted entries in this + + + + Gets a value indicating if there is a current entry and it can be decompressed + + + The entry can only be decompressed if the library supports the zip features required to extract it. + See the ZipEntry Version property for more details. + + + + + Advances to the next entry in the archive + + + The next entry in the archive or null if there are no more entries. + + + If the previous entry is still open CloseEntry is called. + + + Input stream is closed + + + Password is not set, password is invalid, compression method is invalid, + version required to extract is not supported + + + + + Read data descriptor at the end of compressed data. + + + + + Complete cleanup as the final part of closing. + + True if the crc value should be tested + + + + Closes the current zip entry and moves to the next one. + + + The stream is closed + + + The Zip stream ends early + + + + + Returns 1 if there is an entry available + Otherwise returns 0. + + + + + Returns the current size that can be read from the current entry if available + + Thrown if the entry size is not known. + Thrown if no entry is currently available. + + + + Reads a byte from the current zip entry. + + + The byte or -1 if end of stream is reached. + + + + + Handle attempts to read by throwing an . + + The destination array to store data in. + The offset at which data read should be stored. + The maximum number of bytes to read. + Returns the number of bytes actually read. + + + + Handle attempts to read from this entry by throwing an exception + + + + + Perform the initial read on an entry which may include + reading encryption headers and setting up inflation. + + The destination to fill with data read. + The offset to start reading at. + The maximum number of bytes to read. + The actual number of bytes read. + + + + Read a block of bytes from the stream. + + The destination for the bytes. + The index to start storing data. + The number of bytes to attempt to read. + Returns the number of bytes read. + Zero bytes read means end of stream. + + + + Reads a block of bytes from the current zip entry. + + + The number of bytes read (this may be less than the length requested, even before the end of stream), or 0 on end of stream. + + + An i/o error occured. + + + The deflated stream is corrupted. + + + The stream is not open. + + + + + Closes the zip input stream + + + + + ZipNameTransform transforms names as per the Zip file naming convention. + + The use of absolute names is supported although its use is not valid + according to Zip naming conventions, and should not be used if maximum compatability is desired. + + + + Initialize a new instance of + + + + + Initialize a new instance of + + The string to trim from the front of paths if found. + + + + Static constructor. + + + + + Transform a windows directory name according to the Zip file naming conventions. + + The directory name to transform. + The transformed name. + + + + Transform a windows file name according to the Zip file naming conventions. + + The file name to transform. + The transformed name. + + + + Get/set the path prefix to be trimmed from paths if present. + + The prefix is trimmed before any conversion from + a windows path is done. + + + + Force a name to be valid by replacing invalid characters with a fixed value + + The name to force valid + The replacement character to use. + Returns a valid name + + + + Test a name to see if it is a valid name for a zip entry. + + The name to test. + If true checking is relaxed about windows file names and absolute paths. + Returns true if the name is a valid zip name; false otherwise. + Zip path names are actually in Unix format, and should only contain relative paths. + This means that any path stored should not contain a drive or + device letter, or a leading slash. All slashes should forward slashes '/'. + An empty name is valid for a file where the input comes from standard input. + A null name is not considered valid. + + + + + Test a name to see if it is a valid name for a zip entry. + + The name to test. + Returns true if the name is a valid zip name; false otherwise. + Zip path names are actually in unix format, + and should only contain relative paths if a path is present. + This means that the path stored should not contain a drive or + device letter, or a leading slash. All slashes should forward slashes '/'. + An empty name is valid where the input comes from standard input. + A null name is not considered valid. + + + + + This is a DeflaterOutputStream that writes the files into a zip + archive one after another. It has a special method to start a new + zip entry. The zip entries contains information about the file name + size, compressed size, CRC, etc. + + It includes support for Stored and Deflated entries. + This class is not thread safe. +
+
Author of the original java version : Jochen Hoenicke +
+ This sample shows how to create a zip file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + public static void Main(string[] args) + { + string[] filenames = Directory.GetFiles(args[0]); + byte[] buffer = new byte[4096]; + + using ( ZipOutputStream s = new ZipOutputStream(File.Create(args[1])) ) { + + s.SetLevel(9); // 0 - store only to 9 - means best compression + + foreach (string file in filenames) { + ZipEntry entry = new ZipEntry(file); + s.PutNextEntry(entry); + + using (FileStream fs = File.OpenRead(file)) { + StreamUtils.Copy(fs, s, buffer); + } + } + } + } + } + + +
+ + + Creates a new Zip output stream, writing a zip archive. + + + The output stream to which the archive contents are written. + + + + + Creates a new Zip output stream, writing a zip archive. + + The output stream to which the archive contents are written. + Size of the buffer to use. + + + + Gets a flag value of true if the central header has been added for this archive; false if it has not been added. + + No further entries can be added once this has been done. + + + + Set the zip file comment. + + + The comment text for the entire archive. + + + The converted comment is longer than 0xffff bytes. + + + + + Sets the compression level. The new level will be activated + immediately. + + The new compression level (1 to 9). + + Level specified is not supported. + + + + + + Get the current deflater compression level + + The current compression level + + + + Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + + Older archivers may not understand Zip64 extensions. + If backwards compatability is an issue be careful when adding entries to an archive. + Setting this property to off is workable but less desirable as in those circumstances adding a file + larger then 4GB will fail. + + + + Write an unsigned short in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Starts a new Zip entry. It automatically closes the previous + entry if present. + All entry elements bar name are optional, but must be correct if present. + If the compression method is stored and the output is not patchable + the compression for that entry is automatically changed to deflate level 0 + + + the entry. + + + if entry passed is null. + + + if an I/O error occured. + + + if stream was finished + + + Too many entries in the Zip file
+ Entry name is too long
+ Finish has already been called
+
+
+ + + Closes the current entry, updating header and footer information as required + + + An I/O error occurs. + + + No entry is active. + + + + + Writes the given buffer to the current entry. + + The buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Archive size is invalid + No entry is active. + + + + Finishes the stream. This will write the central directory at the + end of the zip file and flush the stream. + + + This is automatically called when the stream is closed. + + + An I/O error occurs. + + + Comment exceeds the maximum length
+ Entry name exceeds the maximum length +
+
+ + + The entries for the archive. + + + + + Used to track the crc of data added to entries. + + + + + The current entry being added. + + + + + Used to track the size of data for an entry during writing. + + + + + Offset to be recorded for each entry in the central header. + + + + + Comment for the entire archive recorded in central header. + + + + + Flag indicating that header patching is required for the current entry. + + + + + Position to patch crc + + + + + Position to patch size. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Interface.json b/采集器3.5框架封装包2023-10-26/调度器/Debug/Interface.json new file mode 100644 index 0000000..5f910d5 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/Interface.json @@ -0,0 +1,163 @@ +[ + { + "Name": "获取单条队列任务", + "Type": 1, + "Url": "http://172.16.105.42:9296/api/noviewtask/GetTask?collectid={0}", + "ParametersName": [ "collectid" ] + }, + { + "Name": "获取队列任务数量", + "Type": 1, + "Url": "http://172.16.7.35:9296/api/noviewtask/GetTaskTotal", + "ParametersName": [ "collectid" ] + }, + { + "Name": "上传采集成果", + "Url": "http://172.16.7.35:9291/api/downplatform/report", + "ParametersName": [ + "data" + ] + }, + { + "Name": "上传患者基础数据", + "Url": "http://172.16.7.35:9283/api/basic/report", + "ParametersName": [] + }, + { + "Name": "上传采集器心跳数据", + "Url": "http://172.16.7.35:9111/inspection/collector/setCollectors", + "ParametersName": [ "collectors", "urlMap" ] + }, + { + "Name": "上传虚拟机心跳数据", + "Url": "http://172.16.7.35:9111/inspection/virtual/setVirtual", + "ParametersName": [ + "cpuUtilization", + "memoryAllowance", + "memoryTotal", + "uplinkRate", + "descendingRate", + "url", + "ip", + "disks" + ] + }, + { + "Name": "任务作废", + "Url": "http://172.16.7.35:9291/api/down/CancelTask", + "ParametersName": [ "taskid" ] + }, + { + "Name": "上传服务器日志", + "Url": "http://172.16.7.35:9106/file/afCollectTask/taskException", + "ParametersName": [ + "level", + "description", + "exceptionInfo", + "createTime", + "screenBase64", + "taskId", + "beginTime", + "endTime", + "takeUpTime" + ] + }, + { + "Name": "上报任务完成", + "Url": "http://172.16.7.35:9106/file/afCollectTask/taskUpdate", + "ParametersName": [ + "taskId", + "startTime", + "endTime", + "consumingTime" + ] + }, + { + "Name": "OCR识别", + "Url": "http://127.0.0.1:8090/filepath", + "ParametersName": [ + "path", + "type" + ] + }, + { + "Name": "日志记录", + "Url": "http://192.168.200.89:9106/file/afCollectTask/taskException", + "ParametersName": [ + "level", + "description", + "exceptionInfo", + "createTime", + "screenBase64", + "taskId" + ] + }, + { + "Name": "获取部署情况", + "ParametersName": [] + }, + { + "Name": "终端上报部署情况", + "ParametersName": [ "deployPackInfo" ] + }, + { + "Name": "新增&更新部署文件", + "ParametersName": [ "cType", "fName", "fContentB64" ] + }, + { + "Name": "删除部署文件", + "ParametersName": [ "cType", "fName" ] + }, + { + "Name": "请求部署", + "ParametersName": [ "cType", "iTerminal" ] + }, + { + "Name": "发起部署", + "ParametersName": [ "cType", "packB64" ] + }, + { + "Name": "启动采集器", + "Url": "", + "ParametersName": [ "iTerminal", "spyKey" ] + }, + { + "Name": "停止采集器", + "ParametersName": [ "iTerminal", "spyKey" ] + }, + { + "Name": "写入配置", + "ParametersName": [ "type", "tName", "name", "value" ] + }, + { + "Name": "获取采集器配置", + "ParametersName": [] + }, + { + "Name": "下发任务", + "ParametersName": [ "cType", "taskData" ] + }, + { + "Name": "终端报告空闲", + "ParametersName": [ "recentCollected" ] + }, + { + "Name": "采集器报告空闲", + "ParametersName": [] + }, + { + "Name": "任务失败", + "ParametersName": [] + }, + { + "Name": "答复终端号", + "ParametersName": [ "iTerminal" ] + }, + { + "Name": "上传任务失败作废的错误信息", + "Url": "http://172.16.7.35:9296/api/collector/uploadExceptionInfo", + "ParametersName": [ + "data" + ] + } +] \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Microsoft.mshtml.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/Microsoft.mshtml.dll new file mode 100644 index 0000000..70f26dc Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Microsoft.mshtml.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Newtonsoft.Json.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Newtonsoft.Json.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Newtonsoft.Json.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/Newtonsoft.Json.xml new file mode 100644 index 0000000..008e0ca --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/Newtonsoft.Json.xml @@ -0,0 +1,11305 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.dll new file mode 100644 index 0000000..4a86d24 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.pdb b/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.pdb new file mode 100644 index 0000000..29e07f2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.xml new file mode 100644 index 0000000..2b2e18f --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/RabbitMQ.Client.xml @@ -0,0 +1,6929 @@ + + + + RabbitMQ.Client + + + + + Represents a TCP-addressable AMQP peer: a host name and port number. + + + Some of the constructors take, as a convenience, a System.Uri + instance representing an AMQP server address. The use of Uri + here is not standardised - Uri is simply a convenient + container for internet-address-like components. In particular, + the Uri "Scheme" property is ignored: only the "Host" and + "Port" properties are extracted. + + + + + Default Amqp ssl port. + + + + + Indicates that the default port for the protocol should be used. + + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + Ssl option. + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + + + + Construct an AmqpTcpEndpoint with "localhost" as the hostname, and using the default port. + + + + + Creates a new instance of the with the given Uri and ssl options. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Creates a new instance of the with the given Uri. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Clones the endpoint. + + A copy with the same hostname, port, and TLS settings + + + + Clones the endpoint using the provided hostname. + + Hostname to use + A copy with the provided hostname and port/TLS settings of this endpoint + + + + Retrieve or set the hostname of this . + + + + Retrieve or set the port number of this + AmqpTcpEndpoint. A port number of -1 causes the default + port number. + + + + Retrieve IProtocol of this . + + + + + Used to force the address family of the endpoint + + + + + Retrieve the SSL options for this AmqpTcpEndpoint. If not set, null is returned. + + + + + Construct an instance from a protocol and an address in "hostname:port" format. + + + If the address string passed in contains ":", it is split + into a hostname and a port-number part. Otherwise, the + entire string is used as the hostname, and the port-number + is set to -1 (meaning the default number for the protocol + variant specified). + Hostnames provided as IPv6 must appear in square brackets ([]). + + + + + Splits the passed-in string on ",", and passes the substrings to . + + + Accepts a string of the form "hostname:port, + hostname:port, ...", where the ":port" pieces are + optional, and returns a corresponding array of s. + + + + + Compares this instance by value (protocol, hostname, port) against another instance. + + + + + Implementation of hash code depending on protocol, hostname and port, + to line up with the implementation of . + + + + + Returns a URI-like string of the form amqp-PROTOCOL://HOSTNAME:PORTNUMBER. + + + This method is intended mainly for debugging and logging use. + + + + + Structure holding an AMQP timestamp, a posix 64-bit time_t. + + + When converting between an AmqpTimestamp and a System.DateTime, + be aware of the effect of your local timezone. In particular, + different versions of the .NET framework assume different + defaults. + + + We have chosen a signed 64-bit time_t here, since the AMQP + specification through versions 0-9 is silent on whether + timestamps are signed or unsigned. + + + + + + Construct an . + + Unix time. + + + + Unix time. + + + + + Provides a debugger-friendly display. + + + + Represents a version of the AMQP specification. + + + Vendor-specific variants of particular official specification + versions exist: this class simply represents the AMQP + specification version, and does not try to represent + information about any custom variations involved. + + + AMQP version 0-8 peers sometimes advertise themselves as + version 8-0: for this reason, this class's constructor + special-cases 8-0, rewriting it at construction time to be 0-8 instead. + + + + + + Construct an from major and minor version numbers. + + + Converts major=8 and minor=0 into major=0 and minor=8. Please see the class comment. + + + + + The AMQP specification major version number. + + + + + The AMQP specification minor version number. + + + + + Implement value-equality comparison. + + + + + Implement hashing as for value-equality. + + + + + Format appropriately for display. + + + The specification currently uses "MAJOR-MINOR" as a display format. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + A pluggable authentication mechanism. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + Represents Basic.GetOk responses from the server. + + Basic.Get either returns an instance of this class, or null if a Basic.GetEmpty was received. + + + + + Sets the new instance's properties from the arguments passed in. + + Delivery tag for the message. + Redelivered flag for the message + The exchange this message was published to. + Routing key with which the message was published. + The number of messages pending on the queue, excluding the message being delivered. + The Basic-class content header properties for the message. + + + + + Retrieves the Basic-class content header properties for this message. + + + + + Retrieves the body of this message. + + + + + Retrieve the delivery tag for this message. See also . + + + + + Retrieve the exchange this message was published to. + + + + + Retrieve the number of messages pending on the queue, excluding the message being delivered. + + + Note that this figure is indicative, not reliable, and can + change arbitrarily as messages are added to the queue and removed by other clients. + + + + + Retrieve the redelivered flag for this message. + + + + + Retrieve the routing key with which this message was published. + + + + Wrapper for a byte[]. May appear as values read from + and written to AMQP field tables. + + + The sole reason for the existence of this class is to permit + encoding of byte[] as 'x' in AMQP field tables, an extension + to the specification that is part of the tentative JMS mapping + implemented by QPid. + + + Instances of this object may be found as values held in + IDictionary instances returned from + RabbitMQ.Client.Impl.WireFormatting.ReadTable, e.g. as part of + IBasicProperties.Headers tables. Likewise, instances may be + set as values in an IDictionary table to be encoded by + RabbitMQ.Client.Impl.WireFormatting.WriteTable. + + + When an instance of this class is encoded/decoded, the type + tag 'x' is used in the on-the-wire representation. The AMQP + standard type tag 'S' is decoded to a raw byte[], and a raw + byte[] is encoded as 'S'. Instances of System.String are + converted to a UTF-8 binary representation, and then encoded + using tag 'S'. In order to force the use of tag 'x', instances + of this class must be used. + + + + + + Creates a new instance of the with null for its Bytes property. + + + + + Creates a new instance of the . + + The wrapped byte array, as decoded or as to be encoded. + + + + The wrapped byte array, as decoded or as to be encoded. + + + + Main entry point to the RabbitMQ .NET AMQP client + API. Constructs instances. + + + A simple example of connecting to a broker: + + + ConnectionFactory factory = new ConnectionFactory(); + // + // The next six lines are optional: + factory.UserName = ConnectionFactory.DefaultUser; + factory.Password = ConnectionFactory.DefaultPass; + factory.VirtualHost = ConnectionFactory.DefaultVHost; + factory.HostName = hostName; + factory.Port = AmqpTcpEndpoint.UseDefaultPort; + // + IConnection conn = factory.CreateConnection(); + // + IModel ch = conn.CreateModel(); + // + // ... use ch's IModel methods ... + // + ch.Close(Constants.ReplySuccess, "Closing the channel"); + conn.Close(Constants.ReplySuccess, "Closing the connection"); + + + The same example, written more compactly with AMQP URIs: + + + ConnectionFactory factory = new ConnectionFactory(); + factory.SetUri("amqp://localhost"); + IConnection conn = factory.CreateConnection(); + ... + + + Please see also the API overview and tutorial in the User Guide. + + + Note that the Uri property takes a string representation of an + AMQP URI. Omitted URI parts will take default values. The + host part of the URI cannot be omitted and URIs of the form + "amqp://foo/" (note the trailling slash) also represent the + default virtual host. The latter issue means that virtual + hosts with an empty name are not addressable. + + + + Default value for the desired maximum channel number, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for connection attempt timeout, in milliseconds. + + + + + Default value for the desired maximum frame size, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for desired heartbeat interval, in seconds, with zero meaning none (value: 60). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default password (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default user name (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default virtual host (value: "/"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + The default AMQP URI SSL protocols. + + + + + The AMQP URI SSL protocols. + + + + + Default SASL auth mechanisms to use. + + + + + SASL auth mechanisms to use. + + + + + Set to false to disable automatic connection recovery. + Defaults to true. + + + + + Set to true will enable a asynchronous consumer dispatcher which is compatible with . + Defaults to false. + + + + The host to connect to. + + + + Amount of time client will wait for before re-trying to recover connection. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + Factory function for creating the + used to generate a list of endpoints for the ConnectionFactory + to try in order. + The default value creates an instance of the + using the list of endpoints passed in. The DefaultEndpointResolver shuffles the + provided list each time it is requested. + + + + + The port to connect on. + indicates the default for the protocol should be used. + + + + + Protocol used, only AMQP 0-9-1 is supported in modern versions. + + + + + Timeout setting for connection attempts (in milliseconds). + + + + + Timeout setting for socket read operations (in milliseconds). + + + + + Timeout setting for socket write operations (in milliseconds). + + + + + Ssl options setting. + + + + + Set to false to make automatic connection recovery not recover topology (exchanges, queues, bindings, etc). + Defaults to true. + + + + + Task scheduler connections created by this factory will use when + dispatching consumer operations, such as message deliveries. + + + + + Construct a fresh instance, with all fields set to their respective defaults. + + + + + Connection endpoint. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat timeout to use when negotiating with the server (in seconds). + + + + + When set to true, background thread will be used for the I/O loop. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + The uri to use for the connection. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + When the configured hostname was not reachable. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + When the configured hostname was not reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each hostname is tried in a random order until a successful connection is + found or the list is exhausted using the DefaultEndpointResolver. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each endpoint is tried in a random order until a successful connection is + found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of endpoints. By default each endpoint will be tried + in a random order until a successful connection is found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using an IEndpointResolver. + + + The endpointResolver that returns the endpoints to use for the connection attempt. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Unescape a string, protecting '+'. + + + + + Set custom socket options by providing a SocketFactory. + + + + + Creates a new instance of the . + + Specifies the addressing scheme. + New instance of a . + + + + Useful default/base implementation of . + Subclass and override in application code. + + + Note that the "Handle*" methods run in the connection's thread! + Consider using , which exposes + events that can be subscribed to consumer messages. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + Convenience class providing compile-time names for standard exchange types. + + + Use the static members of this class as values for the + "exchangeType" arguments for IModel methods such as + ExchangeDeclare. The broker may be extended with additional + exchange types that do not appear in this class. + + + + + Exchange type used for AMQP direct exchanges. + + + + + Exchange type used for AMQP fanout exchanges. + + + + + Exchange type used for AMQP headers exchanges. + + + + + Exchange type used for AMQP topic exchanges. + + + + + Retrieve a collection containing all standard exchange types. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Convenience class providing compile-time names for standard headers. + + + Use the static members of this class as headers for the + arguments for Queue and Exchange declaration or Consumer creation. + The broker may be extended with additional + headers that do not appear in this class. + + + + + x-max-priority header + + + + + x-max-length header + + + + + x-max-length-bytes header + + + + + x-dead-letter-exchange header + + + + + x-dead-letter-routing-key header + + + + + x-message-ttl header + + + + + x-expires header + + + + + alternate-exchange header + + + + + x-priority header + + + + + x-queue-mode header. + Available modes: "default" and "lazy" + + + + + x-queue-type header. + Available types: "quorum" and "classic"(default) + + + + + x-quorum-initial-group-size header. + Use to control the number of quorum queue members + + + + + x-single-active-consumer header. + Available modes: true and false(default). + Allows to have only one consumer at a time consuming from a queue + and to fail over to another registered consumer in case the active one is cancelled or dies + + + + + x-overflow header. + Available strategies: "reject-publish" and "drop-head"(default). + Allows to configure strategy when or hits limits + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Consumer interface. Used to + receive messages from a queue by subscription. + + + See IModel.BasicConsume, IModel.BasicCancel. + + + Note that the "Handle*" methods run in the connection's + thread! Consider using QueueingBasicConsumer, which uses a + SharedQueue instance to safely pass received messages across + to user threads. + + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Common AMQP Basic content-class headers interface, + spanning the union of the functionality offered by versions + 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use . + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a + fresh instance are clear by default. + + + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + + Main interface to an AMQP connection. + + + + Instances of are used to create fresh + sessions/channels. The class is used to + construct instances. + Please see the documentation for ConnectionFactory for an example of usage. + Alternatively, an API tutorial can be found in the User Guide. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when + appropriate. + + + + + + If true, will close the whole connection as soon as there are no channels open on it; + if false, manual connection closure will be required. + + + DON'T set AutoClose to true before opening the first + channel, because the connection will be immediately closed if you do! + + + + + The maximum channel number this connection supports (0 if unlimited). + Usable channel numbers range from 1 to this number, inclusive. + + + + + A copy of the client properties that has been sent to the server. + + + + + Returns null if the connection is still in a state + where it can be used, or the cause of its closure otherwise. + + + + Applications should use the ConnectionShutdown event to + avoid race conditions. The scenario to avoid is checking + , seeing it is null (meaning the + was available for use at the time of the check), and + interpreting this mistakenly as a guarantee that the + will remain usable for a time. Instead, the + operation of interest should simply be attempted: if the + is not in a usable state, an exception will be + thrown (most likely , but may + vary depending on the particular operation being attempted). + + + + + + Retrieve the endpoint this connection is connected to. + + + + + The maximum frame size this connection supports (0 if unlimited). + + + + + The current heartbeat setting for this connection (0 for disabled), in seconds. + + + + + Returns true if the connection is still in a state where it can be used. + Identical to checking if equal null. + + + + + Returns the known hosts that came back from the + broker in the connection.open-ok method at connection + startup time. Null until the connection is completely open and ready for use. + + + + + The this connection is using to communicate with its peer. + + + + + A dictionary of the server properties sent by the server while establishing the connection. + This typically includes the product name and version of the server. + + + + + Returns the list of objects that contain information + about any errors reported while closing the connection in the order they appeared + + + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + Signalled when an exception occurs in a callback invoked by the connection. + + + This event is signalled when a ConnectionShutdown handler + throws an exception. If, in future, more events appear on + , then this event will be signalled whenever one + of those event handlers throws an exception, as well. + + + + + Raised when the connection is destroyed. + + + If the connection is already destroyed at the time an + event handler is added to this event, the event handler + will be fired immediately. + + + + + Abort this connection and all its channels. + + + Note that all active channels, sessions, and models will be closed if this method is called. + In comparison to normal method, will not throw + during closing connection. + This method waits infinitely for the in-progress close operation to complete. + + + + + Abort this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification) + + + A message indicating the reason for closing the connection + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + This method, behaves in a similar way as method with the + only difference that it explictly specifies a timeout given + for all the in-progress close operations to complete. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Close this connection and all its channels. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete. This method will not return to the caller + until the shutdown is complete. If the connection is already closed + (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + + + + + Close this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP specification). + + + A message indicating the reason for closing the connection. + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete with a timeout. If the connection is + already closed (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Create and return a fresh channel, session, and model. + + + + + Handle incoming Connection.Blocked methods. + + + + + Handle incoming Connection.Unblocked methods. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat setting to request (in seconds). + + + + + When set to true, background threads will be used for I/O and heartbeats. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + Sets or gets the AMQP Uri to be used for connections. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to the specified endpoint. + + + + + Create a connection to the specified endpoint. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Create a connection using a list of endpoints. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Advanced option. + + What task scheduler should consumer dispatcher use. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + A decoded AMQP content header frame. + + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Return all AmqpTcpEndpoints in the order they should be tried. + + + + + A decoded AMQP method frame. + + + + AMQP methods can be RPC requests, RPC responses, exceptions + (ChannelClose, ConnectionClose), or one-way asynchronous + messages. Currently this information is not recorded in their + type or interface: it is implicit in the way the method is + used, and the way it is defined in the AMQP specification. A + future revision of the RabbitMQ .NET client library may extend + the IMethod interface to represent this information + explicitly. + + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + + Common AMQP model, spanning the union of the + functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when appropriate. + + + + + Channel number, unique per connections. + + + + + Returns null if the session is still in a state where it can be used, + or the cause of its closure otherwise. + + + + Signalled when an unexpected message is delivered + + Under certain circumstances it is possible for a channel to receive a + message delivery which does not match any consumer which is currently + set up via basicConsume(). This will occur after the following sequence + of events: + + ctag = basicConsume(queue, consumer); // i.e. with explicit acks + // some deliveries take place but are not acked + basicCancel(ctag); + basicRecover(false); + + Since requeue is specified to be false in the basicRecover, the spec + states that the message must be redelivered to "the original recipient" + - i.e. the same channel / consumer-tag. But the consumer is no longer + active. + + In these circumstances, you can register a default consumer to handle + such deliveries. If no default consumer is registered an + InvalidOperationException will be thrown when such a delivery arrives. + + Most people will not need to use this. + + + + Returns true if the model is no longer in a state where it can be used. + + + + + Returns true if the model is still in a state where it can be used. + Identical to checking if equals null. + + + + When in confirm mode, return the sequence number of the next message to be published. + + + + + Signalled when a Basic.Ack command arrives from the broker. + + + + + Signalled when a Basic.Nack command arrives from the broker. + + + + + All messages received before this fires that haven't been ack'ed will be redelivered. + All messages received afterwards won't be. + + + Handlers for this event are invoked by the connection thread. + It is sometimes useful to allow that thread to know that a recover-ok + has been received, rather than the thread that invoked . + + + + + Signalled when a Basic.Return command arrives from the broker. + + + + + Signalled when an exception occurs in a callback invoked by the model. + + Examples of cases where this event will be signalled + include exceptions thrown in methods, or + exceptions thrown in delegates etc. + + + + + Notifies the destruction of the model. + + + If the model is already destroyed at the time an event + handler is added to this event, the event handler will be fired immediately. + + + + + Abort this session. + + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + In comparison to normal method, will not throw + or or any other during closing model. + + + + + Abort this session. + + + The method behaves in the same way as , with the only + difference that the model is closed with the given model close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Acknowledge one or more delivered message(s). + + + + + Delete a Basic content-class consumer. + + + + Start a Basic content-class consumer. + + + + Retrieve an individual message, if + one is available; returns null if the server answers that + no messages are currently available. See also . + + + + Reject one or more delivered message(s). + + + + Publishes a message. + + + + Routing key must be shorter than 255 bytes. + + + + + + Configures QoS parameters of the Basic content-class. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + Reject a delivered message. + + + Close this session. + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + + + + Close this session. + + The method behaves in the same way as Close(), with the only + difference that the model is closed with the given model + close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Enable publisher acknowledgements. + + + + + Creates a BasicPublishBatch instance + + + + + Construct a completely empty content header for use with the Basic content class. + + + + + Bind an exchange to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Like ExchangeBind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + Declare an exchange. + + The exchange is declared non-passive and non-internal. + The "nowait" option is not exercised. + + + + + Same as ExchangeDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + + Do a passive exchange declaration. + + + This method performs a "passive declare" on an exchange, + which verifies whether . + It will do nothing if the exchange already exists and result + in a channel-level protocol exception (channel closure) if not. + + + + + Delete an exchange. + + + + + Like ExchangeDelete but sets nowait to true. + + + + + Unbind an exchange from an exchange. + + + Routing key must be shorter than 255 bytes. + + + + + Like ExchangeUnbind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + + Bind a queue to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + Same as QueueBind but sets nowait parameter to true. + + + Routing key must be shorter than 255 bytes. + + + + + Declare a queue. + + + + Same as QueueDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + Declare a queue passively. + + The queue is declared passive, non-durable, + non-exclusive, and non-autodelete, with no arguments. + The queue is declared passively; i.e. only check if it exists. + + + + + Returns the number of messages in a queue ready to be delivered + to consumers. This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Returns the number of consumers on a queue. + This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Delete a queue. + + + Returns the number of messages purged during queue deletion. + uint.MaxValue. + + + + + Same as QueueDelete but sets nowait parameter to true + and returns void (as there will be no response from the server) + + + + + Purge a queue of messages. + + + Returns the number of messages purged. + + + + + Unbind a queue from an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Commit this session's active TX transaction. + + + + + Roll back this session's active TX transaction. + + + + + Enable TX mode for this session. + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + True if the method returned because + the timeout elapsed, not because all messages were ack'd or at least one nack'd. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received, throws an + OperationInterrupedException exception immediately. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received or the timeout + elapses, throws an OperationInterrupedException exception immediately. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false and immediate=false. + + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false + + + + + (Spec method) Convenience overload of BasicPublish. + + + + + (Spec method) Declare a queue. + + + + + (Extension method) Bind an exchange to an exchange. + + + + + (Extension method) Like exchange bind but sets nowait to true. + + + + + (Spec method) Declare an exchange. + + + + + (Extension method) Like ExchangeDeclare but sets nowait to true. + + + + + (Spec method) Unbinds an exchange. + + + + + (Spec method) Deletes an exchange. + + + + + (Extension method) Like ExchangeDelete but sets nowait to true. + + + + + (Spec method) Binds a queue. + + + + + (Spec method) Deletes a queue. + + + + + (Extension method) Like QueueDelete but sets nowait to true. + + + + + (Spec method) Unbinds a queue. + + + + + Object describing various overarching parameters + associated with a particular AMQP protocol variant. + + + + + Retrieve the protocol's API name, used for printing, + configuration properties, IDE integration, Protocols.cs etc. + + + + + Retrieve the protocol's default TCP port. + + + + + Retrieve the protocol's major version number. + + + + + Retrieve the protocol's minor version number. + + + + + Retrieve the protocol's revision (if specified). + + + + + Construct a connection from a given set of parameters, + a frame handler, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, and automatic recovery settings. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and automatic recovery settings. + + + + + Construct a protocol model atop a given session. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + This interface is provided to make creation of test doubles + for easier. + + + + + + A marker interface for entities that are recoverable (currently connection or channel). + + + + + Common AMQP Stream content-class headers interface, + spanning the union of the functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use IModel.CreateStreamProperties(). + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a fresh instance are clear by default. + + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Message header field table. + + + + + Message priority, 0 to 9. + + + + + Message timestamp. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Wrapper interface for standard TCP-client. Provides socket for socket frame handler class. + + Contains all methods that are currenty in use in rabbitmq client. + + + + Common interface for network (TCP/IP) connection classes. + + + + + Local port. + + + + + Remote port. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Provides access to the supported implementations. + + + + + Protocol version 0-9-1 as modified by Pivotal. + + + + + Retrieve the current default protocol variant (currently AMQP_0_9_1). + + + + + Container for an exchange name, exchange type and + routing key, usable as the target address of a message to be published. + + + + The syntax used for the external representation of instances + of this class is compatible with QPid's "Reply-To" field + pseudo-URI format. The pseudo-URI format is + (exchange-type)://(exchange-name)/(routing-key), where + exchange-type is one of the permitted exchange type names (see + class ExchangeType), exchange-name must be present but may be + empty, and routing-key must be present but may be empty. + + + The syntax is as it is solely for compatibility with QPid's + existing usage of the ReplyTo field; the AMQP specifications + 0-8 and 0-9 do not define the format of the field, and do not + define any format for the triple (exchange name, exchange + type, routing key) that could be used instead. + + + + + + Regular expression used to extract the exchange-type, + exchange-name and routing-key from a string. + + + + + Creates a new instance of the . + + Exchange type. + Exchange name. + Routing key. + + + + Retrieve the exchange name. + + + + + Retrieve the exchange type string. + + + + + Retrieve the routing key. + + + + + Parse a out of the given string, + using the regex. + + + + + Reconstruct the "uri" from its constituents. + + + + + Represents Queue info. + + + + + Creates a new instance of the . + + Queue name. + Message count. + Consumer count. + + + + Consumer count. + + + + + Message count. + + + + + Queue name. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + Received messages are placed in the SharedQueue as instances + of . + + + Note that messages taken from the SharedQueue may need + acknowledging with . + + + When the consumer is closed, through BasicCancel or through + the shutdown of the underlying or , + the method is called, which causes any + Enqueue() operations, and Dequeue() operations when the queue + is empty, to throw EndOfStreamException (see the comment for ). + + + The following is a simple example of the usage of this class: + + + IModel channel = ...; + QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel); + channel.BasicConsume(queueName, null, consumer); + + // At this point, messages will be being asynchronously delivered, + // and will be queueing up in consumer.Queue. + + while (true) { + try { + BasicDeliverEventArgs e = (BasicDeliverEventArgs) consumer.Queue.Dequeue(); + // ... handle the delivery ... + channel.BasicAck(e.DeliveryTag, false); + } catch (EndOfStreamException ex) { + // The consumer was cancelled, the model closed, or the + // connection went away. + break; + } + } + + + + + + Creates a fresh , + initialising the property to null + and the property to a fresh . + + + + + Creates a fresh , with + set to the argument, and set to a fresh . + + + + + Creates a fresh , + initialising the + and properties to the given values. + + + + + Retrieves the that messages arrive on. + + + + + Overrides 's implementation, + building a instance and placing it in the Queue. + + + + + Overrides 's OnCancel implementation, + extending it to call the Close() method of the . + + + + + Information about the reason why a particular model, session, or connection was destroyed. + + + The and properties should be used to determine the originator of the shutdown event. + + + + + Construct a with the given parameters and + 0 for and . + + + + + Construct a with the given parameters. + + + + + Object causing the shutdown, or null if none. + + + + + AMQP content-class ID, or 0 if none. + + + + + Returns the source of the shutdown event: either the application, the library, or the remote peer. + + + + + AMQP method ID within a content-class, or 0 if none. + + + + + One of the standardised AMQP reason codes. See RabbitMQ.Client.Framing.*.Constants. + + + + + Informative human-readable reason text. + + + + + Override ToString to be useful for debugging. + + + + + Describes the source of a shutdown event. + + + + + The shutdown event originated from the application using the RabbitMQ .NET client library. + + + + + The shutdown event originated from the RabbitMQ .NET client library itself. + + + Shutdowns with this ShutdownInitiator code may appear if, + for example, an internal error is detected by the client, + or if the server sends a syntactically invalid + frame. Another potential use is on IConnection AutoClose. + + + + + The shutdown event originated from the remote AMQP peer. + + + A valid received connection.close or channel.close event + will manifest as a shutdown with this ShutdownInitiator. + + + + + Single entry object in the shutdown report that encapsulates description + of the error which occured during shutdown. + + + + + Description provided in the error. + + + + + object that occured during shutdown, or null if unspecified. + + + + + Represents an which does the actual heavy lifting to set up an SSL connection, + using the config options in an to make things cleaner. + + + + + Upgrade a Tcp stream to an Ssl stream using the SSL options provided. + + + + + Represents a configurable SSL option, used in setting up an SSL connection. + + + + + Constructs an SslOption specifying both the server cannonical name and the client's certificate path. + + + + + Constructs an with no parameters set. + + + + + Retrieve or set the set of ssl policy errors that are deemed acceptable. + + + + + Retrieve or set the path to client certificate. + + + + + Retrieve or set the path to client certificate. + + + + + An optional client specified SSL certificate selection callback. If this is not specified, + the first valid certificate found will be used. + + + + + An optional client specified SSL certificate validation callback. If this is not specified, + the default callback will be used in conjunction with the property to + determine if the remote server certificate is valid. + + + + + Retrieve or set the X509CertificateCollection containing the client certificate. + If no collection is set, the client will attempt to load one from the specified . + + + + + Flag specifying if Ssl should indeed be used. + + + + + Retrieve or set server's Canonical Name. + This MUST match the CN on the Certificate else the SSL connection will fail. + + + + + Retrieve or set the Ssl protocol version. + + + + + Framework for constructing various types of AMQP. Basic-class application messages. + + + + + By default, new instances of BasicMessageBuilder and its subclasses will have this much initial buffer space. + + + + + Construct an instance ready for writing. + + + The is used for the initial accumulator buffer size. + + + + + Construct an instance ready for writing. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's writing to BodyStream. + + + If no instance exists, one is created, + pointing at the beginning of the accumulator. If one + already exists, the existing instance is returned. The + instance is not reset. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Framework for analyzing various types of AMQP Basic-class application messages. + + + + + Construct an instance ready for reading. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's NetworkBinaryReader reading from . + + + If no NetworkBinaryReader instance exists, one is created, + pointing at the beginning of the body. If one already + exists, the existing instance is returned. The instance is + not reset. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Interface for constructing messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Interface for constructing messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Analyzes messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Parses the message body into an instance. + + + + + Interface for constructing application messages. + + + Subinterfaces provide specialized data-writing methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Finish and retrieve the content header for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Interface for analyzing application messages. + + + Subinterfaces provide specialized data-reading methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Interface for constructing messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Finish and retrieve the content body for transmission. + + + Calling this message clears Body to null. Subsequent calls will fault. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for reading. See . + + + + + Parses the message body into an instance. + + . + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "MapMessage" wire encoding. + + + + + + Utility class for extracting typed values from strings. + + + + + Creates the protocol violation exception. + + Type of the target. + The source. + Instance of the . + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of an . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Tags used in parsing and generating StreamWireFormatting message bodies. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + + + + + + + + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + Contains all the information about a message acknowledged + from an AMQP broker within the Basic content-class. + + + The sequence number of the acknowledged message, or + the closed upper bound of acknowledged messages if multiple + is true. + + + Whether this acknoledgement applies to one message + or multiple messages. + + + Contains all the information about a message delivered + from an AMQP broker within the Basic content-class. + + + Default constructor. + + + Constructor that fills the event's properties from + its arguments. + + + The content header of the message. + + + The message body. + + + The consumer tag of the consumer that the message + was delivered to. + + + The delivery tag for this delivery. See + IModel.BasicAck. + + + The exchange the message was originally published + to. + + + The AMQP "redelivered" flag. + + + The routing key used when the message was + originally published. + + + Contains all the information about a message nack'd + from an AMQP broker within the Basic content-class. + + + The sequence number of the nack'd message, or the + closed upper bound of nack'd messages if multiple is + true. + + + Whether this nack applies to one message or + multiple messages. + + + Ignore + Clients should ignore this field. + + + Contains all the information about a message returned + from an AMQP broker within the Basic content-class. + + + The content header of the message. + + + The message body. + + + The exchange the returned message was originally + published to. + + + The AMQP reason code for the return. See + RabbitMQ.Client.Framing.*.Constants. + + + Human-readable text from the broker describing the + reason for the return. + + + The routing key used when the message was + originally published. + + + Wrap an exception thrown by a callback. + + + Access helpful information about the context in + which the wrapped exception was thrown. + + + Access the wrapped exception. + + + Describes an exception that was thrown during the + library's invocation of an application-supplied callback + handler. + + + When an exception is thrown from a callback registered with + part of the RabbitMQ .NET client library, it is caught, + packaged into a CallbackExceptionEventArgs, and passed through + the appropriate IModel's or IConnection's CallbackException + event handlers. If an exception is thrown in a + CallbackException handler, it is silently swallowed, as + CallbackException is the last chance to handle these kinds of + exception. + + + Code constructing CallbackExceptionEventArgs instances will + usually place helpful information about the context of the + call in the IDictionary available through the Detail property. + + + + + + Event relating to connection being blocked. + + + + + Access the reason why connection is blocked. + + + + Event relating to a successful consumer registration + or cancellation. + + + Construct an event containing the consumer-tag of + the consumer the event relates to. + + + Access the consumer-tag of the consumer the event + relates to. + + + + Initializes a new instance of the class. + + The tag before. + The tag after. + + + + Gets the tag before. + + + + + Gets the tag after. + + + + Experimental class exposing an IBasicConsumer's + methods as separate events. + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + + Event relating to flow control. + + + + + Access the flow control setting. + + + + + Initializes a new instance of the class. + + The name before. + The name after. + + + + Gets the name before. + + + + + Gets the name after. + + + + + Describes an exception that was thrown during + automatic connection recovery performed by the library. + + + + Thrown when the application tries to make use of a + session or connection that has already been shut + down. + + + Construct an instance containing the given + shutdown reason. + + + Thrown when the cause is an + authentication failure. + + + Thrown when no connection could be opened during a + ConnectionFactory.CreateConnection attempt. + + + Construct a BrokerUnreachableException. The inner exception is + an AggregateException holding the errors from multiple connection attempts. + + + Thrown when a SessionManager cannot allocate a new + channel number, or the requested channel number is already in + use. + + + + Indicates that there are no more free channels. + + + + + Indicates that the specified channel is in use + + The requested channel number + + + Retrieves the channel number concerned; will + return -1 in the case where "no more free channels" is + being signaled, or a non-negative integer when "channel is + in use" is being signaled. + + + Thrown when a connection to the broker fails + + + + Thrown when a session is destroyed during an RPC call to a + broker. For example, if a TCP connection dropping causes the + destruction of a session in the middle of a QueueDeclare + operation, an OperationInterruptedException will be thrown to + the caller of IModel.QueueDeclare. + + + + Construct an OperationInterruptedException with + the passed-in explanation, if any. + + + Construct an OperationInterruptedException with + the passed-in explanation and prefix, if any. + + + Retrieves the explanation for the shutdown. May + return null if no explanation is available. + + + Thrown to indicate that the peer didn't understand + the packet received from the client. Peer sent default message + describing protocol version it is using and transport parameters. + + + The peer's {'A','M','Q','P',txHi,txLo,major,minor} packet is + decoded into instances of this class. + + + + Fills the new instance's properties with the values passed in. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + The peer's high transport byte. + + + The peer's low transport byte. + + + Thrown when the likely cause is an + authentication failure. + + + Thrown to indicate that the peer does not support the + wire protocol version we requested immediately after opening + the TCP socket. + + + Fills the new instance's properties with the values passed in. + + + The client's AMQP specification major version. + + + The client's AMQP specification minor version. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Thrown when the model receives an RPC reply that it wasn't expecting. + + + + The unexpected reply method. + + + + Thrown when the model receives an RPC request it cannot satisfy. + + + + The name of the RPC request that could not be sent. + + + Thrown when the model cannot transmit a method field + because the version of the protocol the model is implementing + does not contain a definition for the field in + question. + + + The name of the unsupported field. + + + The name of the method involved. + + + Thrown when the wire-formatting code cannot encode a + particular .NET value to AMQP protocol format. + + + Construct a WireFormattingException with no + particular offender (i.e. null) + + + Construct a WireFormattingException with the given + offender + + + Object which this exception is complaining about; + may be null if no particular offender exists + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + Thrown when the server sends a frame along a channel + that we do not currently have a Session entry in our + SessionManager for. + + + The channel number concerned. + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Fill this instance from the given byte buffer stream. + + + + A type of . + + + + Returns a random item from the list. + + Element item type + Input list + + + + Subclass of ProtocolException representing problems + requiring a connection.close. + + + Socket read timeout, in milliseconds. Zero signals "infinity". + + + Socket write timeout, in milliseconds. Zero signals "infinity". + + + Read a frame from the underlying + transport. Returns null if the read operation timed out + (see Timeout property). + + + Not part of the public API. Extension of IModel to + include utilities and connection-setup routines needed by the + implementation side. + + This interface is used by the API autogeneration + process. The AMQP XML specifications are read by the spec + compilation tool, and after the basic method interface and + implementation classes are generated, this interface is + scanned, and a spec-version-specific implementation is + autogenerated. Annotations are used on certain methods, return + types, and parameters, to customise the details of the + autogeneration process. + + + + + + Sends a Connection.TuneOk. Used during connection + initialisation. + + + Handle incoming Basic.Ack methods. Signals a + BasicAckEvent. + + + Handle incoming Basic.CancelOk methods. + + + Handle incoming Basic.ConsumeOk methods. + + + Handle incoming Basic.Deliver methods. Dispatches + to waiting consumers. + + + Handle incoming Basic.GetEmpty methods. Routes the + information to a waiting Basic.Get continuation. + + Note that the clusterId field is ignored, as in the + specification it notes that it is "deprecated pending + review". + + + + Handle incoming Basic.GetOk methods. Routes the + information to a waiting Basic.Get continuation. + + + Handle incoming Basic.Nack methods. Signals a + BasicNackEvent. + + + Handle incoming Basic.RecoverOk methods + received in reply to Basic.Recover. + + + + Handle incoming Basic.Return methods. Signals a + BasicReturnEvent. + + + Handle an incoming Channel.Close. Shuts down the + session and model. + + + Handle an incoming Channel.CloseOk. + + + Handle incoming Channel.Flow methods. Either + stops or resumes sending the methods that have content. + + + Handle an incoming Connection.Blocked. + + + Handle an incoming Connection.Close. Shuts down the + connection and all sessions and models. + + + Handle an incoming Connection.OpenOk. + + + Handle incoming Connection.Secure + methods. + + + Handle an incoming Connection.Start. Used during + connection initialisation. + + + Handle incoming Connection.Tune + methods. + + + Handle an incominga Connection.Unblocked. + + + Handle incoming Queue.DeclareOk methods. Routes the + information to a waiting Queue.DeclareOk continuation. + + + Used to send a Basic.Cancel method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Consume method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Get. Basic.Get is a special + case, since it can result in a Basic.GetOk or a + Basic.GetEmpty, so this level of manual control is + required. + + + Used to send a Basic.Publish method. Called by the + public publish method after potential null-reference issues + have been rectified. + + + Used to send a Channel.Close. Called during + session shutdown. + + + Used to send a Channel.CloseOk. Called during + session shutdown. + + + Used to send a Channel.FlowOk. Confirms that + Channel.Flow from the broker was processed. + + + Used to send a Channel.Open. Called during session + initialisation. + + + Used to send a Confirm.Select method. The public + confirm API calls this while also managing internal + datastructures. + + + Used to send a Connection.Close. Called during + connection shutdown. + + + Used to send a Connection.CloseOk. Called during + connection shutdown. + + + Used to send a Connection.Open. Called during + connection startup. + + + Used to send a Connection.SecureOk. Again, this is + special, like Basic.Get. + + + Used to send a Connection.StartOk. This is + special, like Basic.Get. + + + Used to send a Exchange.Bind method. Called by the + public bind method. + + + + Used to send a Exchange.Declare method. Called by the + public declare method. + + + + Used to send a Exchange.Delete method. Called by the + public delete method. + + + + Used to send a Exchange.Unbind method. Called by the + public unbind method. + + + + Used to send a Queue.Bind method. Called by the + public bind method. + + + Used to send a Queue.Declare method. Called by the + public declare method. + + + Used to send a Queue.Delete method. Called by the + public delete method. + + + Used to send a Queue.Purge method. Called by the + public purge method. + + + Essential information from an incoming Connection.Tune + method. + + + The peer's suggested channel-max parameter. + + + The peer's suggested frame-max parameter. + + + The peer's suggested heartbeat parameter. + + + + Gets the channel number. + + + + + Gets the close reason. + + + + + Single recipient - no need for multiple handlers to be informed of arriving commands. + + + + + Gets the connection. + + + + + Gets a value indicating whether this session is open. + + + + + Multicast session shutdown event. + + + + Small ISession implementation used only for channel 0. + + + Set channel 0 as quiescing + + Method should be idempotent. Cannot use base.Close + method call because that would prevent us from + sending/receiving Close/CloseOk commands + + + + Thrown when frame parsing code detects an error in the + wire-protocol encoding of a frame. + + For example, potential MalformedFrameException conditions + include frames too short, frames missing their end marker, and + invalid protocol negotiation headers. + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + Only used to kick-start a connection open + sequence. See + + + Broadcasts notification of the final shutdown of the model. + + + Do not call anywhere other than at the end of OnSessionShutdown. + + + Must not be called when m_closeReason == null, because + otherwise there's a window when a new continuation could be + being enqueued at the same time as we're broadcasting the + shutdown event. See the definition of Enqueue() above. + + + + + Handle incoming Connection.Tune + methods. + + + Instances of subclasses of subclasses + HardProtocolException and SoftProtocolException are thrown in + situations when we detect a problem with the connection-, + channel- or wire-level parts of the AMQP protocol. + + + Retrieve the reply code to use in a + connection/channel close method. + + + Retrieve the shutdown details to use in a + connection/channel close method. Defaults to using + ShutdownInitiator.Library, and this.ReplyCode and + this.Message as the reply code and text, + respectively. + + + Small ISession implementation used during channel quiescing. + + + Manages a queue of waiting AMQP RPC requests. + + + Currently, pipelining of requests is forbidden by this + implementation. The AMQP 0-8 and 0-9 specifications themselves + forbid pipelining, but only by the skin of their teeth and + under a somewhat generous reading. + + + + + Enqueue a continuation, marking a pending RPC. + + + Continuations are retrieved in FIFO order by calling Next(). + + + In the current implementation, only one continuation can + be queued up at once. Calls to Enqueue() when a + continuation is already enqueued will result in + NotSupportedException being thrown. + + + + + Interrupt all waiting continuations. + + + There's just the one potential waiter in the current + implementation. + + + + + Retrieve the next waiting continuation. + + + It is an error to call this method when there are no + waiting continuations. In the current implementation, if + this happens, null will be returned (which will usually + result in an immediate NullPointerException in the + caller). Correct code will always arrange for a + continuation to have been Enqueue()d before calling this + method. + + + + + Normal ISession implementation used during normal channel operation. + + + Called from CheckAutoClose, in a separate thread, + when we decide to close the connection. + + + If m_autoClose and there are no active sessions + remaining, Close()s the connection with reason code + 200. + + + Replace an active session slot with a new ISession + implementation. Used during channel quiescing. + + Make sure you pass in a channelNumber that's currently in + use, as if the slot is unused, you'll get a null pointer + exception. + + + + Subclass of ProtocolException representing problems + requiring a channel.close. + + + Thrown when our peer sends a frame that contains + illegal values for one or more fields. + + + + Thrown when the connection receives a frame that it wasn't expecting. + + + + + Thrown when the protocol handlers detect an unknown class + number or method number. + + + + The AMQP content-class ID. + + + The AMQP method ID within the content-class, or 0 if none. + + + Reads an AMQP "table" definition from the reader. + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t, + x and V types and the AMQP 0-9-1 A type. + + A . + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Heartbeat frame for transmission. Reusable across connections. + + + Another overload of a Protocol property, useful + for exposing a tighter type. + + + Explicit implementation of IConnection.Protocol. + + + Try to close connection in a graceful way + + + Shutdown reason contains code and text assigned when closing the connection, + as well as the information about what initiated the close + + + Abort flag, if true, signals to close the ongoing connection immediately + and do not report any errors if it was already closed. + + + Timeout determines how much time internal close operations should be given + to complete. Negative or Timeout.Infinite value mean infinity. + + + + + + Loop only used while quiescing. Use only to cleanly close connection + + + + + We need to close the socket, otherwise attempting to unload the domain + could cause a CannotUnloadAppDomainException + + + + Broadcasts notification of the final shutdown of the connection. + + + + Sets the channel named in the SoftProtocolException into + "quiescing mode", where we issue a channel.close and + ignore everything except for subsequent channel.close + messages and the channel.close-ok reply that should + eventually arrive. + + + + Since a well-behaved peer will not wait indefinitely before + issuing the close-ok, we don't bother with a timeout here; + compare this to the case of a connection.close-ok, where a + timeout is necessary. + + + We need to send the close method and politely wait for a + reply before marking the channel as available for reuse. + + + As soon as SoftProtocolException is detected, we should stop + servicing ordinary application work, and should concentrate + on bringing down the channel as quickly and gracefully as + possible. The way this is done, as per the close-protocol, + is to signal closure up the stack *before* sending the + channel.close, by invoking ISession.Close. Once the upper + layers have been signalled, we are free to do what we need + to do to clean up and shut down the channel. + + + + + + May be called more than once. Should therefore be idempotent. + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Protocol major version (= 0) + + + Protocol minor version (= 9) + + + Protocol revision (= 1) + + + Protocol API name (= :AMQP_0_9_1) + + + Default TCP port (= 5672) + + + (= 1) + + + (= 2) + + + (= 3) + + + (= 8) + + + (= 4096) + + + (= 206) + + + (= 200) + + + (= 311) + + + (= 313) + + + (= 320) + + + (= 402) + + + (= 403) + + + (= 404) + + + (= 405) + + + (= 406) + + + (= 501) + + + (= 502) + + + (= 503) + + + (= 504) + + + (= 505) + + + (= 506) + + + (= 530) + + + (= 540) + + + (= 541) + + + Autogenerated type. AMQP specification method "connection.start". + + + Autogenerated type. AMQP specification method "connection.start-ok". + + + Autogenerated type. AMQP specification method "connection.secure". + + + Autogenerated type. AMQP specification method "connection.secure-ok". + + + Autogenerated type. AMQP specification method "connection.tune". + + + Autogenerated type. AMQP specification method "connection.tune-ok". + + + Autogenerated type. AMQP specification method "connection.open". + + + Autogenerated type. AMQP specification method "connection.open-ok". + + + Autogenerated type. AMQP specification method "connection.close". + + + Autogenerated type. AMQP specification method "connection.close-ok". + + + Autogenerated type. AMQP specification method "connection.blocked". + + + Autogenerated type. AMQP specification method "connection.unblocked". + + + Autogenerated type. AMQP specification method "channel.open". + + + Autogenerated type. AMQP specification method "channel.open-ok". + + + Autogenerated type. AMQP specification method "channel.flow". + + + Autogenerated type. AMQP specification method "channel.flow-ok". + + + Autogenerated type. AMQP specification method "channel.close". + + + Autogenerated type. AMQP specification method "channel.close-ok". + + + Autogenerated type. AMQP specification method "exchange.declare". + + + Autogenerated type. AMQP specification method "exchange.declare-ok". + + + Autogenerated type. AMQP specification method "exchange.delete". + + + Autogenerated type. AMQP specification method "exchange.delete-ok". + + + Autogenerated type. AMQP specification method "exchange.bind". + + + Autogenerated type. AMQP specification method "exchange.bind-ok". + + + Autogenerated type. AMQP specification method "exchange.unbind". + + + Autogenerated type. AMQP specification method "exchange.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.declare". + + + Autogenerated type. AMQP specification method "queue.declare-ok". + + + Autogenerated type. AMQP specification method "queue.bind". + + + Autogenerated type. AMQP specification method "queue.bind-ok". + + + Autogenerated type. AMQP specification method "queue.unbind". + + + Autogenerated type. AMQP specification method "queue.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.purge". + + + Autogenerated type. AMQP specification method "queue.purge-ok". + + + Autogenerated type. AMQP specification method "queue.delete". + + + Autogenerated type. AMQP specification method "queue.delete-ok". + + + Autogenerated type. AMQP specification method "basic.qos". + + + Autogenerated type. AMQP specification method "basic.qos-ok". + + + Autogenerated type. AMQP specification method "basic.consume". + + + Autogenerated type. AMQP specification method "basic.consume-ok". + + + Autogenerated type. AMQP specification method "basic.cancel". + + + Autogenerated type. AMQP specification method "basic.cancel-ok". + + + Autogenerated type. AMQP specification method "basic.publish". + + + Autogenerated type. AMQP specification method "basic.return". + + + Autogenerated type. AMQP specification method "basic.deliver". + + + Autogenerated type. AMQP specification method "basic.get". + + + Autogenerated type. AMQP specification method "basic.get-ok". + + + Autogenerated type. AMQP specification method "basic.get-empty". + + + Autogenerated type. AMQP specification method "basic.ack". + + + Autogenerated type. AMQP specification method "basic.reject". + + + Autogenerated type. AMQP specification method "basic.recover-async". + + + Autogenerated type. AMQP specification method "basic.recover". + + + Autogenerated type. AMQP specification method "basic.recover-ok". + + + Autogenerated type. AMQP specification method "basic.nack". + + + Autogenerated type. AMQP specification method "tx.select". + + + Autogenerated type. AMQP specification method "tx.select-ok". + + + Autogenerated type. AMQP specification method "tx.commit". + + + Autogenerated type. AMQP specification method "tx.commit-ok". + + + Autogenerated type. AMQP specification method "tx.rollback". + + + Autogenerated type. AMQP specification method "tx.rollback-ok". + + + Autogenerated type. AMQP specification method "confirm.select". + + + Autogenerated type. AMQP specification method "confirm.select-ok". + + + Autogenerated type. AMQP specification content header properties for content class "basic" + + + Base class for attributes for controlling the API + autogeneration process. + + + The specification namespace (i.e. version) that + this attribute applies to, or null for all specification + versions. + + + Causes the API generator to ignore the attributed method. + + Mostly used to declare convenience overloads of + various AMQP methods in the IModel interface. Also used + to omit an autogenerated implementation of a method which + is not required for one protocol version. The API + autogeneration process should of course not attempt to produce + an implementation of the convenience methods, as they will be + implemented by hand with sensible defaults, delegating to the + autogenerated variant of the method concerned. + + + Causes the API generator to generate asynchronous + receive code for the attributed method. + + + Causes the API generator to generate + exception-throwing code for, instead of simply ignoring, the + attributed method. + + + + + Informs the API generator which AMQP method field to + use for either a parameter in a request, or for a simple result + in a reply. + + + Informs the API generator which AMQP method to use for + either a request (if applied to an IModel method) or a reply + (if applied to an IModel method result). + + + This attribute, if placed on a parameter in an IModel + method, causes it to be interpreted as a "nowait" parameter for + the purposes of autogenerated RPC reply continuation management + and control. + + + This attribute, if placed on a method in IModel, + causes the method to be interpreted as a factory method + producing a protocol-specific implementation of a common + content header interface. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content header frame. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content body frame. + + + This attribute, placed on an IModel method, causes + what would normally be an RPC, sent with ModelRpc, to be sent + as if it were oneway, with ModelSend. The assumption that this + is for a custom continuation (e.g. for BasicConsume/BasicCancel + etc.) + + + + Simple wrapper around TcpClient. + + + + Manages a subscription to a queue. + + + This interface is provided to make creation of test doubles + for easier. + + + + + Implements a simple RPC client. + + + This class sends requests that can be processed by remote + SimpleRpcServer instances. + + + The basic pattern for accessing a remote service is to + determine the exchange name and routing key needed for + submissions of service requests, and to construct a + SimpleRpcClient instance using that address. Once constructed, + the various Call() and Cast() overloads can be used to send + requests and receive the corresponding replies. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + SimpleRpcClient client = + new SimpleRpcClient(ch, queueName); + client.TimeoutMilliseconds = 5000; // optional + + /// ... make use of the various Call() overloads + } + } + + + Instances of this class declare a queue, so it is the user's + responsibility to ensure that the exchange concerned exists + (using IModel.ExchangeDeclare) before invoking Call() or + Cast(). + + + This class implements only a few basic RPC message formats - + to extend it with support for more formats, either subclass, + or transcode the messages before transmission using the + built-in byte[] format. + + + + + + Construct an instance with no configured + Address. The Address property must be set before Call() or + Cast() are called. + + + Construct an instance that will deliver to the + default exchange (""), with routing key equal to the passed + in queueName, thereby delivering directly to a named queue + on the AMQP server. + + + Construct an instance that will deliver to the + named and typed exchange, with the given routing + key. + + + Construct an instance that will deliver to the + given address. + + + This event is fired whenever Call() detects the + disconnection of the underlying Subscription while waiting + for a reply from the service. + + See also OnDisconnected(). Note that the sending of a + request may result in OperationInterruptedException before + the request is even sent. + + + + This event is fired whenever Call() decides that a + timeout has occurred while waiting for a reply from the + service. + + See also OnTimedOut(). + + + + Retrieve or modify the address that will be used + for the next Call() or Cast(). + + This address represents the service, i.e. the destination + service requests should be published to. It can be changed + at any time before a Call() or Cast() request is sent - + the value at the time of the call is used by Call() and + Cast(). + + + + Retrieve the IModel this instance uses to communicate. + + + Retrieve the Subscription that is used to receive + RPC replies corresponding to Call() RPC requests. May be + null. + + + Upon construction, this property will be null. It is + initialised by the protected virtual method + EnsureSubscription upon the first call to Call(). Calls to + Cast() do not initialise the subscription, since no + replies are expected or possible when using Cast(). + + + + + Retrieve or modify the timeout (in milliseconds) + that will be used for the next Call(). + + + This property defaults to + System.Threading.Timeout.Infinite (i.e. -1). If it is set + to any other value, Call() will only wait for the + specified amount of time before returning indicating a + timeout. + + + See also TimedOut event and OnTimedOut(). + + + + + Sends a "jms/stream-message"-encoded RPC request, + and expects an RPC reply in the same format. + + + The arguments passed in must be of types that are + representable as JMS StreamMessage values, and so must the + results returned from the service in its reply message. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + + Sends a simple byte[] message, without any custom + headers or properties. + + + Delegates directly to Call(IBasicProperties, byte[]), and + discards the properties of the received reply, returning + only the body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[] message and IBasicProperties + header, returning both the body and headers of the received + reply. + + + Sets the "replyProperties" outbound parameter to the + properties of the received reply, and returns the byte[] + body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Both sets "replyProperties" to null and returns null when + either the request timed out or we were disconnected + before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[]/IBasicProperties RPC request, + returning full information about the delivered reply as a + BasicDeliverEventArgs. + + + This is the most general/lowest-level Call()-style method + on SimpleRpcClient. It sets CorrelationId and ReplyTo on + the request message's headers before transmitting the + request to the service via the AMQP server. If the reply's + CorrelationId does not match the request's CorrelationId, + ProtocolViolationException will be thrown. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + Sends an asynchronous/one-way message to the + service. + + + Close the reply subscription associated with this instance, if any. + + Simply delegates to calling Subscription.Close(). Clears + the Subscription property, so that subsequent Call()s, if + any, will re-initialize it to a fresh Subscription + instance. + + + + Signals that the Subscription we use for receiving + our RPC replies was disconnected while we were + waiting. + + Fires the Disconnected event. + + + + Signals that the configured timeout fired while + waiting for an RPC reply. + + Fires the TimedOut event. + + + + Implement the IDisposable interface, permitting + SimpleRpcClient instances to be used in using + statements. + + + Should initialise m_subscription to be non-null + and usable for fetching RPC replies from the service + through the AMQP server. + + + Retrieves the reply for the request with the given + correlation ID from our internal Subscription. + + Currently requires replies to arrive in the same order as + the requests were sent out. Subclasses may override this + to provide more sophisticated behaviour. + + + + Implements a simple RPC service, responding to + requests received via a Subscription. + + + This class interprets requests such as those sent by instances + of SimpleRpcClient. + + + The basic pattern for implementing a service is to subclass + SimpleRpcServer, overriding HandleCall and HandleCast as + appropriate, and then to create a Subscription object for + receiving requests from clients, and start an instance of the + SimpleRpcServer subclass with the Subscription. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + Subscription sub = new Subscription(ch, queueName); + new MySimpleRpcServerSubclass(sub).MainLoop(); + } + } + + + Note that this class itself does not declare any resources + (exchanges, queues or bindings). The Subscription we use for + receiving RPC requests should have already declared all the + resources we need. See the Subscription constructors and the + Subscription.Bind method. + + + If you are implementing a service that responds to + "jms/stream-message"-formatted requests (as implemented by + RabbitMQ.Client.Content.IStreamMessageReader), override + HandleStreamMessageCall. Otherwise, override HandleSimpleCall + or HandleCall as appropriate. Asynchronous, one-way requests + are dealt with by HandleCast etc. + + + Every time a request is successfully received and processed + within the server's MainLoop, the request message is Ack()ed + using Subscription.Ack before the next request is + retrieved. This causes the Subscription object to take care of + acknowledging receipt and processing of the request message. + + + If transactional service is enabled, via SetTransactional(), + then after every successful ProcessRequest, IModel.TxCommit is + called. Making use of transactional service has effects on all + parts of the application that share an IModel instance, + completely changing the style of interaction with the AMQP + server. For this reason, it is initially disabled, and must be + explicitly enabled with a call to SetTransactional(). Please + see the documentation for SetTransactional() for details. + + + To stop a running RPC server, call Close(). This will in turn + Close() the Subscription, which will cause MainLoop() to + return to its caller. + + + Unless overridden, ProcessRequest examines properties in the + request content header, and uses them to dispatch to one of + the Handle[...]() methods. See the documentation for + ProcessRequest and each Handle[...] method for details. + + + + + + Create, but do not start, an instance that will + receive requests via the given Subscription. + + + The instance is initially in non-transactional mode. See + SetTransactional(). + + + Call MainLoop() to start the request-processing loop. + + + + + Returns true if we are in "transactional" mode, or + false if we are not. + + + Shut down the server, causing MainLoop() to return + to its caller. + + Acts by calling Close() on the server's Subscription object. + + + + Called by ProcessRequest(), this is the most + general method that handles RPC-style requests. + + + This method should map requestProperties and body to + replyProperties and the returned byte array. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall before encoding and returning the + reply. If the ContentType is any other value, the request + is passed to HandleSimpleCall instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by ProcessRequest(), this is the most + general method that handles asynchronous, one-way + requests. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall, passing in null as the + replyWriter parameter to indicate that no reply is desired + or possible. If the ContentType is any other value, the + request is passed to HandleSimpleCast instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by the default HandleCall() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. It should fill in + replyProperties (or set it to null) and return a byte + array to send back to the remote caller as a reply + message. + + + + Called by the default HandleCast() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. + + + + Called by HandleCall and HandleCast when a + "jms/stream-message" request is received. + + + The args array contains the values decoded by HandleCall + or HandleCast. + + + The replyWriter parameter will be null if we were called + from HandleCast, in which case a reply is not expected or + possible, or non-null if we were called from + HandleCall. Use the methods of replyWriter in this case to + assemble your reply, which will be sent back to the remote + caller. + + + This default implementation does nothing, which + effectively sends back an empty reply to any and all + remote callers. + + + + + Enters the main loop of the RPC service. + + + Retrieves requests repeatedly from the service's + subscription. Each request is passed to + ProcessRequest. Once ProcessRequest returns, the request + is acknowledged via Subscription.Ack(). If transactional + mode is enabled, TxCommit is then called. Finally, the + loop begins again. + + + Runs until the subscription ends, which happens either as + a result of disconnection, or of a call to Close(). + + + + + Process a single request received from our + subscription. + + + If the request's properties contain a non-null, non-empty + CorrelationId string (see IBasicProperties), it is assumed + to be a two-way call, requiring a response. The ReplyTo + header property is used as the reply address (via + PublicationAddress.Parse, unless that fails, in which case it + is treated as a simple queue name), and the request is + passed to HandleCall(). + + + If the CorrelationId is absent or empty, the request is + treated as one-way asynchronous event, and is passed to + HandleCast(). + + + Usually, overriding HandleCall(), HandleCast(), or one of + their delegates is sufficient to implement a service, but + in some cases overriding ProcessRequest() is + required. Overriding ProcessRequest() gives the + opportunity to implement schemes for detecting interaction + patterns other than simple request/response or one-way + communication. + + + + + Enables transactional mode. + + + Once enabled, transactional mode is not only enabled for + all users of the underlying IModel instance, but cannot be + disabled without shutting down the entire IModel (which + involves shutting down all the services depending on it, + and should not be undertaken lightly). + + + This method calls IModel.TxSelect, every time it is + called. (TxSelect is idempotent, so this is harmless.) + + + + + Implement the IDisposable interface, permitting + SimpleRpcServer instances to be used in using + statements. + + + Manages a subscription to a queue. + + + This convenience class abstracts away from much of the detail + involved in receiving messages from a queue. + + + Once created, the Subscription consumes from a queue (using a + EventingBasicConsumer). Received deliveries can be retrieved + by calling Next(), or by using the Subscription as an + IEnumerator in, for example, a foreach loop. + + + Note that if the "autoAck" option is enabled (which it is by + default), then received deliveries are automatically acked + within the server before they are even transmitted across the + network to us. Calling Ack() on received events will always do + the right thing: if "autoAck" is enabled, nothing is done on an + Ack() call, and if "autoAck" is disabled, IModel.BasicAck() is + called with the correct parameters. + + + + + Creates a new Subscription in "autoAck" mode, + consuming from a named queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode and the name of the queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode, the name of the queue, and the consumer tag. + + + Retrieve the IBasicConsumer that is receiving the + messages from the server for us. Normally, you will not + need to access this property - use Next() and friends + instead. + + + Retrieve the consumer-tag that this subscription + is using. Will usually be a server-generated + name. + + + Returns the most recent value returned by Next(), + or null when either no values have been retrieved yet, the + end of the subscription has been reached, or the most + recent value has already been Ack()ed. See also the + documentation for Ack(). + + + Retrieve the IModel our subscription is carried by. + + + Returns true if we are in "autoAck" mode, where + calls to Ack() will be no-ops, and where the server acks + messages before they are delivered to us. Returns false if + we are in a mode where calls to Ack() are required, and + where such calls will actually send an acknowledgement + message across the network to the server. + + + Retrieve the queue name we have subscribed to. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + As per the IEnumerator interface definition, throws + InvalidOperationException if LatestEvent is null. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + If LatestEvent is non-null, passes it to + Ack(BasicDeliverEventArgs). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicAck with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Closes this Subscription, cancelling the consumer + record in the server. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, false, requeue). Causes LatestEvent to become + null. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, multiple, requeue). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicNack with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Retrieves the next incoming delivery in our + subscription queue. + + + Returns null when the end of the stream is reached and on + every subsequent call. End-of-stream can arise through the + action of the Subscription.Close() method, or through the + closure of the IModel or its underlying IConnection. + + + Updates LatestEvent to the value returned. + + + Does not acknowledge any deliveries at all (but in "autoAck" + mode, the server will have auto-acknowledged each event + before it is even sent across the wire to us). + + + + + Retrieves the next incoming delivery in our + subscription queue, or times out after a specified number + of milliseconds. + + + Returns false only if the timeout expires before either a + delivery appears or the end-of-stream is reached. If false + is returned, the out parameter "result" is set to null, + but LatestEvent is not updated. + + + Returns true to indicate a delivery or the end-of-stream. + + + If a delivery is already waiting in the queue, or one + arrives before the timeout expires, it is removed from the + queue and placed in the "result" out parameter. If the + end-of-stream is detected before the timeout expires, + "result" is set to null. + + + Whenever this method returns true, it updates LatestEvent + to the value placed in "result" before returning. + + + End-of-stream can arise through the action of the + Subscription.Close() method, or through the closure of the + IModel or its underlying IConnection. + + + This method does not acknowledge any deliveries at all + (but in "autoAck" mode, the server will have + auto-acknowledged each event before it is even sent across + the wire to us). + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item or the end of + the stream to become available. Usage of such a timeout is + equivalent to calling Next() with no arguments (modulo + predictable method signature differences). + + + + + Implementation of the IDisposable interface, + permitting Subscription to be used in using + statements. Simply calls Close(). + + + Implementation of the IEnumerable interface, for + permitting Subscription to be used in foreach + loops. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + Dummy implementation of the IEnumerator interface, + for permitting Subscription to be used in foreach loops; + Reset()ting a Subscription doesn't make sense, so this + method always throws InvalidOperationException. + + + A thread-safe single-assignment reference cell. + + A fresh BlockingCell holds no value (is empty). Any thread + reading the Value property when the cell is empty will block + until a value is made available by some other thread. The Value + property can only be set once - on the first call, the + BlockingCell is considered full, and made immutable. Further + attempts to set Value result in a thrown + InvalidOperationException. + + + + Retrieve the cell's value, blocking if none exists + at present, or supply a value to an empty cell, thereby + filling it. + + + + Return valid timeout value + If value of the parameter is less then zero, return 0 + to mean infinity + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Miscellaneous debugging and development utilities. + + Not part of the public API. + + + + Print a hex dump of the supplied bytes to stdout. + + + Print a hex dump of the supplied bytes to the supplied TextWriter. + + + Prints an indented key/value pair; used by DumpProperties() + Recurses into the value using DumpProperties(). + + + Dump properties of objects to the supplied writer. + + + Used internally by class Either. + + + Models the disjoint union of two alternatives, a + "left" alternative and a "right" alternative. + Borrowed from ML, Haskell etc. + + + Private constructor. Use the static methods Left, Right instead. + + + Retrieve the alternative represented by this instance. + + + Retrieve the value carried by this instance. + + + Constructs an Either instance representing a Left alternative. + + + Constructs an Either instance representing a Right alternative. + + + A class for allocating integer IDs in a given range. + + + A class representing a list of inclusive intervals + Creates an IntAllocator allocating integer IDs within the inclusive range [start, end] + + + Allocate a fresh integer from the range, or return -1 if no more integers + are available. This operation is guaranteed to run in O(1) + + + Make the provided integer available for allocation again. This operation + runs in amortized O(sqrt(range size)) time: About every sqrt(range size) + operations will take O(range_size + number of intervals) to complete and + the rest run in constant time. + + No error checking is performed, so if you double Free or Free an integer + that was not originally Allocated the results are undefined. Sorry. + + + + Subclass of BinaryReader that reads integers etc in correct network order. + + + + Kludge to compensate for .NET's broken little-endian-only BinaryReader. + Relies on BinaryReader always being little-endian. + + + + + + Construct a NetworkBinaryReader over the given input stream. + + + + + Construct a NetworkBinaryReader over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryReader over a byte[]. + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Subclass of BinaryWriter that writes integers etc in correct network order. + + + +

+ Kludge to compensate for .NET's broken little-endian-only BinaryWriter. +

+ See also NetworkBinaryReader. +

+
+
+ + + Construct a NetworkBinaryWriter over the given input stream. + + + + + Construct a NetworkBinaryWriter over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryWriter streaming into a fresh MemoryStream + provisioned with the given initialSize. + + + Helper method for extracting the byte[] contents + of a BinaryWriter over a MemoryStream, such as constructed + by TemporaryBinaryWriter. + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + A thread-safe shared queue implementation. + + + A thread-safe shared queue implementation. + + + Flag holding our current status. + + + The shared queue. + + Subclasses must ensure appropriate locking discipline when + accessing this field. See the implementation of Enqueue, + Dequeue. + + + + Close the queue. Causes all further Enqueue() + operations to throw EndOfStreamException, and all pending + or subsequent Dequeue() operations to throw an + EndOfStreamException once the queue is empty. + + + Retrieve the first item from the queue, or block if none available + + Callers of Dequeue() will block if no items are available + until some other thread calls Enqueue() or the queue is + closed. In the latter case this method will throw + EndOfStreamException. + + + + Retrieve the first item from the queue, or return + nothing if no items are available after the given + timeout + + + If one or more items are present on the queue at the time + the call is made, the call will return + immediately. Otherwise, the calling thread blocks until + either an item appears on the queue, or + millisecondsTimeout milliseconds have elapsed. + + + Returns true in the case that an item was available before + the timeout, in which case the out parameter "result" is + set to the item itself. + + + If no items were available before the timeout, returns + false, and sets "result" to null. + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item to become + available. Usage of such a timeout is equivalent to + calling Dequeue() with no arguments. See also the MSDN + documentation for + System.Threading.Monitor.Wait(object,int). + + + If no items are present and the queue is in a closed + state, or if at any time while waiting the queue + transitions to a closed state (by a call to Close()), this + method will throw EndOfStreamException. + + + + + Retrieve the first item from the queue, or return + defaultValue immediately if no items are + available + + + If one or more objects are present in the queue at the + time of the call, the first item is removed from the queue + and returned. Otherwise, the defaultValue that was passed + in is returned immediately. This defaultValue may be null, + or in cases where null is part of the range of the queue, + may be some other sentinel object. The difference between + DequeueNoWait() and Dequeue() is that DequeueNoWait() will + not block when no items are available in the queue, + whereas Dequeue() will. + + + If at the time of call the queue is empty and in a + closed state (following a call to Close()), then this + method will throw EndOfStreamException. + + + + + Place an item at the end of the queue. + + If there is a thread waiting for an item to arrive, the + waiting thread will be woken, and the newly Enqueued item + will be passed to it. If the queue is closed on entry to + this method, EndOfStreamException will be thrown. + + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Call only when the lock on m_queue is held. + + + + Implementation of the IEnumerator interface, for + permitting SharedQueue to be used in foreach loops. + + + Construct an enumerator for the given + SharedQueue. + + + Reset()ting a SharedQueue doesn't make sense, so + this method always throws + InvalidOperationException. + +
+
diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.exe b/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.exe new file mode 100644 index 0000000..ab5b4ac Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.exe differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.exe.config b/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.exe.config new file mode 100644 index 0000000..ea7a8cf --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.exe.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.pdb b/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.pdb new file mode 100644 index 0000000..6dc9565 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Scheduler.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Spire.Pdf.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/Spire.Pdf.dll new file mode 100644 index 0000000..cf659e6 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Spire.Pdf.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Spire.Pdf.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/Spire.Pdf.xml new file mode 100644 index 0000000..75d2a30 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/Spire.Pdf.xml @@ -0,0 +1,71934 @@ + + + + Spire.Pdf + + + + + Class LicenseProvider. + + + + + Provides a license by a license file path, which will be used for loading license. + + License file full path. + + + + Sets the license file name, which will be used for loading license. + + License file name. + + + + Gets the current license file name. + + The license file name, the default license file name is [license.elic.xml]. + + + + Provides a license by a license file object, which will be used for loading license. + + License file object. + + + + Provides a license by a license stream, which will be used for loading license. + + License data stream. + + + + Provides a license by a license key, which will be used for loading license. + + The value of the Key attribute of the element License of you license xml file. + + + + Clear all cached license. + + + + + Load the license provided by current setting to the license cache. + + + + + Load the license provided by current setting to the license cache. + + Runtime product type + + + + This method is not intended to be used directly from your code. + + + + + + + + + + Class TraceInfo. + + + + + Show trace info. + + The class name. + The method name. + The message. + + + + Signature formatter interface. + + + + + + Sign. + + The data to be signed. + The signature. + + + + Construct a new instance. + + The ocsp server url. + + + + Construct a new instance. + + OCSP response generator. + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Construct a new instance. + + The Timestamp server url. + + + + Construct a new instance. + + Timestamp generator. + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Represents the Certificate object. + + + + + Creates new PdfCertificate from an certificate. + + The X509Certificate object. + + + + Creates new PdfCertificate from PFX file. + + The path to pfx file. + The password for pfx file. + + + + Creates new PdfCertificate from PFX file. + + The path to pfx file. + The password for pfx file. + X509KeyStorageFlags storageFlags + + + + Signature data + + The data to pfx file. + + + + Signature data + + The data to pfx file. + The password for pfx file. + + + + Signature data + + The data to pfx file. + The password for pfx file. + X509KeyStorageFlags storageFlags + + + + Gets the certificates in all storages. + + + PdfCertificate array. + + + + + Finds the certificate by subject. + + The store name. + The certificate subject. + The certificate. + + + + Finds the certificate by issuer. + + The store name. + The certificate issuer. + The certificate. + + + + Finds the certificate by serial number. + + The certification system store type. + The certificate id. + + + + + Represents a digital signature used for signing a PDF document. + + + + + Get all certificates. + + + + + Gets the signature Appearance. + + A object defines signature`s appearance. + + + + Gets or sets signature location on the page. + + + + + Gets or sets bounds of signature. + + + + + Gets or sets information provided by the signer to enable a recipient to contact + the signer to verify the signature; for example, a phone number. + + + + + Gets or sets reason of signing. + + + + + Gets or sets the physical location of the signing. + + + + + Gets or sets a value indicating certificate document or not. + NOTE: Works only with Adobe Reader 7.0.8 or higher. + + certificate document if true. + + + + Gets or sets the permission for certificated document. + + The document permission. + + + + Gets signing certificate. + + + + + Sets the alignment of signature text + + + + + Gets a value indicating whether signature visible or not. + + Signature can be set as invisible when its size is set to empty. + + + + Get Signature Datetime + + + + + Set the sign name font. + Note: This font applys to sign name when the GraphicMode is SignNameOnly or SignNameAndSignDetail. + if not set, the default font will be applied. + + + + + Set font color for the signature info + if not set, the default is black + + + + + Set the SignDetails font. + Note: if not set, the default font will be applied. + + + + + Set signature info font + + + + + The name of the person or authority signing the document, usually called signer. + + + + + Digital Signature Common name label + + + + + The name of the person or authority signing the document. + + + + + Name label + + + + + Signature Distinguished Name label + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + Flag determine whether to display the labels + + + + + Show Digital Signature,Configuer Text + + + + + The Grapphic render/display mode. + + + + + Digital Signature Graphic Type + + + + + Digital Signature Configuer Graphic file Path + + + + + Signature Image Source + + + + + Digital Signature Configuer Graphic is filled bounds. + + + + + Set or get the sign image layout. + + + + + Digital Signature Reason Label + + + + + Digital Signature Date Label + + + + + Digital Signature ContactInfo Label + + + + + Digital Signature LocationInfo Label + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The pdf certificate. + Name of the signature. + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The Signature formatter. + Name of the signature. + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The pdf certificate. + The Signature formatter. + Name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The Signature formatter. + The name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The certificate. + The signature formatter. + The name of the signature. + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The Signature formatter. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The signature formatter. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The document or loaded document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The document or loaded document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Handle content stream and resources. + + The template. + + + + check thie validity of the signature + + + + + + Check if the document was altered after signed. True if modified; otherwise false. + + + + + + Set the Sign Name Width + + + + + + The handler which generate graphics. + + + The graphics context. + The visible region is (0,0,signature bounds width,signature bounds height). + + + + + Configure custom graphics. + + the handler which generate graphics. + + + + The handler which generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Configure timestamp which must conform to RFC 3161. + + TSA url + + + + Configure timestamp which must conform to RFC 3161. + + The tsa url. + The user(account) name. + The password. + + + + Configure timestamp which must conform to RFC 3161. + + the handler which generate timestamp token + + + + The handler which generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Configure OCSP which must conform to RFC 2560. + + + OCSP url. It it's null it will be taken from the checked cert. + + + Represents an additional collection of certificates that can be searched. + if null,only use windows cert store. + + + + + Configure OCSP which must conform to RFC 2560. + + + Represents an additional collection of certificates that can be searched + if null,only use windows cert store. + + the handler which generate OCSP response. + + + + A dictionary that can be used by a signature handler to record information that captures the state of the computer environment used for signing + + + + + Specifies length of the encryption key for encryption. + + + + + The key is 40 bit long. + + + + + The key is 128 bit long. + + + + + The key is 256 bit long. + + + + + Specifies the type of encryption algorithm used. + + + + + The encryption algorithm is RC4. + + + + + The encryption algorithm is AES. + + + + + Specifies the available permissions set for the signature. + + + + + Not all permissions + + + + + Default value is 2876. A common document contains all privileges + + + + + Print the document. + + + + + Edit content. + + + + + Copy content. + + + + + Add or modify text annotations, fill in interactive form fields. + + + + + Fill form fields. (Only for 128 bits key). + + + + + Copy accessibility content. + + + + + Assemble document permission. (Only for 128 bits key). + + + + + Full quality print. + + + + + Specifies the naming a system store. + + + + + A certificate store that holds certificates with associated private keys. + + + + + Root certificates. + + + + + Certification authority certificates. + + + + + Software Publisher Certificate. + + + + + Specifies the alignment type of signature text. + + + + + Specifies the signature text is aligned to Left. + + + + + Specifies the signature text is aligned to Center. + + + + + Specifies the signature text is aligned to Right. + + + + + Specifies the available permissions on certificated document. + + + + + Disallow any changes to the document. + + + + + Only allow form fill-in actions on this document. + + + + + Only allow commenting and form fill-in actions on this document. + + + + + Signature type + + + + + The layout determine how to display the sign image. + + + + + Default. + Sign image status without any modification. + + + + + Stretch the sign image. + + + + + Modes to determine what and how to dispay the signature infomation. + + + + + Default dispaly model. + Display signature details including signer,location,date,contact infomation and reason. + + + + + Only display the signature image. + + + + + Only display the sign name. + + + + + Diaply sign name and signature details. + + + + + Diaply signature image and signature details. + + + + + Signture Configuer Graphic type + + + + + No Show Picture Signature and Text Signature + + + + + draw Picture Signature + + + + + draw Text Signature + + + + + draw Picture Signature and Information + + + + + draw Text Signature and Information + + + + + draw Information and Picture Signature + + + + + Configuer Text,Show Sign content + + + + + The object that allows to compute the MD5 hash for the input data. + + + + + Whether or not to encrypt. + + If true ,do not encrypt or encrypt + + + + Convert string to byte array. + according to the iso 8859-1 codepage. + + The string + The result byte array + + + + Create owner password byte array. + + The userPassword + The ownerPassword + The owner password array + + + + Represents the security settings of the PDF document. + + + + + Gets the owner password. + + + + + Gets the user password. + + + + + Indicate whether this pdf document was encrypted originally or not. + + + + + Decrypt user password + + + + + Decrypt user password. + + The ownerPassword + + + + Decrypt all password. + + The ownerPassword + + + + Whether is encrypted. + + If has owner password return true or false + + + + To Encrypt the PDF document with open password. + Note:If set empty string value to open password, it indicates that the PDF document can be operated without providing corresponding password. + Note: the document owner password should not be exist. + + The open password + + + + To Encrypt the PDF document with permission password and permissions. + Note:The Permission password can't be empty string. + + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + + + + To Encrypt the PDF document and set the encryption key size and permissions. + Note:If set empty string value to open password or permission password, it indicates that the PDF document can be operated without providing corresponding password. + + The open password + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + The bit length of the encryption key + + + + + To Encrypt the PDF document with open password and permission password,and set the encryption key size and permissions. + Note:If set empty string value to open password or permission password, it indicates that the PDF document can be operated without providing corresponding password. + + The open password + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + The bit length of the encryption key + The original permissionPassword of the document + + + + Gets the document's permission flags + + + + + Gets the size of the key. + + + + + Initializes a new instance of the class. + + + + + Represents a calibrated gray color, based on a CalGray colorspace. + + + + + Initializes a new instance of the class. + + The color space. + + + + Gets or sets the gray level for this color. + + The gray level of this color. + The acceptable range for this value is [0.0 1.0]. + 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Represents a CalGray colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the black point. + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. Default value: [ 0.0 0.0 0.0 ]. + + + + Gets or sets the gamma. + + + + + Gets or sets the white point. + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers XW and ZW must be positive, and YW must be equal to 1.0. + + + + Represents a calibrated RGB color, based on a CalRGB colorspace. + + + + + Initializes a new instance of the class. + + The colorspace + + + + Gets or sets the Blue value. + + The blue level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest. + + + + Gets or sets the green level for this color. + + The green level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Gets or sets the red level for this color. + + The red level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Representing a CalRGB colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the black point. + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the gamma. + + An array of three numbers [GR GG GB] specifying the gamma for the red, green, and blue components of the color space. + + + + Gets or sets the colorspace transformation matrix. + + An array of nine numbers [XA YA ZA XB YB ZB XC YC ZC] specifying the linear interpretation of the decoded A, B, and C components of the color space with respect to the final XYZ representation. + + + + Gets or sets the white point. + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. + + + + Represents the base class for all colorspaces. + + + + + Gets Pdf primitive representing the font. + + + + + Checks whether the object is similar to another object. + + The object to compare witht ehcurrent object. + True - if the objects have equal internals and can share them, False otherwise. + + + + Represents a device colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the DeviceColorSpaceType + + + + + Represents the extended color, based on a complex colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets the Colorspace + + + + + Represents an ICC color, based on an ICC colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the color components. + + An array of values that describe the color in the ICC colorspace. + The length of this array must match the value of ColorComponents property on the underlying ICC colorspace. + + + + Represents an ICC based colorspace.. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the alternate color space. + + The alternate color space to be used in case the one specified in the stream data is not supported. + + + + Gets or sets the color components. + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. As of PDF 1.4, this value must be 1, 3 or 4. + + + + Gets or sets the profile data. + + The ICC profile data. + + + + Gets or sets the range for color components. + + An array of 2 ColorComponents numbers [ min0 max0 min1 max1 ... ] specifying the minimum and maximum valid values of the corresponding color components. These values must match the information in the ICC profile. + + + + Set the Color Profile. + + ICC profile data. + + + + Represents an indexed color, based on an indexed colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the color index + + The index of the select color. + The acceptable range for this value is 0 - MaxColorIndex. + + + + Represents an indexed colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the base colorspace. + + The color space in which the values in the color table are to be interpreted. + + + + Gets or sets the index of the max color. + + The maximum index that can be used to access the values in the color table. + + + + Gets or sets the color table. + + The table of color components. + The color table data must be m * (maxIndex + 1) bytes long, where m is the number of color components in the base color space. Each byte is an unsigned integer in the range 0 to 255 that is scaled to the range of the corresponding color component in the base color space; that is, 0 corresponds to the minimum value in the range for that component, and 255 corresponds to the maximum. + + + + Gets the profile data. + + The profile data. + + + + Represents a calibrated Lab color, based on a Lab colorspace. + + + + + Initializes a new instance of the class. + + The ColorSpace. + + + + Gets or sets the a* component for this color. + + The a* component of this color. + The range for this value is defined by the Range property of the underlying Lab colorspace. + + + + Gets or sets the b* component for this color. + + The b* component of this color. + The range for this value is defined by the Range property of the underlying Lab colorspace. + + + + Gets or sets the l component for this color. + + The l component of this color. + The acceptable range for this value is [0.0 100.0]. 0.0 means the darkest color that can be achieved, and 100.0 means the lightest color. + + + + Represents a Lab colorspace + + + + + Initializes a new instance of the class. + + + + + Gets or sets BlackPoint + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the Range + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the white point + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. + + + + Represents a separation color, based on a separation colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + The acceptable range for this value is [0.0 1.0]. 0.0 means the lightest color that can be achieved, and 1.0 means the darkest color. + + + + The acceptable range for this value is [0.0 1.0]. 0.0 means the lightest color that can be achieved, and 1.0 means the darkest color. + + + + + Represents a separation colorspace + + + + + Initializes a new instance of the PdfSeparationColorSpace class. + + The name of the colorant + The base color to be used + + + + The base color to be used. + + + + + Gets or sets the alternate color spaces. + + The alternate color space to be used when the destination device does not support separation colorspace. + + + + The name of the colorant. + + + + + Gets or sets the tint transform function for the this colorspace. + + Tint transform function for the colorspace. + + + + Get the profile data. + + The profile data + + + + original glyph bounds + + + + + glyph info has only essential layout detail (this is our extension) + + + + + TrueType outline, offset glyph points + + + + + + + + TrueType outline, transform normal + + + + + + + + + + TrueType outline glyph clone + + + + + + + + append data from src to dest, dest data will changed*** + + + + + + + Initializes a new instance of the class. + + + + + Gets the identity matrix. + + The identity matrix. + + + + Element (1,1) + + + + + Element (1,2) + + + + + Element (2,1) + + + + + Element (2,2) + + + + + Element (3,1) + + + + + Element (3,2) + + + + + Initializes a new instance of the struct. + + The value that will be assigned to all components. + + + + Initializes a new instance of the struct. + + The value to assign at row 1 column 1 of the matrix. + The value to assign at row 1 column 2 of the matrix. + The value to assign at row 2 column 1 of the matrix. + The value to assign at row 2 column 2 of the matrix. + The value to assign at row 3 column 1 of the matrix. + The value to assign at row 3 column 2 of the matrix. + + + + SharpFont's TrueType Interpreter + + + + + read float, 2.14 format + + + + + + + 16.16 float format + + + + + + + Description of Glyph. + + + + + Description of GlyphMatrix. + + + + + Max width value. + + + + + Description of IFont. + + + + + Description of Glyph. + + + + + Description of TrueTypeFont. + + + + + Get the outline glyph for glyph of a given character code and name. + + + + + + + Gets the path to determine wherther you need to move the point ,return results + + character path + int startIndex + int endIndex + + + + + Recalculate line values + + + + + Get metric data from Table_hmtx.longHorMetric table + + + + + + + Convert character original data to glyph + + + + + + + + + Converter GlyphData to path + + + + + + + + + modify glyphPointF + + + + + + + + + Convert to original data to glyphData + + + + + + + matrix apply to glyph + + + + + + + + Render a simple glyf + + int glyphId + Table_glyf.header header + + + + + Get a empty outlineGlyph + + + + + + It is east asian char? + + + + + + + Get the bytes count consume form char codes string. + + The code space range list + The bytes count. + + + + Get the part matched code space ranges. + + + The code sapce ranges + + + + + + + + + + + + get the name of a glyph from its encoding value (NOT the character + + + + + + + Writes short value into the font stream + + Short value to be written + + + + Writes integer value into the font stream + + Integer value to be written + + + + Writes string value into the font stream + + String value to be written + + + + Write the bytes into the font stream + + byte array to be written + + + + Values for platformID + + + + + + Values for platformSpecificID if platform is Mac + + + + + + Values for platformSpecificID if platform is Unicode + + + + + + Values for language ID if platform is Mac + + + + + + Values for nameID + + + + + + Font dictionary. + + + + + Get the origin subtyep. + + The origin subtyep. + + + + Recreate an new unicode char + + The old char + A new unicode char + + + + Get Cmap by MapName + + + + + + + This outputs individual glyph index to character code mapping for each char. + If you are doing any work on CMap, you need to open the resulting file in Adobe Reader, + select and copy text, paste it to notepad and see if it was correctly mapped to characters. + It is especially important to do so for TestUnicode.doc. + + + + + + + Get the glyph id. + + The character id + The glyph id + + + + Get the outline of a character given the character name or src char + + + + + + + + + + It is TYPE_CMAP or TYPE_ENCODING? + + + + + + Get a glyph outline by glyphId + + + + + + + Get a glyph outline by glyphId or name + + + + + + + + + + + + + + + + + + + + + + + + + custom coordinate point + + + + + a cache of glyphs indexed by character + + + + + Character Spacing width + + + + + Set Character Spacing width + + + + + Get the glyph for a given character code and name + + the character code of this glyph + the name of this glyph or null if unknown + the name of this glyph or null if unknown + TypeEncodingCmap type + a glyph for this character + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + A class for performing LZW decoding. + + + Method to decode LZW compressed data. + The compressed data + Array to return the uncompressed data in + The number of rows the compressed data contains + The decoded data + + + Initialize the string table. + + + Write out the string just uncompressed. + the byte string for uncompressed write out + + + Add a new string to the string table. + + the byte string at the end of which the new string + will be written and which will be added to the string table + + the byte to be written to the end of the old string + + + Add a new string to the string table. + the byte string which will be added to the string table + + + Append newString to the end of oldString. + the byte string at the end of which the new string will be written + the byte to be written to the end of the old string + the byte string which is the sum of the new string and the old string + + + + The number of bits used to represent each color component + + + + + fail (by default) + + + + + return something successfully read + + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + + Summary description for DeflaterOutputStream. + + + + + Provides color caching + + + + + Provides color caching of last color + + + + + specify image quality level + + + + + default quality + + + + + high quality + + + + + find text ignorecase + + + + + Set find text + + + + + find text color + + + + + draw border pen + + + + + Initialize the page. + + The page + The needparsing + + + + Whether this page is blank. + + if blank ,return true,or false + + + + Whether this page content is blank. + + + + + + + Dispose the resources. + + + + + Dispose resource. + + The disposing + + + + Provides image render events + + + + + + + Converts an angle in degrees to radians. + + Double value of angle in degrees to convert. + The value of the angle in radians. + + + + Converts an angle in radians to degrees. + + Double value of angle in radians to convert. + The value of the angle in degrees. + + + + Bug3009,baseimage color and annot image color multiply,for annot + + + + + + + + bitmap ,rgb model to cmyk model + + + + + + + Apply the mask when the mask format is PdfArray. + + + + + + + + Apply the mask when the mask format is PdfString. + + + + + + + + According to Path to determine whether it is a straight line. If All points of X or Y are equal, then is is a straight line + + + + + + + Parse pdf array to rgb components. + + The pdf array + + + + Get Ff value from annotation dictionary + + The annotation dictionary + + + + + Get FT value from annotation dictionary + + The annotation dictionary + + + + + Parse annotation opt item to dictionary. + + The annotation dictionary + + + + + Get V value from annotation dictionary + + + + + + + More than two offsets + + string strOffset) + one offset + + + + Destructor + + + + + Clean up Memory + + + + + Creates the I font. + + Name of the font. + + + + + Match Font by fontName + + + + + + + + Add fake font to private list. + + + + + + Measure string width which the font dictionary has no width entry. + + The text string + The font size + The text sacle + The string width + + + + Get glyph by cid. + + The cid + The glyph + + + + Get the glyph id. + + The character ID + The glyph id + + + + Get descendant font. + + The descendant font + + + + Draw text of embed font to page + + Render object + + + + + + When the font has no encoding entry ,or the font descriptor`s symbolic flag + is set , which case should use the character code mapping glyph description + from the subtable + + if has no encoding entry or set symbolic flag return true + + + + Collects all the Pattern elements in the pdf document + + containing all the resources of the document + dictionary of Pattern elements + + + + Handle the text annotation widget multiline + + the anntation + the true type font + the rectangle + a text rectangle + + + + Get opttion value from PdfArray + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bug654 + + + + + + + + get PdfRecordCollection from resources + + + + + + + 根据dpi缩放后的图片 + + + + + + + + + Render inline image. + + + + + + + for Ap Resources + + + + + + + draw only a single comment + + + + + specify the quality level of decode image + + + + + specify if the Decoder if for SMask image + + + + + specify the quality level of decode image + + + + + get columns from DecodeParms + + + + + get colors from DecodeParms + + + + + Get decode arrays or softmask image from image dictionary + + + + + Get decode arrays or mask image from image dictionary + + + + + Gets Image mask. + + + + + Load image from stream. + + + + + + + Get element data from decode arrays + + + + + + + Stream stream,Bug_337 + + + + + + + Get the image decode array. + + The image decode array + + + + + + + + + + + + + + + Get deviceGray image for Filter LZWDecode + + + + + + + Get Bitmap Stream from DeviceGray Color Space + + PDFColorSpace colorspace + Stream data + int grayWidth + int grayHeight + bool mask + + + + + Get Bitmap Stream from DeviceGray Color Space + + image Stream + bool mask + + + + + Get color space name + + + + + + + + Parse colorspace. + + The colorspace + The list + + + + Get inline image colorspace. + + The colorspace + The pdf array + + + + + + + + + + + + Clip path + + + + + Determine whether there is Tj in front of Td,TD,cm,T* ,TL,Tw,Tc,Tz. if not ,you need to calculate the translation + + + + + Save the translation data + + + + + From BT,save the current Tm matrix + + + + + mapping Transform from user space to device space + + + + + mapping Transform from default user space to user space + + + + + Text leading + + + + + horizontal scaling + + + + + word spacing + + + + + Current text element + + + + + Character spacing. + + + + + Colorspace table of page resource + + + + + Pattern table of page resource + + + + + + + + + + Gets or sets the isprint. + + + + + set Box Rectangle,when dictionary FT=Tx + + + + + set FT type from form field + + + + + mapping Transform from user space to device space + + + + + Mapping transform from default user space to user space + + + + + pdf to image,reference bitmap + Bug3009,draw annot,annot is image and BM is Multiply,need backgroundimage and annot image is Multiply + + + + + Extract Signature As Images + + + + + + + Checking and processing number string. + + The curve + The points + + + + Set Rectangle from pdf command. + + + + + + Checking whether the string number is valid ,if true , processing the number. + + The number of string format + if vailded,return true,or false + + + + Checking whether the string number array is valid ,if true , processing the number. + + The array number of string format + if vailded,return true,or false + + + + Set Rectangle path from pdf command. + + + + + + set BBox for Form object. + + + + + + Apply Color + + + + + + + + + Checking and processing points. + + The points + The points + + + + Set page RotateAngle + + Current Pdf Page + + + + scale + + + + + + + + + + apply the line dash pattern + + the pen + + + + when the only one element in dash pattern is 0 the line should be unvisible . + + the dash pattern + first element is zero return true or false + + + + Get the dash pattern + + + + + Fixed zero of gaps for dash pattern,if the gap is zero,it will not be diaplayed in dash lines. + + the dash pattern + the dash offset + + + + Remove zero value of blank cap in dash pattern. + + the dash pattern + the dashOffset + + + + Set the property of pen + + the pen + the dash pattern + the dash offset + + + + Fixed zero of dashes for dash pattern.if the dash is zero,defalut value is one device pixel. + + the dash pattern + the dash offset + the pen + + + + Convert pdf dash pattern to .net dash pattern + + the scaled pen width + the dash pattern + the pen width + + + + execute do command + + + + + + Draw Type3Font + + + + + + + Get Resources obj from Xobject + + + + + + + draw page content + + + + + draw page annot + + + + + Modify Bug1801,pdf to xps(false),font whether need dispose + + + + + Get the pdf annotation. + + The annotation dictionary + The pdf annotation + + + + Parse signle annotation + + IPdfPrimitive obj + + + + + + + + + + + get form field object + + + + + + read ap content from Parent + + + + + + + + + Execute pdf command. + + + + + + Get image bounds. + + + + + initialize annot state + + + + + Render text element + + text elements + token type + + + + Render text to pdf drawing context. + + + + + + + + + whether enable highLight for formField + + + + + Incorrect entry written to dictionary(写入字典的条目不正确,少了一些项,导致绘制AP内容不正确),Bug335,107 + + + + + + highLight color for form field + + + + + draw only a single comment + + + + + Draw all annotations for the current page,and highlight + + + /// + + + + Draw one annotation for the current page,and highlight + + + + + + + + draw button for combox + + + + + + draw ComboButton for combobox annot + + + + + + + + + Draw border for must input box + + + + + + Draw highlight for form field + + + + + + Need to draw highlight? + + + + + + Is it read-only? + + + + + + + Is it required, must have a value. + + + + + + + Get annotation location + + + + + + + specify the quality level of render image + + + + + Determine whether there is Tj in front of Td,TD,cm,T* ,TL,Tw,Tc,Tz. if not ,you need to calculate the translation + + + + + Save the translation data + + + + + horizontal scaling + + + + + + + + + + specify the quality level of render image + + + + + Set rectangle path from pdf command. + + + + + + Apply Color Space,Bug-654 + + + + + + + Render the option content + + The xobject element + + + + Render OCGs contents + + The ocgs dictionary + The xobject element + + + + + + + Get form Field Name + + + + + + + Parse the element in MK entry of annotation + + The element in MK entry + + + + Draw ap dictioanry. + + The annotation element + The annotation type + The rect + + + + Get the pdf annotation. + + The annotation dictionary + The pdf annotation + + + + Is valid annotation type. + + The annotation type + The is high light + Whether is display the annotation + If valid,return true,or false + + + + + + + + + + + + read ap content from Parent + + + + + + + + + + + + + + + + Add hyperlinks. + + The annotation elements + + + + Execute pdf command. + + + + + + Render text + + The token type + The structure + The decode text + The increase width + + + + Render text element + + text elements + token type + + + + Calculate the bytes count that mapping single glyph + + The pdf font sturucture + The bytes count + + + + Render text to a single character + + The font structure + The decoded text + The increase width + + + + Render text to a string + + The pdf font structure + The decode text + The increase width + + + + Spilt undecode bytes string + + The decode string + The structure + An array of undecode byte + + + + whether to render text as a single character + + The font structure + if the text is written vertically,return true,or fales + + + + Gets the presenter. + + The presenter. + + + + Graphic stats + + + + + Gets or sets current colorsapce. + + + + + Gets or sets Stroking colorsapce. + + + + + Append hyperlink. + + The rectanglef + The url + + + + word spacing + + + + + word spacing + + + + + Render text embed font or installed system font + + + + + + + + + + + + + + + Dispose ImageBrush + + + + + used in pdf2xps when it has pattern + + + + + Create the brush + + The byte array of image for PsTextureBrush + Image transform + The presenter type + + + + + + Create the brush. + + The hatch style. + The fore color. + The back color. + The presenter type. + + + + + Dispose ImageBrush + + + + + Initializes a new instance of the BrushLayer + + The byte array of image for PsTextureBrush + Image Transform + + + + Initializes a new instance of the BrushLayer. + + A rectangular region that defines the starting and ending points of the gradient. + Start Color. + End Color. + + + + Initializes a new instance of the BrushLayer + + The hatch style. + The fore color. + The back color. + + + + Append hyper link. + + The hyper link + + + + Destructor + + + + + Clean up Memory + + + + + Loads fonts. + + + + + + + Font cache. + + + + + Global font cache. + + + + + Current instance font cache. + + + + + Taged objects(String,ArrayList). + + + + + Construct instance. + + + + + Destruct instance. + + + + + Dispose instance resources. + + + + + Clear cache(except global cache). + + + + + Store object with tag. + A tag can corresponds to multiple objects. + + The taged object. + The taged object identity. + The tag. + + + + Get the objects by a tag. + + The tag. + + The dictionary(id,tagedObject) corresponding to the tag. + If not matched,return null. + + + + + Get the objects by a tag. + + The taged object identity. + The tag. + The object corresponding to the id and tag. + + + + Add a ttfont to cache. + + The ttfont. + The font family name. + The cache duration. + + + + Add a ttfont to cache. + + The ttfont data. + The font name. + The cache duration. + + + + Add a ttfont to cache. + + The ttfont data. + The font name. + The cache duration. + whether fonts are embedded or not + + + + Fetch the ttfont. + + The font family name. + The font style. + The substitute font family name. + + if not exist matched(substituted) font,return any font. + + + + + Font cache duration. + + + + + Living in the runtime of the program. + + + + + Only living in instance. + + + + + Gets the char code + + + + + Represents 10 byte series of numbers is used to describe the visual characteristics of a given typeface. + + + + + Gets the bounding box in design units of the font. + + + + + Get mPostscriptTtFontKey + + + + + Destructor + + + + + Clean up Memory + + + + + See http://www.microsoft.com/typography/otspec/vhea.htm for more info. + + + + + Container for part of APS tree which is related to the logical structure element. + + + + + Language of the container content. + + + Probably it is not the best place to store the content language. + But for now it is the easiest way to output the text language the same way as MW does. + + + + + APS container id. + + + + + The font strikeout. + + + + + Gets the width of the outline. + + + The width of the outline. + + + + + Content of text box. + + + + + Compares the floating number. + + The value1. + The value2. + The accuracy. + return 0,val1 equal val2;return 1,val1 greater than val2;return -1,val1 less than val2; + + + + Compares the double number. + + The value1. + The value2. + The accuracy. + return 0,val1 equal val2;return 1,val1 greater than val2;return -1,val1 less than val2; + + + + Font used for the 0..127 characters. + + This value is not used as , + may be it's better to create separate enum for character hints. + + + + Font used for the East Asian characters. + Also known as East Asian. + + + + + Font used for the Complex Script characters. + + + + + Font used for characters that do not fall into any of the above ranges. + Also known as High ASCII. + + + + + Converts an APS path or a clipping region into XPS Abbreviated Syntax. + The technique is the same as in PdfPathBuilder, but Syntax of path is different + + + + + 20.1.2.2.25 nvCxnSpPr (Non-Visual Properties for a Connection Shape) + 20.1.2.2.26 nvGraphicFramePr (Non-Visual Properties for a Graphic Frame) + 20.1.2.2.27 nvGrpSpPr (Non-Visual Properties for a Group Shape) + 20.1.2.2.28 nvPicPr (Non-Visual Properties for a Picture) + 20.1.2.2.29 nvSpPr (Non-Visual Properties for a Shape) + + + + + Reads 'cNvPr' Non-Visual Drawing Properties. + + + + + Calculates position offset of the textbox content. + + + + + Applies simplified blur to the image. + + + + + Writes blend mode. + + The blend mode. + + + + Writes an image to the PDF stream. + + + + + Writes an image to the PDF stream. + + + + + Get the pdf image data. + + The pdf image data. + + + + Occurs when end page. + + + + + Represents the method that will handle an event that with event data. + + The source of the event + args that contains event data + + + + PdfRendererEndPageEventArgs is the class containg event data. + + + + + Represents the current Pdf documnet. + + + + + Represents the current Pdf page. + + + + + Whether the image data is pdf hatch data. + + The pdf image + If the image data is pdf hatch data,return true ,or false. + + + + 如果是泰文字符串,调整Glyphs中的Text。用于组合字符被拆分在三个或者两个Glyphs对象中的情况 + + + + + + 获取当前Glyphs的下一个Glyphs,两个Glyphs不一定在同一个Parent中 + + + + + + + 是否是主体字符,主体字符上下可以叠加符合要求的字符 + + + + + + + 是否是可以叠加于主体字符之上的字符[帽子字符] + + + + + + + 是否是声调字符,这种字符可以叠加在主体上,当主体字符上叠加了[帽子字符]时,叠加在帽子字符上 + + + + + + + 实现两个Glyphs的组合字符拼接 + + 当前glyphs,提供其Text结尾的字符 + 下一个可用的glyphs,提供其Text的开始字符 + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Ps.XmlDocumentBuilder,IsValidXmlChar(char c) + + + + + + + Reverse y position. + + + + + + + + + + + Gets a value indicating whether The blank distance to the left + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the top + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the right + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the bottom + of the glyph relative to the origin[0,0]. + + + + + Gets the design width of the glygh. + + + + + Gets the actual width of the glygh. + + + + + Gets the left side bearing. + + + + + Gets the right side bearing. + + + + + Gets a value indicating whether this is empty. + + + + An identity transform is one in which the output coordinates are + always the same as the input coordinates. + If this transform is anything other than the identity transform, + the type will either be the constant GENERAL_TRANSFORM or a + combination of the appropriate flag bits for the various coordinate + conversions that this transform performs. + + + A translation moves the coordinates by a constant amount in x + and y without changing the length or angle of vectors. + + + A uniform scale multiplies the length of vectors by the same amount + in both the x and y directions without changing the angle between + vectors. + This flag bit is mutually exclusive with the TypeGeneralScale flag. + + + A general scale multiplies the length of vectors by different + amounts in the x and y directions without changing the angle + between perpendicular vectors. + This flag bit is mutually exclusive with the TypeUniformScale flag. + + + This constant is a bit mask for any of the scale flag bits. + + + This flag bit indicates that the transform defined by this object + performs a mirror image flip about some axis which changes the + normally right handed coordinate system into a left handed + system in addition to the conversions indicated by other flag bits. + A right handed coordinate system is one where the positive X + axis rotates counterclockwise to overlay the positive Y axis + similar to the direction that the fingers on your right hand + curl when you stare end on at your thumb. + A left handed coordinate system is one where the positive X + axis rotates clockwise to overlay the positive Y axis similar + to the direction that the fingers on your left hand curl. + There is no mathematical way to determine the angle of the + original flipping or mirroring transformation since all angles + of flip are identical given an appropriate adjusting rotation. + + + This flag bit indicates that the transform defined by this object + performs a quadrant rotation by some multiple of 90 degrees in + addition to the conversions indicated by other flag bits. + A rotation changes the angles of vectors by the same amount + regardless of the original direction of the vector and without + changing the length of the vector. + This flag bit is mutually exclusive with the TypeGeneralRotation flag. + + + This flag bit indicates that the transform defined by this object + performs a rotation by an arbitrary angle in addition to the + conversions indicated by other flag bits. + A rotation changes the angles of vectors by the same amount + regardless of the original direction of the vector and without + changing the length of the vector. + This flag bit is mutually exclusive with the + + + This constant is a bit mask for any of the rotation flag bits. + + + This constant indicates that the transform defined by this object + performs an arbitrary conversion of the input coordinates. + If this transform can be classified by any of the above constants, + the type will either be the constant TypeIdentity or a + combination of the appropriate flag bits for the various coordinate + conversions that this transform performs. + + + This constant is used for the internal state variable to indicate + that no calculations need to be performed and that the source + coordinates only need to be copied to their destinations to + complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the translation components of the matrix (m02 and m12) need + to be added to complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the scaling components of the matrix (m00 and m11) need + to be factored in to complete the transformation equation of + this transform. If the ApplyShear bit is also set then it + indicates that the scaling components are not both 0.0. If the + ApplyShear bit is not also set then it indicates that the + scaling components are not both 1.0. If neither the ApplyShear + nor the ApplyScale bits are set then the scaling components + are both 1.0, which means that the x and y components contribute + to the transformed coordinate, but they are not multiplied by + any scaling factor. + + + This constant is used for the internal state variable to indicate + that the shearing components of the matrix (m01 and m10) need + to be factored in to complete the transformation equation of this + transform. The presence of this bit in the state variable changes + the interpretation of the ApplyScale bit as indicated in its + documentation. + + + The X coordinate scaling element of the 3x3 + affine transformation matrix. + + + The X coordinate shearing element of the 3x3 + affine transformation matrix. + + + The X coordinate of the translation element of the + 3x3 affine transformation matrix. + + + The Y coordinate shearing element of the 3x3 + affine transformation matrix. + + + The Y coordinate scaling element of the 3x3 + affine transformation matrix. + + + The Y coordinate of the translation element of the + 3x3 affine transformation matrix. + + + This field keeps track of which components of the matrix need to + be applied when performing a transformation. + @see #ApplyIdentity + @see #ApplyTranslate + @see #ApplyScale + @see #ApplyShear + + + This field caches the current transformation type of the matrix. + @see #TypeIdentity + @see #TypeTranslation + @see #TypeUniformScale + @see #TypeGeneralScale + @see #TypeFlip + @see #TypeQuadrantRotation + @see #TypeGeneralRotation + @see #TypeGeneralTransform + @see #TypeUnknown + + + Manually recalculates the state of the transform when the matrix + changes too much to predict the effects on the state. + The following table specifies what the various settings of the + state field say about the values of the corresponding matrix + element fields. + Note that the rules governing the SCALE fields are slightly + different depending on whether the SHEAR flag is also set. +
+                                 SCALE            SHEAR          TRANSLATE
+                                m00/m11          m01/m10          m02/m12
+            
+             IDENTITY             1.0              0.0              0.0
+             TRANSLATE (TR)       1.0              0.0          not both 0.0
+             SCALE (SC)       not both 1.0         0.0              0.0
+             TR | SC          not both 1.0         0.0          not both 0.0
+             SHEAR (SH)           0.0          not both 0.0         0.0
+             TR | SH              0.0          not both 0.0     not both 0.0
+             SC | SH          not both 0.0     not both 0.0         0.0
+             TR | SC | SH     not both 0.0     not both 0.0     not both 0.0
+             
+
+ + This constant is used for the internal state variable to indicate + that the translation components of the matrix (m03, m13, m23) need + to be added to complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the scaling components of the matrix (m00, m11, m22) need + to be factored in to complete the transformation equation of + this transform. If the ApplyShear bit is also set then it + indicates that the scaling components are not all 0.0. If the + ApplyShear bit is not also set then it indicates that the + scaling components are not all 1.0. If neither the ApplyShear + nor the ApplyScale bits are set then the scaling components + are both 1.0, which means that the x, y and z components contribute + to the transformed coordinate, but they are not multiplied by + any scaling factor. + + + This constant is used for the internal state variable to indicate + that the shearing components of the matrix (m01, m02, m10, m12, m20, m21) + need to be factored in to complete the transformation equation of this + transform. The presence of this bit in the state variable changes the + interpretation of the ApplyScale bit as indicated in its documentation. + + + This constant is used for the internal state variable to indicate + that the projection components of the matrix (m30, m31, m32) need + to be factored in to complete the transformation equation of this + transform. + + + This constant is used for the internal state variable to indicate + that the overall scaling component of the matrix (m33) need to be + factored in to complete the transformation equation of this transform. + + + The X coordinate scaling element of the 4x4 + affine transformation matrix. + + + The YX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The XZ coordinate shearing element of the 4x4 + affine transformation matrix. + + + The X coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The YX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Y coordinate scaling element of the 4x4 + affine transformation matrix. + + + The YZ coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Y coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The ZX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The ZY coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Z coordinate scaling element of the 4x4 + affine transformation matrix. + + + The Z coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The X projection element of the 4x4 + affine transformation matrix. + + + The Y projection element of the 4x4 + affine transformation matrix. + + + The Z projection element of the 4x4 + affine transformation matrix. + + + The overall scaling element of the 4x4 + affine transformation matrix. + + + This field keeps track of which components of the matrix need to + be applied when performing a transformation. + @see #ApplyIdentity + @see #ApplyTranslate + @see #ApplyScale + @see #ApplyShear + @see #ApplyProjection + @see #ApplyOverallScale + + + Manually recalculates the state of the transform when the matrix + changes too much to predict the effects on the state. + + + + Blend transparency whith background color. + + background color + + + + Get MacOS font folders. + + + + + + 电子签章版本号 + + + + + 版本号 + + + + + 版本持有器 + + + + + 版本号 + + + + + 没有构造的对象 + + + + + + + 版本解析 + + + + + 解析电子印章版本 + + 带解析数据,可以是字节串也可以是ASN1对象 + 带有版本的ASN1对象序列 + + + + 解析电子签章数据版本 + + 带解析数据,可以是字节串也可以是ASN1对象 + 带有版本的ASN1对象序列 + + + + 厂商自定义数据 + + + + + 自定义扩展字段标识 + + + + + 自定义扩展字段是否关键 + + 默认值FALSE + + + + + + 自定义扩展字段数据值 + + + + + 自定义属性字段序列 + + + + + 电子印章数据 + + + + + 印章信息 + + + + + 制章人对印章签名的信息 + + + + + 印章图片信息 + + + + + 图片类型 + + 代表印章图片类型,如 GIF、BMP、JPG、SVG等 + + + + + + 印章图片数据 + + + + + 图片显示宽度,单位为毫米(mm) + + + + + 图片显示高度,单位为毫米(mm) + + + + + 印章属性信息 + + + + + 单位印章类型 + + + + + 个人印章类型 + + + + + 印章类型 + + 1 - 单位印章 + 2 - 个人印章 + + + + + + 印章名称 + + + + + 签章人证书列表 + + + + + 印章制做日期 + + + + + 印章有效起始日期 + + + + + 印章有效终止日期 + + + + + 头信息 + + + + + 电子印章数据结构版本号,V4 + + + + + 电子印章数据标识符 + 固定值"ES" + + + + + 电子印章数据标识符 + + 固定值"ES" + + + + + + 电子印章数据版本号标识 + + + + + 电子印章厂商ID + + 在互联互通时,用于识别不同的软件厂商实现 + + + + + + 印章信息 + + + + + 头信息 + + + + + 电子印章标识符 + + 电子印章数据唯一标识编码 + + + + + + 印章属性信息 + + + + + 电子印章图片数据 + + + + + 自定义数据 + + + + + 电子签章数据 + + + + + 待电子签章数据 + + + + + 电子签章中签名值 + + + + + 印章签名信息 + + + + + 代表对电子印章数据进行签名的制章人证书 + + + + + 代表签名算法OID标识 + + 遵循 GM/T 006 + + + + + + 制章人的签名值 + + 制章人对电子印章格式中印章信息SES_SealInfo、制章人证书、签名算法标识符按 SEQUENCE方式组成的信息内容的数字签名 + + + + + + 待电子签章数据 + + + + + 版本信息 + + + + + 电子印章 + + + + + 签章时间信息 + + 可以是时间戳,也可以是UTCTIME时间; + + + + + + 原文杂凑值 + + + + + 原文数据的属性信息 + + 如文档ID、日期、段落、原文内容的字节数、指示信息、签章保护范围等 + + + 自行定义 + + + + + + 签章人对应的签名证书 + + + + + 签名算法标识符 + + + + + 签章者证书杂凑值列表 + + + + + 签章者证书杂凑值 + + + + + 签章者证书杂凑值 + + + + + 自定义类型 + + + + + 证书杂凑值 + + + + + 签章者证书列表 + + + + + 电子印章数据 + + + + + 印章信息 + + + + + 制章人证书 + + + + + 签名算法标识符 + + + + + 签名值 + + + + + 签章者证书信息列表 + + + + + 签章者证书列表 + + + + + 签章者证书杂凑值列表 + + + + + 印章属性 + + + + + 签章者证书信息类型: 1 - 数字证书类型 + + + + + 签章者证书信息类型: 2 - 数字证书杂凑值 + + + + + 印章类型 + + + + + 印章名称 + + + + + 签章者证书信息类型 + + + + + 签章者证书信息列表 + + SES_CertList + + + + + + 印章制做日期 + + + + + 印章有效起始日期 + + + + + 印章有效终止日期 + + + + + 印章信息 + + + + + 头信息 + + + + + 电子印章标识符 + + 电子印章数据唯一标识编码 + + + + + + 印章属性信息 + + + + + 电子印章图片数据 + + + + + 自定义数据 + + + + + 电子签章数据 + + + + + 签章信息 + + + + + 签章者证书 + + + + + 签名算法标识 + + + + + 签名值 + + + + + 对签名值的时间戳【可选】 + + + + + 签章信息 + + + + + 电子印章版本号,与电子印章版本号保持一致 + + + + + 电子印章 + + + + + 签章时间 + + + + + 原文杂凑值 + + + + + 原文数据的属性 + + + + + 自定义数据 【可选】 + + + + + 动作序列 + + 图 19 大纲节点结构 + + + + + + 【必选】 + 增加 到动作列表 + + 当此大纲节点被激活时将执行的动作,关于动作的描述详见第 14 章 + + + + 动作 + this + + + + 【必选】 + 获取 动作列表 + + 当此大纲节点被激活时将依次执行的动作,关于动作的描述详见第 14 章 + + + + 动作 + + + + 跳转的目的书签 + + 表 53 跳转动作属性 + + + + + + 【必选 属性】 + 设置 目标书签的名称,引用文档书签中的名称 + + 目标书签的名称 + this + + + + 【必选 属性】 + 获取 目标书签的名称,引用文档书签中的名称 + + 目标书签的名称 + + + + 目标区域 + + 图 75 目标区域结构 + + + + + + 【必选 属性】 + 设置 目标区域的描述方法 + + 目标区域的描述方法 + this + + + + 【必选 属性】 + 获取 目标区域的描述方法 + + 目标区域的描述方法 + + + + 【必选】 + 设置 引用跳转目标页面的标识 + + 引用跳转目标页面的标识 + this + + + + 【必选】 + 获取 引用跳转目标页面的标识 + + 引用跳转目标页面的标识 + + + + 【可选】 + 设置 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + this + + + + 【可选】 + 获取 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + + + + 【可选】 + 设置 目标区域右上角 x坐标 + + 默认值为 0 + + + + 目标区域右上角 x坐标 + this + + + + 【可选】 + 获取 目标区域右上角 x坐标 + + 默认值为 0 + + + + 目标区域右上角 x坐标 + + + + 【可选】 + 设置 目标区域左上角 y坐标 + + 默认值为 0 + + + + 目标区域左上角 y坐标 + this + + + + 【可选】 + 获取 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + + + + 【可选】 + 设置 目标区域右下角 y坐标 + + 默认值为 0 + + + + 目标区域右下角 y坐标 + this + + + + 【可选】 + 获取 目标区域右下角 y坐标 + + 默认值为 0 + + + + 目标区域右下角 y坐标 + + + + 【可选】 + 设置 目标区域页面缩放比例 + + 为 0 或不出现则按照但前缩放比例跳转,可取值范围[0.1 64.0] + + + + 目标区域页面缩放比例 + this + + + + 【可选】 + 获取 目标区域页面缩放比例 + + 为 0 或不出现则按照但前缩放比例跳转,可取值范围[0.1 64.0] + + + + 目标区域页面缩放比例 + + + + 申明目标区域的描述方法 + + 表 54 目标区域属性 + + + + + + 目标区域由左上角位置(Left,Top) + 以及页面缩放比例(Zoom)确定 + + + + + 适合整个窗口区域 + + + + + 适合窗口宽度,目标区域由Top确定 + + + + + 适合窗口高度,目标区域由Left确定 + + + + + 适合窗口内的目标区域,目标区域为 + (Left,Top,Right,Bottom)所确定的矩形区域 + + + + + 获取目标区域实例 + + 类型字符串 + 实例 + + + + 跳转动作表明同一个文档内的跳转,包括一个目的区域 + 或书签位置 + + 图 74 跳转动作结构 + + + + + + 【必选】 + 设置 跳转的目的区域 + + 跳转的目的区域 + this + + + + 【必选】 + 设置 跳转的目标书签 + + 跳转的目标书签 + this + + + + 【必选】 + 获取 跳转动作的目标 + + 可能是 CT_Dest 或 Bookmark,可以使用instanceof判断类型并转换 + + + + 跳转动作的目标 + + + + 用于描述Goto的目的地 + + + + + Movie 动作用于播放视频。 + + 图 79 播放视频动作属性 + + + + + + 【必选 属性】 + 设置 引用资源文件中定义的视频资源标识 + + 引用资源文件中定义的视频资源标识 + this + + + + 【必选 属性】 + 获取 引用资源文件中定义的视频资源标识 + + 引用资源文件中定义的视频资源标识 + + + + 【可选 属性】 + 设置 放映参数 + + 默认值为 Play + + + + 放映参数,参见 + this + + + + 【可选 属性】 + 获取 放映参数 + + 默认值为 Play + + + + 放映参数,参见 + + + + 放映参数属性 + + 表 59 放映参数属性 + + + + + + 播放 + + + + + 停止 + + + + + 暂停 + + + + + 继续 + + + + + 根据字符串类型获取 实例 + + 放映参数字符串 + 实例 + + + + 附件动作 + + 附件动作表明打开当前文档内的一个附件 + + + 图 76 附件动作结构 + + + + + + 【必选 属性】 + 设置 附件的标识(xs:IDREF) + + 附件的标识(xs:IDREF) + this + + + + 【必选 属性】 + 获取 附件的标识(xs:IDREF) + + 附件的标识(xs:IDREF) + + + + 【可选 属性】 + 设置 是否在新窗口中打开 + + true - 新窗口中打开 + this + + + + 【可选 属性】 + 获取 是否在新窗口中打开 + + true - 新窗口中打开 + + + + 动作类型 + + 表 51 动作类型属性 + + + + + + 播放音频动作 + + Sound 动作表明播放一段音频 + + + 图 78 播放音频动作结构 + + + + + + 【必选 属性】 + 设置 引用资源文件中的音频资源标识符 + + 引用资源文件中的音频资源标识符 + this + + + + 【必选 属性】 + 获取 引用资源文件中的音频资源标识符 + + 引用资源文件中的音频资源标识符 + + + + 【可选 属性】 + 设置 播放音量,取值范围[0,100] + + 播放音量,取值范围[0,100] + this + + + + 【可选 属性】 + 获取 播放音量,取值范围[0,100] + + 播放音量,取值范围[0,100] + + + + 【可选 属性】 + 设置 此音频是否需要同步播放 + + 如果此属性为 true,则 Synchronous 值无效 + + + 默认值为 false + + + + true - 同步; false - 异步 + this + + + + 【可选 属性】 + 获取 此音频是否需要同步播放 + + 如果此属性为 true,则 Synchronous 值无效 + + + 默认值为 false + + + + true - 同步; false - 异步 + + + + 【可选 属性】 + 设置 是否同步播放 + + true 表示后续动作应等待此音频播放结束后才能开始, + false 表示立刻返回并开始下一个动作 + + + + true - 同步顺序播放;false - 立刻返回开始下一个动作 + this + + + + 【可选 属性】 + 获取 是否同步播放 + + true 表示后续动作应等待此音频播放结束后才能开始, + false 表示立刻返回并开始下一个动作 + + + + true - 同步顺序播放;false - 立刻返回开始下一个动作 + + + + URI 动作 + + 图 77 URI动作属性 + + + + + + 【必选 属性】 + 设置 目标URI的位置 + + 目标URI的位置 + this + + + + 【必选 属性】 + 设置 目标URI的位置 + + 目标URI的位置 + + + + 【可选 属性】 + 设置 Base URI,用于相对地址 + + Base URI,用于相对地址 + this + + + + 【可选 属性】 + 设置 Base URI,用于相对地址 + + Base URI,用于相对地址 + + + + 动作类型结构 + + 图 73 动作类型结构 + + + + + + 【必选 属性】 + 设置 事件类型 + + 触发动作的条件,事件的具体类型见表 52 + + + + 事件类型 + this + + + + 【必选 属性】 + 获取 事件类型 + + 触发动作的条件,事件的具体类型见表 52 + + + + 事件类型 + + + + 【可选】 + 设置 多个复杂区域为该链接对象的启动区域 + + 该参数不出现时以所在图元或页面的外接矩形作为启动区域,见 9.3 + + + + 多个复杂区域为该链接对象的启动区域 + this + + + + 【可选】 + 获取 多个复杂区域为该链接对象的启动区域 + + 该参数不出现时以所在图元或页面的外接矩形作为启动区域,见 9.3 + + + + 多个复杂区域为该链接对象的启动区域 或 null + + + + 【必选】 + 设置 动作 + + 动作 + this + + + + 【必选】 + 获取 动作 + + 可通过 instanceof 判断动作的具体类型 + + + + 动作实体 + + + + 事件类型 + + 参照 52 事件类型 + + + + + + 文档打开 + + + + + 页面打开 + + + + + 单击区域 + + + + + 根据字符串获取匹配类型实例 + + 事件名称,只能是 DO,PO,CLICK + 实例 + 未知类型事件 + + + + 注释入口文件 + + 注释是板式文档形成后附加的图文信息,用户可通过鼠标和键盘 + 与进行交互。本标准中,页面内容与注释内容是份文件描述的。 + 文件的注释在注释列表文件中按照页面进行组织索引,注释的内容 + 在分页注释文件中描述。 + + + 15.1 注释入口文件 图 80 表 60 + + + + + + 【可选】 + 增加 注释所在页 + + 注释所在页 + this + + + + 根据ID获取页面注解 + + 页面ID + null或注释所在页 + + + + @Date 2021 04 20 19 20 + @return + + + + + 注释 + + 15.2 图 81 表 61 + + + + + + 【必选 属性】 + 设置 注释的标识 + + 注释的标识 + this + + + + 【必选 属性】 + 获取 注释的标识 + + 注释的标识 + + + + 【必选 属性】 + 设置 注释类型 + + 具体取值见 + + + + 注释类型 + this + + + + 【必选 属性】 + 获取 注释类型 + + 具体取值见 + + + + 注释类型 + + + + 【必选 属性】 + 设置 注释创建者 + + 注释创建者 + this + + + + 【必选 属性】 + 获取 注释创建者 + + 注释创建者 + + + + 【必选 属性】 + 设置 最近一次修改的时间 + + 最近一次修改的时间 + this + + + + 【必选 属性】 + 获取 最近一次修改的时间 + + 最近一次修改的时间 + + + + 【可选 属性】 + 设置 注释子类型 + + 注释子类型 + this + + + + 【可选 属性】 + 获取 注释子类型 + + 注释子类型 + + + + 【可选 属性】 + 设置 表示该注释对象是否显示 + + 默认值为 true + + + + 表示该注释对象是否显示,默认值为 true + this + + + + 【可选 属性】 + 获取 表示该注释对象是否显示 + + 默认值为 true + + + + 表示该注释对象是否显示,默认值为 true + + + + 【可选 属性】 + 设置 对象的Remark 信息是否随页面一起打印 + + 默认值为 true + + + + 对象的Remark 信息是否随页面一起打印 + this + + + + 【可选 属性】 + 设置 对象的Remark 信息是否随页面一起打印 + + 默认值为 true + + + + 对象的Remark 信息是否随页面一起打印 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不随页面缩放而同步缩放 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面缩放而同步缩放 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不随页面缩放而同步缩放 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面缩放而同步缩放 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不随页面旋转而旋转 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面旋转而旋转 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不随页面旋转而旋转 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面旋转而旋转 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不能被用户更改 + + 默认值为 true + + + + 对象的 Remark 信息是否不能被用户更改 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不能被用户更改 + + 默认值为 true + + + + 对象的 Remark 信息是否不能被用户更改 + + + + 【可选】 + 设置 注释说明内容 + + 注释说明内容 + this + + + + 【可选】 + 获取 注释说明内容 + + 注释说明内容 + + + + 【可选】 + 增加 注释参数 + + 键名 + 值 + this + + + + 【可选】 + 获取 一组注释参数 + + 注解参数映射表 + + + + 【必选】 + 设置 注释的静态显示效果 + + 使用页面块定义来描述 + + + + 注释的静态显示效果 + this + + + + 【必选】 + 获取 注释的静态显示效果 + + 使用页面块定义来描述 + + + + 注释的静态显示效果 + + + + 注释类型取值 + + 15.2 表 62 + + + + + 连接注释 + + + + + 路径注释,一般为图形对象,比如矩形、多边形、贝塞尔曲线等 + + + + + 高亮注释 + + + + + 签章注释 + + + + + 水印注释 + + + + + 注释所在页 + + 15.1 注释入口文件 图 80 表 60 + + + + + + 【必选 属性】 + 设置 引用注释所在页面的标识 + + 引用注释所在页面的标识 + this + + + + 【必选 属性】 + 获取 引用注释所在页面的标识 + + 引用注释所在页面的标识 + + + + 【必选】 + 设置 指向包内的分页注释文件 + + 指向包内的分页注释文件 + this + + + + 【必选】 + 获取 指向包内的分页注释文件 + + 指向包内的分页注释文件 + + + + 注释的静态呈现效果 + + 使用页面块定义来描述 + + + 15.2 图 81 表 61 + + + + + + 【必选】 + 设置 边界 + + 附录 A.4 + + + + 边界 + this + + + + 【必选】 + + 边界 + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 分页注释文件 + + 15.2 图 81 表 61 + + + + + + 【必选】 + 增加 注释对象 + + 注释对象 + this + + + + 【必选】 + 获取 注释对象列表 + + 注释对象列表 + + + + 附件列表 + + 附件列表文件的入口点在 7.5 文档根节点中定义。 + 一个OFD文件可以定义多个附件,附件列表结构如图 91 所示。 + + + 20.1 附件列表 图 91 表 72 + + + + + + 【可选】 + 增加 附件 + + 附件 + this + + + + 【可选】 + 增加 附件列表 + + 附件列表 + + + + 附件 + + 20.2 附件 图 92 表 73 + + + + + + 【必选 属性】 + 设置 附件标识 + + 附件标识 + this + + + + 【必选 属性】 + 获取 附件标识 + + 附件标识 + + + + 【必选 属性】 + 设置 附件名称 + + 附件名称 + this + + + + 【必选 属性】 + 获取 附件名称 + + 附件名称 + + + + 【可选 属性】 + 设置 附件格式 + + 附件格式 + this + + + + 【可选 属性】 + 获取 附件格式 + + 附件格式 + + + + 【可选 属性】 + 设置 创建时间 + + 创建时间 + this + + + + 【可选 属性】 + 获取 创建时间 + + 创建时间 + + + + 【可选 属性】 + 设置 修改时间 + + 修改时间 + this + + + + 【可选 属性】 + 获取 修改时间 + + 修改时间 + + + + 【可选 属性】 + 设置 附件大小 + + 以KB为单位 + + + + 附件大小,以KB为单位 + this + + + + 【可选 属性】 + 获取 附件大小 + + 以KB为单位 + + + + 附件大小,以KB为单位 + + + + 【可选 属相】 + 设置 附件是否可见 + + 默认值为 true + + + + 附件是否可见 + this + + + + 【可选 属相】 + 获取 附件是否可见 + + 默认值为 true + + + + 附件是否可见 + + + + 【可选 属性】 + 设置 附件用途 + + 默认值为 none + + + + 附件用途 + this + + + + 【可选 属性】 + 获取 附件用途 + + 默认值为 none + + + + 附件用途 + + + + 【可选】 + 设置 附件内容在包内的路径 + + 附件内容在包内的路径 + this + + + + 【可选】 + 获取 附件内容在包内的路径 + + 附件内容在包内的路径 + + + + 本标准支持书签,可以将常用位置定义为书签, + 文档可以包含一组书签。 + + 7.5 图 11 书签结构 + + + + + 书签名称 + 书签对应的文档版位置 + + + + 【必选 属性】 + 设置 书签名称 + + 书签名称 + this + + + + 【必选 属性】 + 获取 书签名称 + + 书签名称 + + + + 【必选】 + 设置 书签对应的文档版位置 + + 见表 54 + + + + 书签对应的文档版位置 + this + + + + 【必选】 + 获取 书签对应的文档版位置 + + 见表 54 + + + + 书签对应的文档版位置 + + + + 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + + + 【必选】 + 增加 书签 + + 书签 + this + + + + 【必选】 + 获取 书签列表 + + 书签列表 + + + + 文档公共数据结构 + + ————《GB/T 33190-2016》 图 6 + + + + + + 【必选】 + 设置 当前文档中所有对象使用标识的最大值。 + 初始值为 0。MaxUnitID主要用于文档编辑, + 在向文档增加一个新对象时,需要分配一个 + 新的标识符,新标识符取值宜为 MaxUnitID + 1, + 同时需要修改此 MaxUnitID值。 + + 对象标识符最大值 + this + + + + 【必选】 + 获取 当前文档中所有对象使用标识的最大值 + + 当前文档中所有对象使用标识的最大值0 + + + + 【必选】 + 设置 该文档页面区域的默认大小和位置 + + 文档页面区域的默认大小和位置 + this + + + + 【必选】 + 获取 该文档页面区域的默认大小和位置 + + 该文档页面区域的默认大小和位置 + + + + 【可选】 + 设置 公共资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9,字形和颜色空间等宜在公共资源文件中描述 + + + + 公共资源序列 + this + + + + 【可选】 + 获取 公共资源序列 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9,字形和颜色空间等宜在公共资源文件中描述 + + + + 公共资源序列路径 + + + + 【可选】 + 设置 文件资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9, + 绘制参数、多媒体和矢量图像等宜在文件资源文件中描述 + + + + 公共资源序列 + this + + + + 【可选】 + 获取 文件资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9, + 绘制参数、多媒体和矢量图像等宜在文件资源文件中描述 + + + + 文件资源序列 路径 + + + + 【可选】 + 增加 模板页序列 + + 为一些列的模板页的集合,模板页内容机构和普通页相同,描述将7.7 + + + + 模板页序列 + this + + + + 【可选】 + 获取 模板页序列 + + 为一些列的模板页的集合,模板页内容机构和普通页相同,描述将7.7 + + + + 模板页序列 (可能为空容器) + + + + 【可选】 + 设置 引用在资源文件中定义的颜色标识符 + + 有关颜色空间的描述见 8.3.1。如果不存在此项,采用RGB作为默认颜色空间 + + + + 颜色空间引用 + this + + + + 【可选】 + 获取 引用在资源文件中定义的颜色标识符 + + 有关颜色空间的描述见 8.3.1。如果不存在此项,采用RGB作为默认颜色空间 + + + + 颜色空间引用 + + + + 页面区域结构 + + ————《GB/T 33190-2016》 图 7 + + + + + + 页面物理区域 创建区域 + + 页面物理区域 左上角X坐标 + 页面物理区域 左上角Y坐标 + 页面物理区域 宽度 + 页面物理区域 高度 + + + + 【必选】 + 设置 页面物理区域 + + 左上角为页面坐标系的原点 + + + + 页面物理区域 + this + + + + 【必选】 + 设置 页面物理区域 + + 左上角为页面坐标系的原点 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【必选】 + 获取 页面物理区域 左上角为页面坐标系的原点 + + 页面物理区域 + + + + 【可选】 + 设置 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 显示区域 + this + + + + 【可选】 + 设置 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 显示区域 + + + + 【可选】 + 设置 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 版心区域 + this + + + + 【可选】 + 设置 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 版心区域 + + + + 【可选】 + 设置 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 出血区域 + this + + + + 【可选】 + 设置 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 出血区域 + + + + 文档根节点 + Document.xml + + ————《GB/T 33190-2016》 图 5 + + + + + + + 【必选】 + 设置 文档公共数据 + + 定义了页面区域、公共资源 + + + + 文档公共数据 + this + + + + 【必选】 + 获取 文档公共数据 + + 定义了页面区域、公共资源 + + + + 文档公共数据 + + + + 【必选】 + 设置 页树 + + 有关页树的描述键 7.6 + + + + 页树 + this + + + + 【必选】 + 获取 页树 + + 有关页树的描述键 7.6 + + + + 页树 + + + + 【可选】 + 设置 大纲 + + 大纲 + this + + + + 【可选】 + 获取 大纲 + + 大纲 + + + + 【可选】 + 设置 文档的权限声明 + + 文档的权限声明 + this + + + + 【可选】 + 获取 文档的权限声明 + + 文档的权限声明 + + + + 【可选】 + 设置 文档关联的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 文档关联的动作序列 + this + + + + 【可选】 + 获取 文档关联的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 文档关联的动作序列 + + + + 【可选】 + 设置 文档的视图首选项 + + 文档的视图首选项 + this + + + + 【可选】 + 获取 文档的视图首选项 + + 文档的视图首选项 + + + + 【可选】 + 设置 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + 文档的书签集 + this + + + + 【可选】 + 获取 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + 文档的书签集 + + + + 【可选】 + 设置 指向注释列表的文件 + + 有关注释描述见第 15 章 + + + + 指向注释列表的文件路径 + this + + + + 【可选】 + 获取 指向注释列表的文件 + + 有关注释描述见第 15 章 + + + + 指向注释列表的文件路径 + + + + 【可选】 + 设置 指向自定义标引列表文件 + + 有关自定义标引描述见第 16 章 + + + + 指向自定义标引列表文件路径 + this + + + + 【可选】 + 获取 指向自定义标引列表文件 + + 有关自定义标引描述见第 16 章 + + + + 指向自定义标引列表文件路径 + + + + 【可选】 + 设置 指向附件列表文件 + + 有关附件描述见第 20 章 + + + + 指向附件列表文件路径 + this + + + + 【可选】 + 获取 指向附件列表文件 + + 有关附件描述见第 20 章 + + + + 指向附件列表文件路径 + + + + 【可选】 + 设置 指向扩展列表文件 + + 有关扩展列表文件见第 17 章 + + + + 指向扩展列表文件路径 + this + + + + 【可选】 + 设置 指向扩展列表文件 + + 有关扩展列表文件见第 17 章 + + + + 指向扩展列表文件路径 + + + + 本标准支持设置文档权限声明(Permission)节点,以达到文档防扩散等应用目的。 + 文档权限声明结构如 图 9 所示。 + + 7.5 小节 CT_Permission + + + + + + 【可选】 + 设置 是否允许编辑 + + 默认值为 true + + + + true - 允许编辑; false - 不允许编辑 + this + + + + 【可选】 + 获取 是否允许编辑 + + 默认值为 true + + + + true - 允许编辑; false - 不允许编辑 + + + + 【可选】 + 设置 是否允许添加或修改标注 + + 默认值为 true + + + + true - 允许添加或修改标注; false - 不允许添加或修改标注 + this + + + + 【可选】 + 获取 是否允许添加或修改标注 + + 默认值为 true + + + + true - 允许添加或修改标注; false - 不允许添加或修改标注 + + + + 【可选】 + 设置 是否允许导出 + + 默认值为 true + + + + true - 允许导出; false - 不允许导出 + this + + + + 【可选】 + 获取 是否允许导出 + + 默认值为 true + + + + true - 允许导出; false - 不允许导出 + + + + 【可选】 + 设置 是否允许进行数字签名 + + 默认值为 true + + + + true - 允许进行数字签名; false - 不允许进行数字签名 + this + + + + 【可选】 + 获取 是否允许进行数字签名 + + 默认值为 true + + + + true - 允许进行数字签名; false - 不允许进行数字签名 + + + + 【可选】 + 设置 是否允许添加水印 + + 默认值为 true + + + + true - 允许添加水印; false - 不允许添加水印 + this + + + + 【可选】 + 获取 是否允许添加水印 + + 默认值为 true + + + + true - 允许添加水印; false - 不允许添加水印 + + + + 【可选】 + 设置 是否允许截屏 + + 默认值为 true + + + + true - 允许截屏; false - 不允许截屏 + this + + + + 【可选】 + 获取 是否允许截屏 + + 默认值为 true + + + + true - 允许截屏; false - 不允许截屏 + + + + 【可选】 + 设置 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + + 打印权限 + this + + + + 【可选】 + 获取 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + + 打印权限 + + + + 【可选】 + 设置 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + + 有效期 + this + + + + 【可选】 + 获取 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + + 有效期 + + + + 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + 7.5 图 9 文档权限声明结构 + + + + + + 【可选 必选】 + 设置 是否允许被打印 + + 默认值为 true + + + + true - 允许被打印; false - 不允许被打印 + this + + + + 【可选 必选】 + 获取 是否允许被打印 + + 默认值为 true + + + + true - 允许被打印; false - 不允许被打印 + + + + 【可选 属性】 + 设置 打印份数 + + 在 Printable 为 true 时有效,若 Printable 为 true + 并且不设置 Copies 则打印份数不受限,若 Copies 的值为负值时, + 打印份数不受限,当 Copies 的值为 0 时,不允许打印,当 Copies的值 + 大于 0 时,则代表实际可打印的份数值。 + + + 默认值为 -1 + + + + 可打印的份数 + this + + + + 【可选 属性】 + 获取 打印份数 + + 在 Printable 为 true 时有效,若 Printable 为 true + 并且不设置 Copies 则打印份数不受限,若 Copies 的值为负值时, + 打印份数不受限,当 Copies 的值为 0 时,不允许打印,当 Copies的值 + 大于 0 时,则代表实际可打印的份数值。 + + + 默认值为 -1 + + + + 可打印的份数 + + + + 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + 7.5 图 9 文档权限声明结构 + + + + + + 【可选 属性】 + 设置 有效期开始日期 + + 有效期开始日期 + this + + + + 【可选 属性】 + 获取 有效期开始日期 + + 有效期开始日期 + + + + 【可选 属性】 + 设置 有效期结束日期 + + 有效期结束日期 + this + + + + 【可选 属性】 + 获取 有效期结束日期 + + 有效期结束日期 + + + + 视图首选项 + + 本标准支持设置文档视图首选项(VPreferences)节点,以达到限定文档初始化视图 + 便于阅读的目的。 + + + 7.5 图 10 视图首选项结构s + + + + + + 【可选】 + 设置 窗口模式 + + 可选的模式列表,请参考 + + + 默认值为 None + + + + 窗口模式 + this + + + + 【可选】 + 获取 窗口模式 + + 可选的模式列表,请参考 + + + 默认值为 None + + + + 窗口模式 + + + + 【可选】 + 设置 页面布局模式 + + 可选的模式请参考 + + + 默认值为 OneColumn + + + + 页面布局模式 + this + + + + 【可选】 + 获取 页面布局模式 + + 可选的模式请参考 + + + 默认值为 OneColumn + + + + 页面布局模式 + + + + 【可选】 + 设置 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + + 标题栏显示模式 + this + + + + 【可选】 + 获取 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + + 标题栏显示模式 + + + + 【可选】 + 设置 是否隐藏工具栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏工具栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 是否隐藏菜单栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏菜单栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 是否隐藏主窗口之外的其他窗口组件 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏主窗口之外的其他窗口组件 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 文档自动缩放模式 + + 参考值 + + + + 文档自动缩放模式 + this + + + + 【可选】 + 设置 文档的缩放率 + + 文档的缩放率 + this + + + + 【可选】 + 获取 具体的缩放处理方式和值 + + 具体的缩放处理方式和值 + + + + 页面布局 + + 7.5 表 9 视图首选项 + + + + + + 单页模式 + + + + + 单列模式 + + + + + 对开模式 + + + + + 对开连续模式 + + + + + 对开靠右模式 + + + + + 对开连续靠右模式 + + + + + 窗口模式 + + 7.5 表 9 视图首选项属性 + + + 默认值为 None + + + + + + 常规模式 + + + + + 开开后全文显示 + + + + + 同时呈现文档大纲 + + + + + 同时呈现缩略图 + + + + + 同时呈现语义结构 + + + + + 同时呈现图层 + + + + + 同时呈现附件 + + + + + 同时呈现书签 + + + + + 获取窗口模式实例 + + 模式名称 + 实例 + + + + 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + 7.5 表 9 视图首选项 + + + + + + 文件名称 + + + + + 呈现元数据中的 Title 属性 + + + + + 文档的缩放率 + + 7.5 表 9 视图首选项 + + + + + + 设置 文档的缩放率 + + 文档的缩放率 + this + + + + 获取 文档的缩放率 + + 文档的缩放率 + + + + 自动缩放模式 + + 默认值为 Default + + + 7.5 表 9 视图首选项 + + + + + + 默认缩放 + + + + + 合适高度 + + + + + 合适宽度 + + + + + 合适区域 + + + + + 获取 自动缩放模式类型 + + 类型参考 + + 自动缩放模式类型 + + + + 获取工厂方式枚举的实例 + + 自动缩放模式类型 + 自动缩放模式 + + + + 缩放比例选择对象基类 + + + + + 文件对象入口,可以存在多个,以便在一个文档中包含多个版式文档 + + + + + 文档根节点文档名称 + + + + + 【必选】 + 设置文档元数据信息描述 + + 文档元数据信息描述 + this + + + + 【必选】 + 获取文档元数据信息描述 + + 文档元数据信息描述 或null + + + + 【可选】 + 设置指向文档根节点文档 + + 指向根节点文档路径 + this + + + + 【可选】 + 获取指向文档根节点文档路径 + + 指向文档根节点文档路径 + + + + 【可选】 + 获取 包含多个版本描述节点,用于定义文件因注释和其他改动产生的版本信息,见第19章 + + 版本序列 + this + + + + 【可选】 + 获取 包含多个版本描述序列 + + 包含多个版本描述序列 + + + + 【可选】 + 设置 指向该文档中签名和签章结构的路径 (见18章) + + 指向该文档中签名和签章结构的路径 + this + + + + 【可选】 + 获取 指向该文档中签名和签章结构的路径 + + 指向该文档中签名和签章结构的路径 + + + + 文档元数据信息描述 + + + + + 【必选】 + 设置文件标识符,标识符应该是一个UUID + + UUID文件标识 + this + + + + 随机产生一个UUID作为文件标识符 + + this + + + + 【必选】 + 采用UUID算法生成的由32个字符组成的文件标识。每个DocID在 + 文件创建或生成的时候进行分配。 + + 文件标识符 + + + + 【可选】 + 设置文档标题。标题可以与文件名不同 + + 标题 + this + + + + 【可选】 + 获取文档标题。标题可以与文件名不同 + + 档标题 + + + + 【可选】 + 设置文档作者 + + 文档作者 + this + + + + 【可选】 + 获取文档作者 + + 文档作者 + + + + 【可选】 + 设置文档主题 + + 文档主题 + this + + + + 【可选】 + 获取文档主题 + + 文档主题 + + + + 【可选】 + 设置文档摘要与注释 + + 文档摘要与注释 + this + + + + 【可选】 + 获取文档摘要与注释 + + 文档摘要与注释 + + + + 【可选】 + 设置文件创建日期 + + 文件创建日期 + this + + + + 【可选】 + 获取文件创建日期 + + 创建日期 + + + + 【可选】 + 设置文档最近修改日期 + + 文档最近修改日期 + this + + + + 【可选】 + 获取文档最近修改日期 + + 文档最近修改日期 + + + + 【可选】 + 文档分类,可取值如下: + + Normal——普通文档 + + + EBook——电子书 + + + ENewsPaper——电子报纸 + + + EMagzine——电子期刊 + + + 默认值为 Normal + + + + 文档分类 + this + + + + 【可选】 + 获取文档分类 + + 默认值为 Normal + + + + 文档分类 + + + + 【可选】 + 设置文档封面,此路径指向一个图片文件 + + 文档封面路径 + this + + + + 【可选】 + 获取文档封面,此路径指向一个图片文件 + + 文档封面路径 + + + + 【可选】 + 设置关键词集合 + 每一个关键词用一个"Keyword"子节点来表达 + + 关键词集合 + this + + + + 添加关键词 + + 关键词 + this + + + + 【可选】 + 获取关键词集合 + + 关键词集合或null + + + + 【可选】 + 设置创建文档的应用程序 + + 创建文档的应用程序 + this + + + + 【可选】 + 获取创建文档的应用程序 + + 创建文档的应用程序或null + + + + 【可选】 + 设置创建文档的应用程序版本信息 + + 创建文档的应用程序版本信息 + this + + + + 【可选】 + 获取创建文档的应用程序版本信息 + + 创建文档的应用程序版本信息或null + + + + 【可选】 + 设置用户自定义元数据集合。其子节点为 CustomData + + 用户自定义元数据集合 + this + + + + 【可选】 + 获取用户自定义元数据集合。其子节点为 CustomData + + 用户自定义元数据集合 + + + + 用户自定义元数据,可以指定一个名称及其对应的值 + + @author 权观宇 + @since 2019-10-01 07:38:27 + + + + + 自定元数据 + + 元数据名称 + 元数据值 + + + + 【必选】 + 获取元数据名称 + + 默认获取第一个属性作为元数据名称 + + + + 元数据名称(Name) + + + + 【必选 属性】 + 设置元数据名称 + 元数据名称(Name) + this + + + + 获取元数据值 + + 元数据值 + + + + 设置元数据的值 + + 元数据值 + this + + + + 用户自定义元数据集合。其子节点为 CustomData + + + + + 【必选】 + 增加用户自定义元数据 + + 用户自定义元数据名称 + 用户自定义元数据值 + this + + + + 【必选】 + 增加用户自定义元数据 + + 用户自定义元数据 + this + + + + 【必选】 + 获取自定义元数据集合 + + 自定义元数据集合 + + + + 获取用户自定义元数据值 + + 元数据名称 + 元数据值 + + + + 文档分类 + + + + + 普通文档 + + + + + 电子书 + + + + + 电子报纸 + + + + + 电子期刊 + + + + + * + 获取文档分类示例 + + 默认值: Normal + 文档分类值 + 实例 + + + + 关键词集合,每一个关键词用一个"Keyword"子节点来表达 + + 表 4 文档元数据属性 + + + + + + 【必选】 + 增加关键字 + + 关键字 + this + + + + @Date 2021 04 20 19 15 + @return + + + + + 主入口 + + OFD.xml + ————《GB/T 33190-2016》 图 3 + + + + + + 【必选】 + 文件格式的版本号 + + 固定值: 1.0kd + + + 参照表 3 + + + + + + 【必选】 + 文件格式子集类型,取值为"OFD",表明此文件符合本标准。 + + + + + 文件对象入口列表创建文档对象 + + 文件对象入口序列 + + + + 文件对象入口创建文档对象 + + 文件对象入口 + + + + 【必选 属性】文件格式版本号,取值为"1.0" + + 文件格式版本号 + + + + 【必选 属性】文件格式子集类型,取值为"OFD",表明此文件符合本标准。 + + OFD + + + + 【必选】增加文件对象入口。 + 文件对象入口,可以存在多个,以便在一个文档中包含多个版式文档 + + 文件对象入口 + this + + + + 【必选】 获取第一个文档入口 + + 文件对象入口(如果有多个则获取第一个) + + + + 获取指定序号的文档 + + 文档序号,从0起 + 文件对象入口(如果有多个则获取第一个) + + + + 获取所有文档入口 + + 所有文档入口 + + + + 大纲节点 + + 图 19 大纲节点结构 + + + + + + 【必选 属性】 + 设置 大纲节点标题 + + 大纲节点标题 + this + + + + 【必选 属性】 + 获取 大纲节点标题 + + 大纲节点标题 + + + + 【可选 属性】 + 设置 该节点下所有叶节点的数目参考值 + + 应该根据该节点下实际出现的子节点数为准 + + + 默认值为 0 + + + + 该节点下所有叶节点的数目参考值 + this + + + + 【可选 属性】 + 获取 该节点下所有叶节点的数目参考值 + + 应该根据该节点下实际出现的子节点数为准 + + + 默认值为 0 + + + + 该节点下所有叶节点的数目参考值 + + + + 【可选 属性】 + 在有子节点存在时有效,如果为 true, + 表示该大纲在初始状态下展开子节点; + 如果为 false,则表示不展开 + + 默认值为 true + + + + true - 展开; false - 不展开 + this + + + + 【可选 属性】 + 在有子节点存在时有效,如果为 true, + 表示该大纲在初始状态下展开子节点; + 如果为 false,则表示不展开 + + 默认值为 true + + + + true - 展开; false - 不展开 + + + + 【可选】 + 设置 当此大纲节点被激活时执行的动作序列 + + 动作序列 + this + + + + 【可选】 + 获取 当此大纲节点被激活时执行的动作序列 + + 动作序列,可能为null + + + + 【可选】 + 增加 大纲子节点 + + 该节点的子大纲节点。层层嵌套,形成树状结构 + + + + 大纲子节点 + this + + + + 【可选】 + 获取 该大纲下所有子节点 + + 该节点的子大纲节点。层层嵌套,形成树状结构 + + + + 该大纲下所有子节点 + + + + 大纲按照树形结构进行组织 + + 图 18 大纲节点结构 + + + + + + 【必选】 + 增加 大纲节点 + + 大纲节点 + this + + + + @Date 2021 04 20 19 13 + @return + + + + + 页面内容描述,该节点不存在是,表示空白页面 + + 7.7 页面对象 表 12 + + + + + + 【必选】 + 增加 层节点 + + 一页可以包含一个或多个层 + + + 注意:每个加入的层节点必须设置 ID属性。 + + + + 层节点 + this + 加入的图层对象(CT_Layer)没有设置ID属性 + + + + 【必选】 + 获取 层节点列表 + + 一页可以包含一个或多个层 + + + 注意:每个加入的层节点必须设置 ID属性。 + + + + 层节点 + + + + 模板页 + + ————《GB/T 33190-2016》 图 14 + + + + + + 【必选 属性】 + 设置 模板页的标识符,不能与已有标识符重复 + + 模板页的标识符 + this + + + + 【必选 属性】 + 获取 模板页的标识符,不能与已有标识符重复 + + 模板页的标识符 + + + + 【可选 属性】 + 设置 模板页名称 + + 模板页名称 + this + + + + 【可选 属性】 + 获取 模板页名称 + + 模板页名称 + + + + 【可选 属性】 + 设置 模板页的默认视图类型 + + 其类型描述和呈现顺序与 Layer中 Type的描述和处理一致,见表 15 + 如果页面引用的多个模板的次属性相同,则应根据引用的顺序来显示 + 先引用者先绘制 + + + 默认值为 Background + + + + 模板页的默认视图类型 + this + + + + 【可选 属性】 + 获取 模板页的默认视图类型 + + 其类型描述和呈现顺序与 Layer中 Type的描述和处理一致,见表 15 + 如果页面引用的多个模板的次属性相同,则应根据引用的顺序来显示 + 先引用者先绘制 + + + 默认值为 Background + + + + 模板页的默认视图类型 + + + + 【可选 属性】 + 设置 指向模板页内容描述文件 路径 + + 指向模板页内容描述文件 路径 + this + + + + 【可选 属性】 + 获取 指向模板页内容描述文件 路径 + + 指向模板页内容描述文件 路径 + + + + 复合对象 + + 见 第 13 章 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像标识 + + 引用资源文件中定义的矢量图像标识 + this + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像标识 + + 引用资源文件中定义的矢量图像标识 + + + + 页块结构 + + 可以嵌套 + + + 7.7 页对象 图 17 表 16 + + + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 【可选】 + 获取 当前页块内的所有页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + Tip: 从列表取出的元素可以使用instanceof 判断元素的类型 + + + + 当前页块内的所有页块 + + + + 图像对象 + + 见 10 + + + 带有播放视频动作时,见第 12 章 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 图形对象 + + 见 9.1 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 文字对象 + + + + 对象ID + + + 对象ID + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 【可选 属性】 + 设置 层类型描述 + + 默认值为 Body + + + + 层类型 + this + + + + 【可选 属性】 + 获取 层类型描述 + + 默认值为 Body + + + + 层类型 + + + + 【可选 属性】 + 设置 图层的绘制参数,引用资源文件总定义的绘制参数标识 + + 资源文件总定义的绘制参数标识 + this + + + + 【可选 属性】 + 获取 图层的绘制参数,引用资源文件总定义的绘制参数标识 + + 资源文件总定义的绘制参数标识,null表示不存在 + + + + 用于表示页块类型的接口 + + 逻辑层面表示 + + + + + + + 前景层 + + + + + 正文层 + + + + + 背景层 + + + + + 获取图层类型实例 + + 图层类型字符串 + 图层类型 + + + + 获取图层次序 + + 图层次序 + + + + 页对象 + + 页对象支持模板页描述,每一页经常要重复显示的内容可统一在模板页中描述, + 文档可以包含多个模板页。通过使用模板页可以使重复显示的内容不必出现在 + 描述每一页的页面描述内容中,而只需通过 Template 节点进行应用。 + + + 7.7 图 13 页对象结构;表 12 页对象属性 + + + + + + 【可选】 + 设置 页面区域的大小和位置,仅对该页面有效。 + + 该节点不出现时则使用模板页中的定义,如果模板页不存在或模板页中 + 没有定义页面区域,则使用文件 CommonData 中的定义。 + + + + 页面区域的大小和位置 + this + + + + 【可选】 + 获取 页面区域的大小和位置,仅对该页面有效。 + + 该节点不出现时则使用模板页中的定义,如果模板页不存在或模板页中 + 没有定义页面区域,则使用文件 CommonData 中的定义。 + + + + 页面区域的大小和位置 + + + + 【可选】 + 设置 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + 页面使用的模板页 + this + + + 模板 + this + @deprecated + + + + 【可选】 + 获取 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + 页面使用的模板页 + + @Date 2021 04 20 19 11 + @return + + + + 页面使用的模板页(第一个) + @deprecated + + + + 【可选】 + 设置 页资源 + + 指向该页使用的资源文件 + + + + 页资源路径 + this + + + + 【可选】 + 获取 页资源 + + 指向该页使用的资源文件 + + + + 页资源路径列表 + @Date 2021 04 20 19 04 + + + + 【可选】 + 设置 页面内容描述,该节点不存在时,标识空白页 + + 页面内容 + this + + + + 【可选】 + 获取 页面内容描述,该节点不存在时,标识空白页 + + 页面内容 + + + + 【可选】 + 设置 与页面关联的动作序列。 + + 当存在多个 Action对象时,所有动作依次执行。 + + + 动作列表的动作与页面关联,事件类型为 PO(页面打开,见表 52 事件类型) + + + + 动作序列 + this + + + + 【可选】 + 设置 与页面关联的动作序列。 + + 当存在多个 Action对象时,所有动作依次执行。 + + + 动作列表的动作与页面关联,事件类型为 PO(页面打开,见表 52 事件类型) + + + + 动作序列 + + + + 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + + + 【必选 属性】 + 设置 引用在文档共用数据(CommonData)中定义的模板标识符 + + 引用在文档共用数据(CommonData)中定义的模板标识符 + this + + + + 【必选 属性】 + 获取 引用在文档共用数据(CommonData)中定义的模板标识符 + + 引用在文档共用数据(CommonData)中定义的模板标识符 + + + + 【可选 属性】 + 设置 模板在页面中的呈现顺序 + + 控制模板在页面中的呈现顺序,其类型描述和呈现顺序与Layer中Type的描述和处理一直。 + + + 如果多个图层的此属性相同,则应根据其出现的顺序来显示,先出现者先绘制 + + + 默认值为 Background + + + + 模板在页面中的呈现顺序 + this + + + + 【可选 属性】 + 获取 模板在页面中的呈现顺序 + + 控制模板在页面中的呈现顺序,其类型描述和呈现顺序与Layer中Type的描述和处理一直。 + + + 如果多个图层的此属性相同,则应根据其出现的顺序来显示,先出现者先绘制 + + + 默认值为 Background + + + + 模板在页面中的呈现顺序 + + + + 页节点 + + 7.6 页树 表 11 页树属性 + + + + + 对象ID + 页面内容位置 + + + + 【必选 属性】 + 设置 页的标识符,不能与已有标识重复 + + 页的标识符 + this + + + + 【必选 属性】 + 获取 页的标识符,不能与已有标识重复 + + 页的标识符 + + + + 【必选 属性】 + 设置 页对象描述文件 + + 页对象描述文件路径 + this + + + + 【必选 属性】 + 获取 页对象描述文件 + + 页对象描述文件路径 + + + + 页树 + + 图 12 页树结构 + + + + + + + 【必选】 + 增加 叶节点 + + 一个页树中可以包含一个或多个叶节点,页顺序是 + 根据页树进行前序遍历时叶节点的顺序。 + + + + 叶节点 + this + + + + 获取页面数量 + + 页面数量 + + + + 【必选】 + 获取 叶节点序列 + + 一个页树中可以包含一个或多个叶节点,页顺序是 + 根据页树进行前序遍历时叶节点的顺序。 + + + + 叶节点序列 (大于等于 1) + + + + 获取指定页面 + 页面索引(页码 - 1) + 页节点 + + + + + 【必选 属性】 + 设置 多媒体类型 + + 支持位图图像、视频、音频 + + + + 多媒体类型 + this + + + + 【必选 属性】 + 获取 多媒体类型 + + 支持位图图像、视频、音频 + + + + 多媒体类型 + + + + 【可选 属性】 + 设置 资源的格式 + + 支持 BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页 + + + + 资源的格式 + this + + + + 【可选 属性】 + 获取 资源的格式 + + 支持 BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页 + + + + 资源的格式 + + + + 【必选】 + 设置 指向 OFD包内的多媒体文件位置 + + 指向 OFD包内的多媒体文件位置 + this + + + + 【必选】 + 获取 指向 OFD包内的多媒体文件位置 + + 指向 OFD包内的多媒体文件位置 + + + + 多媒体格式。 + + 7.9 资源 图 21 表 19 + + + + + + 位图图像 + + + + + 音频 + + + + + 视频 + + + + + 资源文件抽象类型 + + 用于代指:绘制参数、颜色空间、字形、图像、音视频等资源的都为资源类型。 + + + + + + 资源 + + 资源是绘制图元时所需数据(如绘制参数、颜色空间、字形、图像、音视频等)的集合。 + 在页面中出现的资源数据内容都保存在容器的特定文件夹内,但其索引信息保存在资源文件中。 + 一个文档可能包含一个或多个资源文件。资源根据作用范围分为公共资源和页资源,公共资源文件 + 在文档根节点中进行制定,页资源文件在页对象中进行制定。 + + + 7.9 资源 图 20 + + + + + + 【必选 属性】 + 设置 此资源文件的通用数据存储路径。 + + BaseLoc属性的意义在于明确资源文件存储位置, + 比如 R1.xml 中可以指定 BaseLoc为"./Res", + 表明该资源文件中所有数据文件的默认存储位置在 + 当前路径的 Res 目录下。 + + + + 此资源文件的通用数据存储路径 + this + + + + 【必选 属性】 + 获取 此资源文件的通用数据存储路径。 + + BaseLoc属性的意义在于明确资源文件存储位置, + 比如 R1.xml 中可以指定 BaseLoc为"./Res", + 表明该资源文件中所有数据文件的默认存储位置在 + 当前路径的 Res 目录下。 + + + + 此资源文件的通用数据存储路径 + + + + 【可选】 + 添加 资源 + + 一个资源文件可描述0到多个资源 + + + + 资源 + this + + + + 获取字体资源文件 + + 字体资源列表 + + + + 【可选】 + 获取 资源列表 + + 一个资源文件可描述0到多个资源 + + + tip:可以使用instanceof判断是哪一种资源 + + + + 资源列表 + + + + 包含了一组颜色空间的描述 + + 7.9 图 20 表 18 + + + + + + 【必选】 + 增加 颜色空间描述 + + 必须要有ID属性 + + + + 颜色空间描述,必须要有ID属性 + this + + + + 【必选】 + 获取 颜色空间描述列表 + + 颜色空间描述列表 + + + + + 【必选】 + 增加 矢量图像资源描述 + + 必须要有ID属性 + + + + 矢量图像资源描述 + this + + + + 【必选】 + 获取 矢量图像资源描述序列 + + 必须要有ID属性 + + + + 矢量图像资源描述 + + + + + 【必选】 + 增加 绘制参数描述 + + 必须要有ID属性 + + + + 绘制参数描述 + this + + + + 【必选】 + 获取 绘制参数描述序列 + + 绘制参数描述 + + + + + 【必选】 + 添加 字形描述 + + 必须要有ID属性 + + + + 字形描述 + this + + + + 【必选】 + 获取 字形描述序列 + + 必须要有ID属性 + + + + 字形描述 + + + + 包含了一组文档所有多媒体的描述 + + 7.9 图 20 表 18 + + + + + + 【必选】 + 增加 多媒体资源描述 + + 必须含有ID属性 + + + + 多媒体资源描述 + this + + + + 【必选】 + 获取 多媒体资源描述列表 + + 必须含有ID属性 + + + + 多媒体资源描述 + + + + 简单类型基类,用于提供便捷的方法实例化元素 + + + + + 使用简单类型创建一个指定名称的元素 + + 指定名称 + 简单类型元素 + + + + 如果浮点数为整数,则省略小数 + 浮点数 + 没有小数点的整数字符串 + + + + 数组,以空格来分割元素。元素可以是除ST_Loc、 + ST_Array外的数据类型,不可嵌套 + + 示例: + 1 2.0 5.0 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 元素收容 + + + + + 获取一个单位矩阵变换参数 + + 单位CTM举证 + + + + 矩阵相乘 + + 矩阵数组 + 相乘后的结果矩阵 + + + + 获取 ST_Array 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 数组长度 + + 数组长度 + + + + 反序列化为矩阵数组 + + 矩阵 + + + + 矩形区域,以空格分割,前两个值代表了该矩形的 + 左上角的坐标,后两个值依次表示该矩形的宽和高, + 可以是整数或者浮点数,后两个值应大于0 + + 示例: + 10 10 50 50 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 左上角 x坐标 + + 从左 到 右 + + + + + + 左上角 y坐标 + + 从上 到 下 + + + + + + 宽度 + + + + + 高度 + + + + + 通用构造 + + 任意类型可序列化参数 + + + + 获取 ST_Box 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 获取左上角坐标定点 + + 左上角坐标 + + + + 标识,无符号整数,应在文档内唯一。0标识无效标识符 + + 示例: + 1000 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 标识符,默认为无符号标识符 + + + + + 获取 ST_ID 实例如果参数非法则返还null + + ID字符串 + 实例 或 null + + + + 获取引用ID + 引用ID + + + + 包结构内文件的路径,"."表示当前路径,".."表示符路径 + + 约定: + 1. "、"代表根节点; + 2. 未显示指定代表当前路径; + 3. 路径区分大小写 + + + 示例: + + /Pages/P1/Content.xml + ./Res/Book1.jpg + ../Pages/P1/Res.xml + Pages/P1/Rcs.xml + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 路径 + + + + + 获取路径实例 + + 路径字符串 + 实例或null + + + + 从实例中获取 路径 + + 元素 + 路径对象 + + + + 路径分割 + + 各个子路径 + + + + 获取父母路径 + + 父母路径字符串 + + + + 获取路径的文件名称 + + 文件名称 + + + + 路径拼接 + + 路径对象 + 拼接后路径 + + + + 路径拼接 + + 路径对象 + 拼接后路径 + + + + 是否以指定字符结尾 + + 指定字符 + true 指定字符结尾;false 不以指定字符结尾 + + + + 点坐标,以格分割,前者为 x值,后者为 y值,可以是整数或浮点数 + + 示例: + 0 0 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + X坐标 + + 从左 到 右 + + + + + + y坐标 + + 从上 到 下 + + + + + + 获取 ST_Pos 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 标识符引用,无符号整数,此标识符应为文档内已定义的标识符 + + 示例: + 1000 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 获取 ST_RefID 实例如果参数非法则返还null + + 被引用的ID字符串 + 实例 或 null + + + + + + 构造复合对象 + + 对象ID + 对象 + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像的标识 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + ,其类型为 CT_VectorG,其结构如 72 所示 + + + + 引用资源文件中定义的矢量图像的标识ID + this + + + + 【必选 属性】 + 获取 引用资源文件中定义的矢量图像的标识 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + ,其类型为 CT_VectorG,其结构如 72 所示 + + + + 引用资源文件中定义的矢量图像的标识ID + + + + 矢量图像 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + + + + + + 【必选 属性】 + 设置 矢量图像的宽度 + + 超出部分做裁剪处理 + + + + 矢量图像的宽度 + this + + + + 【必选 属性】 + 获取 矢量图像的宽度 + + 超出部分做裁剪处理 + + + + 矢量图像的宽度 + + + + 【必选 属性】 + 设置 矢量图像的高度 + + 超出部分做裁剪处理 + + + + 矢量图像的高度 + this + + + + 【必选 属性】 + 获取 矢量图像的高度 + + 超出部分做裁剪处理 + + + + 矢量图像的高度 + + + + 【可选】 + 设置 缩略图 + + 指向包内的图像文件 + + + + 缩略图路径 + this + + + + 【可选】 + 获取 缩略图 + + 指向包内的图像文件 + + + + 缩略图路径 + + + + 【可选】 + 设置 替换图像 + + 用于高分辨率输出时将缩略图替换为此高分辨率的图像 + 指向包内的图像文件 + + + + 替换图像 + this + + + + 【可选】 + 获取 替换图像 + + 用于高分辨率输出时将缩略图替换为此高分辨率的图像 + 指向包内的图像文件 + + + + 替换图像 + + + + 【必选】 + 设置 内容的矢量描述 + + 内容的矢量描述 + this + + + + 【必选】 + 增加 内容的矢量描述 + + 内容的矢量描述 + this + + + + 【必选】 + 获取 内容的矢量描述 + + 内容的矢量描述 + + + + 自定义标引入口 + + 16 图 82 表 63 + + + + + + 【必选】 + 设置 自定义标引内容节点使用的类型标识 + + 自定义标引内容节点使用的类型标识 + this + + + + 【必选】 + 获取 自定义标引内容节点使用的类型标识 + + 自定义标引内容节点使用的类型标识 + + + + 设置 命名空间 + + 附录 A.9 CustomTags.xsd + + + + 命名空间 + this + + + + 获取 命名空间 + + 附录 A.9 CustomTags.xsd + + + + 命名空间 + + + + 【可选】 + 设置 指向自定义标引内容节点适用的Schema文件 + + 指向自定义标引内容节点适用的Schema文件 + this + + + + 【可选】 + 获取 指向自定义标引内容节点适用的Schema文件 + + 指向自定义标引内容节点适用的Schema文件 + + + + 【必选】 + 设置 指向自定义标引文件 + + 这类文件中通过"非接触方式"引用版式内容流中的图元和相关信息 + + 指向自定义标引文件 + this + + + + 【必选】 + 设置 指向自定义标引文件 + + 这类文件中通过"非接触方式"引用版式内容流中的图元和相关信息 + + 指向自定义标引文件 + + + + 自定义标引 + + 外部系统或用户可以添加自定义标记和信息,从而达到与其他系统、数据 + 进行交互的目的并扩展应用。一个文档可以带有多个自定义标引。 + + + 自定义标引列表的入口点在 7.5 文档根节点中定义。 + + + 标引索引文件,标引文件中通过ID引用于被引用标引对象 + 发生"非接触式(分离式)"关联。标引内容可任意扩展, + 但建议给出扩展内容的规范约束文件(schema)或命名空间。 + + 16 图 82 表 63 + + + + + + 【可选】 + 增加 自定义标引入口 + + 自定义标引入口 + this + + + + 【可选】 + 获取 自定义标引入口列表 + + 自定义标引入口列表 + + + + Initializes object by default error message. + + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + 扩展信息节点 + + 17 扩展信息 图 83 表 6 + + + + + + 【必选 属性】 + 设置 用于生成或解释该自定义对象数据的扩展应用程序名称 + + 用于生成或解释该自定义对象数据的扩展应用程序名称 + this + + + + 【必选 属性】 + 获取 用于生成或解释该自定义对象数据的扩展应用程序名称 + + 用于生成或解释该自定义对象数据的扩展应用程序名称 + + + + 【可选 属性】 + 设置 形成此扩展信息的软件厂商标识 + + 形成此扩展信息的软件厂商标识 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的软件厂商标识 + + 形成此扩展信息的软件厂商标识 + + + + 【可选 属性】 + 设置 形成此扩展信息的软件版本 + + 形成此扩展信息的软件版本 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的软件版本 + + 形成此扩展信息的软件版本 + + + + 【可选 属性】 + 设置 形成此扩展信息的日期时间 + + 形成此扩展信息的日期时间 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的日期时间 + + 形成此扩展信息的日期时间 + + + + 【可选 属性】 + 设置 引用扩展项针对的文档项目的标识 + + 引用扩展项针对的文档项目的标识 + this + + + + 【可选 属性】 + 获取 引用扩展项针对的文档项目的标识 + + 引用扩展项针对的文档项目的标识 + + + + 【必选 属性】 + 增加 属性 + + 属性 + this + + + + 【必选 属性】 + 获取 属性列表 + + 属性列表 + + + + 【必选】 + 增加 扩展数据文件所在位置 + + 用于扩展大量信息 + + + + 扩展数据文件所在位置 + this + + + + @Date 2021 04 20 19 07 + @return + + + + + 【必选】 + 增加 扩展复杂属性 + + 使用xs:anyType,用于较复杂的扩展 + + + + 扩展复杂属性 + this + + + + 【必选】 + 获取 扩展复杂属性序列 + + 使用xs:anyType,用于较复杂的扩展 + + + + 扩展复杂属性序列 + + + + 扩展信息 + + 扩展信息列表的入口文件在 7.5 文档根节点中定义。 + 扩展信息列表文件的根节点名为 Extensions,其下 + 由 0 到多个扩展信息节点(Extension)组成,扩展 + 信息列表的根节点结构如图 83 所示。 + + + + 17 扩展信息 图 83 表 64 + + + + + + 【可选】 + 增加 扩展信息节点 + + 扩展信息节点 + this + + + + 【可选】 + 获取 扩展信息节点序列 + + 扩展信息节点 + + + + 扩展信息 + + "Name Type Value" 的数值组,用于简单的扩展 + + + 17 扩展信息 图 83 表 6 + + + + + + 【必选 属性】 + 设置 扩展属性名称 + + 扩展属性名称 + this + + + + 【必选 属性】 + 获取 扩展属性名称 + + 扩展属性名称 + + + + 【可选 属性】 + 设置 扩展属性值类型 + + 扩展属性值类型 + this + + + + 【可选 属性】 + 获取 扩展属性值类型 + + 扩展属性值类型 + + + + 【必选】 + 设置 属性值 + + 属性值 + this + + + + 【必选】 + 获取 属性值 + + 属性值 + + + + 图形轮廓数据 + + 由一系列的紧缩的操作符和操作数构成 + + + 9.1 表 35 36 + + + + + + 绘制数据队列 + + + + + 解析字符串构造数据队列 + + 紧缩字符串 + 数据队列 + + + + 刷新元素 + + 默认情况下,每次调用C都将会刷新元素内容 + + + + this + + + + 定义自绘制图形边线的起始点坐标 (x,y) + + 目标点 x + 目标点 y + this + + + + 当前点移动到制定点(x,y) + + 目标点 x + 目标点 y + this + + + + 从当前点连接一条指定点(x,y)的线段,并将当前点移动到制定点 + + 目标点 x + 目标点 y + this + + + + 从当前点连接一条到点(x2,y2)的二次贝塞尔曲线, + 并将当前点移动到点(x2,y2),此贝塞尔曲线使用 + 点(x1,y1)作为其控制点 + + 控制点 x + 控制点 y + 目标点 x + 目标点 y + this + + + + 从当前点连接一条到点(x3,y3)的三次贝塞尔曲线, + 并将当前点移动到点(x3,y3),此贝塞尔曲线使用点 + (x1,y1)和点(x2,y2)作为控制点 + + 控制点 x1 + 控制点 y1 + 控制点 x2 + 控制点 y2 + 目标点 x3 + 目标点 y3 + this + + + + 从当前点连接到点(x,y)的圆弧,并将当前点移动到点(x,y)。 + rx 表示椭圆的长轴长度,ry 表示椭圆的短轴长度。angle 表示 + 椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针, + large 为 1 时表示对应度数大于180°的弧,为 0 时表示对应 + 度数小于 180°的弧。sweep 为 1 时表示由圆弧起始点到结束点 + 是顺时针旋转,为 0 时表示由圆弧起始点到结束点是逆时针旋转。 + + 椭圆长轴长度 + 椭圆短轴长度 + 旋转角度,正值顺时针,负值逆时针 + 1 时表示对应度数大于 180°的弧,0 时表示对应度数小于 180°的弧 + sweep 为 1 时表示由圆弧起始点到结束点是顺时针旋转,为 0 时表示由圆弧起始点到结束点是逆时针旋转。 + 目标点 x + 目标点 y + this + + + + SubPath 自动闭合,表示将当前点和 SubPath 的起始点用线段直连连接 + + this + + + + 撤销上一步操作 + + this + + + + 序列化为操作序列 + + 操作序列 + + + + 复制路径对象 + + 复制之后的路径对象 + + + + 图形对象 + + 图形对象具有一般图元的一切属性和行为特征。 + + + 9.1 图形对象 图 46 表 35 + + + + + + + 构造路径对象 + + 对象ID + 对象 + + + + 【可选 属性】 + 设置 图形是否被沟边 + + true - 沟边;false - 不勾边 + this + + + + 【可选 属性】 + 获取 图形是否被沟边 + + true - 沟边;false - 不勾边 + + + + 【可选 属性】 + 设置 图形是否被填充 + + true - 填充; false - 不填充 + this + + + + 【可选 属性】 + 获取 图形是否被填充 + + true - 填充; false - 不填充 + + + + 【可选 属性】 + 设置 图形的填充规则 + + 当 Fill 属性存在时出现,可选值参考 + + + 默认值为 NonZero + + + + 图形的填充规则 + this + + + + 【可选 属性】 + 获取 图形的填充规则 + + 当 Fill 属性存在时出现,可选值参考 + + + 默认值为 NonZero + + + + 图形的填充规则 + + + + 【可选】 + 设置 沟边颜色 + + 默认为黑色 + + + + 沟边颜色,颜色定义请参考 8.3.2 基本颜色 + this + + + + 【可选】 + 获取 沟边颜色 + + 默认为黑色 + + + 沟边颜色,null表示为黑色,颜色定义请参考 8.3.2 基本颜色 + + + + 【可选】 + 设置 填充颜色 + + 默认为透明色 + + + + 填充颜色,颜色定义请参考 8.3.2 基本颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 默认为透明色 + + + + 填充颜色,颜色定义请参考 8.3.2 基本颜色 + + + + 【必选】 + 设置 图形轮廓数据 + + 由一系列紧缩的操作符和操作数构成 + + + + 图形轮廓数据 + this + + + + 【必选】 + 获取 图形轮廓数据 + + 由一系列紧缩的操作符和操作数构成 + + + + 图形轮廓数据字符串 + + + + 填充颜色 + + 9.1 表 35 + + + + + + 图形的填充规则 + + 9.1 表 35 图形对象描述 + + + + + + 勾边颜色 + + 9.1 表 35 + + + + + + 区域由一系列的分路径(Area)组成,每个路径都是闭合的 + + 图 49 区域结构 + + + + + + 【必选 属性】 + 设置 定义字图形的起始点坐标 + + 定义字图形的起始点坐标 + this + + + + 【必选 属性】 + 获取 定义字图形的起始点坐标 + + 定义字图形的起始点坐标 + + + + 【必选】 + 增加 绘制指令 + + 移动点、画线、画圆弧等 + + + + 绘制指令 + this + + + + 连续绘制 + + 绘制指令 + this + + + + 【必选】 + 获取 绘制指令序列(顺序决定了绘制图形) + + 移动点、画线、画圆弧等 + + + + 绘制指令序列 + + + + 图形也可以使用 XML 负载类型的方式进行描述,这种方式主要用于 + 区域(Region)。区域由一系列的分路径(Area)组成,每个路径都是闭合的. + + 图 49 区域结构 /// + + + + + 【必选】 + 为区域增加分路径 + + 路径 + this + + + + 【必选】 + 获取 区域中所有分路径 + + 区域中所有分路径 + + + + 圆弧 + + 图 56圆弧的结构 + + + + + + 【必选 属性】 + 设置 弧线方向是否顺时针 + + true 表示由圆弧起始点到结束点是顺时针,false 表示由圆弧起始点到结束点是逆时针 + + + 对于经过坐标系上指定两点,给定旋转角度和长短轴长度的椭圆,满足条件的可能有 2 个, + 对应的圆弧有 4 条,通过 LargeArc 属性可以排除 2 条,次属性从剩余的 2 条圆弧中确定 + 一条 + + + + true - 由圆弧起始点到结束点是顺时针;false - 由圆弧起始点到结束点是逆时针 + this + + + + 【必选 属性】 + 获取 弧线方向是否顺时针 + + true 表示由圆弧起始点到结束点是顺时针,false 表示由圆弧起始点到结束点是逆时针 + + + 对于经过坐标系上指定两点,给定旋转角度和长短轴长度的椭圆,满足条件的可能有 2 个, + 对应的圆弧有 4 条,通过 LargeArc 属性可以排除 2 条,次属性从剩余的 2 条圆弧中确定 + 一条 + + + + true - 由圆弧起始点到结束点是顺时针;false - 由圆弧起始点到结束点是逆时针 + + + + 【必选 属性】 + 设置 是否是大圆弧 + + true 表示此线型对应的位角度大于 180°的弧,false 表示对应度数小于 180°的弧 + + + 对于一个给定长、短轴的椭圆以及起始点和结束点,有一大一小两条圆弧, + 如果所描述线型恰好为 180°的弧,此属性的值不被参考,可由 SweepDirection 属性确定圆弧形状 + + + + true - 此线型对应的位角度大于 180°的弧;false - 对应度数小于 180°的弧 + this + + + + 【必选 属性】 + 获取 是否是大圆弧 + + true 表示此线型对应的位角度大于 180°的弧,false 表示对应度数小于 180°的弧 + + + 对于一个给定长、短轴的椭圆以及起始点和结束点,有一大一小两条圆弧, + 如果所描述线型恰好为 180°的弧,此属性的值不被参考,可由 SweepDirection 属性确定圆弧形状 + + + + true - 此线型对应的位角度大于 180°的弧;false - 对应度数小于 180°的弧 + + + + 【必选 属性】 + 设置 按 EllipseSize 绘制的椭圆在当前坐标系下旋转的角度, + 正值为顺时针,负值为逆时针 + + [异常处理] 如果角度大于 360°,则以 360°取模 + + + + 绘制的椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针 + this + + + + 【必选 属性】 + 获取 按 EllipseSize 绘制的椭圆在当前坐标系下旋转的角度, + 正值为顺时针,负值为逆时针 + + [异常处理] 如果角度大于 360°,则以 360°取模 + + + + 绘制的椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针 + + + + 【必选 属性】 + 设置 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + this + + + + 【必选 属性】 + 设置 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 长短轴参数 + this + + + + 【必选 属性】 + 获取 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + 圆弧结束点,下一个路径起点 + this + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + X坐标 + Y坐标 + this + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + 圆弧结束点,下一个路径起点 + + + + 自动闭合到当前路径的起始点,并以该点为当前点 + + 表 37 图形对象描述方法 + + + + + + 路径操作 + + 表 37 图形对象描述方法,如:移动、划线等 + + + + + 三次贝塞尔曲线 + + 图 53 三次贝塞尔曲线结构 + + + 三次贝塞尔曲线公式 + + B(t) = (1-t)^3(P0) + 3t(1-t)^2(P1) + 3t^2(1-t)(P2) + t^3(P3) t∈[0,1] + + + + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的第一个控制点 + + 三次贝塞尔曲线的第一个控制点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的第以个控制点 + + 三次贝塞尔曲线的第一个控制点 + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的第二个控制点 + + 三次贝塞尔曲线的第二个控制点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的第二个控制点 + + 三次贝塞尔曲线的第二个控制点 + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的结束点,下一路径的起始点 + + 三次贝塞尔曲线的结束点,下一路径的起始点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的结束点,下一路径的起始点 + + 三次贝塞尔曲线的结束点,下一路径的起始点 + + + + 线段 + + 图 51 线段结构 + + + + + + 【必选 属性】 + 设置 线段的结束点 + + 线段的结束点 + this + + + + 【必选 属性】 + 获取 线段的结束点 + + 线段的结束点 + + + + 移动节点 + + 用于表示到新的绘制点指令 + + + + + + 【必选 属性】 + 设置 移动后新的当前绘制点 + + 移动后新的当前绘制点 + this + + + + 【必选 属性】 + 获取 移动后新的当前绘制点 + + 移动后新的当前绘制点 + + + + 二次贝塞尔曲线结构 + + 图 52 二次贝塞尔曲线结构 + + 二次贝塞尔曲线公式 + + B(t) = (1 - t)^2 + 2t(1 - t)(P1) + t^2(P2) + t ∈ [0,1] + + + + + + + 【必选 属性】 + 设置 二次贝塞尔曲线的控制点 + + 二次贝塞尔曲线的控制点 + this + + + + 【必选 属性】 + 获取 二次贝塞尔曲线的控制点 + + 二次贝塞尔曲线的控制点 + + + + 【必选 属性】 + 设置 二次贝塞尔曲线的结束点 + + 二次贝塞尔曲线的结束点 + this + + + + 【必选 属性】 + 获取 二次贝塞尔曲线的结束点 + + 二次贝塞尔曲线的结束点 + + + + 图像边框 + + 10 表 43 + + + + + + 【可选 属性】 + 设置 边框线宽 + + 如果为 0 则表示边框不进行绘制 + + + 默认值为 0.353 mm + + + + 边框线宽 + this + + + + 【可选 属性】 + 获取 边框线宽 + + 如果为 0 则表示边框不进行绘制 + + + 默认值为 0.353 mm + + + + 边框线宽 + + + + 【可选 属性】 + 设置 边框水平角半径 + + 默认值为 0 + + + + 边框水平角半径 + this + + + + 【可选 属性】 + 获取 边框水平角半径 + + 默认值为 0 + + + + 边框水平角半径 + + + + 【可选 属性】 + 设置 边框垂直角半径 + + 默认值为 0 + + + + 边框垂直角半径 + this + + + + 【可选 属性】 + 获取 边框垂直角半径 + + 默认值为 0 + + + + 边框垂直角半径 + + + + 【可选 属性】 + 设置 边框虚线重复样式开始的位置 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + 默认值为 0 + + + + 边框虚线重复样式开始的位置 + this + + + + 【可选 属性】 + 获取 边框虚线重复样式开始的位置 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + 默认值为 0 + + + + 边框虚线重复样式开始的位置 + + + + 【属性 可选】 + 设置 边框虚线重复样式 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + + 边框虚线重复样式 + this + + + + 【属性 可选】 + 获取 边框虚线重复样式 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + + 边框虚线重复样式 + + + + 【可选】 + 设置 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + 边框颜色 + this + + + + 【可选】 + 获取 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + 边框颜色,null表示为黑色 + + + + 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + + + 图像 + + 10 图像 图 57 表 43 + + + + + + 【必选 属性】 + 设置 引用资源文件的定义多媒体的标识 + + 引用资源文件的定义多媒体的标识 + this + + + + 【必选 属性】 + 设置 引用资源文件的定义多媒体的标识 + + 引用资源文件的定义多媒体的标识 + + + + 【可选 属性】 + 设置 可替换图像 + + 引用资源文件中定义的多媒体的标识,由于某些情况 + 如高分辨率输出进行图像替换 + + + + 可替换图像标识 + this + + + + 【可选 属性】 + 获取 可替换图像引用 + + 引用资源文件中定义的多媒体的标识,由于某些情况 + 如高分辨率输出进行图像替换 + + + + 可替换图像标识引用 + + + + 【可选 属性】 + 设置 图像蒙版 + + 引用资源文件中定义的多媒体的标识,用作蒙板的图像应是 + 与 ResourceID 指向的图像相同大小的二值图 + + + + 图像蒙版资源引用 + this + + + + 【可选 属性】 + 获取 图像蒙版资源引用 + + 引用资源文件中定义的多媒体的标识,用作蒙板的图像应是 + 与 ResourceID 指向的图像相同大小的二值图 + + + + 图像蒙版资源引用 + + + + 【可选】 + 设置 图像边框 + + 图像边框 + this + + + + 构造图片对象 + + 对象ID + 对象 + + + + 【可选】 + 设置 图像边框 + + 图像边框 + + + + OFD通用 qualified name + + 只要名称相同并且命名空间前缀保持一致就认为是同一种 qualified name + + + + + OFD元素名称 + + + + Name相同并且,只要符合命名空间前缀相同那么 + 那么认定为是相等的qualified name + + 比较对象 + true 相同;false 不同 + + + + 文件根节点 + + XML文档使用的命名空间为 http://www.ofdspec.org/2016,其表示符应为 ofd; + 应在包内各XML文档的根节点申明 defaults:ofd。 + 元素节点应使用命名空间标识符,元素属性不使用命名空间标识符。 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + + 元素名称 + 获取OFD类型元素实例 + + + + 向元素中增加OFD元素 + + 元素名称 + 元素文本 + this + + + + 设置OFD参数 + + 如果参数已经存在则修改参数 + + + 如果属性值value为null,表示删除该类元素 + + + + 元素名称 + 元素文本 + this + + + + 设置 元素名称 + + 元素名称 + this + + + + 获取OFD的元素 + + OFD元素名称 + OFD元素或null + + + + 如果属性存在则删除 + + 属性名 + true 删除成功;false 删除失败,可能是由于属性不存在 + + + + 获取OFD元素中的文本 + + 元素名称 + 文本 + + + + 设置元素 + + 如果同类型元素已经存在,那么删除原有元素 + + + + 需要设置的元素 + this + + + + @Date 2021 04 20 19 18 + + @return + + + + 【可选】 + + 设置 OFD对象标识,无符号整数,应在文档内唯一。 + + + 0标识无效标识符 + + + + OFD对象标识 + this + + + + @Data 2021 4 20 18 53 + @return + + + + + 【可选】 + + 设置 OFD对象标识,无符号整数,应在文档内唯一。 + + + 0标识无效标识符 + + + + OFD对象标识,null表示对象标识不存在 + + + + OFD元素采用OFD的命名空间,所以直接调用代理对象 + + 元素全名(含有前缀) + + + + 简单类型元素对象,用于承载 Text + + + + + 创建一个带有文本元素 + + 元素名称 + 元素值对象(可toString 序列化为字符串) + + + + 需要继承的子类实现该方法,用于在代理对象是做类型检查 + + 元素全名(含有前缀) + + + + 如果属性存在则删除 + + 属性名 + true 删除成功;false 删除失败,可能是由于属性不存在 + + + + 裁剪区域 + + 用一个图形或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + 8.4 裁剪区 表 33 + + + + + + 【可选 属性】 + 设置 引用资源文件中的绘制参数的标识 + + 线宽、结合点和端点样式等绘制特性对裁剪效果会产生影响, + 有关绘制参数的描述见 8.2 + + + + 引用资源文件中的绘制参数的标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中的绘制参数的标识 + + 线宽、结合点和端点样式等绘制特性对裁剪效果会产生影响, + 有关绘制参数的描述见 8.2 + + + + 引用资源文件中的绘制参数的标识 + + + + 【可选 属性】 + 设置 变换矩阵 + + 针对对象坐标系,对Area下包含的 Path 和 Text 进行进一步的变换 + + + + 变换矩阵 + this + + + + 【可选 属性】 + 获取 变换矩阵 + + 针对对象坐标系,对Area下包含的 Path 和 Text 进行进一步的变换 + + + + 变换矩阵 + + + + 【必选】 + 设置 裁剪对象 + + 裁剪对象可以是 CT_Text、CT_Path + + + + 裁剪对象 + this + + + + 【必选】 + 获取 裁剪对象 + + 裁剪对象可以是 CT_Text、CT_Path + + + + 裁剪对象 + + + + 可裁剪对象 + + 实现该接口代表能够作为裁剪区域进行裁剪操作 + + + 可裁剪对象为: CT_Path、CT_Text + + + 8.5 图 44 表 33 + + + + + + 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip对象时,最终裁剪区为所有 Clip区域交集。 + + + 8.5 图元对象 图 45 表 34 + + + + + + 使用一个裁剪对象初始化裁剪序列 + + 裁剪对象 + + + + 【必选】 + 增加 图元对象的裁剪区域 + + 采用对象空间坐标系 + + + + 图元对象的裁剪区域 + this + + + + 【必选】 + 获取 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区为所有 Clip 区域的交集 + + + + 图元对象的裁剪区域序列 + + + + 裁剪区 + + 裁剪区由一组路径或文字构成,用以指定页面上的一个有效绘制区域,落在裁剪区 + 意外的部分不受绘制指令的影响。 + + + 一个裁剪区可由多个分路径(Area)组成,最终的裁剪范围是各个部分路径的并集。 + 裁剪区中的数据均相对于所修饰图元对象的外界矩形。 + + + 8.4 裁剪区 图 44 表 33 + + + + + + 【必选】 + 增加 裁剪区域 + + 用一个图形对象或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + + 裁剪区域 + this + + + + 【必选】 + 设置 裁剪区域 + + 用一个图形对象或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + + 裁剪区域 + + + + 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 + + + 默认值取值为 8 + + + + + + 每个颜色通道使用的位数 + + + + + 获取 每个颜色通道使用的位数 + + 每个颜色通道使用的位数 + + + + 获取实例 + + 比特数字符串 + 实例 + + + + 获取实例 + + 比特数 + 实例 + + + + 颜色空间 + + 本标准支持 GRAY、RGB、CMYK 颜色空间。除通过 + 设置各通道使用颜色空间内的任意颜色之外,还可 + 在颜色空间内定义调色板或指定相应颜色配置文件, + 通过设置索引值进行引用。 + + + 8.3 颜色 图 24 + + + + + 颜色类型 + + + 颜色类型 + 对象ID + + + + 【必选 属性】 + 设置 颜色空间的类型 + + 可选类型 + + + + 颜色空间的类型 + this + + + + 【必选 属性】 + 获取 颜色空间的类型 + + 可选类型 + + + + 颜色空间的类型 + + + + 【可选 属性】 + 设置 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 参考 + + + + 每个颜色通道使用的位数 + this + + + + 【可选 属性】 + 获取 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 参考 + + + + 每个颜色通道使用的位数 + + + + 【可选 属性】 + 设置 指向包内颜色配置文件 + + 指向包内颜色配置文件路径 + this + + + + 【可选 属性】 + 获取 指向包内颜色配置文件 + + 指向包内颜色配置文件路径 + + + + 【可选】 + 设置 调色板 + + 调色板中颜色的索引编号从 0 开始 + + + + 调色板 + this + + + + 【可选】 + 获取 调色板 + + 调色板中颜色的索引编号从 0 开始 + + + + 调色板 + + + + 调色板中预定义的颜色 + + 调色板中颜色的索引编号从 0 开始 + + + 8.3 颜色 表 25 + + + + + + 颜色表示: + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + + + + 设置 预定义的颜色 + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + this + + + + 获取 预定义的颜色 + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + + + + 颜色空间的类型 + + 8.3.1 表 25 颜色空间属性 + + + + + + 灰度 + + + + + 红绿蓝 + + + + + 印刷颜色 + + + + + 获取实例 + 类型字符串 + 实例 + 未知的颜色空间类型 + + + + 调色板 + + 8.3 颜色 表 25 + + + 调色板中颜色的索引编号从 0 开始 + + + + + + 【必选】 + + 设置 调色板中的预定义颜色 + + + + 调色板中的预定义颜色 + this + + + + 获取 预定义位置颜色 + + 预定义位置颜色位置序号,0 开始 + 预定义位置颜色 + + + + 获取 预定义位置颜色 + + 预定义位置颜色位置序号,0 开始 + 预定义位置颜色 + + + + 【必选】 + + 获取 调色板中的预定义颜色 + + + 调色板中颜色的索引编号从 0 开始 + + + + tip:只读 + + + + 调色板中的预定义颜色列表 + + + + 颜色族 + + 用于标识属于颜色的一种,颜色可以是基本颜色、底纹和渐变 + + + 8.3.2 图 25 颜色结构 + + + + + + + 轴向渐变 + + 在轴向渐变中,颜色渐变沿着一条指定的轴线方向,轴线由起始点和结束点决定, + 与这条轴线垂直的直线上的点颜色相同。 + + + 当轴向渐变某个方向设定为延伸时(Extend 不等于 0),渐变应沿轴在该方向的延长线 + 延伸到超出裁剪区在该轴线的投影区域为止。当 MapType 为 Direct 时,延伸区域的 + 渲染颜色使用该方向轴点所在的段的颜色;否则,按照在轴线区域内的渲染规则进行渲染。 + + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 【可选 属性】 + 设置 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + this + + + + 【可选 属性】 + 获取 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + + + + 【可选 属性】 + 设置 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + this + + + + 【可选 属性】 + 获取 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + + + + 【可选 属性】 + 设置 轴线延长线方向是否继续绘制 + + 可选值参考 + + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制 + this + + + + 【可选 属性】 + 获取 轴线延长线方向是否继续绘制 + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制,选值参考 + + + + 【必选 属性】 + 设置 轴线起始点 + + 轴线起始点 + this + + + + 【必选 属性】 + 获取 轴线起始点 + + 轴线起始点 + + + + 【必选 属性】 + 设置 轴线结束点 + + 轴线结束点 + this + + + + 【必选 属性】 + 设置 轴线结束点 + + 轴线结束点 + + + + 【必选】 + 增加 段 + + 段 + this + + + + 【必选】 + 获取 段列表 + + 段列表 + + + + 基本颜色 + + 本标准中定义的颜色是一个广义的概念,包括基本颜色、底纹和渐变 + + + 基本颜色支持两种指定方式:一种是通过设定颜色个通道值指定颜色空间的某个颜色, + 另一种是通过索引值取得颜色空间中的一个预定义颜色。 + + + 由于不同颜色空间下,颜色通道的含义、数目各不相同,因此对颜色空间的类型、颜色值的 + 描述格式等作出了详细的说明,见表 27。BitsPerComponent(简称 BPC)由效时, + 颜色通道值的取值下限是 0,上限由 BitsPerComponent 决定,取值区间 [0, 2^BPC - 1] + 内的整数,采用 10 进制或 16 进制的形式表示,采用 16 进制表示时,应以"#"加以标识。 + 当颜色通道的值超出了相应区间,则按照默认颜色来处理。 + + + 8.3.2 基本颜色 图 25 表 26 + + + + + + 颜色族中的颜色 + + + + RGB颜色值 + + 其中颜色空间(CT_ColorSpace)的通道使用位数(BitsPerComponent)为 8 + + + 采用10进制表示方式 + + + + 红色 0~255 + 绿色 0~255 + 蓝色 0~255 + RGB 颜色 + + + + 【可选 属性】 + 设置 颜色值 + + 指定了当前颜色空间下各通道的取值。Value 的取值应 + 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, + 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 + 出现时,改颜色各通道的值全部为 0 + + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 颜色值 + this + + + + 【可选 属性】 + 获取 颜色值 + + 指定了当前颜色空间下各通道的取值。Value 的取值应 + 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, + 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 + 出现时,改颜色各通道的值全部为 0 + + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 颜色值 + + + + 【可选 属性】 + 设置 调色板中颜色的编号,非负整数 + + 将从当前颜色空间的调色板中取出相应索引的预定义颜色用来描绘。 + 索引从 0 开始 + + + + 调色板中颜色的编号 + this + + + + 【可选 属性】 + 获取 调色板中颜色的编号,非负整数 + + 将从当前颜色空间的调色板中取出相应索引的预定义颜色用来描绘。 + 索引从 0 开始 + + + + 调色板中颜色的编号,null表示不存在 + + + + 【可选 属性】 + 设置 引用资源文件中颜色空间的标识 + + 默认值为文档设定的颜色空间 + + + + 颜色空间的标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中颜色空间的标识 + + 默认值为文档设定的颜色空间 + + + + 颜色空间的标识,为null是请从文档中获取设定的颜色空间,参照表 6 DefaultCS + + + + 【可选 属性】 + 设置 颜色透明度 + + 范围在 0~255 之间取值。 + + + 默认为 255,完全不透明。 + + + + 颜色透明度 + this + + + + 【可选 属性】 + 获取 颜色透明度 + + 范围在 0~255 之间取值。 + + + 默认为 255,完全不透明。 + + + + 颜色透明度 0~255 + + + + 【可选】 + 设置 颜色 + + 颜色族 + this + + + + 设置 Pattern + + 样式 + this + + + + 【可选】 + 获取 颜色 + + 颜色族, null表示不存在 + + + + + 高洛德渐变 + + 高洛德渐变的基本原理是指定三个带有可选颜色的顶点,在其构成的三角形区域内 + 采用高洛德算法绘制渐变图形。 + + + 8.3.4.4 高洛德渐变 图 41 表 31 + + + + + + 【可选 属性】 + 设置 在渐变控制点所确定的部分是否填充 + + 默认值为 false(0) + + + + false - 不填充; true - 填充 + this + + + + 【可选 属性】 + 获取 在渐变控制点所确定的部分是否填充 + + 默认值为 false (0) + + + + false - 不填充; true - 填充 + + + + 【必选】 + 增加 渐变控制点 + + 至少出现三个 + + + + 渐变控制点 + this + + + + 【必选】 + 获取 渐变控制点列表 + + 至少出现三个 + + + + 渐变控制点列表 + + + + 【可选】 + 设置 渐变范围外的填充颜色 + + 应使用基本颜色 + + + + 渐变范围外的填充颜色,应使用基本颜色 + this + + + + 【可选】 + 获取 渐变范围外的填充颜色 + + 应使用基本颜色 + + + + 渐变范围外的填充颜色,应使用基本颜色 + + + + 网格高洛德渐变 + + 网格高洛德渐变是高洛德渐变的一种特殊形式, + 允许定义 4 个以上的控制点,按照每行固定的网格数(VerticesPerRow) + 形成若干行列,相邻的 4 个控制点定义一个网格单元,在 + 一个网格单元内 EdgeFlag 固定为 1,网格单元及多个单元组成的网格区域的规则如图42所示。 + + + 8.3.4.5 图 43 表 32 + + + + + + 【必选 属性】 + 设置 渐变区域内每行的网格数 + + 渐变区域内每行的网格数 + this + + + + 【必选 属性】 + 获取 渐变区域内每行的网格数 + + 渐变区域内每行的网格数 + + + + 【必选】 + 增加 渐变控制点 + + 至少出现四个 + + + + 渐变控制点,至少出现四个 + this + + + + 径向渐变 + + 8.3.4.3 径向渐变 图 35 表 30 + + + 径向渐变定义了两个离心率和倾斜角度均相同的椭圆,并在椭圆边缘连线 + 区域内进行渐变绘制的方法。具体算法是,先由起始点椭圆中心点开始绘制 + 一个起始点颜色的空心矩形,随后沿着中心点连线不断绘制离心率与倾角角度 + 相同的空心椭圆,颜色由起始点颜色逐渐渐变为结束点颜色,椭圆大小由起始点 + 椭圆主键变为结束点椭圆。 + + + 当轴向渐变某个方向设定为延伸时(Extend 不等于 0),渐变应沿轴在该方向的延长线 + 延伸到超出裁剪区在该轴线的投影区域为止。当 MapType 为 Direct 时,延伸区域的 + 渲染颜色使用该方向轴点所在的段的颜色;否则,按照在轴线区域内的渲染规则进行渲染。 + + + + + + + 【可选 属性】 + 设置 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + this + + + + 【可选 属性】 + 获取 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + + + + 【可选 属性】 + 设置 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + this + + + + 【可选 属性】 + 获取 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + + + + 【可选 属性】 + 设置 两个椭圆的离心率 + + 椭圆焦距与长轴的比值,取值范围是 [0, 1.0) + + + 默认值为 0,在这种情况下退化为圆 + + + + 两个椭圆的离心率,取值范围是 [0, 1.0) + this + + + + 【可选 属性】 + 获取 两个椭圆的离心率 + + 椭圆焦距与长轴的比值,取值范围是 [0, 1.0) + + + 默认值为 0,在这种情况下退化为圆 + + + + 两个椭圆的离心率,取值范围是 [0, 1.0),默认值为 0 + + + + 【可选 属性】 + 设置 两个椭圆的倾斜角度 + + 椭圆长轴与 x 轴正向的夹角,单位为度 + + + 默认值为 0 + + + + 两个椭圆的倾斜角度 + this + + + + 【可选 属性】 + 获取 两个椭圆的倾斜角度 + + 椭圆长轴与 x 轴正向的夹角,单位为度 + + + 默认值为 0 + + + + 两个椭圆的倾斜角度 + + + + 【必选 属性】 + 设置 起始椭圆的的中心点 + + 起始椭圆的的中心点 + this + + + + 【必选 属性】 + 获取 起始椭圆的的中心点 + + 起始椭圆的的中心点 + + + + 【必选 属性】 + 设置 结束椭圆的的中心点 + + 结束椭圆的的中心点 + this + + + + 【必选 属性】 + 获取 结束椭圆的的中心点 + + 结束椭圆的的中心点 + + + + 【可选 属性】 + 设置 起始椭圆的长半轴 + + 默认值为 0 + + + + 起始椭圆的长半轴长度 + this + + + + 【可选 属性】 + 获取 起始椭圆的长半轴 + + 默认值为 0 + + + + 起始椭圆的长半轴长度 + + + + 【必选 属性】 + 设置 结束椭圆的长半轴 + + 结束椭圆的长半轴长度 + this + + + + 【必选 属性】 + 设置 结束椭圆的长半轴 + + 结束椭圆的长半轴长度 + + + + 【可选 属性】 + 设置 轴线延长线方向是否继续绘制 + + 可选值参考 + + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制 + this + + + + 【可选 属性】 + 获取 轴线延长线方向是否继续绘制 + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制,选值参考 + + + + 【必选】 + 增加 段 + + 段 + this + + + + 【必选】 + 获取 段列表 + + 段列表 + + + + 三角单元切换的方向标志 + + 8.1.4.4 表 31 附录A.13 + + + + + + 轴线延长线方向是否继续绘制 + + 可选值为 0、1、2、3 + + + 0:不向两侧继续绘制渐变 + + + 1: 在结束点至起始点延长线方向绘制渐变 + + + 2:在起始点至结束点延长线方向绘制渐变 + + + 3:向两侧延长线方向绘制渐变 + + + 默认值为 0 + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 不向两侧继续绘制渐变 + + 默认值 + + + + + 在结束点至起始点延长线方向绘制渐变 + + + + + 在起始点至结束点延长线方向绘制渐变 + + + + + 向两侧延长线方向绘制渐变 + + + + + 类型值 + + + + + 渐变绘制的方式 + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 默认值 Direct + + + + + 渐变控制点,至少出现三个 + + 8.6.4.4 表 31 附录 A.13 P125 + + + + + + 【必选 属性】 + 设置 控制点水平位置 + + 控制点水平位置 + this + + + + 【必选 属性】 + 获取 控制点水平位置 + + 控制点水平位置 + + + + 【必选 属性】 + 设置 控制点垂直位置 + + 控制点垂直位置 + this + + + + 【必选 属性】 + 获取 控制点垂直位置 + + 控制点垂直位置 + + + + 【可选 属性】 + 设置 三角单元切换的方向标志 + + 三角单元切换的方向标志 + this + + + + 【可选 属性】 + 获取 三角单元切换的方向标志 + + 三角单元切换的方向标志 + + + + 【必选】 + 设置 控制点对应的颜色 + + 应使用基本颜色 + + + + 控制点对应的颜色,应使用基本颜色 + this + + + + 【必选】 + 获取 控制点对应的颜色 + + 应使用基本颜色 + + + + 控制点对应的颜色,应使用基本颜色 + + + + 颜色段 + + 至少出现两个 + + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + 段颜色 + + + 段坐标 + 段颜色 + + + + 【可选 属性】 + 设置 渐变段颜色位置参数 + + 用于确定 StartPoint 和 EndPoint 中的各颜色的位置值, + 取值范围是 [0, 1.0],各颜色的 Position 值应根据颜色出现 + 的顺序递增第一个 Segment 的 Position 属性默认值为 0,最后 + 一个 Segment 的 Position 属性默认值为 1.0,当不存在时, + 在空缺的区间内平局分配。 + + + 举例: Segment 个数等于 2 且不出现 Position 属性时, + 按照"0 1.0"处理;Segment 个数等于 3 且不出现 Position 属性时, + 按照"0 0.5 1.0"处理;Segment 个数等于 5 且不出现 Position 属性时, + 按照"0 0.25 0.5 0.75 1.0" 处理。 + + + + 渐变位置参数 + this + + + + 【可选 属性】 + 获取 渐变段颜色位置参数 + + 用于确定 StartPoint 和 EndPoint 中的各颜色的位置值, + 取值范围是 [0, 1.0],各颜色的 Position 值应根据颜色出现 + 的顺序递增第一个 Segment 的 Position 属性默认值为 0,最后 + 一个 Segment 的 Position 属性默认值为 1.0,当不存在时, + 在空缺的区间内平局分配。 + + + 举例: Segment 个数等于 2 且不出现 Position 属性时, + 按照"0 1.0"处理;Segment 个数等于 3 且不出现 Position 属性时, + 按照"0 0.5 1.0"处理;Segment 个数等于 5 且不出现 Position 属性时, + 按照"0 0.25 0.5 0.75 1.0" 处理。 + + + + 渐变位置参数 + + + + 【必选】 + 设置 该段的颜色 + + 应是基本颜色 + + + + 该段的颜色,应是基本颜色 + this + + + + 【必选】 + 获取 该段的颜色 + + 应是基本颜色 + + + + 该段的颜色,应是基本颜色 + + + + 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + CellContent 作为底纹对象的绘制单元,使用一种和外界没有 + 任何关联的独立的坐标空间:坐上角(0,0)为原点,X 轴向右增长, + Y 轴向下增长,单位为毫米。 + + + + + + + 【可选 属性】 + 设置 引用资源文件中缩略图图像的标识符 + + 引用资源文件中缩略图图像的标识符 + this + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 【可选 属性】 + 获取 引用资源文件中缩略图图像的标识符 + + 引用资源文件中缩略图图像的标识符 + + + + 底纹 + + 底纹是复杂颜色的一种,用于图形和文字的填充以及沟边处理。 + + + 8.3.3 底纹 图 26 表 28 + + + + + + 【必选 属性】 + 设置 底纹单元宽度 + + 底纹单元宽度 + this + + + + 【必选 属性】 + 获取 底纹单元宽度 + + 底纹单元宽度 + + + + 【必选 属性】 + 获取 底纹单元高度 + + 底纹单元高度 + this + + + + 【必选 属性】 + 获取 底纹单元高度 + + 底纹单元高度 + + + + 【可选 属性】 + 设置 X 方向底纹单元间距 + + 默认值为底纹单元的宽度。 + + + 若设定值小于底纹单元的宽度时,应按默认值处理 + + + + X 方向底纹单元间距 + this + + + + 【可选 属性】 + 设置 X 方向底纹单元间距 + + 默认值为底纹单元的宽度。 + + + 若设定值小于底纹单元的宽度时,应按默认值处理 + + + + X 方向底纹单元间距 + + + + 【可选 属性】 + 设置 Y 方向底纹单元间距 + + 默认值为底纹单元的高度。 + + + 若设定值小于底纹单元的高度时,应按默认值处理 + + + + Y 方向底纹单元间距 + this + + + + 【可选 属性】 + 获取 Y 方向底纹单元间距 + + 默认值为底纹单元的高度。 + + + 若设定值小于底纹单元的高度时,应按默认值处理 + + + + Y 方向底纹单元间距 + + + + 【可选 属性】 + 设置 底纹单元的翻转方式 + + 默认值为 Normal + + + 参考 + + + + 底纹单元的翻转方式 + this + + + + 【可选 属性】 + 获取 底纹单元的翻转方式 + + 默认值为 Normal + + + 参考 + + + + 底纹单元的翻转方式 + + + + 【可选 属性】 + 设置 底纹单元起始位置 + + 默认值为 Object:相对于对象坐标原点 + + + + 底纹单元起始位置 + this + + + + 【可选 属性】 + 设置 底纹单元起始位置 + + 默认值为 Object:相对于对象坐标原点 + + + + 底纹单元起始位置 + + + + 【可选 属性】 + 设置 底纹单元的变换矩阵 + + 用于某些需要对底纹单元进行平移旋转变换的场合, + 默认为单位矩阵;底纹呈现时先做 XStep、YStep 排列, + 然后一起做 CTM 处理 + + + + 底纹单元的变换矩阵 + this + + + + 【可选 属性】 + 获取 底纹单元的变换矩阵 + + 用于某些需要对底纹单元进行平移旋转变换的场合, + 默认为单位矩阵;底纹呈现时先做 XStep、YStep 排列, + 然后一起做 CTM 处理 + + + + 底纹单元的变换矩阵 + + + + 【必选】 + 设置 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + + 底纹单元 + this + + + + 【必选】 + 获取 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + + 底纹单元 + + + + 翻转绘制效果 + + 8.3.4 渐变 图 28 + + + + + + 普通重复 + + 具体效果见 图 28 Normal + + + + + + 竖轴对称翻转 + + 具体效果见 图 28 Column + + + + + + 横轴对称翻转 + + 具体效果见 图 28 Row + + + + + + 十字轴对称翻转 + + 具体效果见 图 28 Row And Column + + + + + + 获取 翻转绘制效果 实例 + + 效果名称 + 翻转绘制效果 + + + + 底纹单元起始绘制位置 + + 8.3.4 表 28 RelativeTo + + + + + + 相对于页面坐标的原点 + + + + + 相对于对象坐标系的原点 + + + + + 获取 底纹单元起始绘制位置 + + 绘制位置字符串 + 底纹单元起始绘制位置 + + + + 图元对象 + + 图元对象是版式文档中页面上呈现内容的最基本单元, + 所有页面显示内容。包括文字、图形、图像等,都属于 + 图元对象,或是图元对象的组合。 + + + 8.5 图元对象 图 45 表 34 + + + + + + 【必选 属性】 + 设置 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形 + this + + + + 【必选 属性】 + 设置 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形X坐标 + 外接矩形Y坐标 + 外接矩形宽度 + 外接矩形高度 + this + + + + 【必选 属性】 + 获取 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形 + + + + 【可选 属性】 + 设置 图元对象的名字 + + 图元对象的名字 + this + + + + 【可选 属性】 + 获取 + + 图元对象的名字,可能为null + + + + 【可选 属性】 + 设置 图元是否可见 + + true - 可见;false - 不见 + this + + + + 【可选 属性】 + 获取 图元是否可见 + + true - 可见;false - 不见 + + + + 【可选 属性】 + 设置 对空间内的图元变换矩阵 + + 变换矩阵 + this + + + + 【可选 属性】 + 获取 对空间内的图元变换矩阵 + + 变换矩阵 + + + + 【可选 属性】 + 设置 引用资源文件中的绘制参数标识 + + 绘制参数标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中的绘制参数标识 + + 绘制参数标识 + + + + 【可选 属性】 + 设置 绘制路径时使用的线宽 + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 绘制路径时使用的线宽 + this + + + + 【可选 属性】 + 获取 绘制路径时使用的线宽 + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 绘制路径时使用的线宽,可能为null + + + + 【可选 属性】 + 设置 线端点样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线端点样式 + this + + + + 【可选 属性】 + 获取 线端点样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线端点样式 + + + + 【可选 属性】 + 设置 线条连接样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条连接样式 + this + + + + 【可选 属性】 + 获取 线条连接样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条连接样式 + + + + 【可选 属性】 + 设置 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + Join的截断值长度 + this + + + + 【可选 属性】 + 获取 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + Join的截断值长度 + + + + 【可选 属性】 + 设置 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线开始位置 + this + + + + 【可选 属性】 + 获取 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线开始位置 + + + + 【可选 属性】 + 设置 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + this + + + + 【可选 属性】 + 获取 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + + + + 【可选 属性】 + 设置 图元对象透明度 + + 取值区间为 [0,255] + + + 默认为 0 + + + + 图元对象透明度,取值区间为 [0,255] + this + + + + 【可选 属性】 + 获取 图元对象透明度 + + 取值区间为 [0,255] + + + 默认为 255 + + + + 图元对象透明度,取值区间为 [0,255] + + + + 【可选】 + 设置 图元对象的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 图元对象的动作序列 + this + + + + 【可选】 + 设置 图元对象的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 图元对象的动作序列 + + + + 【可选】 + 设置 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区域为所有 Clip 区域的交集。 + + + + 图元对象的裁剪区域序列 + this + + + + 【可选】 + 设置 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区域为所有 Clip 区域的交集。 + + + + 图元对象的裁剪区域序列 + + + + 绘制参数 + + 绘制参数是一组用于控制绘制渲染效果的修饰参数的集合。 + 绘制参数可以被不同的图元对象所共享。 + + + 绘制参数可以继承已有的绘制参数,被继承的绘制参数称为 + 该参数的"基础绘制参数"。 + + + 图元对象通过绘制参数的标识符引用绘制参数。图元对象在引用 + 绘制参数的同时,还可以定义自己的绘制属性,图元自有的绘制属性 + 将覆盖引用的绘制参数中的同名属性。 + + + 绘制参数可通过引用基础绘制参数的方式形成嵌套,对单个绘制参数而言, + 它继承了其基础绘制参数中的所有属性,并且可以重定义其基础绘制参数中的属性。 + + + 绘制参数的作用顺序采用就近原则,即当多个绘制参数作用于同一个对象并且这些绘制参数 + 中具有相同的要素时,采用与被作用对象关系最为密切的绘制参数的要素对其进行渲染。 + 例如,当图元已经定义绘制参数时,则按定义属性进行渲染;当图元未定义绘制参数时, + 应首先按照图元定义的绘制参数进行渲染;图元未定义绘制参数时应采用所在图层的默认绘制参数 + 渲染;当图元和所在图层都没有定义绘制参数时,按照各绘制属性的默认值进行渲染。 + + + 8.2 绘制参数结构 图 22 + + + + + + 【可选 属性】 + 设置 基础绘制参数,引用资源文件中的绘制参数的标识符 + + 引用资源文件中的绘制参数的标识符 + this + + + + 【可选 属性】 + 获取 基础绘制参数,引用资源文件中的绘制参数的标识符 + + 引用资源文件中的绘制参数的标识符 + + + + 【可选 属性】 + 设置 线宽 + + 非负浮点数,指定了绘制路径绘制时线的宽度。由于 + 某些设备不能输出一个像素宽度的线,因此强制规定 + 当线宽大于 0 时,无论多小都至少要绘制两个像素的宽度; + 当线宽为 0 时,绘制一个像素的宽度。由于线宽为 0 定义与 + 设备相关,所以不推荐使用线宽为 0。 + + + 默认值为 0.353 mm + + + + 线宽 + this + 线宽必须是非负浮点数 + + + + 【可选 属性】 + 获取 线宽 + + 非负浮点数,指定了绘制路径绘制时线的宽度。由于 + 某些设备不能输出一个像素宽度的线,因此强制规定 + 当线宽大于 0 时,无论多小都至少要绘制两个像素的宽度; + 当线宽为 0 时,绘制一个像素的宽度。由于线宽为 0 定义与 + 设备相关,所以不推荐使用线宽为 0。 + + + 默认值为 0.353 mm + + + + 线宽 + + + + 【可选 属性】 + 设置 线条连接样式 + + 可选样式参照,线条连接样式的取值和显示效果之间的关系见表 + + + + 线条连接样式 + this + + + + 【可选 属性】 + 获取 线条连接样式 + + 可选样式参照,线条连接样式的取值和显示效果之间的关系见表 + + + + 线条连接样式 + + + + 【可选 属性】 + 设置 线端点样式 + + 可选样式参照,线条端点样式取值与效果之间关系见表 24 + + + + 线端点样式 + this + + + + 【可选 属性】 + 设置 线端点样式 + + 可选样式参照,线条端点样式取值与效果之间关系见表 24 + + + 默认值为 Butt + + + + 线端点样式 + + + + 【可选 属性】 + 设置 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + + 线条虚线开始位置 + this + + + + 【可选 属性】 + 获取 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + + 线条虚线开始位置 + + + + 【可选 属性】 + 设置 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + this + + + + 【可选 属性】 + 获取 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + + + + 【可选 属性】 + 设置 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + + Join的截断值长度 + this + + + + 【可选 属性】 + 获取 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + + Join的截断值长度 + + + + 【可选】 + 设置 填充颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为透明色。关于颜色的描述见 8.3 + + + + 填充颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为透明色。关于颜色的描述见 8.3 + + + + 填充颜色 + + + + 【可选】 + 设置 勾边颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为黑色。关于颜色的描述见 8.3 + + + + 勾边颜色 + this + + + + 【可选】 + 获取 勾边颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为黑色。关于颜色的描述见 8.3 + + + + 勾边颜色 + + + + 线端点样式 + + 指定一条线的端点样式。 + + + 线条端点样式取值与效果之间关系见表 24 + + 默认值为 Butt + + + + + + 根据类型字符串获取类型枚举 + + 默认值:Miter + + + + 类型字符串 + 枚举实例 + 未知的线端点样式 + + + + 线条连接样式 + + 指定了两个线的端点结合时采用的样式 + + + 线条连接样式的取值和显示效果之间的关系见表 22 + + + + + + 根据类型字符串获取类型枚举 + + 默认值:Miter + + + + 类型字符串 + 枚举实例 + 未知线条连接样式 + + + + 电子印章信息 + + 18.2.1 图 86 表 67 + + + + + + 【必选】 + 设置 指向包内的安全电子印章文件路径 + + 遵循密码领域的相关规范 + + + + 指向包内的安全电子印章文件路径 + this + + + + 【必选】 + 获取 指向包内的安全电子印章文件路径 + + 遵循密码领域的相关规范 + + + + 指向包内的安全电子印章文件路径 + + + + 签名的外观 + + 一个数字签名可以跟一个或多个外观描述关联,也可以不关联任何外观, + 其关联方式如图 88所示。 + + + 18.2.3 图 88 表 69 + + + + + + 【必选 属性】 + 设置 签章注释的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签章注释的标识 + this + + + + 【必选 属性】 + 获取 签章注释的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签章注释的标识 + + + + 【必选 属性】 + 设置 引用外观注释所在的页面的标识符 + + 引用外观注释所在的页面的标识符 + this + + + + 【必选 属性】 + 获取 引用外观注释所在的页面的标识符 + + 引用外观注释所在的页面的标识符 + + + + 【必选 属性】 + 设置 签章注释的外观边框位置 + + 可用于签章注释所在页面内的定位 + + + + 签章注释的外观边框位置 + this + + + + 【必选 属性】 + 获取 签章注释的外观边框位置 + + 可用于签章注释所在页面内的定位 + + + + 签章注释的外观边框位置 + + + + 【可选 属性】 + 设置 签章注释的外观裁剪设置 + + 签章注释的外观裁剪设置 + this + + + + 【可选 属性】 + 获取 签章注释的外观裁剪设置 + + 签章注释的外观裁剪设置 + + + + 针对一个文件的摘要节点 + + 18.2.2 签名的范围 图 87 表 68 + + + + + + 【必选 属性】 + 设置 指向包内的文件,使用绝对路径 + + 指向包内的文件,使用绝对路径 + this + + + + 【必选 属性】 + 获取 指向包内的文件,使用绝对路径 + + 指向包内的文件,使用绝对路径 + + + + 【必选】 + 设置 对包内文件进行摘要计算值的杂凑值 + + 所得的二进制摘要值进行 base64 编码 + + + + 对包内文件进行摘要计算值的杂凑值 + this + + + + 【必选】 + 获取 对包内文件进行摘要计算值的杂凑值 + + 对包内文件进行摘要计算值的杂凑值 + + + + 签名的范围 + + 18.2.2 签名的范围 图 87 表 68 + + + + + + 【可选 属性】 + 设置 摘要方法 + + 视应用场景的不同使用不同的摘要方法。 + 用于各行业应用时,应使用符合行业安全贵方的算法。 + + + + 摘要方法 + this + + + + 【可选 属性】 + 获取 摘要方法 + + 视应用场景的不同使用不同的摘要方法。 + 用于各行业应用时,应使用符合行业安全贵方的算法。 + + + + 摘要方法 + + + + 【必选】 + 增加 针对一个文件的摘要节点 + + 针对一个文件的摘要节点 + this + + + + 检查是否包含文件 + + 文件绝对路径 + true - 含有文件;false - 不含 + + + + 【必选】 + 获取 针对一个文件的摘要节点列表 + + 针对一个文件的摘要节点列表 + + + + 数字签名或安全签章在类表中的注册信息,依次签名或签章对应一个节点 + + 18.1 签名列表 图 85 表 66 + + + + + + 【必选 属性】 + 设置 签名或签章的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签名或签章的标识 + this + + + + 【必选 属性】 + 获取 签名或签章的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签名或签章的标识 + + + + 【可选 属性】 + 设置 签名节点的类型 + + 可选值参考 + + + 默认值为Seal + + + + 签名节点的类型 + this + + + + 【可选 属性】 + 获取 签名节点的类型 + + 可选值参考 + + + 默认值为Seal + + + + 签名节点的类型 + + + + 【必选 属性】 + 设置 指向包内的签名描述文件 + + 指向包内的签名描述文件 + this + + + + 【必选 属性】 + 获取 指向包内的签名描述文件 + + 指向包内的签名描述文件 + + + + 签名列表根节点 + + 签名列表问价你的入口点在 7.4 主入口中定义。 + 签名列表文件中可以包含多个签名(例如联合发文等情况),见图 85。 + 当允许下次继续添加签名时,该文件不会被包含到本次签名的 + 保护文件列表(References)中。 + + + 18.1 签名列表 图 85 表 66 + + + + + + 【可选 属性】 + 设置 安全标识的最大值 + + 作用与文档入口文件 Document.xml 中的 MaxID相同, + 为了避免在签名时影响文档入口文件,采用了与ST_ID不一样 + 的ID编码方式。 + + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 安全标识的最大值 + this + + + + 【可选 属性】 + 获取 安全标识的最大值 + + 作用与文档入口文件 Document.xml 中的 MaxID相同, + 为了避免在签名时影响文档入口文件,采用了与ST_ID不一样 + 的ID编码方式。 + + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 安全标识的最大值 + + + + 【可选】 + 增加 数字签名或安全签章在类表中的注册信息 + + 数字签名或安全签章在类表中的注册信息 + this + + + + 【可选】 + 获取 数字签名或安全签章在类表中的注册信息序列 + + 数字签名或安全签章在类表中的注册信息序列 + + + + 签名节点的类型 + + 目前规定了两个可选值 + + + 18.1 签名列表 图 85 表 66 + + + + + + 安全签章 + + 默认值 + + + + + + 纯数字签名 + + + + + 创建签名时所用的签章组件提供者信息 + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选 属性】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + this + + + + 【必选 属性】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的版本 + + 创建签名时所使用的签章组件的版本 + this + + + + 【可选 属性】 + 获取 创建签名时所使用的签章组件的版本 + + 创建签名时所使用的签章组件的版本 + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的制造商 + + 创建签名时所使用的签章组件的制造商 + this + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的制造商 + + 创建签名时所使用的签章组件的制造商 + + + + 签名描述文件的根节点 + + OFD的数字签名通过对描述文件的保护间接实现对OFD原文的保护。 + 签名结构中的签名信息(SignedInfo)是这一过程中的关键点, + 其中记录了当次数字签名保护的所有文件的二进制摘要信息,同时 + 将安全算法提供者、签名算法、签名时间、和所应用的安全印章等 + 信息也包含在此节点内。签名描述文件同时包含了签名值将要存放的 + 包内位置,一旦对该文件实施签名保护,则其对应的包内文件原文 + 以及本次签名对应的附加信息都将不可改动,从而实现依次数字签名 + 对整个原文内容的保护。签名描述文件的主要结构描述见图 86。 + + + 文件摘要文件根节点为 Signature,其子节点 SignedInfo 对应元素说明见表 67。 + + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选】 + 设置 签名要保护的原文及本次签名的相关信息 + + 签名要保护的原文及本次签名的相关信息 + this + + + + 【必选】 + 获取 签名要保护的原文及本次签名的相关信息 + + 签名要保护的原文及本次签名的相关信息 + + + + 【必选】 + 设置 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + this + + + + 【必选】 + 获取 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + + + 签名要保护的原文及本次签名相关的信息 + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + this + + + + 【必选】 + 获取 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + + + + 【可选】 + 设置 签名方法 + + 记录安全模块返回的签名算法代码,以便验证时使用 + + + + 签名方法 + this + + + + 【可选】 + 设置 签名方法 + + 记录安全模块返回的签名算法代码,以便验证时使用 + + + + 签名方法 + + + + 【可选】 + 设置 签名时间 + + 记录安全模块返回的签名时间,以便验证时使用 + + + + 签名时间 + this + + + + 【可选】 + 设置 签名时间 + + 记录安全模块返回的签名时间,以便验证时使用 + + + + 签名时间 + + + + 【必选】 + 设置 包内文件计算所得的摘要记录列表 + + 一个受本次签名保护的包内文件对应一个 Reference节点 + + + + 包内文件计算所得的摘要记录列表 + this + + + + 【必选】 + 设置 包内文件计算所得的摘要记录列表 + + 一个受本次签名保护的包内文件对应一个 Reference节点 + + + + 包内文件计算所得的摘要记录列表 + + + + 【可选】 + 增加 本签名关联的外观(用OFD中的注解表示) + + 该节点可出现多次 + + + + 本签名关联的外观 + this + + + + 【可选】 + 获取 本签名关联的外观(用OFD中的注解表示)序列 + + 该节点可出现多次 + + + + 本签名关联的外观序列 + + + + 【可选】 + 设置 电子印章信息 + + 电子印章信息 + this + + + + 【可选】 + 设置 电子印章信息 + + 电子印章信息 + + + + 摘要算法 + + + + + 默认值 + + + + + 变换描述 + + 当存在字形变换时,TextCode对象中使用字形变换节点(CGTransform)描述字符编码 + 和字形索引之间的关系。 + + + 11.4.1 变换描述 图 66 表 48 + + + + + + 【必选 属性】 + 设置 TextCode 中字符编码的起始位置 + + 从 0 开始 + + + + TextCode 中字符编码的起始位置 + this + + + + 【必选 属性】 + 获取 TextCode 中字符编码的起始位置 + + 从 0 开始 + + + + TextCode 中字符编码的起始位置 + + + + 【可选 属性】 + 设置 变换关系中字符的数量 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字符的数量,数值应大于等于 1,否则属于错误描述 + this + + + + 【可选 属性】 + 获取 变换关系中字符的数量 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字符的数量,数值应大于等于 1,否则属于错误描述 + + + + 【可选 属性】 + 设置 变换关系中字形索引的个数 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字形索引的个数 + this + + + + 【可选 属性】 + 设置 变换关系中字形索引的个数 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字形索引的个数 + + + + 【可选】 + 设置 变换后的字形索引列表 + + 变换后的字形索引列表 + this + + + + 【可选】 + 获取 变换后的字形索引列表 + + 变换后的字形索引列表 + + + + 字形适用的字符分类 + + 用于匹配替代字形 + + + 11.1 表 44 + + + 附录 A.5 CT_Font + + + + + + 符号 + + + + + 默认值 + + + + + 字形名 + + + + 【必选 属性】 + 设置 字形名 + + 字形名 + this + + + + 【必选 属性】 + 获取 字形名 + + 字形名 + + + + 【可选 属性】 + 设置 字形族名 + + 用于匹配代替字形 + + + + 字形族名 + this + + + + 【可选 属性】 + 获取 字形族名 + + 用于匹配代替字形 + + + + 字形族名 + + + + 【可选 属性】 + 设置 字形适用的字符分类 + + 可选值参考 + + + + 字形适用的字符分类 + this + + + + 【可选 属性】 + 获取 字形适用的字符分类 + 可选值参考 + + 字形适用的字符分类 + + + + 【可选 属性】 + 设置 是否是斜体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 斜体; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是斜体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 斜体; false - 正常 + + + + 【可选 属性】 + 设置 是否是粗字体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 粗体; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是粗字体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 粗体; false - 正常 + + + + 【可选 属性】 + 设置 是否是带衬线字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 带衬线;false - 正常 + this + + + + 【可选 属性】 + 获取 是否是带衬线字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 带衬线;false - 正常 + + + + 【可选 属性】 + 设置 是否是等宽字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 等宽字形;false - 正常 + this + + + + 【可选 属性】 + 设置 是否是等宽字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 等宽字形;false - 正常 + + + + 【可选】 + 设置 指向内嵌字形文件 + + 嵌入字形文件应使用 OpenType 格式 + + + + 指向内嵌字形文件路径 + this + + + + 【可选】 + 获取 指向内嵌字形文件 + + 嵌入字形文件应使用 OpenType 格式 + + + + 指向内嵌字形文件路径 + + + + 文字定位 + + 文字对象使用严格的文字定位信息进行定位 + + + 11.3 文字定位 图 61 表 46 + + + + + + 设置文字内容 + + 内容 + this + + + + 获取文字内容 + + 文字内容 + + + + 设置坐标 + + 横坐标 + 纵坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 X 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 X 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 X 坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 X 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 X 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 X 坐标;null表示采用上一个 TextCode 的 X 值 + + + + 【可选 属性】 + 设置 第一个文字的字形原点在对象坐标系下的 Y 坐标 + + 当 Y 不出现,则采用上一个 TextCode 的 Y 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形原点在对象坐标系下的 Y 坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 Y 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 Y 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 Y 坐标;null表示采用上一个 TextCode 的 Y 值 + + + + 【可选 属性】 + 设置 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值 + this + + + + 【可选 属性】 + 设置 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值数值 + this + + + + 【可选 属性】 + 获取 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值;null表示不偏移 + + + + 【可选 属性】 + 设置 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移值;null表示不偏移 + this + + + + 【可选 属性】 + 设置 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移数值 + this + + + + 【可选 属性】 + 获取 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移值;null表示不偏移 + + + + 解析delta的值,处理g的格式 + + @return + + + + 文字对象 + + 11.2 文字对象 图 59 表 45 + + + + + + 获取文字对象 + + 文字对象ID + 文字对象 TextObject + + + + 构造文字对象 + + 对象ID + 对象 + + + + 【必选 属性】 + 设置 引用资源文件中定义的字形标识 + + 引用字形资源文件路径 + this + + + + 【必选 属性】 + 设置 引用资源文件中定义的字形标识 + + ID + this + + + + 【必选 属性】 + 获取 引用资源文件路径 + + 引用字形资源文件路径 + + + + 【必选 属性】 + 设置 字号,单位为毫米 + + 字号,单位为毫米 + this + + + + 【必选 属性】 + 获取 字号,单位为毫米 + + 字号,单位为毫米 + + + + 【可选 属性】 + 设置 是否勾边 + + 默认值为 false + + + + true - 勾边;false - 不勾边 + this + + + + 【可选 属性】 + 获取 是否勾边 + + 默认值为 false + + + + true - 勾边;false - 不勾边 + + + + 【可选 属性】 + 设置 是否填充 + + 默认值为 true + + + + true - 填充;false - 不填充 + this + + + + + 【可选 属性】 + 设置 勾边宽度 + + 勾边宽度 + this + + + + 【可选 属性】 + 设置 字形在水平方向的缩放比 + + 默认值为 1.0 + + + 例如:当 HScale 值为 0.5 时表示实际显示的字宽为原来字宽的一半。 + + + + 字形在水平方向的缩放比 + this + + + + 【可选 属性】 + 获取 字形在水平方向的缩放比 + + 默认值为 1.0 + + + 例如:当 HScale 值为 0.5 时表示实际显示的字宽为原来字宽的一半。 + + + + 字形在水平方向的缩放比 + + + + 【可选 属性】 + 指定 阅读方向 + + 指定了文字排列的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 阅读方向,可选值为 + this + + + + 【可选 属性】 + 获取 阅读方向 + + 指定了文字排列的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 阅读方向,可选值为 + + + + 【可选 属性】 + 指定 字符方向 + + 指定了文字放置的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 字符方向,可选值为 + this + + + + 【可选 属性】 + 获取 字符方向 + + 指定了文字放置的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 字符方向,可选值为 + + + + 【可选 属性】 + 设置 文字对象的粗细值 + + 默认值为 400 + + + + 文字对象的粗细值,可选值 + this + + + + 【可选 属性】 + 设置 文字对象的粗细值 + + 默认值为 400 + + + + 文字对象的粗细值,可选值 + + + + 【可选 属性】 + 设置 是否是斜体样式 + + 默认值为 false + + + + true - 斜体样式; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是斜体样式 + + 默认值为 false + + + + true - 斜体样式; false - 正常 + + + + 【可选】 + 设置 填充颜色 + + 默认为黑色 + + + 填充颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 默认为黑色 + + + 填充颜色,null表示黑色 + + + + 【可选】 + 设置 勾边颜色 + + 默认为透明色 + + + + 勾边颜色 + this + + + + 【可选】 + 获取 勾边颜色 + + 默认为透明色 + + + + 勾边颜色,null为透明色 + + + + 【可选】 + 增加 指定字符编码到字符索引之间的变换关系 + + 描述见 11.4 字符变换 + + + + 字符编码到字符索引之间的变换关系 + this + + + + 【可选】 + 获取 指定字符编码到字符索引之间的变换关系序列 + + 描述见 11.4 字符变换 + + + + 字符编码到字符索引之间的变换关系序列 + + + + 【必选】 + 增加 文字内容 + + 也就是一段字符编码串 + + + 如果字符编码不在XML编码方式的字符范围之内,应采用"\"加四位 + 十六进制数的格式转义;文字内容中出现的空格也需要转义 + 若 TextCode 作为占位符使用时一律采用 ¤ (\u00A4)占位 + + + + 文字内容 + this + + + + 【必选】 + 获取 文字内容序列 + + 也就是一段字符编码串 + + + 如果字符编码不在XML编码方式的字符范围之内,应采用"\"加四位 + 十六进制数的格式转义;文字内容中出现的空格也需要转义 + 若 TextCode 作为占位符使用时一律采用 ¤ (\u00A4)占位 + + + + 文字内容序列 + + + + 方向角度 + + 11.3 文字定位 表 47 + + + + + + 可选旋转角度 0、90、180、270 + + + + + 旋转角度 + + + + + 文字对象的粗细值 + + 11.3 表 45 + + + + + + 可选值为 + 100,200,300,400,500,600,700,800,900 + + + + + 默认值 + + + + + 获取字体粗细值 + + 粗细值 + + + + 版本 + + 版本信息在独立的文件中描述,如图 90 所示。 + 版本定义结构中列出了一个 OFD 文档版本中所需的所有文件。 + + + 19.2 版本 图 90 表 71 + + + + + + 【属性 必选】 + 设置 版本标识符 + + 版本标识符 + this + + + + 【属性 必选】 + 获取 版本标识符 + + 版本标识符 + + + + 【属性 可选】 + 设置 该文件适用的格式版本 + + 该文件适用的格式版本 + this + + + + 【属性 可选】 + 获取 该文件适用的格式版本 + + 该文件适用的格式版本,null表示不存在 + + + + 【属性 可选】 + 设置 版本名称 + + 版本名称 + this + + + + 【属性 可选】 + 获取 版本名称 + + 版本名称,null表示不存在 + + + + 【属性 可选】 + 设置 创建时间 + + 创建时间 + this + + + + 【属性 可选】 + 获取 创建时间 + + 创建时间 + + + + 【必选】 + 设置 版本包含的文件列表 + + 版本包含的文件列表 + this + + + + 【必选】 + 获取 版本包含的文件列表 + + 版本包含的文件列表 + + + + 【必选】 + 设置 该版本的入口文件 + + 该版本的入口文件 + this + + + + 【必选】 + 获取 该版本的入口文件 + + 该版本的入口文件 + + + + 文件列表文件描述 + + 19.2 表 71 + + + + + 文件列表文件标识 + 文件列表文件描述 + + + + 【必选 属性】 + 设置 文件列表文件标识 + + 文件列表文件标识 + this + + + + 【必选 属性】 + 获取 文件列表文件标识 + + 文件列表文件标识 + + + + 【必选】 + 设置 文件列表文件描述 + + 文件列表文件描述 + this + + + + 【必选】 + 获取 文件列表文件描述 + + 文件列表文件描述 + + + + 版本包含的文件列表 + + 19.2 标 71 + + + + + + 【必选】 + 增加 文件列表文件描述 + + 文件列表文件描述 + this + + + + 【必选】 + 增加 文件列表文件描述 + + 文件列表文件标识 + 文件列表文件描述 + this + + + + 【必选】 + 获取 文件列表文件描述列表 + + 文件列表文件描述列表 + + + + 表 70 版本描述入口 + + + + + 创建版本描述入口 + + 默认为默认版本(Current="false") + 版本标识(不含特殊字符字符串) + 版本号 + 指向包内的版本描述文件 + + + + 【必选】 + 设置版本标识 + + 版本标识 (不含特殊字符,字符串) + this + + + + 【必选】 + 获取版本标识 + 版本标识 + + + + 【必选】 + 设置 版本号 + + 版本号 + this + + + + 【必选】 + 获取 版本号 + + 版本号, -1 表示没有 + + + + 【可选】 + 获取 是否是默认版本 + + 默认值:false + + + + true 表示是默认版本 + + + + 【可选】 + 设置 是否是默认版本 + + true 表示是默认版本 + this + + + + 【必选】 + 设置 指向包内的版本描述文件 + + 版本描述文件路径 + this + + + + 【必选】 + 设置 指向包内 的版本描述文件 + + 版本描述文件路径 + + + + 一个OFD文档可能有多个版本 + + 版本序列 + + + 图 89 版本结构列表 + + + + + + 【必选】 + 增加 版本描述入口 + + 版本描述入口 + this + + + + 【必选】 + 获取 版本描述入口列表 + + 版本描述入口列表 + + + + 静态变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 命名空间 URI,《GB/T_33190-2016》 7.1 命名空间 + + + + + 元素节点应使用命名空间标识符 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + OFD命名空间 + + + + + 通用的OFD命名空间前缀 + + + + + 使用命名空间为 http://www.ofdspec.org/2016,其表示符应为 ofd。 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + xs:date 类型日期格式化 + + + + + xs:dateTime 类型时间日期格式化 + + + + + OFD索引文件 + + + + + 文档容器名称前缀 + + + + + 文档的根节点描述文件名称 + + + + + 文档公共资源索引描述文件名称 + + + + + 文档自身资源索引描述文件名称 + + + + + 注释入口文件名称 + + + + + 附件入口文件名称 + + + + + OFD文档主入口文件名称 + + + + + + + + + + + + + + + + + + + + + + + + + 页面容器名称前缀 + + + + + 页面描述文件名称 + + + + + 记录了资源描述文件名称 + + + + + 记录了页面关联的注解对象 + + + + + 签名容器名称前缀 + + + + + 电子印章文件名 + + + + + 签名/签章 描述文件名 + + + + + 签名值文件名 + + + + + 签名列表文件名称 + + + + + Ofd文档对象 + + + + + odf文档阅读器 + + + + + 文档根节点对象,Document.xml + + + + + ofd文档所有页面 + + + + + 资源管理器 + + + + + 资源管理器 + + + + + 资源定位器 + + + + + ofd文档所有页面 + + + + + Initializes a new instance of the class. + + + + + + Get the document info. + + + + + 获取页面物理大小 + + 如果页面没有定义页面区域,则使用文件 CommonData中的定义 + + + + 页面对象 + 页面大小 + + + + 根据模板ID获取页对象 + + + + + + + Initializes a new instance of the class. + + + + + Convert a path data to a list of PsPathFigure. + + The Path data. + A list of PsPathFigure + + + + Convert line points to PsPolyLineSegment. + + The start point of the line. + The points of the line. + The PsPolyLineSegment + + + + Convert bezier curve points to PsBezierSegment. + + The start point of the bezier curve. + The points of the bezier curve. + The PsBezierSegment + + + + Convert elliptical arc points to ApsArcSegment. + + The start point of the elliptical arc. + The points of the elliptical arc. + The ApsArcSegment + + + + Get the center point of an elliptical arc. + + The start point of the elliptical arc. + The points of the elliptical arc. + The center point. + + + + Split a path data to a list of path commands. + + The Path data. + A list of path commands + + + + 指示指定的字符串是 null 还是空字符串 ("") or (" "). + + + + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd image to ps object. + + The text object. + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd path to ps object. + + The path object. + + + + The process context. + + + + + The image renderer. + + + + + The text renderer. + + + + + The path renderer. + + + + + Initializes a new instance of the class. + + + + + Render a list of ofd pages to ps pages. + + The list of ps pages. + + + + Render a ofd page to ps page. + + The ofd page to be rendered. + A ps page. + + + + Render ofd layers. + + The list of layer. + + + + Render ofd page blocks. + + The list of block. + + + + Render ofd annotation. + + The annot. + + + + Render ofd stamp annotation. + + The stamp annot. + + + The ofd document. + + + + 获取PS图片对象 + + 引用ID + The image stream. + + + + 获取PS图片对象 + + 引用ID + A ps image object. + + + + Get ps font + + 引用ID + fontStyle + The font size. + A ps font. + + + + 获取矢量图形 + + 资源ID + 矢量图形,不存在返回null + + + + Get ofd color space. + + 引用ID + A color space object. + + + + Get ofd font + + 引用ID + + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd text object to ps object. + + The text object. + + + + Render ofd text code to ps object. + + + + + + + + + + + + + + + + + + 获取最终写入的字符编码 + + + + + + + + 获取文本的字体样式 + + The ofd font. + + + + + 获取文本偏移位子 + + + + + + The ofd document. + + + + 根据模板ID获取页对象 + + + + + + + Convert ofd color to ps color. + + The ofd color. + A ps color. + + + + Convert ofd color to ps brush. + + The ofd color. + A ps brush. + + + + Convert ofd axialShd to ps brush. + + The ofd axialShd. + The rectangle. + A ps brush. + + + + Convert ofd radialShd to ps brush. + + The ofd radialShd. + A ps brush. + + + + Convert ofd pattern to ps brush. + + The ofd pattern. + A ps brush. + + + + Converts a ofd font to TtfFont + + + + + The process context. + + + + + The ofd source font. + + + + + The new embedded TTFFont. + + + + + Initializes a new instance of the class. + + + + + 构建所有页面下的字体 + + + + + + 构建当前Page下的字体 + + + + + + 构建Layers节点下的字体 + + + + + + 构建PageBlocks节点下的字体 + + + + + + Builds the font of the current text + + + + + + Build font by font data. + + + + + + Create TTFont by ofd embedded font. + + The ofd source font. + The new TTFFont + + + + Create TTFont by ofd non-embedded font. + + The ofd source font. + The new TTFont + + + + ofd字体数据写入新的ttf字体 + + The source font. + The new ttf font. + The text object. + + + + Create a cff font by font data. + + The font data. + The cff font. + + + + Create a type1 font by font data. + + The font data. + The type1 font. + + + + Create a ttf font by font data. + + + The ttf font. + + + + Is Type1 Font? + + + + + + + Save the TTFFont to the TTFont + + + + + 一对一关系,检查textObject.CGTransforms与textCode的映射关系是否正确,某些情况下不能使用textCode作为写入的字符编码 + + + + + + + Fetch font name. + + + + + + + + + + + + + + + + + + + + + + + + + + + Create ps image. + + The image bytes + The ps image + + + + Reverse y position. + + + + + + 文档容器 + + + + + 表示第几份文档,从0开始 + + + + + 获取文档索引 + + 文档编号(用于表示第几个) ,从0起 + + + + 获取文档的根节点 + + + + + 获取文档公共资源索引 + + + + + 获取文档自身资源索引对象 + + + + + 获取注释列表对象 + + + + + 获取资源容器 + + + + + 获取 数字签名存储目录 + + + + + + + + + + + + 设置 文档公共资源索引 + + 文档公共资源索引 + this + + + + 设置注释列表对象 + + 注释列表对象 + 注释列表对象 + + + + 设置 文档自身资源索引 + + 文档自身资源索引 + this + + + + 设置 文档的根节点 + + 文档的根节点 + this + + + + 获取 资源文件夹 + + 如果资源文件不存在则创建 + + + + this + + + + 获取 数字签名存储目录 + + 如果数字签名存储目录不存在则创建 + + + + 数字签名存储目录 + + + + 获取 页面存储目录 + + 如果页面存储目录则会创建 + + + + 页面存储目录 + + + + 增加资源 + + 资源 + this + + + + OFD文档对象 + + 请显示的调用Close或clean方法清除工作过程中的文件和目录 + + + + + + OFD文档主入口文件名称 + + + + + 最大文档索引 + 1 + + + + + 新建一个OFD文档 + + OFD文档 + + + + 指定路径创建或读取OFD文档容器 + + 如果容器文档已经存在,那么读取 + + + 如果文档不存在那么创建一个文档 + + + + + + + 容器初始化 + + + + + 获取 + + 文档主入口文件对象 + + + + 设置 文档主入口文件对象 + + 文档主入口文件对象 + this + + + + 新建一个文档容器 + + 新建的文档容器 + + + + 获取指定Index的文档 + + 如果文档不存在那么创建 + + + + index + 文档容器 + + + + 通过文档索引获取文档容器 + + 文档索引 + 文档容器 + + + + 获取第一个文档容器作为默认 + + 第一个文档容器 + + + + 页面目录容器 + + + + + 代表OFD中第几页 + + index 从 0 开始取 + + + + + + 获取页面索引 + + + + + 获取页面资源描述文件 + + 页面资源描述文件 + + + + 获取分页注释文件 + + 分页注释文件 + + + + 获取资源文件虚拟容器 + + 获取资源目录 + + + + 获取页面描述对象 + + 页面描述 + + + + 设置页面描述 + + 页面描述 + this + + + + 向页面中增加页面资源 + + 资源 + this + + + + 设置页面资源描述对象 + + 页面资源描述对象 + this + + + + 设置分页注释文件 + + 分页注释文件 + this + + + + 获取页面资源目录 + + 如果目录不存在则创建 + + + + 资源目录容器 + + + + 页面容器 + + + + + 最大页面索引 + 1 + + index + 1 + + + + + + + + + + + + 初始化容器 + + + + + 创建一个新的页面容器 + + 页面容器 + + + + 获取索引的页面容器 + + 页码 = index + 1 + + + + 索引(从0开始) + 指定索引页面容器 + + + + 资源目录 + + + + + 向目录中加入资源 + + 加入的资源将会被复制到指定目录,与原有资源无关 + + + + 资源 + this + + + + + + + + + + + 签名资源容器 + + + + + 表示第几个签名 + + + + 第几个签名,从1开始 + + + + 获取 电子印章文件 + + 电子印章文件 + + + + 获取 签名值文件 + + 签名值文件 + + + + 获取 签名/签章 描述文件 + + 签名/签章 描述文件 + + + + 设置 签名/签章 描述文件 + + 签名/签章 描述文件 + this + + + + 设置签名值文件 + + 签名值文件 + this + + + + 签名容器 + + + + + 签名Index最大值 + 1 + + 也就是签名容器数量,因为签名容器Index从0起算 + + + + + + 获取 签名列表文件 + + + + + 初始化容器 + + + + + 设置 签名列表文件 + + 签名列表文件 + this + + + + 创建一个签名/章虚拟容器 + + 签名/章虚拟容器 + + + + 获取指定签名容器 + + 第几个签名 + 签名容器 + + + + 虚拟容器对象 + + + + + + 文件根路径(完整路径包含当前文件名) + + + + + 目录名称 + + + + + 所属容器 + + + + + 文件缓存 + + + + + 用于保存读取到的文件的Hash + 因为读取操作导致文档加载到缓存, + 但是文件在flush时候,反序列丢失格式字符等 + 导致文件改动。 + + + + + 目录中的虚拟容器缓存 + + + + + 获取当前容器完整路径 + @return 容器完整路径(绝对路径) + + + + + + + + + + 获取虚拟容器的名称 + + 名称 + + + + 获取在容器中的绝对路径 + + 绝对路径对象 + + + + 获取该容器所属容器 + + 所属容器对象 + + + + 向虚拟容器中加入文件 + + 文件路径对象 + this + + + + 向虚拟容器加入对象 + + 文件名 + 元素对象 + this + + + + 通过文件名获取元素对象 + + 文件名 + 元素对象(不含代理) + + + + 计算获取的对象的序列化Hash值 + + 文档对象 + Hash + + + + 判断文件是否改动 + + 文件名 + 文件对象 + true - 已经被改动;false - 未改动 + + + + 获取容器中的文件对象 + + 文件名称 + 文件路径对象 + + + + + + 判断文件或对象是否存在 + + 文件名称 + true - 存在;false - 不存在 + + + + 删除整个虚拟容器 + + + + + 将缓存中的对象写入到文件系统中 + + + + + 从缓存中刷新指定容器到文件系统中 + + 容器名称 + this + + + + 从缓存将指定对象写入到文件系统中 + + 文件名称 + this + + + + 元素杯子 + + 对象序列化和反序列化工具 + + + 反序列化 向杯子中注入水 + + + 序列化把杯子中的水倒出 + + + + + + 从文件加载反序列化元素对象 + + 文件路径对象 + 反序列化的元素对象 + + + + 错误OFD文件结构和文档格式异常 + @since 2020-04-17 03:29:28 + + + + + 内容抽取器 + + + + + 解析结果接收器 + + + + + 构造文字抽取器 + + OFD解析器 + + + + 抽取指定页面内的所有文字 + + 页码,从1开始 + 页面内容的所有文本内容序列 + + + + 页块处理 + + 文本列表 + 页块列表 + + + + 获取OFD内的所有文本内容 + + OFD中所有文本内容 + + + + 遍历所有页面 + + 接受 + + + + DeltaX和DeltaY工具 + + + + + 获取Delta数据 + + OFD数组对象 + 文本长度 + 一组坐标偏移值 + + + + ofd解析器 + + + + + 资源管理器 + + + + + 因一些ofd文件无法使用ZipUtil解压缩,可以让用户自己在外面解压缩好后,传入根目录创建 + 例如用户可以使用unzip或者unar等命令行方式解压缩 + + 已经解压的OFD根目录位置,因此通过参数控制是否删除目录。 + 退出时是否删除 unzippedPathRoot 文件, true - 退出时删除;false - 不删除 + + + + 初始化reader + + + + + 获取资源管理器 + + 资源管理器获取到的对象均为只读对象 + + + + 资源管理器 + + + + 文档异常 + + + + + 错误路径异常 + @since 2020-04-09 20:05:29 + + + + + 关键字抽取 + + + + + 每毫米的point单位 + 1 point / 2.83464567 ≈ 0.35277778 mm + + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字列表 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字 + 要检索的页码,从1开始,不超过最大页码 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字列表 + 要检索的页码,从1开始,不超过最大页码 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 检查后缀匹配 + + 待匹配文本 + 关键字 + 是/否 匹配 + + + + 处理后缀匹配断字断行文本定位关键字 + + 关键字字符串 + 映射对象 + 文本定位列表 + 关键字位置列表 + TextCode位置 + TextCode文本起始位置 + 第一个文字定位 + + + + 处理前缀匹配断字断行文本定位关键字 + + 关键字字符串 + 映射对象 + 文本定位列表 + 关键字位置列表 + 定位起始位置 + 第一个文字定位 + + + + 检索下一个文本定位节点 + + 关键字字符串 + 文本定位列表 + 合并的TextCode列表 + 文本资源映射对象 + TextCode位置 + 最先匹配字符串 + 第一个匹配文字 + + + + 处理正常关键字 + + 关键字 + 映射对象 + 为转移列表 + 文字定位 + 文本索引 + + + + 获取CTM后的关键字位置 + + 文字定位 + 文本索引 + 文本资源 + 文字对象 + CTM对象 + X偏移 + Y偏移 + 文本长度 + 关键字位置 + + + + 合并坐标 + + 坐标列表 + 矩形框 + + + + 坐标转换 + + 矩阵数组 + 原始X + 原始Y + 计算后位置 + + + + 获取Matrix数据 + + ctm对象 + 矩阵对象 + + + + 合并关键字位置对象 + + 关键字 + 第一个关键字起始匹配位置 + 检索到的关键字列表 + 合并列表 + 外接矩形映射 + + + + 合并Box + + 盒子列表 + + + + 获取获取模板字典 + + 资源定位器 + Document File路径 + 文档对象 + 文件不存在异常 + 文档解析异常 + + + + 创建关键字位置对象 + + 文字定位对象 + 文本索引 + 页码 + 文字对象 + 字体属性 + X偏移 + Y偏移 + 文本长度 + 关键字对象 + + + + 获取文本宽度,单位毫米(mm) + + 文字索引 + 文本长度 + X偏移量 + 文字字号 + 文本宽度 + + + + 获取字体 + + 文字对象 + 字形对象 + 字体对象 + + + + 获取左下角位置 + + 矩形框 + 文字定位 + X偏移 + Y偏移 + 文字索引 + 左下角坐标 + + + + 预处理数据 + + OFD解析器 + 文本列表 + 外接矩形映射 + 字体映射对象 + 模板数据 + 页码 + + + + 页面块处理 + + 文本列表 + 外接矩形映射 + 字体映射对象 + 页码 + 页块列表 + + + + 获取字体映射对象 + + 资源定位器 + Document File路径 + 文档对象 + 文件不存在异常 + 文档解析异常 + + + + 关键字位置 + + @author minghu-zhang + @since 16:25 2020/9/26 + + + + + 关键字所在页码 + + + + + 矩形区域 + + + + + 所属关键字 + + + + + 文本资源 + @since 16:25 2020/9/25 + + + + + 页码 + + + + + 字体对象 + + + + + 文字对象 + + + + + @since 2020/9/25 + + + + + @since 2020/8/11 + + + + + @since 2020/8/11 + + + + + @author dltech21 + @since 2020/8/11 + + + + + @author dltech21 + @since 2020/8/11 + + + + + OFD解析器 + + + + + OFD虚拟容器对象 + + + + + 资源定位器 + + 解析路径获取资源 + + + + + + 是否已经关闭文档 + + + + + 构造一个 OFDReader + + OFD文件位置,例如:"/home/user/myofd.ofd" + OFD文件操作IO异常 + + + + 构造一个 OFDReader + + OFD文件输入流 + OFD文件操作IO异常 + + + + 因一些ofd文件无法使用ZipUtil解压缩,可以让用户自己在外面解压缩好后,传入根目录创建 + 例如用户可以使用unzip或者unar等命令行方式解压缩,因此通过参数控制是否删除目录。 + + 已经解压的OFD根目录位置 + 退出时是否删除 unzippedPathRoot 文件, true - 退出时删除;false - 不删除 + + + + 获取文档虚拟容器 + + OFD文档虚拟容器 + + + + 获取默认文档Doc_0中的签名列表文件的绝对路径 + + 签名列表文件绝对路径 + 错误OFD结构和文件格式导致结构无法解析 + + + + 获取默认的签名列表对象 + + 签名列表对象 + + + + 文档是否包含数字签名 + + true - 含有;false - 不含; + + + + 获取注解列表文件对象 + + 如果文档中没有注释文件,那么返还null + + + + 注解列表文件对象或null + + + + 获取OFD含有的总页面数量 + + 总页数 + + + + 获取页面信息 + + 页码,从1开始 + 页面信息 + + + + 获取页面物理大小 + + 如果页面没有定义页面区域,则使用文件 CommonData中的定义 + + + + 页面对象 + 页面大小 + + + + 通过页面页码获取页面对象 + + 页码,从1起 + 页面对象 + + + + 获取页面的对象ID + + 页码 + 对象ID + + + + 获取资源定位器 + + 资源定位器 + + + + 获取附件对象 + + 附件名称 + 如果附件或附件记录不存在,那么返还null + 文档结构损坏 + + + + 获取附件对象 + + 该方法不会恢复资源定位器 + + + + 附件名称 + 资源定位器 + 附件对象 + + + + 关闭文档 + + 删除工作区 + + + + 工作区删除异常 + + + + 页面信息 + + + + + 页面的物理大小 + + + + + 页面底层对象 + + + + + 页面在OFD中的对象ID + + + + + 页码,从1起 + + + + + 页面的绝对路径 + + + + + 资源定位器 + + 通过给与的资源地址获取对应的资源文件或对象 + + + + + + 路径匹配正则列表 + + + + + 资源容器 + + 该容器带有缓存功能 + + + + + + 当前目录 + + + + + 保存的路径栈 + + 每次调用Save都会入栈 + + + + + + * + 通过虚拟容器创建资源加载器 + + 创建资源加载器的同时切换路径至虚拟容器的目录 + + 虚拟容器 + + + + 保存当前工作路径 + + this + + + + 还原原有工作区 + + 如果没有保存过工作区,那么不会造成任何影响 + + + + this + + + + 转换路径对象为绝对路径字符串 + + 路径对象 + 绝对路径字符串 + + + + 路径转换为绝对路径 + + 容器路径 + 绝对路径字符串 + + + + 重置工作路径 + + 重置后将回到根路径 + + + + this + + + + 切换到制定的虚拟容器目录下 + + 虚拟容器 + this + + + + 改变目录 Change Directory + + 路径位置 + this + 路径不存在 + + + + 改变目录 Change Directory + + 路径最后如果是目录也不加 "/" + + + + 路径位置 + 已有工作目录 + this + 路径不存在 + + + + 判断路径是否存在 + + 路径集合 + true -存在,false - 不存在 + + + + 判断路径是否存在 + + 工作路径 + true -存在,false - 不存在 + + + + 打印工作目录 Print Work Directory + + 路径最后如果是目录也不加 "/" + + + + 工作目录路径 + + + + 打印工作目录 Print Work Directory + + 工作目录 + 工作目录路径 + + + + 获取以当前路径为基础的容器内绝对路径 + + 目标路径 + 容器内绝对路径 + + + + + + 获取路径下的文件 + + 路径 + 系统文件路径 + 文件或路径不存在 + + + + 通过路径获取容器 + + 路径序列 + 虚拟容器 + 路径不存在 + + + + 根据路径获取虚拟容器对象 + + 获取的同时会缓存整个容器链路 + + + + 容器目录 + 虚拟容器 + 路径不存在 + + + + 资源管理器 + + 使用ID随机访问文档中出现的资源对象 + + + 包括 公共资源序列(PublicRes) 和 文档资源序列(DocumentRes) + + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + + + 颜色空间 + + + + + 绘制参数 + + + + + 字形 + + + + + 多媒体对象 + + + + + 矢量图像 + + + + + 创建资源管理器 + + 选择默认文档(Doc_0)进行资源的加载 + + + + OFD解析器 + + + + 指定文档创建资源管理器 + + OFD解析器 + 文档序号,从0起 + + + + 获取绘制参数 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 绘制参数,不存在返回null + + + + 获取多媒体对象 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 多媒体对象,不存在返回null + + + + 获取图片资源的图片对象 + + 引用ID + 图片流 + IO异常 + + + + 获取图片对象的图像 + + 如果图片存在蒙板,那么返回蒙板后的图像 + + + + 图片对象 + 图片流(蒙板后) + 图片操作IO异常 + + + + 获取 字形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 字形,不存在返回null + + + + 获取颜色空间 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 颜色空间,不存在返回RGB + + + + 获取矢量图形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 矢量图形,不存在返回null + + + + 加载指定文档的资源 + + 由于每个文档的ID体系都是独立的, + + + 所以资源也是独立的,因此每次加载都会对上一个文档的资源进行清理。 + + + + 文档序号,从0起 + this + 文件读写异常 + 文档解析异常 + + + + 多文档资源加载 + + 文件读写异常 + 文档解析异常 + + + + 加载文档中的资源 + + 文档描述信息 + 文件读写异常 + 文档解析异常 + + + + 加载资源文文件中描述的资源对象 + + 该方法不应该抛出异常所有异常均应该被忽略以便程序继续执行 + + + + 资源加载器 + 资源文件位置 + + + + 获取资源的绝对地址 + + 资源加载器 + 资源文件的通用存储路径 + 资源文件路径 + 资源文件绝对地址 + + + + 获取文档中所有 颜色空间 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 颜色空间列表 + + + + 获取文档中所有 绘制参数 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 绘制参数 + + + + 获取文档中所有 字形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 字形 + + + + 获取文档中所有 媒体对象 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 媒体对象 + + + + 获取文档中所有 矢量图形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 矢量图形 + + + + 印章ofd的解析器 + + + + + 图片处理工具 + @since 2021-04-10 18:31:03 + + + + + 蒙版抠图 + + 根据mask中像素的颜色将原图中的像素抠掉 + + + + 原始图片 + 蒙板图片 + 扣去背景的图片对象 + + + + 创建图片 + + 图形宽度 + 图像高度 + 是否透明 + + + + 计算灰度 + + 红色通道 + 绿色通道 + 蓝色通道 + + + + 命名空间清理类 + + 用于清理已经存在的命名空间 + + @author libra19911018 + @since 2020-10-15 19:38:15 + + + + + + 命名空间变更 + @since 2020-10-15 20:01:20 + + + + + This is a abstract class base processor, it provides common functions. + + linwei + + + + pretreatment of picture + + input file stream + first node + picture location + xml namespace manager + result stream + + + + This is the interface of pre and post processors + + linwei + + + + interface for compression adapter + + linwei + + + + compress or decompress + + true if succeeded + false if failed + exceptions happen + + + + input file name + + + + + output file name + + + + + This interface defines the exposed interface of Translator + + linwei + + + Thrown whenever an error occurs during the build. + linwei + + + Thrown whenever an error occurs during the build. + linwei + + + + An XmlUrlResolver for zip packaged files + + sunqingzhi, linwei + + + + Zip archiving states + + linwei, sunqingzhi + + + + Not archiving + + + + + Waiting for an entry + + + + + Processing an entry + + + + + An XmlWriter implementation for serializing the xml stream to a zip archive. + All the necessary information for creating the archive and its entries is picked up + from the incoming xml stream and must conform to the following specification : + + TODO : XML schema + + example : + + <pzip:archive pzip:target="path"> + <pzip:entry pzip:target="relativePath"> + <-- xml fragment --< + </pzip:entry> + <-- other zip entries --< + </pzip:archive> + + + + + + The zip archive + + + + + A delegate XmlWriter that actually feeds the zip output stream. + + + + + The delegate settings + + + + + 源文件 + + + + + Source attribute of the currently processed binary file + + + + + 所有需要处理的二进制文件 + + + + + Constructor + + + + + Delegates WriteStartElement calls when the element's prefix does not + match a zip command. + + + + + + + + Delegates WriteEndElement calls when the element's prefix does not + match a zip command. + Otherwise, close the archive or flush the delegate writer. + + + + + copy binary data (currently, only picture) in to zip archive + + + + + Simple representation of elements or attributes nodes + + + + + An XmlUrlResolver for embedded resources. + + sunqingzhi, linwei + + + + This class is used to hold contants. + + linwei + linyaohu + + + + OOX file type + + linyaohu + + + + Translator factory which can judeg the input file type and initialize + + linyaohu + + + + check uof file type + + source file name + document type + + + + The event arguments passed between TranslatorLib and Add-in + + linwei + + + + This is a abstract class base Translator, it provides common functions. + + linwei + linyaohu + + + + main transform which needs the orginal File + + transform direction + xsl location + original File + File after pretreatment + output file + + + + zip the big xml file + + input xml file + zip file + + + + pretreatment of picture + + input file stream + first node + picture location + xml namespace manager + result stream + + + + pretreatment of custom xml data,OOXM to UOF + + input file stream + first node + name space manager + result stream + + + + get the embeded chart data + + chart type node (eg:c:barChart) + name space + chart data + + + + get the series name + + series node + name space + series name + + + + get the category name + + series node + name space + category name + + + + get the series' name + + chart xml file + series' name + + + + get the categories name + + chart xml file + categories name + + + + Check the chart cotains how many chart Types (Combo type) + + chart file + name space manager + chart type nodes + + + + get the title's text + + a:p + name sapce + title + + + + This class is used to handle the post processing for UOF.Currently, + we just replace the picture element with base64 content. + + sunqingzhi, linwei + + + + Zip archiving states + + linwei, sunqingzhi + + An XmlWriter implementation for serializing the xml stream to a zip archive. + All the necessary information for creating the archive and its entries is picked up + from the incoming xml stream and must conform to the following specification : + + TODO : XML schema + + example : + + <pzip:archive pzip:target="path"> + <pzip:entry pzip:target="relativePath"> + <-- xml fragment --< + </pzip:entry> + <-- other zip entries --< + </pzip:archive> + + + + + + The zip archive + + + + + A delegate XmlWriter that actually feeds the zip output stream. + + + + + The delegate settings + + + + + 源文件 + + + + + Source attribute of the currently processed binary file + + + + + 所有需要处理的二进制文件 + + + + + Constructor + + + + + Delegates WriteStartElement calls when the element's prefix does not + match a zip command. + + + + + + + + Delegates WriteEndElement calls when the element's prefix does not + match a zip command. + Otherwise, close the archive or flush the delegate writer. + + + + + copy binary data (currently, only picture) in to zip archive + + + + + Simple representation of elements or attributes nodes + + + + Thrown whenever an error occurs during the build. + + + Constructs an exception with no descriptive information. + + + Constructs an exception with a descriptive message. + The error message that explains the reason for the exception. + + + Constructs an exception with a descriptive message and a reference to the instance of the Exception that is the root cause of the this exception. + The error message that explains the reason for the exception. + An instance of Exception that is the cause of the current Exception. If is non-null, then the current Exception is raised in a catch block handling innerException. + + + Initializes a new instance of the exception class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Thrown whenever an error occurs during the build. + + + Constructs an exception with no descriptive information. + + + Constructs an exception with a descriptive message. + The error message that explains the reason for the exception. + + + Constructs an exception with a descriptive message and a reference to the instance of the Exception that is the root cause of the this exception. + The error message that explains the reason for the exception. + An instance of Exception that is the cause of the current Exception. If is non-null, then the current Exception is raised in a catch block handling innerException. + + + Initializes a new instance of the exception class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + ZipFactory provides instances of IZipReader and IZipWriter. + + + + + Provides an instance of IZipWriter. + + The path of the ZIP file to create. + + + + + Provides an instance of IZipReader. + + The path of the ZIP file to read. + + + + + ZipReader defines an abstract class to read entries from a ZIP file. + + + + + Get an entry from a ZIP file. + + The relative path of the entry in the ZIP + file. + A stream containing the uncompressed data. + + + + Close the ZIP file. + + + + + ZipWriter defines an abstract class to write entries into a ZIP file. + To add a file, first call AddEntry with the relative path, then + write the content of the file into the stream. + + + + + Adds an entry to the ZIP file (only writes the header, to write + the content use Stream methods). + + The relative path of the entry in the ZIP + file. + + + + Resolves a path by interpreting "." and "..". + + The path to resolve. + The resolved path. + + + is the palette index for pixel 3 of row 1 (i1 is lsb; i3 is msb). + + + + Initializes new PCL font definition object. + + + + + + Write font with PCL XL Font Formats. + + PCL writer. + + + + PCL font. + + TTFont + + + + Write font with PCL XL Font Formats. + + PCL writer. + + + + Constructor + + Pcl document writer. + + + + Write font with PCL XL Font Formats. + + + + + Write font with PCL XL Font Formats. + + + + + PCL only support point unit "Int16",but PsPath support point unit "Float". + 1.When filling region is very small,overlap to line("Int16" to "Float"). + If only fill(no stroke),PsPath disappear. + Bug_127/220/316/354/499,BaselineFile_8 + 2.Glyph position loss precison. + So,by scaling,advoid precison loss. + + + + + Font segment identifier. + + + + + Global TrueType Data + + + + + Null segment + + + + + Returns the encoding associated with the specified code page identifier. + + The code page identifier of the preferred encoding. + The encoding that is associated with the specified code page. + + + + Returns the encoding associated with the specified code page name. + + The code page name of the preferred encoding. + The encoding that is associated with the specified code page. + + + + + + + + + + + + Creates a font, using font definition ( that contains font type and font files ) + + + + + + + + Creates a font, using font definition and ttfReader + + + + + + + + Parses font from fontReader and fontDefinition + + + + + + + + Parse for fontSource + + + + + + Parse font form fontDefinitions and ttfReader + + + + + + + Parse for font + + + + + Parse for fontReader + + + + + + Parse for font + + + + + + + + + + + + + + Encodes table data to ASCII hexadecimal string. + + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Xps.ApsGlyphsIndicesToXpsReader + + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Ps.XmlDocumentBuilder,IsValidXmlChar(char c) + + + + + + + Get the char width + + The index + The char width + + + + Get the text rise + + The text rise + + + + check character range + + + + + + + Encode the font name,Because the font has illegal characters, Postscript does not know + + + + + + + Writes text followed by new line characters. + The string must contain only 7 bit characters. + + + + + Edge softness. + + Target image. + Width. + Height. + + + + + bug4304中,当圆弧起始点和终点在同一矩形区域,且该圆弧角度大于180度,说明该曲线的圆弧角度大于270,在绘制0区域时,由于cut点在曲线的起始点, + 在计算曲线时会漏掉该区域大于270度到曲线终点这部分曲线,该方法重新计算该部分曲线 + + + + + + + + + + 将unicode字符串转为普通字符串 + + + + + + + Whether was replaced. + + + + + Add segment. + + The record + The value + + + + Modify the segment. + + The value + + + + Adjust the paragraph after replace. + + The input segments + The replaceed text width + + + + Get charcodes. + + The unicodeString + The char code + + + + Re set text show operator. + + The text range + + + + Get the bytes per char. + + The bytes count + + + + Whether need adjust space. + + The curent segment + The pre segment + if need return ture or false + + + + To chars string + + The hex code + The string + + + + Get the font size. + + + + + + Resetting the text manager. + + The current string + + + + Add the segment before. + + The before record + The shift + + + + Add the after segment. + + The after record + The after segment + + + + Add segment. + + The record + The pdf string + + + + Modify the segment. + + The value + + + + Get charcodes. + + The unicodeString + The char code + + + + Unicode string to charcodes. + + The unicode strings + The charcodes + + + + Get unicode string. + + The bytes + The unicode string + + + + Get unicode string. + + The bytes + it is process escape character? + The unicode string + + + + Add segment. + + The record + The val + + + + Modify the segment. + + The value + + + + Get charcodes. + + The unicodeString + The char code + + + + Adjust paragraph after replaced. + + The inputsgment + The width + + + + Re set text show operator. + + The text range + + + + Specified the text extract area. + + + + + Whether is use simple extraction. + + + + + Whether is extract all texts. + + + + + Whether is use simple extraction. + default vale: false. + + + + + Whether is extract all texts. + default vale: false. + + + + + Specified the text extract area. + default vale: RectangleF.Empty. + + + + + Initialize a instance. + + + + + Initializes new instance of the + object for the specified text formatting mode. + + The isSimpleExtraction + The isExtractAllText + The extractArea + + + + rather than a steaming layout, a Pdf document is made up of several location-fixed blocks,each of which has its own font and font size + Defines different modes which can be used while converting pdf document into text. See class. + + + + + Filter the text rangles. + + The text ranges + The fitered text ranges + + + + Whether the segment is visible. + + The segment + If visible ,return true,or false + + + + Show hidden text? + + + + + Whether is show hidden texts. + default vale: false. + + + + + the current path + + + + + the current clip path + + + + + the current path location + + + + + Controls options for hiding text + + + + + Controls options for hiding text + + + + + Parses command queue and get current page all path + + + + + save to the current dictionary + + + + + 执行裁剪 + + + + + Determines whether the current text is hidden + + + + + + + Delete physical segment. + + The segment + + + + Controls options for hiding text + + + + + Show hidden text? + + + + + Index of do command + + + + + Index of each command + + + + + the current page all path + + + + + Initializes a new instance of the class. + + + + + Gets od Sets,show hidden text? + + + + + Gets od Sets,Index of do command + + + + + Gets od Sets,Index of each command + + + + + Add clip path + + + + + + Get clip paths + + + + + + The horizontal scal of current text + + + + + Get or set the horizontal scal + + + + + Set the horizontal scal value to textElement + + The text element + The font + + + + write embedFont tag + + + + + + Whether the text inside the rectangle is the hyperlink text. + + The rectangle + if inside return true or false + + + + Hand hyper glyph. + + The new position + The new size + The glyphs + The text + + + + Create new hyper glyph. + + The new position + The new size + The glyphs + The text + + + + Hand new line. + + The new position + + + + Clear current hyper glyph. + + + + + Whether the text is on same horizontal line. + + The ps matrix + if the text is on same horizontal line return true,or false + + + + Get the ps font. + + The ps glyphs + ps font + + + + Whether this page is a large page + + if current page`s width big than 1584 or height big than 1584,return ture or false + + + + Crop the ps image. + + The ps path + The ps image + The ps image + + + + Get the image clip rectanglef. + + The ps path + The rectangle array list + + + + Get the visible clip region. + + The ps path + The visible clip region + + + + Visit hyper link. + + The hyper link + + + + html Split Page Number + + + + + + + + + + html write javascript + + + + + Sort text block. + + The text block + + + + compare whether two color values are the same + + true if the same or false + + + + The class representing a result of searching designated text from PDF page. + + + + + Current text actual font name + + + + + Current text original font name + + + + + Get the actual font name + + + + + Get the original font name + + + + + Gets search text of this System.String structure. + + + + + Gets match text of this System.String structure. + + + + + Gets text which is including the searched text of this System.String structure. + + + + + Gets all the text of the line where covers the searched text of this System.String structure . + + + + + Gets page which is including the searched text of this Spire.Pdf.PdfPageBase structure. + + + + + Gets index of page which is including the searched text of this System.Int32 structure. + + + + + Gets the position of the searched text of this System.Drawing.PointF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the positions of the searched text of this System.Drawing.PointF structure. + + + + + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the size of the searched text of this System.Drawing SizeF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the sizes of the searched text of this System.Drawing SizeF structure. + + + + + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + Highlight the seached text. + + + + + Highlight the seached text. + + The hight light color. + + + + apply hight light of the seached text + + + + + Apply hight light of the seached text + + Hight light color + + + + Processing Rectangle. + + The textRect + The processed rectangle + + + + apply hight light of the seached text + + + + + apply hight light of the seached text,with unicode + + + + + + + apply hight light of the seached text + + + + + apply hight light of the seached text,with unicode + + + + + + + The class representing all the resuls of searching designated text from PDF page + + + + + Setting find text Parameters + + + + + Do not select any parameters. + + + + + Full word matching. + + + + + Ignore English character case. + + + + + Find text Cross line + The target text in one line or more(>=2) lines. + It will be remove in the future because it will be set as default ; + + + + + Regular expression matching. + + + + + Representing the way how to find text which a target text. + + + + + Find text in a page with a table. + + The page + The find areas. + The target text + The way to find + The result find text + + + + Split text ranges by a list of rectangle. + + All text ranges + The list of rectangle. + A list of split result. + + + + Find text in a page + + The page + The find area. if the value is RectangleF.Empty, area is the whole page. + The target text + The way to find + The result find text + + + + Find all text in a page + + The page + All text find in the page. + + + + Convert text coordinate, the lower-left corner is the origin of coordinates. + + The page + + + + Revert text coordinate, revert to the original page coordinate. + + The page + + + + Sort text range list by coordinate, and contact all text. + + + + + Match TextFind in the range of rectangle from the given PDF Page. + the coordinate origin is top left corner of the page. + + Provide a rangle to match textFind. + The match TextFinds. + + + Abstract base class for code point mapping classes (1-byte character encodings). + + + Code point that is used if no code point for a specific character has been found. + + + Unicode value indicating the the character is "not a character". + + + Main constructor. + @param name the name of the encoding + @param table the table ([code point, unicode scalar value]+) with the mapping + + + Extended constructor. + @param name the name of the encoding + @param table the table ([code point, unicode scalar value]+) with the mapping + @param charNameMap all character names in the encoding (a value of null will be converted + to ".notdef") + + + Builds the internal lookup structures based on a given table. + @param table the table ([code point, unicode scalar value]+) with the mapping + + + {@inheritDoc} + + + {@inheritDoc} + + + Returns the main Unicode value that is associated with the given code point in the encoding. + Note that multiple Unicode values can theoretically be mapped to one code point in the + encoding. + @param idx the code point in the encoding + @return the Unicode value (or \uFFFF (NOT A CHARACTER) if no Unicode value is at that point) + + + {@inheritDoc} + + + Returns the index of a character/glyph with the given name. Note that this + method is relatively slow and should only be used for fallback operations. + @param charName the character name + @return the index of the character in the encoding or -1 if it doesn't exist + + + {@inheritDoc} + + + {@inheritDoc} + + + The characters in WinAnsiEncoding + + + Return the glyphname from a string, + eg, glyphToString("\\") returns "backslash" + + + Return the string representation of a glyphname, + eg stringToGlyph("backslash") returns "\\" + + + + Compression method enumeration + + + + Uncompressed storage + + + Deflate compression method + + + + UnitConvertor + + + + + Gets column name according to column index. + + + + + + + 判断是否是阿拉伯数字 + + + + + + + filter character + + + + + + + [Content_Types].xml + + + + + xl/workbook.xml + + + + + xl/_rels/workbook.xml.rels + + + + + xl/sharedStrings.xml + + + + + xl/worksheets/sheet.xml + + + + + docProps/app.xml + + + + + _rels/.rels + + + + + docProps/core.xml + + + + + xl/theme/theme1.xml + + + + + xl/styles.xml + + + + + xl/worksheets/_rels/sheet.xml.rels + + + + + xl/drawings/drawing.xml + + + + + xl/drawings/_rels/drawing.xml.rels + + + + + all xml file to StringBuilder + + + + + set cell value index + + + + + all xml file to zip stream + + + + + Initializes a new instance of the class. + + + + + create sheet.xml + + + + + all drawing.xml file + + + + + create drawing.xml + + + + + begin drawing + + + + + end drawing + + + + + add image id + + + + + all image save to dictionary + + + + + add image,absolute + + + + + + + + + + add image,relative + + + + + + + + + + + + + + begin sheet + + + + + end sheet + + + + + + + + + + + + + + + save and compress all xml file to stream + + + + + + compress to zip file + + + + + dispose + + + + + write pageobject to xlsx + + + + + Unit Convertor + + + + + + + + + + save xlsx file to stream + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + pageObjects write xlsx + + + + + + + 获取行列编号(A1,A2,A2....) + + + + + + + + 单元格内容是否为空 + + + + + + + 单元格内容是否是数字 + + + + + + + 获取当前集合中文本最大高度 + + + + + + + 获取当前行的最大高度 + + + + + + + + 获取当前行的最大高度 + + + + + + + 获取当前行的最大高度 + + + + + + + 每一列额外增加的宽度值 + + + + + 每一行额外增加的宽度值 + + + + + 获取当前sheet列宽 + + + + + + + 每一列需要额外增加的宽度值 + + + + + + + 每一列需要加宽的值 + + + + + + + pageObjects write xlsx + + + + + + + + 写入border样式,返回引用的样式Id号 + + + + + + + 写入background样式,返回引用的样式Id号 + + + + + + + 把边框样式Id,填充背景样式Id,是否自动换行写入样式表中CellXfs节点,返回CellXfs节点引用的Id号 + + + + + + + + + + 获取当前列的文本在SharedStrings.xml中的字符串 + + + + + + + + + + 获取单元格内所有文本的SharedStrings.xml字符串 + + + + + + + + + + + 获取当前行所有文本的SharedStrings.xml字符串 + + + + + + + + + + 每一行的文本对象按Y坐标排列 + + + + + + + 获取当前文本的SharedStrings.xml字符串 + + + + + + + + 获取空格字符串 + + + + + + + + + 获取空格宽度 + + + + + + + + 根据空格字符串得到样式 + + + + + + + + 获取两行文本之间隔多少个空行 + + + + + + + + + enter line,换行 + + 需要换多少行 + 字符大小 + + + + + 获取所有已经被合并的行列 + + + + + + + 横向合并列,返回合并列的范围 + + + + + + + 纵向合并行,返回合并行的范围 + + + + + + + + 合并行 + + + + + + + + + 查找当前列是否被合并,返回合并的范围 + + + + + + + + + + + 查找当前列是否被合并,返回合并的范围 + + + + + + + + + 根据行列所引查找对象 + + + + + + + + + 合并单元格的文本 + + + + + + + 合并单元格的文本 + + + + + + + 单元格默认宽度 + + + + + 单元格默认高度 + + + + + 按相对位置写入图片 + + + + + + + + + 按绝对位置写入图片 + + + + + + 计算图片开始位置y在logicSheet表中的开始行索引 + + + + + + + + 计算图片开始位置y坐标点和与开始行的偏移位置 + + + + + + + + 计算图片在logicSheet表中的结束行索引 + + + + + + + + 计算图片结束位置y坐标点和与结束行的偏移位置 + + + + + + + + 计算图片在logicSheet表中的开始列索引 + + + + + + + + 计算图片开始位置x坐标点和与开始列的偏移位置 + + + + + + + + 计算图片在logicSheet表中的结束列索引 + + + + + + + + 计算图片结束位置X坐标点和与结束列的偏移位置 + + + + + + + + 按相对位置写入图片 + + + + + + + + 反转逻辑sheet,改变Y坐标起始点,从左上角开始 + + + + + + + LogicSheet最后一行没有内容,移出最后一行 + + + + + + + LogicSheet最后一行没有内容,移出最后一行 + + + + + + + 根据旧的逻辑列创建新的逻辑列 + + + + + + + 根据每一行增加的高度,更新逻辑行的高度,起始点,结束点 + 根据每一列增加的宽度,更新逻辑列的宽度,起始点,结束点 + + + + + + + 根据每一行增加的高度,更新逻辑行的高度,起始点,结束点 + + + + + + + 根据每一列增加的宽度,更新逻辑列的宽度,起始点,结束点 + + + + + + + + + + + + + + + + current file path + + + + + namespace used by xml + + + + + override theme1.xml + + + + + override styles.xml + + + + + override image/jpeg + + + + + Default image/png + + + + + Default Extension rels + + + + + Default Extension xml + + + + + override workbook.xml + + + + + override app.xml + + + + + override core.xml + + + + + override sharedStrings.xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + sheet index for create sheet + + + + + add a sheet.xml + + + + + + Drawing id for add image + + + + + add a drawing.xmlk + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + sheet count + + + + + close xml last node + + + + + sheet count + + + + + Initializes a new instance of the class. + + + + + add app.xml content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + author + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add core.xml content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + cNvPr node Id + + + + + add image,absolute + + + + + + + + + + + add image,relative + + + + + + + + + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + relationship id for reference image + + + + + add a relationship for reference image + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add value for cell + + + + + + + update all cell count + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + 文本各种字体样式,统计总数 + + + + + 文本各种字体样式,集合对象 + + + + + 单元格背景各种样式,统计总数 + + + + + 单元格边框各种样式,统计总数 + + + + + 单元格边框各种样式,集合对象 + + + + + 单元格背景各种样式,集合对象 + + + + + 单元格引用CellXfs中的节点,统计总数 + + + + + 单元格引用CellXfs中的节点,集合对象 + + + + + 设置字体样式 + + + + + + + + + + 获取设置字体样式字符串 + + + + + + 从单元格边框样式集合中,获取相同样式的索引 + + + + + + + 从单元格背景样式集合中,获取相同样式的索引 + + + + + + + 从单元格边框样式集合中,获取所有的样式字符串 + + + + + + + + + + + + + + + + 从单元格背景样式集合中,获取所有的样式字符串 + + + + + + 增加一条单元格样式引用记录 + + + + + + + + + + + 获取单元格样式所有的引用记录 + + + + + + add content styles.xml + + + + + close node + + + + + 单元格字体样式类 + + + + + 单元格字体名称 + + + + + 单元格字体样式 + + + + + 单元格字体大小 + + + + + 单元格字体颜色 + + + + + 单元格字体在样式表中的索引 + + + + + 单元格字体名称 + + + + + 单元格字体样式 + + + + + 单元格字体大小 + + + + + 单元格字体颜色 + + + + + 单元格字体在样式表中的索引 + + + + + 比较是否是相同的样式 + + + + + + + 单元格在样式表中引用的节点 + + + + + 单元格在样式表中引用的节点,索引值 + + + + + 字体样式的索引值 + + + + + 背景样式的索引值 + + + + + 边框样式的索引值 + + + + + 是否自动换行 + + + + + 文本默认居左 + + + + + 单元格在样式表中引用的节点,索引值 + + + + + 字体样式的索引值 + + + + + 背景样式的索引值 + + + + + 边框样式的索引值 + + + + + 是否自动换行 + + + + + 文本默认居左 + + + + + 比较是否是相同的样式 + + + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add themeElements content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add a sheet.xml + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + open sheet.xml + + + + + 添加宽度xml标签 + + + + + 更新宽度表Cols + + + + + + 为单元格引用一个样式 + + + + + + + 为单元格引用一个样式 + + + + + + + + + + + + + + 忽烈错误的单元格 + + + + + 合并了某些单元格 + + + + + 添加行,设置行高 + + + + + + + 结束行 + + + + + 开始sheet + + + + + 结束sheet + + + + + 合并的单元格写入mergeCells节点 + + + + + + close node + + + + + 忽烈错误的单元格写入ignoredErrors节点 + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add drawing reference for image + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + add theme1.xml refences + + + + + add styles.xml refences + + + + + add sharedStrings.xml refences + + + + + close xml last node + + + + + Relationship index + + + + + Initializes a new instance of the class. + + + + + add a relationship node + + + + + + + close node + + + + + xml version + + + + + StringBuilder + + + + + enter line + + + + + current file path + + + + + current StringBuilder stream + + + + + Initializes a new instance of the class. + + + + + + append content + + + + + + Replace string + + + + + + + close node + + + + + + override ToString(); + + + + + + Gets or sets current file path + + + + + Gets current StringBuilder stream + + + + + 字符串在此实例中的第一个匹配项的从零开始的索引 + + + + + + + 将字符串插入到此实例中的指定字符位置 + + + + + + + current file path + + + + + namespace used by xml + + + + + references app.xml file + + + + + references core.xml file + + + + + references workbook.xml file + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + close xml + + + + Force deflate algotithm even if it inflates the stored file. Off by default. + + + + Represents an entry in Zip file directory + + + + Compression method + + + Full path and filename as stored in Zip + + + Original file size + + + Compressed file size + + + Offset of header information inside Zip storage + + + Offset of file inside Zip storage + + + Size of header information + + + 32-bit checksum of entire file + + + Last modification time of file + + + User comment for file + + + True if UTF8 encoding for filename and comments, false if default (CP 437) + + + Overriden method + Filename in Zip + + + + Line orientation + + + + + Cell data type + + + + + Border direction + + + + + Cell border line style + + + + + Specifies the type of horizontal text alignment. + + + + + Specifies the text is aligned to Left. + + + + + Specifies the text is aligned to Center. + + + + + Specifies the text is aligned to Right. + + + + + Specifies the type of Vertical alignment. + + + + + Specifies the element is aligned to Top. + + + + + Specifies the element is aligned to Middle. + + + + + Specifies the element is aligned to Bottom. + + + + + Represents sound embedded into pdf document. + + + + Name of the file. + + + + Gets or sets the sampling rate, in samples per second (in Hz). + + + + + Gets or sets the number of bits per sample value per channel. + + + + + Gets or sets the encoding format for the sample data. + + + + + Gets or sets the number of sound channels. + + + + The name of the file. + + + + Gets the element. + + + + + The interface defines a 1-byte character encoding (with 256 characters). + + + Returns the encoding's name. + @return the name of the encoding + + + Maps a Unicode character to a code point in the encoding. + @param c the Unicode character to map + @return the code point in the encoding or 0 (=.notdef) if not found + + + Returns the array of character names for this encoding. + @return the array of character names + (unmapped code points are represented by a ".notdef" value) + + + Returns a character array with Unicode scalar values which can be used to map encoding + code points to Unicode values. Note that this does not return all possible Unicode values + that the encoding maps. + @return a character array with Unicode scalar values + + + + The encoding format for the sample data. + + + + + Unspecified or unsigned values in the range 0 to 2^B - 1. + + + + + Twos-complement values. + + + + + M-lawencoded samples. + + + + + A-lawencoded samples. + + + + + The number of sound channels. + + + + + One channel. + + + + + Two channels. + + + + + Enumeration that represents fit mode. + + + + + Display the page designated by page, with the coordinates (left, top) positioned + at the top-left corner of the window and the contents of the page magnified + by the factor zoom. A NULL value for any of the parameters left, top, or + zoom specifies that the current value of that parameter is to be retained unchanged. + A zoom value of 0 has the same meaning as a NULL value. + + + + + Display the page designated by page, with its contents magnified just enough + to fit the entire page within the window both horizontally and vertically. If + the required horizontal and vertical magnification factors are different, use + the smaller of the two, centering the page within the window in the other + dimension. + + + + + Display the page designated by page, with the vertical coordinate top positioned + at the top edge of the window and the contents of the page magnified + just enough to fit the entire width of the page within the window. + + + + + Display the page designated by page, with its contents magnified just enough + to fit the rectangle specified by the coordinates left,bottom,right,and top + entirely within the window both horizontally and vertically. + + + + + Pdf version 1-7 ,on page 675 + + + + + Represents an anchor in the document where bookmarks or annotations can direct when clicked. + + + + + The zero based page number. + + + + + Initializes a new instance of the class. + + The page. + + + + Initializes a new instance of the class. + + The page. + The location. + + + + Initializes a new instance of the class. + + The page. + The rectangle. + + + + Initializes a new instance of PdfDestination. + + The zero based page number. + The location in the page based on the lower-left coordinate system. + The zoom factor. + + + + Gets or sets zoom factor. + + + + + Gets or sets a page where the destination is situated. + + + + + Gets or sets mode of the destination. + + + + + Gets or sets a location of the destination. + + + + + Gets or sets a rectangle of the destination. + + + + + Gets a value indicating whether this instance is valid. + + true if this instance is valid; otherwise, false. + + + + Gets pdf primitive representing this object. + + + + + Represents specification of embedded file. + + + + file name + + + Name of the file. + The data. + + + Name of the file. + The stream. + + + + + + + Gets or sets the data. + + The data. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the MIME type of the embedded file. + + The MIME type of the embedded file. + + + + Gets or sets creation date. + + Creation date. + + + + Gets or sets modification date. + + Modification date. + + + + Gets or sets attachment relationship. + + Attachment relationship + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Modify embeddedFile data + + + + + + Attachment relationship type. + + + + + If this document specification is the original source material + for the associated content. + + + + + If this document specification represents the information used + to generate a visual rendering. + + + + + If this document specification is an alternative representation + of the content(such as audio). + + + + + If this document specification represents a supplemental representation + of the original source or data that may be easier to process. + + + + + When the relationship is unknown or cannot be described using one + of the other values. + + + + + Represents base class for file specification objects. + + + + Name of the file. + + + + Gets or sets the name of the file. + + The name of the file. + + + + Gets the element. + + + + + + Exception of this type is raised when the document contains object which are not + supported by current document standard. + + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Exception of this type is raised when annotation object is used incorrectly. + + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + General exception class. + + + + + Initializes object by default error message. + + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Base PDF document exception. + + + + + Initializes object by default error message. + + + + + Initializes object by default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + CalGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + CalRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Pdf color space class + + + + + Create ICC profile stream. + + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The ICC profile stream. + + + + + + Create color space. + If can't parse the colorSpaceObj, then return a PdfNotSupportedColorSpace instance. + + The color space IPdfPrimitive Obj. + The color space. + + + + The color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a list of color to target color space. + + The color list components. + The target color space. + The color list components in target color space. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceCMYK color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceN color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + ICCBased color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + color space by alternate + + + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + The components num. + + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + Constructors + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + PdfColorSpace alternateColorSpace + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Indexed color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table obj. + the color table bytes. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table bytes. + the color table. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + the base color space in which the values in the color table are to be interpreted. + + + + + specifies the maximum valid index value + which the color table is to be indexed by integers in the range 0 to hival. + + + + + the color table which provides the mapping between index values and + the corresponding colors in the base color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace baseColorSpace + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Lab color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + An array of four numbers [ amin amax bmin bmax ] specifying + the range of valid values for the a* and b* (B and C) components of the color space. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Not support color space. + + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Pattern color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Separation color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + the pdf document convert to docx document,set the options + + + + + Represents first-page cross-reference table and tailer in file structure. + + + + + Initializes a new instance of the class. + + + + + + + + + + The object number of the first object in the first embedded file stream group. + + + + + The location of the first object in the first embedded file stream group. + + + + + The number of embedded file stream groups referenced by this hint table. + + + + + The number of bits needed to represent the highest object number + corresponding to an embedded file stream object. + + + + + The number of bits needed to represent the greatest number + of objects in an embedded file stream group. + + + + + The number of bits needed to represent the greatest length + of an embedded file stream group, in bytes. + + + + + The number of bits needed to represent the greatest number + of shared object references in any embedded file stream group. + + + + + Per-page entries. + + + + + + + + + + The object number of the first object in the group. + + + + + The location of the first object in the group. + + + + + The number of objects in the group. + + + + + The length of the object group in bytes. + + + + + The number of shared object references. + + + + + The number of bits needed to represent the numerically greatest + shared object identifier used by the objects in the group. + + + + + Starting with item 7, each of the remaining items in this table + is a shared object identifier—that is, an index into the shared object + hint table (described in Section F.3.2, “Shared Object Hint Table”). + + + + + + + + + + The object number of the first object in the group. + + + + + The location of the first object in the group. + + + + + The number of objects in the group. + + + + + The length of the object group in bytes. + + + + + The hint table base. + + + + + The page offset hint table provides information required for locating each page. + + + + + The least number of objects in a page (including the page object itself). + + + + + The location of the first page’s page object. + + + + + The number of bits needed to represent the difference between the greatest + and least number of objects in a page. + + + + + The least length of a page in bytes. This is the least length from the beginning + of a page object to the last byte of the last object used by that page. + + + + + The number of bits needed to represent the difference between the greatest + and least length of a page, in bytes. + + + + + The least offset of the start of any content stream, relative to the beginning + of its page. (See implementation note 183 in Appendix H.) + + + + + The number of bits needed to represent the difference between the greatest + and least offset to the start of the content stream. (See implementation note 183 in Appendix H.) + + + + + The least content stream length. (See implementation note 184 in Appendix H.) + + + + + The number of bits needed to represent the difference between the greatest + and least content stream length. (See implementation note 184 in Appendix H.) + + + + + The number of bits needed to represent the greatest number of shared object references. + + + + + The number of bits needed to represent the numerically greatest shared object + identifier used by the pages (discussed further in Table F.4, item 4). + + + + + The number of bits needed to represent the numerator of the fractional position + for each shared object reference. For each shared object referenced from a page, + there is an indication of where in the page’s content stream the object is first + referenced. That position is given as the numerator of a fraction, whose denominator + is specified once for the entire document (in the next item in this table). The + fraction is explained in more detail in Table F.4, item 5. + + + + + The denominator of the fractional position for each shared object reference. + + + + + Page entries. + + + + + Add page entry. + + + + + + + Add page entry. + + + + + + + Get page object number. + + + + + + + Get page length. + + + + + + + The shared object hint table gives information required to locate shared objects. + + + + + The object number of the first object in the shared objects section (part 8). + + + + + The location of the first object in the shared objects section. + + + + + The number of shared object entries for the first page (including nonshared + objects, as noted above). + + + + + The number of shared object entries for the shared objects section, including + the number of shared object entries for the first page (that is, the value of item 3). + + + + + The number of bits needed to represent the greatest number of objects in a + shared object group. (See also implementation note 185 in Appendix H.) + + + + + The least length of a shared object group in bytes. + + + + + The number of bits needed to represent the difference between the greatest + and least length of a shared object group, in bytes. + + + + + Shared object group entries. + + + + + Add group entry. + + + + + + + + + + + + The object number of the first thumbnail image (that is, + the thumbnail image that is described by the first entry in the thumbnails section). + + + + + The location of the first thumbnail image. + + + + + The number of pages that have thumbnail images. + + + + + The number of bits needed to represent the greatest number of + consecutive pages that do not have a thumbnail image. + + + + + The least length of a thumbnail image in bytes. + + + + + The number of bits needed to represent the difference + between the greatest and least length of a thumbnail image. + + + + + The least number of objects in a thumbnail image. + + + + + The number of bits needed to represent the difference + between the greatest and least number of objects in a thumbnail image. + + + + + The object number of the first object in the thumbnail shared objects section (a subsection of part 9). + This section includes objects (color spaces, for example) that are referenced from + some or all thumbnail objects and are not referenced from any other objects. + The thumbnail shared objects are undifferentiated; + there is no indication of which shared objects are referenced from any given page’s thumbnail image. + + + + + The location of the first object in the thumbnail shared objects section. + + + + + The number of thumbnail shared objects. + + + + + The length of the thumbnail shared objects section in bytes. + + + + + Per-page entries. + + + + + Add per-page entry. + + + + + + + Get the frist object info. + + + + + The number list of consecutive pages that do not have a thumbnail image. + + + + + The length list of a thumbnail image in bytes. + + + + + The number list of objects in a thumbnail image. + + + + + The length of objects in bytes. + + + + + Represents linearization parameter dictionary in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Write linearization parameter dictionary to file stream. + + The file stream. + The file length. + The hint stream position and offset.[offset1 length1 offset2 length2] (part 5) + The object number of frist page's page object (part 6) + The offset of end of frist page. + The offset of frist entry in main cross-reference table(part 11). + + + + Represents main cross-reference table and tailer in file structure. + + + + + Represent the offset of the white-space character preceding + the first entry of the main cross-reference table,relative to + the beginning of the file. + + + + + Represent the offset of the object number 0; + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents overflow hint stream in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents linearized document. + + + + + Initializes a new instance of the class. + + + + + + + + + + Register a new object information. + + The object. + The object info. + + + + Gets object information about an object. + + The object. + The object information. + + + + Represents all elements in linearized document. + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents one part in file structure. + + + + + Get document structure. + + + + + + + + + + Get object information. + + + + + + + + + + Save a pdf object. + + + + + Write a pdf object information to the stream. + + + + + Write a pdf string information to the stream. + + + + + Write a pdf array information to the stream. + + + + + Write a pdf reference information to the stream. + + + + + Write a pdf stream information to the stream. + + + + + Write a pdf dictionary information to the stream. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Gets the dictionary of the page. + + + + + Gets all objects in the page. + + + + + Gets all objects in the page. + + + + + Gets the dictionary of the page. + + + + + Initializes a new instance of the class. + + The page object. + + + + Add inheritable property to page dictionary. + + The page dictionary. + The ancestors dictionary. + + + + Analyze page all objects. + + The page dictionary. + + + + Analyze page annots. + + The page dictionary. + + + + Analyze page beads. + + The page dictionary. + + + + Analyze page resources. + + The page dictionary. + + + + Find pdf object. + + The record. + The associated resources with the content stream. + The font dictionary. + + + + Whether the object is image. + + The object. + Tf the object is image, true. Otherwise,false + + + + Represents header in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents first-page section in file structure. + + + + + Get the page index. + + + + + Get the page index. + + + + + Get all objects. + + + + + Get shared object info groups. + + + + + Analyze objects. + + + + + Represents primary hint stream in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Build the stream content. + + The first page section part. + The remaining pages part. + The shared objects part. + The other objects part. + The stream length. + + + + Build page offset hint table. + + The first page section part. + The remaining pages part. + The table length. + + + + Build shared object hint table. + + The first page section part. + The shared objects part. + The table length. + + + + Build Thumbnail hint table. + + The other objects part. + The table length. + + + + Represents remaining pages in file structure. + + + + + Get all objects. + + + + + Get remaining page objects info Map. + + + + + Get remaining page reference shared objects Map. + + + + + Get remaining page annots objects Map. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Analyze objects. + + + + + Represents document catalog and document-level objects in file structure. + + + + + Get all objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Organize pdf objects. + + + + + Represents shared objects in file structure. + + + + + Get all objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Alloacte contiguous object number. + + + + + Analyze shared objects. + + + + + Represents other objects in file structure. + + + + + Get all objects. + + + + + Get document information all dependent objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Analyze objects. + + + + + Add pages object. + + + + + Remove pages dictionary inheritable properties + + The pages dictionary. + + + + Whether the object is Page node. + + The pdf object. + If the object is a page node, true. Otherwise,false + + + + Whether the object is catalog. + + The pdf object. + If the object is a catalog, true. Otherwise,false + + + + Update dependent indirect objects. + + The dependent indirect objects. + A node object. + + + + Update outlines dependent indirect objects. + + The dependent indirect objects. + A node object. + + + + Group object. + + + + + Get the min value from an array. + + The array. + The min value. + + + + Get the max value from an array. + + The array. + The max value. + + + + Get the max value from a list array. + + The list. + The max value. + + + + Object cliper class + + + + + 裁剪后需要删除的对象 + + + + + Initializes a new instance of the class. + + + + + + Clip object + + + + + + 对文本进行剪切 + + + + + + 对横线进行剪切 + + + + + + 对竖线进行剪切 + + + + + + 对Path路径进行剪切 + + + + + + 对图片进行剪切 + + + + + + Curve object + + + + + 宽度 + + + + + 高度 + + + + + 线宽 + + + + + 曲线颜色 + + + + + set clip rect + + + + + 曲线的数据 + + + + + Content width + + + + + Content height + + + + + Line width + + + + + set clip rect + + + + + line color + + + + + Curve data + + + + + Graphics Object + + + + + Object start point + + + + + Object start point + + + + + Object extractor + + + + + The origin document. + + + + + Ps转换器 + + + + + 页面大小 + + + + + Initializes a new instance of the class. + + + + + + Get the current page all object + + + + + + + Get the document all page all object + + + + + + Get the document all page size + + + + + + The pdf document. + + + + + Reverse y position. + + + + + y value + + + + + Image index in xlsx + + + + + ImageObject + + + + + Save get data from ps + + + + + UnitConvertor + + + + + Get object from ps + + + + + Cell fill path data + + + + + clip rectangle,save to stack + + + + + if IsNegative is true,flip clip rectangle,save to stack + + + + + The page rotate + + + + + Initializes a new instance of the class. + + + + + Get GraphicsObject from Ps model + + + + + + Reverse y position. + + + + + clip rectangle,save to stack + + + + + if IsNegative is true,flip clip rectangle,save to stack + + + + + Start visit page + + + + + + End visit page + + + + + + Start visit canvas + + + + + + Start visit arc segment + + + + + + Visit image + + + + + + Image index in xlsx + + + + + End visit canvas + + + + + + Visit glyphs,get text + + + + + + Start visit path + + + + + End visit path + + + + + + Start visit path line + + + + + + End visit path line + + + + + + Start visit poly line + + + + + + Visit poly bezier line + + + + + + Visit bezier line + + + + + + Visit line + + + + + + Horizontal line object + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Content width + + + + + height + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Image object + + + + + 图片宽度 + + + + + 图片高度 + + + + + 图片 + + + + + Image file extension + + + + + It is clip and scale image + + + + + gets or sets the affine matrix transformation to the local coordinate space. + + + + + set clip rect + + + + + clip image rectangle + + + + + Image clip x position + + + + + Content width + + + + + Content height + + + + + It is image object + + + + + Image file extension + + + + + It is clip and scale image + + + + + gets or sets the affine matrix transformation to the local coordinate space. + + + + + set clip rect + + + + + logic sheet creator + + + + + 逻辑sheet,是sheet表的抽象 + + + + + 表格对象 + + + + + path对象 + + + + + 横线对象 + + + + + 竖线对象 + + + + + 所有的线条对象(包含TableObject中的线条对象) + + + + + 图片对象 + + + + + 文本对象 + + + + + 文本对象 + + + + + 从表格对象提取每一行的文本对象 + + + + + 段落的对象 + + + + + Pdf document to xlsx document,page content layout + + + + + 页面大小 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + set object to logicSheet + + + + + 判断布局方式 + + + + + + + 以相近值起点,判断当前坐标是否在相近值的范围内 + + + 线条端点附近的列坐标 + 线条端点坐标 + 是否是线条结束位置 + + + + + 获取逻辑Sheet + + + + + + 把表格对象设置到逻辑表Sheet + + + + + 把表格对象设置到逻辑表Sheet + + + + + + 把表格对象中的行,设置到逻辑表中的行 + + + + + + + 按线条布局方式,把表格对象中的列,设置到逻辑表中的列 + + + + + + + + + 设置表格列的border到LogicColumn + + + + + + + + + 按文本布局方式,把表格对象中的列,设置到逻辑表中的列 + + + + + + + + + 表格对象中列的顶部或底部设置到逻辑表中的列 + + + + + + + + + 设置Path对象到LogicSheet + + + + + 设置Path对象到LogicSheet + + + + + + 设置横线对象到LogicSheet + + + + + 设置横线对象到LogicSheet + + + + + + 根据线条对象创建BorderObject + + + + + + + 设置竖线对象到LogicSheet + + + + + 设置竖线对象到LogicSheet + + + + + + 根据线条对象创建BorderObject + + + + + + + 设置段落对象到LogicSheet + + + + + 设置段落对象到LogicSheet + + + + + + 设置段落对象到LogicRow + + + + + + + 按行设置文本到LogicSheet + + + + + 设置表格对象中的文本到LogicSheet + + + + + 设置文本对象到LogicSheet + + + + + + 判断文本是否跨列,如果跨列,把后一列的文本追加到前一列,两列中间的Border设置为null,表示处于合并状态 + + + + + 判断当前两列是否在表格对象范围内 + + + + + + + + + + 把前后一列的文本添加到前一列 + + + + + + + 判断是否存在线条 + + + + + + + + + 判断是否是一个单独的Tj文本 + + + + + + + 获取表格对象 + + + + + + 所有的线条对象(包含TableObject中的线条对象) + + + + + + 按文本方式布局,单元格内文本存在多行多列,需要拆分为多行多列,获取表格对象中每一行的文本对象 + + + + + + 从表格对象清空所有文本对象 + + + + + 分行,只合并紧挨着的字符和文本 + + + + + + + 简单合并文本,只合并当前行紧挨着的字符和文本 + + + + + + + 获取文本对象 + + + + + + 获取段落对象 + + + + + + 获取图片对象 + + + + + + 获取横线对象 + + + + + + 获取竖线对象 + + + + + + 获取Path对象 + + + + + + 页面大小 + + + + + + 布局参数 + + + + + + 是否支持换行 + + + + + + 是否是空sheet + + + + + + 段落对象 + + + + + 获取段落的矩形范围 + + + + + 当前段落包含的文本 + + + + + 设置当前段落包含的文本 + + + + + + 设置当前段落包含的文本 + + + + + + + 获取当前段落包含的文本 + + + + + 获取段落的矩形范围 + + + + + + + + + + + + Path object + + + + + Content width + + + + + Content height + + + + + Path line width + + + + + set clip rect + + + + + fill data + + + + + fill background color + + + + + border color + + + + + Avoid directly modifying values in the array returned by this property. + For standard dashes it returns a static array. If you modify values in it, it will affect all pens with this pattern. + + + + + Content width + + + + + Content height + + + + + Path line width + + + + + set clip rect + + + + + fill data + + + + + fill background color + + + + + Cell border color + + + + + Avoid directly modifying values in the array returned by this property. + For standard dashes it returns a static array. If you modify values in it, it will affect all pens with this pattern. + + + + + Recognizer base class + + + + + Input graphics objects. + + + + + Input graphics objects. + + + + + Initializes a new instance of the class. + + + + + + Clear graphicsObject + + + + + StraightLine megre class + + + + + 第一根线条结束点与第二根线条开始点间距多少,就认为是相交的,设一个常数控制,合并为一根线 + + + + + 两根平行线之间相隔多少,就认为是同一根线的,设一个常数控制,合并为一根线 + + + + + only for to xlsx + + + + + Initializes a new instance of the class. + + + + + + Recognize all lines the current page,only for to xlsx + + + + + + + Recognize all lines the current page + + + + + + 第一根线条结束点与第二根线条开始点间距多少,就认为是相交的,合并为一根线 + + + + + + 两根平行线之间相隔多少,就认为是同一根线的,合并为一根线 + + + + + + 识别线条,拆出表格线 + + + + + + + 获取边框样式 + + + + + + + 把Path转成四根线条 + + + + + + + + + + 开始合并当前页面的线条 + + + + + + + 合并横线,按横向方向合并(多根横线y坐标值相同的情况,合并成一根或多根横线) + + + + + + + 合并横线,按纵向方向合并(多根横线存在y坐标值相近的情况,合并成一根或多根横线) + + + + + + + 起始点X不相同的情况下,前面一根横线结束点与当前横线起始点间距在一个常数范围内,合并成一根或多根横线 + + + + + + + 在Y相同,起始点X相同的情况下,也存在多根横线,这种情况先合并成一根横线 + + + + + + + 合并两根横线为一根横线 + + + + + + + + + 合并剪切范围 + + + + + + + + y坐标值相近的横线合并成一根或多根横线,相近有一个范围区间,yCoordinateStart开始,yCoordinateEnd结束 + + + + + + + + + 在起始点y相似或相近的情况下,按起始点X相同的线分别存入集合 + + + + + + + + + 合并竖线,按纵向方向合并(多根竖线X坐标值相同的情况,合并成一根或多根竖线) + + + + + + + 合并竖线,按横向方向合并(多根竖线存在x坐标值相近的情况,合并成一根或多根竖线) + + + + + + + 起始点Y不相同的情况下,前面一根竖线结束点与当前竖线起始点间距在一个常数范围内,合并成一根或多根竖线 + + + + + + + 在X相同,起始点Y相同的情况下,也存在多根竖线,这种情况先合并成一根竖线 + + + + + + + 合并两根竖线为一根竖线 + + + + + + + + + 合并剪切范围 + + + + + + + + x坐标值相近的竖线合并成一根或多根竖线,相近有一个范围区间,xCoordinateStart开始,xCoordinateEnd结束 + + + + + + + + + 在起始点x相似或相近的情况下,按起始点y相同的竖线分别存入集合 + + + + + + + + + Text object + + + + + Returns cell spacing of this font (points). + This is a vertical distance between baselines of the two glyphs. + + + + + the text size + + + + + the text + + + + + the font style + + + + + the font size + + + + + the font name + + + + + the text color + + + + + merge text after,the second text origin laction + + + + + merge text after,the second text size + + + + + the text clip rect + + + + + the affine matrix transformation to the local coordinate space + + + + + the size of each character + + + + + Returns cell spacing of this font (points). + This is a vertical distance between baselines of the two glyphs. + + + + + the char size + + + + + the text + + + + + the font style + + + + + the font size + + + + + the font name + + + + + the text color + + + + + the text clip rect + + + + + the affine matrix transformation to the local coordinate space. + + + + + the size of each character + + + + + merge text after,the second text origin laction + + + + + merge text after,the second text size + + + + + + + + + + + Vertical line object + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Content height + + + + + width + + + + + line color + + + + + end point + + + + + set clip rect + + + + + Cell border line style + + + + + the page index + + + + + the page size + + + + + The origin PdfDocumentBase. + + + + + 识别为chart后剩余的对象 + + + + + Initializes a new instance of the class. + + + + + + + + + 抽取chart的内容 + + + + + 计算当前path又包含多少个path + + + + + + + 判断是否包含曲线 + + + + + + + 筛选出chart的范围 + + + + + + + + + + + + + 获得对象的范围 + + + + + + + 从图片截取当前页面的chart的内容 + + + + + + + + Define a cross row and column merge range class,Used to merge cells + + + + + 开始行所引值 + + + + + 结束行所引值 + + + + + 开始列所引值 + + + + + 结束列所引值 + + + + + + + + + + 开始行所引值 + + + + + + 开始行所引值 + + + + + + 结束行所引值 + + + + + + 结束行所引值 + + + + + + 开始列所引值 + + + + + + 开始列所引值 + + + + + + 结束列所引值 + + + + + + 结束列所引值 + + + + + + 获取合并行列的xml字符串 + + + + + + 当前已经合并的行列是否包含当前单元格 + + + + + + + + Gets column name according to column index. + + + + + + all page convert to signle sheet + + + + + 每一页的页面对象 + + + + + 每一页的页面大小 + + + + + Initializes a new instance of the class. + + + + + + + Convert to stream + + + + + + + 合并所有页面的对象,每一页对象的Y坐标不断追加 + + + + + + 更新TableObject对象的Y坐标 + + + + + + + 更新PathObject对象的Y坐标 + + + + + + + 更新HLineObject对象的Y坐标 + + + + + + + 更新VLineObject对象的Y坐标 + + + + + + + 更新TextObject对象的Y坐标 + + + + + + + 更新ParagraphsObject对象的Y坐标 + + + + + + + 更新ImageObject对象的Y坐标 + + + + + + + 相近数值的起始,结束范围 + 比如数据: -1, 10, 15, 16, 17, 18, 29, 30, 31, 48, 49, 50, 61, 62, 80 + 前后相邻的数字小于5,认为是相近的数字 + 处理后得到结果: + 第1段数据:m_Start=-1,m_End=-1; + 第2段数据:m_Start=10,m_End=10; + 第3段数据:m_Start=15,m_End=18; + 第4段数据:m_Start=29,m_End=31; + 第5段数据:m_Start=48,m_End=50; + 第6段数据:m_Start=61,m_End=62; + 第7段数据:m_Start=80,m_End=80; + 这样每一段范围数字处理成同一行,或同一列 + + + + + 前后间隔某一个值认为是相近的数字 + + + + + 相近数值的开始范围 + + + + + 相近数值的结束范围 + + + + + 设置相近数值的开始范围 + + + + + + 设置相近数值的结束范围 + + + + + + 前后间隔某一个值认为是相近的数字 + + + + + + 获取相近数值的开始范围 + + + + + + 获取相近数值的结束范围 + + + + + + 前后间隔某一个值认为是相近的数字 + + + + + + 单元格横向起点,结束点,或两点之间距离;单元格纵向起点,结束点,或两点之间距离 + + + + + 当前行的Y坐标起始点 + + + + + 当前行的Y坐标结束点 + + + + + 当前行的所引,1开始 + + + + + 当前行包含的列 + + + + + + + + + + + + Get y coordinate point for row top + + + + + + Set y coordinate point for row top + + + + + + Get y coordinate point for row bottom + + + + + + Set y coordinate point for row bottom + + + + + + Get row index + + + + + + Set row index + + + + + + Add new Column + + + + + + + + + + + + + Get all Columns + + + + + + Get logicColumn by columnIndex + + + + + + + Get row height + + + + + + 当前行内容是否为空 + + + + + + 单元格横向起点,结束点,或两点之间距离;单元格纵向起点,结束点,或两点之间距离 + + + + + 当前列的左边的X起始点 + + + + + 当前列的右边的X结束点 + + + + + 当前列所在行的索引值,1开始 + + + + + 当前列的索引值,0开始 + + + + + 当前列的顶部边框 + + + + + 当前列的底部边框 + + + + + 当前列的左边框 + + + + + 当前列的右边框 + + + + + 当前列的背景色 + + + + + 当前列的text对象集合 + + + + + 当前列的Paragraphs对象 + + + + + Set x point to the left of the colume + + + + + + Get x point to the left of the colume + + + + + + Set x point to the right of the colume + + + + + + Get x point to the right of the colume + + + + + + Set row Index + + + + + + Get row Index + + + + + + Set Column Index + + + + + + Get Column Index + + + + + + Get the top border + + + + + + Set the top border + + + + + + Get the bottom border + + + + + + Set the bottom border + + + + + + Get the left border + + + + + + Set the left border + + + + + + Get the right border + + + + + + Set the right border + + + + + + Get the background color + + + + + + Set the background color + + + + + + Add text object to column + + + + + + Add text object to column + + + + + + Add paragraphs object to column + + + + + + Get all graphics object + + + + + + Get paragraphs object + + + + + + Get column width + + + + + + Get column text width + + + + + + 获取当前列最右边文本的结束X坐标点 + + + + + + 获取当前列最左边文本的X坐标点 + + + + + + 获取当前列文本的最大fontSize + + + + + + + + + + + + 当前列内容是否为空 + + + + + + + + + + + + + + + + 当前表格所有行 + + + + + 当前表格所有行 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获取第一行的所有列 + + + + + + + + + + + + + + + + + + + + + + + + + + 最大行索引 + + + + + + 最大列索引 + + + + + + LogicSheet的范围 + + + + + + + + + + + + logic sheet creator + + + + + 页面对象 + + + + + 线条X坐标点相近数值的起始,结束范围 + + + + + 线条Y坐标点相近数值的起始,结束范围 + + + + + Initializes a new instance of the class. + + + + + + 创建逻辑sheet + + + + + + 线条X坐标点相近数值的起始,结束范围 + + + + + + 线条Y坐标点相近数值的起始,结束范围 + + + + + + 获取所有列的X坐标 + + + + + + + 获取所有行的Y坐标 + + + + + + + 按线条方式布局,获取文本,线条的X坐标位置,包含表格线条,path线条和单个线条 + + + + + 按线条方式布局,获取文本,线条的Y坐标位置,包含表格线条,path线条和单个线条 + + + + + 按文本方式布局,获取文本,线条的X坐标位置,包含表格线条,path线条和单个线条 + + + + + 按文本方式布局,获取文本,线条的Y坐标位置,包含表格线条,path线条和单个线条 + + + + + 所有表格线的横坐标值 + + + + + + 所有path线条的横坐标值 + + + + + + 所有线条的横坐标值 + + + + + + 所有表格线的纵坐标值 + + + + + + 所有path线条的纵坐标值 + + + + + + 所有线条的Y坐标值 + + + + + + 创建逻辑列 + + + + + + + 把部分对象的X坐标值加入逻辑列,进行布局 + + + + + + + + + 把对象的X坐标值加入逻辑列,进行布局 + + + + + + + + + 创建逻辑行 + + + + + + + 把对象的Y坐标值加入逻辑行,进行布局 + + + + + + + + + 把对象的Y坐标值加入逻辑行,进行布局 + + + + + + + + + + 把HLineObject VLineObject PathObject对象的X坐标值加入逻辑列 + + + + + + + + + 把HLineObject VLineObject PathObject对象的Y坐标值加入逻辑行 + + + + + + + + + 把所有文本对象的X坐标值加入逻辑列 + + + + + + + + 把表格对象中的TextObject对象的X坐标值加入逻辑列 + + + + + + + + 把TextObject对象的X坐标值加入逻辑列 + + + + + + + + 把所有文本对象的Y坐标值加入逻辑行 + + + + + + + + 把表格对象中的TextObject对象的Y坐标值加入逻辑行 + + + + + + + + 获取表格对象每一行文本的Y坐标 + + + + + + + + + 获取每一行文本的Y坐标 + + + + + + + + 把TextObject对象的Y坐标值加入逻辑行 + + + + + + + + 获取表格对象以外的区域 + + + + + + + 获取线条坐标点相近数值的起始值 + + + + + + + + 获取表格顶部部分文本的X的坐标值 + + + + + + + + 获取表格底部部分文本的X的坐标值 + + + + + + + + 把X坐标按表格列分段 + + + + + 如果X坐标位置靠得很近,消除重复项 + + 坐标点 + 小于等于某个值,认为是重复的 + + + + + 下一个数字减上一个数字大于parameter值的索引 + + + 坐标点 + 小于等于某个值,认为是重复的 + + + + + 如果Y坐标位置靠得很近,消除重复项 + + + + + + + + 下一个数字减上一个数字大于parameter值的索引 + + + + + + + + + 获取当前集合中所有文本的矩形范围 + + + + + + + Border object + + + + + 单元格Border线宽 + + + + + 单元格Border颜色 + + + + + Cell border line style + + + + + Get border width + + + + + + Set border width + + + + + + Set border style + + + + + + Get border color + + + + + + Set border color + + + + + + Column object + + + + + 当前列的左边的X起始点 + + + + + 当前列的右边的X结束点 + + + + + 当前列所在行的索引值,1开始 + + + + + 当前列的索引值,0开始 + + + + + 当前列的顶部边框 + + + + + 当前列的底部边框 + + + + + 当前列的左边框 + + + + + 当前列的右边框 + + + + + 当前列的背景色 + + + + + 当前列的文本集合 + + + + + Set x point to the left of the colume + + + + + + Get x point to the left of the colume + + + + + + Set x point to the right of the colume + + + + + + Get x point to the right of the colume + + + + + + Set row Index + + + + + + Get row Index + + + + + + Set Column Index + + + + + + Get Column Index + + + + + + Get the top border + + + + + + Set the top border + + + + + + Get the bottom border + + + + + + Set the bottom border + + + + + + Get the left border + + + + + + Set the left border + + + + + + Get the right border + + + + + + Set the right border + + + + + + Get the background color + + + + + + Add text object to column + + + + + + Add path object to column + + + + + + Add background color to column + + + + + + Get all text object + + + + + + Get column width + + + + + + Merge text + + + + + + Row object + + + + + 当前行的Y坐标起始点 + + + + + 当前行的Y坐标结束点 + + + + + 当前行的所引,1开始 + + + + + 当前行包含的列 + + + + + Get y coordinate point for row top + + + + + + Set y coordinate point for row top + + + + + + Get y coordinate point for row bottom + + + + + + Set y coordinate point for row bottom + + + + + + Get row index + + + + + + Set row index + + + + + + Add new Column + + + + + + + Get all Columns + + + + + + Get row height + + + + + + Table Object + + + + + 线条最小宽度 + + + + + 存放当前表格的横线对象 + + + + + 存放当前表格的竖线对象 + + + + + 存放当前表格的Path对象 + + + + + 当前表格所有行 + + + + + 当前表格矩形区域 + + + + + 存放当前表格的文本对象 + + + + + Add horizontal Lines in the current table + + + + + Return all horizontal Lines in the current table + + + + + + Add vertical Lines in the current table + + + + + Return all vertical Lines in the current table + + + + + + Add pathObject in the current table + + + + + Return all pathObject in the current table + + + + + + Whether to contains obj in the current table? + + + + + + + Get the table Rect + + + + + + 与表格相交,但是属于表格范围外部的对象 + + + + + + Get all rows + + + + + + 返回每一行的起始点,结束点,高度 + + + + + + 返回每一列的起始点,结束点,宽度 + + + + + + 设置横线到列对象 + + + + + + + + + 设置竖线到列对象 + + + + + + + Fill text into table + + + + + + Fill text into table + + + + + + Which column is the text in the table + + + + + + + Which column is the text in the table + + + + + + + + Which column is the path in the table + + + + + + + + Merge cell + + + + + 根据行列所引查找对象 + + + + + + + + 获取总列数 + + + + + + 返回表格内所有文本对象 + + + + + + 返回表格内所有文本对象 + + + + + + Tables recognizer + + + + + 横线与竖线连接处,间距小于某个值,认为是相交的 + + + + + 表格对象集合 + + + + + Initializes a new instance of the class. + + + + + + Recognize table object + + + + + + + Get other graphics object than table + + + + + + 横线与竖线连接处,间距小于某个值,认为是相交的 + + + + + + 获取所有存在相交的横线 + + + + + 获取所有存在相交的竖线 + + + + + + 获取所有的文本对象 + + + + + + 获取所有的Path对象 + + + + + + 获取表格对象 + + + + + + + + 分析线条,得到表格对象 + + + + + + + + 合并成一个表格 + + + + + + + 合并成一个表格 + + + + + + + + 是否存在交叉 + + + + + + + + 竖线与横线是否交叉 + + + + + + + + 横线是否与表格相交 + + + + + + + + 竖线是否与表格相交 + + + + + + + + 判断是否是一个表格 + + + + + + + 处理表格顺序,先按表格左上角Y坐标从上到下,再按表格左上角X坐标从左到右排序 + + + + + + + 按表格左上角X坐标从左到右排序 + + + + + + + 把文本填入表格 + + + + + + + 把文本填入表格 + + + + + + + 把path填入表格 + + + + + + + 把path填入表格 + + + + + + + 合并单元格 + + + + + + 段落识别 + + + + + + + + + + + + + + + + + Get other graphics object than table + + + + + + 获取当前行,文本Y坐标最小的值 + + + + + + + 获取当前行,文本高度最大的值 + + + + + + + text recognizer + + + + + 存放当前页面所有的线条(横线)对象 + + + + + 存放当前页面所有的线条(竖线)对象 + + + + + 串联字符串数组的所有元素,其中在每个元素之间使用指定的分隔符. + + + + + 串联每一行,其中在每一行之间使用指定的分隔符. + + + + + Initializes a new instance of the class. + + graphicsObject + separatorChar + newlineChar + + + + Recognize text,简单识别,当前行紧挨着的字符和文本已经被合并了,进一步把每一行的多个文本进行合并 + + + + + + 简单识别,只合并当前行紧挨着的字符和文本 + + + + + + 获取每一行的文本对象 + + + + + + 过滤掉不需要显示的文本(旋转文本) + + + + + + + 过滤掉重叠文本 + + + + + 获取所有的横线 + + + + + + 获取所有的竖线 + + + + + + 获取所有文本对象 + + + + + + 获取除文本对象以外的所有对象 + + + + + + 按X方向,获取x1和x2之间所有的文本对象 + + + + + + + + + 按Y方向,获取y1和y2之间所有的文本对象 + + + + + + + + + 把字典转换成集合 + + + + + + + 把集合中的文本对象按文本坐标X值重新组织 + + + + + + + 把集合中的文本对象按文本坐标Y值重新组织 + + + + + + + 分别获取每一行的文本对象 + + + + + + + 按横线分段后,分别获取每一行的文本对象 + + + + + + + 把srcdictionary字典并入到destdictionary字典 + + + + + + + 把集合textObjects并入到destdictionary字典 + + + + + + + 获取字典的最大key + + + + + + + + + + + + + + 获取集合中文本最大的高度 + + + + + + + 把紧挨着的字符和文本进行合并 + + + + + + + 在同一行,起始点X相同的情况下,也存在重叠文本,合并成一个文本 + + + + + + + 重叠文本,合并成一个文本 + + + + + + + 合并两个文本,第二个文本对象合并到第一个文本对象 + + + + + + + + 拼接前后两段字符串 + + + + + + + 判断两个文本之间是否有线条,存在线条返回true,不存在线条返回false + + + + + + + + 判断竖线是否从两个文本之间穿过 + + + + + + + + y位置处是否有横线 + + + + + + + 在同一行,起始点X相同的情况下,也存在重叠文本,合并成一个文本 + + + + + + + 重叠文本中选择一个合适的文本 + + + + + + + X坐标大概重叠的文本 + + + + + + + X坐标相似,最后一段文本 + + + + + + + + Common method + + + + + 在布局中多个文本靠得很近,会造成重复性的多列,设一个常数控制 + + + + + 在布局中多个文本靠得很近,会造成重复性的多行,设一个常数控制 + + + + + 在布局中多个线条靠得很近,会造成重复性的多列,设一个常数控制 + + + + + 在布局中多个线条靠得很近,会造成重复性的多行,设一个常数控制 + + + + + 字体为Arial,大小为1的情况下,空格宽度大约为0.277F,单位point + + + + + 字体为Arial,大小为1的情况下,空格高度大约为1.15F,单位point + + + + + + + + + + Get font name + + + + + + + Check whether it is number + + + + + + + 判断是否是贝塞儿曲线 + + + + + + + Descending sort + + + + + + + Descending sort + + + + + + + 根据number相近值的范围进行分段 + + + + + + + + 根据number相近值的范围进行分段 + + + + + + + + 添加从左往右标识. + + + + + + + 判断是否在当前行 + + + + + + + + + + 判断是否在当前列 + + + + + + + + + 比较颜色 + + + + + + + + Convert PsPath to RectangleF + + + + + + + PDF-based ISO standards require that integer values in a PDF do not exceed the range of integer values in 32 bit systems. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是否转到多个sheet + + + + + + + 是否显示重叠文本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 对图片只做剪切,不缩放图片,把剪贴范围的比例缩放到和原始图片比例一致,再剪贴图片,这样避免图片模糊 + + + + + + + 设置图片在原文档原始的剪切范围,起始,结束位置,高宽 + + + + + + + 对图片做剪切,先把图片比列缩放到和剪贴范围的比例(100%)一致,再剪贴图片,图片会存在模糊情况 + + + + + + This class provides support for converting ofd into pdf or image. + + + + + Gets the document page count. + + + + + Initializes a new instance of the class. + + The path to source ofd file. + + + + Initializes a new instance of the class. + + The ofd file stream. + + + + Save ofd document to pdf. + + A relative or absolute path for the file. + + + + Save ofd document to pdf. + + The pdf file stream. + + + + Saves OFD document page as image + + Page index + Returns page as Image + + + + Saves OFD document page as image + + Page index + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + The embedded font conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to embedded font document. + + The out file path. + + + + Convert to embedded font document. + + The out stream. + + + + The embedded font builder. + + + + + Construct an new provider + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + This class provides support for converting PDF into an XPS Document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Converts a range of the pdf document to word. + + The pdf document. + The word stream. + The start index. + the end index. + + + + Converts the specified pdf document to word. + + The pdf document. + The word stream. + + + + Convert to doc/docx document. + + The out file stream. + + + + Convert to doc/docx document. + + The out file stream. + Is docs or doc. + + + + Convert to doc/docx document. + + The out file name. + + + + Convert to doc/docx document. + + The out file name. + Is docs or doc. + + + + Creates the PDF document. + + + + + + Adds the document properties. + + The doc properties. + + + + Draws to PDF. + + The images. + The PdfNewDocument. + + + + Convert pdf document to excel. + + The pdf document. + The out stream. + + + + Convert pdf document to excel. + + The pdf documentBase. + The start index. + The end index. + The out stream. + + + + Get Recognize Objects + + + + + + + + + 是否转到多个sheet + + + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to linearized pdf document. + + The out file path. + + + + Convert to linearized pdf document. + + The out stream. + + + + Construct a new instance. + + + + + + The Pdf/X1A:2001 standard provider. + + + + + The embedded font builder. + + + + + the text color builder + + + + + the image color builder + + + + + The transparency builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A1A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + The transparency builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A1B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + The transparency builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2U standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3U standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The pdf standard options. + + + + + Force convert. + + + + + Other image color modes convert to cmyk mode + + + + + Handle image instructions current resources,rgb color to cmyk color for image + + + + + + + + Handle image instructions current resources,rgb color to cmyk color for image + + + + + + + + + Check if it is a image resource + + + + + + + It is contains mask image resource + + + + + + + It is contains smask image resource + + + + + + + Converter image data to cmyk mode + + + + + + Create inline image to new dictionary + + + + + + + + Creates a new image dictionary,by the specified image dictionary + + + + + + + + + add image dictionary to resources,by specified resource name + + + + + + + + Find resource by specified resource name + + The resource name. + The associated resources with the The content stream. + The image dictionary. + + + + Convert image color space to cmyk color space. + + The image samples. + The image width. Byte boundaries are ignored, except that each row of sample data must begin on a byte boundary. + If the number of data bits per row is not a multiple of 8, the end of the row is padded with extra bits to fill out the last byte + The number of bits used to represent each color component. + The color space. + + The image samples with cmyk color space and bitsPerComponent is 8. + + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + Document utils. + + + + + Repair document page tree. + + The pdf processing context. + + + + Repair document embedded files. + + The pdf element. + The pdf processing context. + + + + Remove document embedded files. + + The pdf processing context. + + + + Remove document JavaScript actions. + + The pdf processing context. + + + + Remove document permissions. + + The pdf processing context. + + + + Remove document outlines. + + The pdf processing context. + + + + Remove document catalog "AA" entry. + + The pdf processing context. + + + + Remove document openAction. + + The pdf processing context. + + + + Remove document Names. + + The pdf processing context. + + + + Remove document spiderInfo. + + The pdf processing context. + + + + Remove document structTreeRoot. + + The pdf processing context. + + + + Remove document needAppearances. + + The pdf processing context. + + + + Add default RGB profile outputIntents if catalog has no outputIntents. + + The pdf processing context. + + true, if exist outputIntents, replace with default RGB OutputIntents. + false, if exist outputIntents, return. + + + + + Create default CMYK profile outputIntents. + + The document catalog. + The pdf processing context. + + true, if exist outputIntents, replace with default CMYK OutputIntents. + false, if exist outputIntents, return. + + + + + Create output intent dictionary describing the color characteristics of output devices. + + The output intent subtype + + A human-readable text string containing additional information or comments + about the intended target device or production condition. + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The output intent dictionary. + + + + Annotations utils. + + + + + Apply standard to annotations. + + The pdf element. + The pdf processing context. + Permitted annotation type list. + + + + Other color modes convert to cmyk mode + + + + + Stroking color space stack. + + + + + Nonstroking color space stack. + + + + + Current stroking color space. + + + + + Current nonstroking color space. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle color space/color instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Parse color operands in instruction. + + The color operands. + The color space. + The color components. + + + + Convert cmyk components to operands in instruction. + + The cmyk components + The color operands in instruction + + + + File structure utils. + + + + + Fonts utils. + + + + + Graphics utils. + + + + + Remove jpeg2000 filter. + + The pdf element. + The pdf processing context. + + + + Apply standard to optional content group. + + The pdf processing context. + + + + Remove optional content group. + + The pdf processing context. + + + + Remove prohibited entries with Image. + An Image dictionary shall not contain the "Alternates" key or the "OPI" key. + If an image dictionary contains the "Interpolate" key, its value shall be false. + + The pdf element. + The pdf processing context. + + + + remove color space in the resources + + + + + + + Interactive forms utils. + + + + + Add empty AP dictionary if field has no ap. + + The pdf element. + The pdf processing context. + + + + Remove signature field value. + + The pdf element. + The pdf processing context. + + + + Logical structure utils. + + + + + Indicates that the file conforms to the tagged PDF conventions. + + The pdf processing context. + + + + Create struct tree root. + + The pdf processing context. + + + + Find all page objects. + + The page tree. + All page objects. + + + + Process page box(MediaBox,TrimBox) + + + + + + + Only remove structParents from current page dictionary + + + + + + + Pdf metadata utils. + + + + + Predefined properties in document info. + + + + Serializes an XMPMeta object as RDF into an OutputStream. + a metadata object + an OutputStream to write the serialized RDF to. + + + + Remove custom properties. + + The pdf processing context. + + + + Generate standard metadata. + + The pdf processing context. + + + + Generate default standard metadata. + + The default standard metadata. + + + + Generate standard metadata. + + The origin metadata. + The default standard metadata.. + + + + Clone properties. + + The namespace URI. + The origin metadata. + The target metadata. + + + + Ensure document information dictionary entries and + their analogous XMP properties shall be equivalent. + + The metadata stream. + The document information dictionary. + + + + Get the date of ISO8601 format. + + the date in the format D:YYYYMMDDHHmmSSOHH'mm' + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Transparency utils. + + + + + Remove transparency group. + A "Group" object with an "S" key with a value of Transparency + shall not be included in a form XObject. + + The pdf element. + The pdf processing context. + + + + Remove graphics state transparency. + + The associated resources with the The content stream. + + + + Remove SMask. + + The associated resources with the The content stream. + + + + Remove image SMask. + + The associated resources with the The content stream. + + + + Pdf color space class + + + + + Create ICC profile stream. + + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The ICC profile stream. + + + + + Get min value. + + The values. + The min value. + + + + Create color space. + If can't parse the colorSpaceObj, then return a PdfNotSupportedColorSpace instance. + + The color space IPdfPrimitive Obj. + The color space. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Not support color space. + + + + + DeviceGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + DeviceRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + DeviceCMYK color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + CalGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + CalRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Lab color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + ICCBased color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + color space colorspace by alternate + + + + + Constructors + + + + + Constructors + + PdfColorSpace alternateColorSpace + + + + Is conversion to cmyk supported + + true/false + + + + Pattern color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Indexed color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table obj. + the color table bytes. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table bytes. + the color table. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + the base color space in which the values in the color table are to be interpreted. + + + + + specifies the maximum valid index value + which the color table is to be indexed by integers in the range 0 to hival. + + + + + the color table which provides the mapping between index values and + the corresponding colors in the base color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace baseColorSpace + + + + Is conversion to cmyk supported + + true/false + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Separation color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + DeviceN color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The device independent color space builder. + + + + + The ICC profile for DeviceGray. + + + + + The ICC profile for DeviceRGB. + + + + + The ICC profile for DeviceCMYK. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle device color space which associated to instructions. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle device color space which associated to resources. + + The content stream. + The associated resources with the The content stream. + + + + Handle device color space which associated to "ColorSpace" resources. + + The associated "ColorSpace" resources with the The content stream. + + + + Handle device color space which associated to "XObject" resources. + + The associated "XObject" resources with the The content stream. + + + + Add ICCBased color space resource. + + The resource name. + The ICCBased color space. + The associated resources with the The content stream. + + + + Convert color space to device-independent. + + The color space. + The device-independent color space + + If the color space is device color space or exist device color space, + then convert to device-independent color space, return true. + Otherwise,return false. + + + + + Convert color space to device-independent. + + The color space. + The device-independent color space + + If the color space is device color space or exist device color space, + then convert to device-independent color space, return true. + Otherwise,return false. + + + + + Create the ICCBased color space for DeviceCMYK. + + The ICCBased color space for DeviceCMYK. + + + + Create the ICCBased color space for DeviceRGB. + + The ICCBased color space for DeviceRGB. + + + + Create the ICCBased color space for DeviceGray. + + The ICCBased color space for DeviceGray. + + + + The pdf embedded font builder. + + + + + Current font dictionary. + + + + + Font dictionary stack. + + + + + Current font structure. + + + + + Font structure stack. + + + + + Key: The font dictionary, Value: The font structure. + + + + + Key: The font structure., Value: The ttf font. + + + + + Key: The font structure., Value: The char code to unicode mapping. + + + + + Tw WordSpace stack. + + + + + Tf FontSize stack. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle text instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Build font structure + + The font dictionary. + The font structure. + + + + Find font dictionary. + + The font resource name. + The associated resources with the The content stream. + The font dictionary. + + + + Build embed truetype font. + + The origin font. + The embed truetype font. + + + + Convert origin bytes to literal string bytes. + Diffrence between literal string bytes and origin bytes, + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + The literal string bytes. + + + + Generate "CIDSet" dictionary entry. + + The char code to unicode mapping. + The CIDSet pdf stream. + + + + Generate "ToUnicode" dictionary entry. + + The char code to unicode mapping. + The cmap pdf stream. + + + + Generate "DW" dictionary entry. + + The char code to unicode mapping. + The font program reader. + The pdf array. + + + + Check font dictionary. + + The font dictionary. + + + + + Check Simple font. + + The font dictionary. + + + + + Create font subset tag. + + The font subset tag + + + + Whether is font subset. + + The PostScript name of the font. + + + + + Image width. + + + + + Image Height. + + + + + The color space in the image dictionary. + Note: It may not represent the actually color space of the image When the color space + of the image data is not equal to the color space item in the dictionary. + + + + + Get softmask image from image dictionary + + + + + Get mask image from image dictionary + + + + + Gets image mask. + + + + + The decode in the image dictionary. + Note: It may not represent the actually decode of the image When the color space + of the image data is not equal to the color space item in the dictionary. + + + + + Get Matte from image dictionary, pdf937 for SMask image. + + + + + Constructors + + Image dictionary + The image is an inline image or not. + + + + Decode sample data which is represented as a sequence of bytes. + + The image color space. + The image decode. + The number of bits used to represent each color component. + The sample data which is represented as a sequence of bytes. + + + + Decode image components with the row range. + + The start row index + The end row index. + The color space of image components. + The decode of image components. + The number of bits used to represent each color component. + The image color components. + + Sample data is represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 255. + The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in turn, + is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a color component value, + given with high-order bit first; units of 16 bits are given with the most significant byte first. Byte boundaries are ignored, + except that each row of sample data must begin on a byte boundary. If the number of data bits per row is not a multiple of 8, + the end of the row is padded with extra bits to fill out the last byte. + + + + + Decode image components with the row range. + + The start row index + The end row index. + The color space of color components. + The number of bits used to represent each color component. + The image color components. + + Sample data is represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 255. + The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in turn, + is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a color component value, + given with high-order bit first; units of 16 bits are given with the most significant byte first. Byte boundaries are ignored, + except that each row of sample data must begin on a byte boundary. If the number of data bits per row is not a multiple of 8, + the end of the row is padded with extra bits to fill out the last byte. + + + + + Encode image components. + + The image components. + The image width. + The image height. + The image color space. + The number of bits used to represent each color component. + + + + Encode color space components. + + The image components. + The image width. + The image height. + The image color space. + The number of bits used to represent each color component. + + + + Decode image + + + + + Get the default Decode arrays for use with the various color spaces. + The image’s Decode array specifies a linear mapping of each integer component value + to a number that would be appropriate as a component value in the image’s color space. + + The coloe space. + The number of bits used to represent each color component. + The default decode arrays. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + Scale image. + + The image. + The result image width. + The result image height. + The result image. + + + + Map rgb components to color + + The rgb color components. + The color. + + + + Combine source image with mask image. + /// Source image. + Mask image. + The result image. + + + + Combine source image with smask image. + + Source image. + SMask image. + The result image. + + + + The pdf document process context. + + + + + The file structure. + + + + + The file info. + + + + + The violation message. + + + + + The current stack. + + + + + Content stream and Resources mappings. + Reference 3.7.2 Resource Dictionaries. + + + + + The file structure. + + + + + The file info. + + + + + Construct a new processing context. + + The file structure. + + + + Push the current pdf element. + + The current pdf element. + + + + Pop the current pdf element. + + The current pdf element + + + + Get content stream and Resources. + + Content stream and Resources mappings. + + + + Construct resources which is associated with a content stream. + Reference 3.7.2 Resource Dictionaries. + + + + + Add violation message. + + The violation message. + + + + Clone document. + + The origin document. + + + + Clone pdf element. + + The origin pdf element. + The origin file structure. + The main objects map. + new pdf element. + + + + Clone pdf string. + + The origin pdf string. + new pdf string. + + + + Clone pdf number. + + The origin pdf number. + new pdf number. + + + + Clone pdf boolean. + + The origin pdf boolean. + new pdf boolean. + + + + Clone pdf name. + + The origin pdf name. + new pdf name. + + + + Clone pdf null. + + The origin pdf null. + new pdf null. + + + + Clone pdf array. + + The origin pdf array. + The origin file structure. + The main objects map. + new pdf array. + + + + Clone pdf dictionary. + + The origin pdf dictionary. + The origin file structure. + The main objects map. + new pdf dictionary. + + + + Clone pdf stream. + + The origin pdf stream. + The origin file structure. + The main objects map. + new pdf stream. + + + + Clone pdf reference. + + The origin pdf reference. + The origin file structure. + The main objects map. + new pdf reference. + + + + The pdf document processor. + + + + + The pdf process provider. + + + + + Construct a new excutor. + + The pdf process provider. + + + + Generate the pdf standard document. + + The origin document. + The out file path. + + + + Generate the pdf standard document. + + The origin document. + The out stream. + + + + Process the pdf document. + + The pdf processing context. + + + + Visit elemet and excute rules on the pdf element. + + The pdf element. + The pdf processing context. + The main object list. + + + + Handle content stream and resources. + + The pdf processing context. + + + + Set document info. + + The pdf document. + + + + Create file identifiers. + + The file identifiers. + + + + The pdf process provider base class. + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Excute after visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Excute after visit the document. + + The pdf processing context. + + + + The pdf transparency builder. + + + + + Remove graphics state transparency. + + The associated resources with the The content stream. + + + + Find font dictionary. + + The font resource name. + The associated resources with the The content stream. + The font dictionary. + + + + Handle graphics state transparency operate. + + The associated resources with the The content stream. + + + + Convert color space to target color space. + + + + + Target color space. + + + + + Stroking color space stack. + + + + + Nonstroking color space stack. + + + + + Current stroking color space. + + + + + Current nonstroking color space. + + + + + Target color space. + + + + + Construct a new instance. + + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle color space/color instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Parse color space operands in instruction. + + + + + + + + Convert target color space to operand in instruction. + + The color space operand. + + + + Parse color operands in instruction. + + The color operands. + The color space. + The color components. + + + + Convert color components to operands in instruction. + + The color components + The color operands in instruction + + + + Handle resources. + + The content stream. + The associated resources with the The content stream. + + + + Handle image resources. + + + The associated image resources with the The content stream. + + The image is an inline image or not. + + + + Whether the image supports conversion. Temp!!! + + The image dictionary. + + + + Handle image resources. + + + The shading resources with the The content stream. + + + + + The gray color space provider. + + + + + The color space builder. + + + + + Construct an new provider + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The gray pdf conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to gray pdf document. + + The out file path. + + + + Convert to gray pdf document. + + The out stream. + + + + The pdf standard conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to pdf/a1b standard document. + + The out file path. + + + + Convert to pdf/a1b standard document. + + The out stream. + + + + Convert to pdf/a1a standard document. + + The out file path. + + + + Convert to pdf/a1b standard document. + + The out stream. + + + + Convert to pdf/a2b standard document. + + The out file path. + + + + Convert to pdf/a2b standard document. + + The out stream. + + + + Convert to pdf/a2u standard document. + + The out file path. + + + + Convert to pdf/a2u standard document. + + The out stream. + + + + Convert to pdf/a2a standard document. + + The out file path. + + + + Convert to pdf/a2a standard document. + + The out stream. + + + + Convert to pdf/a3b standard document. + + The out file path. + + + + Convert to pdf/a3b standard document. + + The out stream. + + + + Convert to pdf/a3u standard document. + + The out file path. + + + + Convert to pdf/a3u standard document. + + The out stream. + + + + Convert to pdf/a2a standard document. + + The out file path. + + + + Convert to pdf/a3a standard document. + + The out stream. + + + + Convert to pdf/x1a2001 standard document. + + The out file path. + + + + Convert to pdf/x1a2001 standard document. + + The out stream. + + + + Flatten form. + + + + + This class provides support for converting PDF into an OFD Document. + + + + + Converts the specified PdfDocument to Ofd. + + The pdf document. + The ofd stream. + + + + Converts a range page of the PdfDocument to Ofd. + + The pdf document. + The ofd stream. + The start index. + The end index. + + + + Adds the document properties. + + The doc properties. + + + + Pdf to excel,the options use line layout + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines. + + + + + This value is true if you wrap the text of an object in Microsoft Excel + + + + + If you wan to display overlapping text,set the parameter to true + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines. + + + + + This value is true if you wrap the text of an object in Microsoft Excel + + + + + If you wan to display overlapping text,set the parameter to true + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + This value is true if you wrap the text of an object in Microsoft Excel + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + This value is true if you wrap the text of an object in Microsoft Excel + If you wan to display overlapping text,set the parameter to true + + + + the pdf document convert to xlsx document,set the options + + + + + Pdf to excel,the options use text layout + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + If you wan to display overlapping text,set the parameter to true + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + If you wan to display overlapping text,set the parameter to true + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + If you wan to display overlapping text,set the parameter to true + + + + This class provides support for converting PDF into an XPS Document. + + + + + + + + + + + + + The license protected. + + + + + The pdf document. + + + + + The zoom factor. + + + + + Whether support east asian font. + + + + + Whether to dispose font. + + + + + Whether to render enmbed font as ttf. + + + + + Whether is the colorspace image. + + + + + Whether is a new page. + + + + + The pdf page tatal rotate angle(pageRotate + userRotate). + + + + + Whether to draw annotation. + + + + + Whether to draw page content. + + + + + Whether is hight light. + + + + + The annotation dictionary. + + + + + Image zoom factor. + + + + + Support east asian font. + + + + + Dispose font. + + + + + Render embed font as ttf. + + + + + Colorspace image. + + + + + whether is a new page. + + + + + Gets or sets. + + + + + The pdf page tatal rotate angle(pageRotate + userRotate). + + + + + Draw annotation. + + + + + Draw page content. + + + + + Hightlight. + + + + + The annotation dictionary. + + + + + Construct a new instance. + + The pdf document. + + + + Create empty bitmap. + + The width in pixels. + The height in pixels. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + A System.Drawing.Imaging.Bitmap. + + + + Create empty metafile. + + The width in pixels. + The height in pixels. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + + + + Create empty metafile. + + A System.IO.Stream that contains the data for this System.Drawing.Imaging.Metafile. + The width in pixels. + The height in pixels. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + + + + Convert pdf page to bitmap by ps mode. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Convert pdf page to bitmap. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Convert pdf page to metafile. + + The page index. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + If the page is restricted,return null. + + + + + Convert pdf page to metafile. + + The page index. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + A System.IO.Stream that contains the data of a System.Drawing.Imaging.Metafile + which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + If the page is restricted,return null. + + + + + Convert pdf page to bitmap by ps mode. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Get the scale. + + The page + The scale value + + + + Render pdf multiply color page to image. + + The System.Drawing.Graphics graphics. + The page index. + The Spire.Pdf.General.Render.Page. + + + + Render pdf page to image. + + The SSystem.Drawing.Graphics graphics. + The Spire.Pdf.General.Render.Page. + The resources,Spire.Pdf.General.Render.PdfElement.PdfPageResources resources. + The Spire.Pdf.General.Render.PdfElement.PdfRecordCollection + The System.Drawing.Image + + + + Fill rectangle. + + The graphics + The rectanlgef + + + + Get the page index + + The page + The page index + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + disposed is false ,Releases all resources + + + + + Convert pdf document to postscript. + + The pdf document. + The out stream. + + + + Convert pdf document to postscript. + + The pdf document. + The start index. + The end index. + The out stream. + + + + Adds the document properties. + + The doc properties. + + + + Convert pdf document to pcl. + + The pdf document. + The out stream. + + + + Convert pdf document to pcl. + + The pdf document. + The start index. + The end index. + The out stream. + + + + Pdf to Html, Set Parameter + + + + + + + + + + The license protected. + + + + + The pdf document. + + + + + The font cache. + + + + + ??? + + + + + Construct a new instance. + + The pdf document. + + + + Convert pdf page to a PsPage. + + The page index. + A PsPage. If the page is restricted,return null. + + + + Convert a range page of the document to svg. + + The pdf document. + Main out file. + Is svg file header. + The start index. + The end index. + A list of byte. + + + + Convert the document to svg. + + The pdf document. + Main out file. + Is svg file header. + A list of byte. + + + + This class provides support for converting PDF into an XPS Document. + + + + + Converts a range page of the PdfDocument to Xps. + + The pdf document. + The xps stream. + The start index. + The end index. + + + + Converts the specified PdfDocument to Xps. + + The pdf document. + The xps stream. + + + + Creates the PDF document. + + + + + + Adds the document properties. + + The doc properties. + + + + A number tree is similar to a name tree, except that its keys are integers + instead of strings and are sorted in ascending numerical order. + + + + + The root node. + + + + + Find key's value. + + The key. + The node. + The value + + + + Remove key/value. + + The key. + The node. + + + + + Add key/value to node. + + The key. + The value. + The node. + + + + Add key/value to kids. + + The key. + The value. + The kids. + The limits. + + + + Add key/value to nums. + + The key. + The value. + The nums. + + + + Create new leaf node and add key/value. + + The key. + The value. + The least key in limits. + The greatest key in limits. + The leaf node. + + + + check key is between limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return true. + + + + + check key is less than the least value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + check key is large than greatest value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + Generate + + The node. + The list which keys are sorted in ascending numerical order. + + + + A number tree is similar to a name tree, except that its keys are integers + instead of strings and are sorted in ascending numerical order. + + + + + The root node. + + + + + Find key's value. + + The key. + The node. + The value + + + + Remove key/value. + + The key. + The node. + + + + + Add key/value to node. + + The key. + The value. + The node. + + + + Add key/value to kids. + + The key. + The value. + The kids. + The limits. + + + + Add key/value to nums. + + The key. + The value. + The nums. + + + + Create new leaf node and add key/value. + + The key. + The value. + The least key in limits. + The greatest key in limits. + The leaf node. + + + + check key is between limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return true. + + + + + check key is less than the least value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + check key is large than greatest value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + Generate + + The node. + The list which keys are sorted in ascending numerical order. + + + + Rectangles are used to describe locations on a page and + bounding boxes for a variety of objects. + + + + + The lower-left x. + + + + + The lower-left y. + + + + + The upper-right x. + + + + + The upper-right y. + + + + + Decodes data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Implements the ASCIIHexDecode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Decompresses stream data. + + Stream data to be decompressed. + Decompressed stream data. + + + + No compression. + + + + + Compresses data using the zlib or deflate compression method, + reproducing the original text or binary data. + + + + + Compresses data using the LZW compression method, reproducing + the original text or binary data. + + + + + Compresses data using the ASCII85 compression method, reproducing + the original text or binary data. + + + + + Compresses data using the ASCIIHex compression method, reproducing + the original text or binary data. + + + + + Compresses data using the RunLength compression method, reproducing + the original text or binary data. + + + + + Decompresses data encoded using a DCT (discrete cosine transform) + technique based on the JPEG standard, reproducing image sample + data that approximates the original data. + + + + + Decompresses data encoded using the zlib / deflate + compression method, reproducing the original text or binary + data. + + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + inner class, implementation of jpeg image decoding + + + + + image pixel data + + + + + parameters of image for decompression + + + + + Construct a new decoder object + + + + + Strean with decompressed data + + + + + image pixel data + + + + + parameters of image for decompression + + + + + parameters of image for decompression + + + + + + The Stream. + + + + + The attached tags. + + + + + Image color space + Note: Ignore if is not image. + + + + + Image width. + Note: Ignore if is not image. + + + + + Image height. + Note: Ignore if is not image. + + + + + Decode data encoded using the zlib/deflate compression method. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data using the zlib/deflate compression method. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + The Stream. + + + + + The attached tags. + + + + + Image color space + Note: Ignore if is not image. + + + + + Image width. + Note: Ignore if is not image. + + + + + Image height. + Note: Ignore if is not image. + + + + + Initialize the new instance of the class. + + The pdf stream. + + + + Get decoded data. + + + + + Get decoded data. + + The encoded data. + The filter name. + The decode parameter dictionary. + + + + The Stream. + + + + + Encode stream data. + + + The name of a filter to be applied in processing the stream data. + + + The parameter dictionary used by the filter specified by Filter. + + + + + Pdf version. + + + + + Implements PDF string object. + 1.Text String: + Used for human-readable characters,such as text annotations,bookmark + names,article names and document information.Thes strings are encode- + d using either PDFDocEncoding or UTF-16BE with a leading byte-order + marker. + 2.PDFDoc String: + Used for characters and glyphs that are represented in a single byte, + using PDFDocEncoding.This type,which reflects a more specific encoding + than the text string type. + 3.ASCII String: + Used for characters that are represented in a single byte using ASCII + encoding.Because 7-bit U.S. ASCII is a strict subset of PDFDocEncoding, + this value may also be considered to be in that encoding. + 4.Byte String: + Used for binary data represented as a series of 8-bit bytes,where each + byte can be any value representable in 8 bits. The string may represent + characters or glyphs but the encoding is not known. The bytes of the st- + ring may not represent characters. This type is used for data such as + MD5 hash values,signature certificates and Web Capture identification values. + + + + + Auto encoding by the characters set. + + + + + ASCII encoding. + + + + + PDFDoc encoding. + + + + + UTF16 big endian encoding. + + + + + The written byte sequence of the string. + If written way is Literal,the byte sequence include escape characters. + If written way is Hexadecimal,each pair bytes in the byte sequence define one byte of string. + !!!Note:Must be not null. + + + + + String be written in hexadecimal form. + + + + + The character strings that are encoded + + + + + A series of bytes—unsigned integer values in the range 0 to 255. + Don't include escape characters or hexadecimal defined. + !!!Note:if null,not generate from written bytes or set new value. + + + + + Construct string. + + + + + Construct string. + + A bytes sequence. + + + + Construct string. + + A bytes sequence. + String be written in hexadecimal form. + + + + Construct string. + + A characters string. + The encoding which the characters string are encoded. + + + + Construct string. + + A date. + + + + Get bytes. + + A bytes sequence. + + + + Set bytes. + + A bytes sequence. + String be written in hexadecimal form. + + + + Set bytes. + + A bytes sequence. + + + + Get text. + + A characters string. + + + + Set text. + + A characters string. + The encoding which the characters string are encoded. + + + + Get a date. + + a date + + + + Set a date which is an ASCII string of the form (D:YYYYMMDDHHmmSSOHH'mm'). + + A date. + + + + Gets or sets the integer value of the specified object. + + + + + The encryptor. + + + + + The obj number. + + + + + Decrypts the specified encryptor. + + The encryptor. + The current object number. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + The encryptor. + The current object number. + With "(" ..")" + The literal string bytes. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + With "(" ..")" + The literal string bytes. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + With "(" ..")" + The literal string bytes. + + + + + + + Decode the literal string bytes. + the literal string bytes has existed escape characters. + + The literal string bytes. + The encryptor. + The current object number. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the literal string bytes. + the literal string bytes has existed escape characters. + + The literal string bytes. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the hexadecimal string bytes. + the hexadecimal string bytes define a byte by each pair of hexadecimal digits. + + The hexadecimal string bytes. + The encryptor. + The current object number. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the hexadecimal string bytes. + the hexadecimal string bytes define a byte by each pair of hexadecimal digits. + + The hexadecimal string bytes. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + + Convert a char sequence to a byte sequence(one byte to one char). + + The string which one char represent one byte. + The byte sequence. + + + + Convert a byte sequence to a char sequence(one byte to one char). + + The byte sequence. + The string which one char represent one byte. + + + + Convert a byte sequence to a char sequence(one byte to one char). + + The byte sequence. + byte range:0 length. + The string which one char represent one byte. + + + + Encoding for text strings in a PDF document outside the document's + content streams + + + + + Map to unicode code point. + Note: 0 which not first element represent undefined code point in PDFDocEncoding. + + + + + Map to unicode char. + Note: '\0' which not first element represent undefined code point in PDFDocEncoding. + + + + + Decode all the bytes in the specified byte array into a string. + + The byte array containing the sequence of bytes to decode. + A string containing the results of decoding the specified sequence of bytes. + + + + Decode all the bytes in the specified byte array into a string. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + A string containing the results of decoding the specified sequence of bytes. + + + + Get bytes. + + A string. + The encoded bytes using PDFDocEncoding. + + + + Check whether exist character which are not represented in a single byte using PDFDocEncoding. + + A string. + + true,exist character which is out of character set; + otherwise, false. + + + + + Begin an inline image object. + + + + + Begin the image data for an inline image object. + + + + + End an inline image object. + + + + + The filter array to be applied in processing the stream data. + + + + + The parameter dictionary array used by the filters specified by Filter. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + The data of the stream. + + + + + Initializes a new instance of the class. + + The dictionary. + The data of the stream. + + + + Initializes a compressed pdfstream. + + The dictionary of the stream. + The data of the stream. + The pdfstream> + + + + Get the encoded stream. + + + + + Get decoded data. + + The decoded data. + + + + Set encoded data. + + The new encode data. + The filetrs of the encoded data. + The decodeParmsArray of the filters. + + + + Generate a stream writer. + If the stream is compressed, decompress it frist. + + A writer of the stream. + + + + Forbidden filter item used in the stream. + + + + + Clone pdfStream. + + The source pdf stream. + + + + Add filters to the stream. + + The filetrs of the encoded data. + The decodeParmsArray of the filters. + + + + Add a filter to the stream. + + The filter name. + The decode parms. + + + + Clear the stream data. + + + + + Saves the object using the specified writer. + + The writer. + + + + Gets a value indicating whether the object was encrypted. + + + + + Gets a value indicating whether this is decrypted. + + true if decrypted; otherwise, false. + + + + Decrypts the data using the specified encryptor. + + The encryptor. + The current object number. + + + + Encrypts the stream content. + + The data. + The writer. + The encrypted content. + + + + Image Format + + + + + Convert string to a byte array. + + String data + Byte array. + + + + Shows the text on the next line and sets word and character spacings. + + The word spacing. + The char spacing. + The text. + if set to true the text should be in hex. + + + + Shows the text on the next line and sets word and character spacings. + + The word spacing. + The char spacing. + The text. + + + + Begins text. + + + + + Ends text. + + + + + Begins start markup sequence text. + + The name of the markup sequence. + + + + Begins start markup sequence text. + + The name of the markup sequence. + + + + Ends markup sequence text. + + + + + Writes comment to the file. + + + + + + 1 G ,Pen Color + + + + + + 1 g ,Pen Color + + + + + + Set the rgb color + + The color + + + + Set the border width. + + The width + + + + Writes the text. + + The text. + if set to true the text is in hex. + + + + Writes the text. + + The text. + + + + Writes the text. + + The text. + if set to true the text is in hex. + + + + Writes the specified text. + + The text. + + + + Writes the specified data. + + The data. + + + + read bi data + + + + + + + + + Parse an inline image. An inline image starts with BI (already + read, contains a dictionary until ID, and then image data until + EI. + + + + + + Represents page tree. + + + + + Represents page tree node. + + + + + Represents page leaf node. + + + + + The dictionary. + + + + + The ancestors in the hierarchy. + + + + + Initialize a new instance. + + + + + Initialize a new instance. + + The dictionary. + The ancestors in the hierarchy. + + + + Get property. + + The key. + Inheritable. + The value. + + + + Implements the base class for all functions. + + + + + Gets the element. + + + + + + Implements Type 2 (Exponential Interpolation) Functions. + + + + + Initializes a new instance of the class. + + init + + + + Gets or sets the function result when x = 0. + + + + + Gets or sets the function result when x = 1. + + + + + Gets or sets the Exponent. + + + + + The document. + + + + + The objects that has already been visited. + + + + + Construct a new instance. + + The digest method. + + + + Get digest value. + + The digest value. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + + Digest the Pdf object. + + The object to digest. + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents GoToE action in the PDF. + + + + + Represents GoTo3DView action in the PDF. + + + + + Represents Trans action in the PDF. + + + + + Represents Rendition action in the PDF. + + + + + Represents SetOCGState action in the PDF. + + + + + Represents JavaScript action in the PDF. + + + + + Represents ImportData action in the PDF. + + + + + Represents ResetForm action in the PDF. + + + + + Represents SubmitForm action in the PDF. + + + + + Represents Named action in the PDF. + + + + + Represents Sound action in the PDF. + + + + + Represents Movie action in the PDF. + + + + + Represents Hide action in the PDF. + + + + + Represents URI action in the PDF. + + + + + Represents Thread action in the PDF. + + + + + Represents Launch action in the PDF. + + + + + Represents GoToR action in the PDF. + + + + + Represents GoTo action in the PDF. + + + + + Represents action in the PDF. + + + + + Gets or sets the next action to be performed after the action. + + + + + Represents the class for build annotation ap objects. + + + + + The enter character. + + + + + The new line character. + + + + + The space character. + + + + + The appearance string builder. + + + + + The normal stream. + + + + + Constructors an instance. + + + + + Initialize object. + + + + + Build an object. + + The dictionary + + + + Set the property. + + The key + The value + + + + Draw path and stroking . + + The path data. + + + + Add path data. + + The points data + + + + Append data. + + The data + + + + Move to anthor point + + The point x + The point y + + + + Line to anthor point. + + The point x + The point y + + + + Stroking path. + + + + + Fill path. + + + + + Append space character. + + + + + Append a new line character. + + + + + Store state. + + + + + Restore state. + + + + + end build. + + + + + Represents 3D annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Watermark annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents TrapNet annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents PrinterMark annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Screen annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Movie annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Sound annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents FileAttachment annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Popup annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Ink annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Caret annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Stamp annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents StrikeOut annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Squiggly annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Underline annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Highlight annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents polyline annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents polygon annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents circle annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents square annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents line annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents free text annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents link annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents text annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents annotation in the PDF. + + + + + If set, do not display or print the annotation or allow it to interact with the user, + regardless of its annotation type or whether an annotation handler is available. + In cases where screen space is limited, the ability to hide and show annotations + selectively can be used in combination with appearance streams to + display auxiliary pop-up information similar in function to online help systems. + + + + + The annotation dictionary. + + + + + an unsigned 32-bit integer containing flags specifying various characteristics. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents widget annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + The added annotations. + + + + + The updated annotations. + + + + + The deleted annotations. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Get page annotations except widget annotation. + + The document. + The page object. + + + + + The document changed. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Digest document. + + + + + Widget annotation to Form field Mapping in signing document. + + + + + Widget annotation to Form field Mapping in current document. + + + + + The added annotations. + + + + + The updated annotations. + + + + + The deleted annotations. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Get page widget annotations. + + The document. + The page object. + + + + + Hashes the form field. + + + + + + + + + The added pages. + + + + + The updated pages. + + + + + The deleted pages. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + Whether the signature is validated. + + + + The pdf digital signature validator. + + + + + + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The signing document. + + + + + The current document. + + + + + The digest method. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Whether currentObject is incremental updated of signingObject. + + The signing object. + The current object. + + + + + Compare bytes. + + + + + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + No changes to the document are permitted; + any change to the document invalidates the signature. + + + + + Permitted changes are filling in forms, instantiating + page templates, and signing;other changes invalidate the signature. + + + + + Permitted changes are the same as for 2,as well as annotation creation, + deletion,and modification;other changes invalidate the signature. + + + + + The access permissions granted for this document. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + The signing document. + + + + + The current document. + + + + + The digest method. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + Validate signature. + + The signature. + The document. + + + + + Create signature deformatter. + + The signature. + The signature deformatter. + + + + Get the document at the time of signing. + + The signature. + The document. + + + + + Compare the signed and current version of the document. + + The signing document. + The current document. + The signature reference dictionary. + The signature digest value. + + + + Get signature content. + + The document. + The byte range. + The signature content. + + + + Read bytes to buffer from document stream. + + + + + + + + + + + Get incremental update objects. + + The signing document. + The current document. + + + + + Signature properties. + + + + + inner dictionary. + + + + + Set the name of the preferred signature handler to use when validating this signature. + (Required) + + the name of the preferred signature handler. + + + + Set a name that describes the encoding of the signature value. + (Required) + + a name that describes the encoding of the signature value. + + + + Set the X.509 certificate used when signing and verifying signatures that use public-key cryptography. + (Required when SubFilter is adbe.x509.rsa_sha1) + + the X.509 certificate. + + + + Set the X.509 certificate chain used when signing and verifying signatures that use public-key cryptography. + (Required when SubFilter is adbe.x509.rsa_sha1) + + the X.509 certificate chain. + + + + Set signature length. + (Option) + Default, signature need to call twice "Sign" method, one is to calculate signature length. + If the signature length is known, avoid to calculate signature length by "Sign" method. + The signature length. + + the signature length. + + + + Set the name of the software module used to create the signature. + (Option) + + the name of the software module. + + + + Signature formatter. + + + + + Signature properties. + + + + + Sign. + + The data to be signed. + The signature. + + + + Signature deformatter. + + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + Pdf pkcs1 signature implementation. + + + + + The signing certificate. + + + + + The signature properties. + + + + + Parameters for the encoding of the signature. + + + + + Construct a new instance. + + The signing certificate. + + + + Sign. + + The data to be signed. + The signature. + + + + Pdf pkcs7 signature implementation. + + + + + The signing certificate. + + + + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Represents an additional collection of certificates that can be searched + by the chaining engine when validating a certificate chain. + + + + + The signature properties. + + + + + Parameters for the encoding of the signature. + + + + + The service which generate OCSP response. + + + + + The provider which generate timestamp token. + + + + + Represents an additional collection of certificates that can be searched + by the chaining engine when validating a certificate chain. + + + + + Construct a new instance. + + The signing certificate. + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Sign. + + The data to be signed. + The signature. + + + + Find certificate in store. + + The serial number. + The name of the certificate authority. + The certificate. + + + + The certificate chain. + + + + + Sha1 oid. + + + + + if encapsulate is true a copy of the message will be included in the signature. + + + + + The signing certificate. + + + + + + Construct a new instance. + + The signing certificate. + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Sign. + + The data to be signed. + The signature. + + + + Time Stamp service implementation which must conform to RFC 3161. + + + + + Construct an instance of a TSAClient. + + Time Stamp Authority URL. + + + + Construct an instance of a TSAClient. + + Time Stamp Authority URL. + user(account). + password. + + + + Construct an instance of a TSAClient. + Note the token size estimate is updated by each call, as the token + size is not likely to change(as long as we call the same TSA using + the same imprint length). + + Time Stamp Authority URL. + user(account). + password + estimated size of received time stamp token (DER encoded). + + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + + data imprint to be time-stamped + encoded TSA signed data of the timeStampToken + + + + + + + TSA response, raw bytes (RFC 3161 encoded) + + + + Ocsp http service implementation. + + + + + Construct a new instance. + + The ocsp server url. + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + OCSP service interface. + + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Timestamp provider interface. + + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Provide a custom signature appearance implemation. + + + + + The signature. + + + + + The Grapphic render/display mode. + + + + + label of name + + + + + The content to the left of property reason + + + + + label of location + + + + + label of contactInfo + + + + + label of date + + + + + the SignName font. + Note: if not set, the default font will be applied. + + + + + the SignDetails font. + Note: if not set, the default font will be applied. + + + + + The label of The name of the person or authority signing the document. + + + + + The label of signature's reason + + + + + The label of signature's location + + + + + The label of signature's contactInfo + + + + + The label of signature's date + + + + + font color for the signature info + if not set, the default is black + + + + + The Grapphic render/display mode. + + + + + Set or get the sign image layout. + + + + + the SignName font. + Note: if not set, the default font will be applied. + + + + + the SignDetails font. + Note: if not set, the default font will be applied. + + + + + Initialize a new instance. + + The signature. + + + + Generate custom signature appearance by a graphics context. + + A graphics context of signature appearance. + + + + Provide a custom signature appearance interface + + + + + Generate custom signature appearance by a graphics context. + + A graphics context of signature appearance. + + + + Pdf ordinary signature maker. + A document can contain One or more ordinary signatures. + + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + Initialize a new instance. + + The pdf document object + The signature formatter. + + + + Pdf MDP (modification detection and prevention) signature maker. + A document can contain only one MDP signature, it must be the first signed in the document. + It enables the author to specify what changes are permitted to be made the document and + what changes invalidate the author’s signature. + + + + + No changes to the document are permitted; + any change to the document invalidates the signature. + + + + + Permitted changes are filling in forms, instantiating page templates, + and signing; other changes invalidate the signature. + + + + + Permitted changes are the same as for 2, as well as annotation creation, + deletion, and modification; other changes invalidate the signature + + + + + The access permissions granted for this document. + + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + The access permissions granted for this document. + Validate values: + PdfMDPSignatureMaker.Level1Permissions/PdfMDPSignatureMaker.Level2Permissions/PdfMDPSignatureMaker.Level3Permissions + + + + + Find or Create a Perms dictionary + The DocMDP transform method is used to detect modifications relative to a signature field + that is signed by the author of a document (the person applying the first signature). + + + + + (Optional; PDF 1.5) An array of signature reference dictionaries (see Table 8.103). + + + + + + The signing certificate. + + + + + Construct a new instance. + + The signing certificate. + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + A name that describes the encoding of the signature value. + + + + + Construct a new instance. + + + A name that describes the encoding of the signature value. + + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + The pdf signature. + + + + + The signature dictionary. + + + + + The name of the preferred signature handler to use when validating this signature. + + + + + A name that describes the encoding of the signature value. + + + + + The X.509 certificate chain used when signing and verifying signatures that use public-key cryptography. + + + + + The name of the person or anthority signing the document + this value should be used only when it is not possible to extract the name from the signature + for example, from the certificat of the signer + + + + + + The time of signing. Depending on the signature handler + this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server + + + + + Gets or sets the physical location of the signing. + + + + + Gets or sets reason of signing. + The reason for the signing, such as ( I agree … ). + + + + + Gets or sets a phone number of signer + Information provided by the signer to enable a recipient to contact the signer to verify the signature; for example, a phone number. + + + + + The name of the software module used to create the signature. + + + + + Initialize a new instance. + + + + + Initialize a new instance. + + The signature dictionary. + + + + Pdf signatue maker. + + + + + Signature formatter. + + + + + The signature. + + + + + The pdf document object + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + The content to the left of property name + + + + + The content to the left of property distinguishedName + + + + + The content to the left of property reason + + + + + The content to the left of property location + + + + + The content to the left of property contactInfo + + + + + The content to the left of property date + + + + + Prior to Acrobat 6.0, signature appearances were manipulated at run-time in order to display the validity of the signature. + The validity was shown as a graphic icon and with an additional, optional text message. The manipulated portions of the + signature appearance were contained in layers n1, n3 and n4. Beginning with version 6, Acrobat does not maintain support + for signature appearances that can be manipulated, though legacy signatures with these appearances may continue to display + correctly. Use of layers n1, n3, and n4 is not recommended. + + + + + Initialize a new instance. + + The pdf document object + The signature formatter. + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + The name of the person or anthority signing the document + this value should be used only when it is not possible to extract the name from the signature + for example, from the certificat of the signer + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + It is recommended to use "D:{0:yyyyMMddHHmmss}" to format the datetime,for example:String.Format("D:{0:yyyyMMddHHmmss}",DateTime.Now) + The time of signing. Depending on the signature handler + this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server + + + + + + The CPU host name or physical location of the signing. + + + + + + The reason for the signing, such as ( I agree … ). + + + + + + Information provided by the signer to enable a recipient to contact the signer to verify the signature + for example, a phone number. + + + + + + The content to the left of property name + + + + + + The content to the left of property distinguishedName + + + + + + The content to the left of property reason + + + + + + The content to the left of property location + + + + + + The content to the left of property contactInfo + + + + + + The content to the left of property date + + + + + + Only for compatibility old version. + Whether move away signature validity visualizations in document. + Default true. + + + false, display signature validity visualizations in document. + true, move away signature validity visualizations in document. + + + + + Make signature. + + The signature filed name. + + + + Make signature. + + The signature filed name. + Implement a custom signature appearance. + + + + Make signature. + + The signature filed name. + The page index. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + The location of the annotation on the page. + + + + Make signature. + + The signature filed name. + The page index. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + Implement a custom signature appearance. + + + + Generate signature normal appearance. + + The widget annotation. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + + + + Generate top-level XObject. + + The widget annotation. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + The top-level XObject. + + + + Generate second-level XObject. + + The width. + The height. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + The second-level XObject. + + + + Generate n0 layer. + Background layer. + + The width. + The height. + The n0 Background layer. + + + + Generate n1 layer. + Validity layer, used for the unknown and valid state;contains, for instance, a yellow question mark. + + The width. + The height. + The n1 layer. + + + + Generate n2 layer. + Signature appearance,containing information about the signature. This can be text or an XObject + that represents signature. + + The width. + The height. + + The n2 layer. + + + + Generate n3 layer. + Validity layer, containing a graphic that represents the validity of the signature when the signature is validate. + + The width. + The height. + The n3 layer. + + + + Generate n4 layer. + Text layer, for a text presentation of the state of the signature. + + The width. + The height. + The n4 layer. + + + + 添加额外无效字符长度处理两次签名长度一致,pdf-3547 + + + + + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + Write the start position of byteRange + + + + + Write the start position of digestValue + + + + + Handles the BeginSave event of the pdf signature dictionary object. + + The source of the event. + The events arguments. + + + + The signature value + When ByteRange is present + the value is a hexadecimal string representing the value of the byte range digest. + If ByteRange is not present + the value is an object digest of the signature dictionary + + + + + + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + + Calculate signature length + + + + + + Event handler of document saved. + + The source of the event. + The events arguments. + + + + Write the signature "ByteRange" value + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + + Write the signature "ByteRange" value + + + + + + + + + Write the signature "Contents" value + When ByteRange is present + the value is a hexadecimal string representing the value of the byte range digest. + If ByteRange is not present + the value is an object digest of the signature dictionary + + + + + + Modes to determine what and how to dispay the signature infomation. + + + + + Default dispaly model. + Display signature details including signer,location,date,contact infomation and reason. + + + + + Only display the signature image. + + + + + Only display the sign name. + + + + + Diaply sign name and signature details. + + + + + Diaply signature image and signature details. + + + + + Specifies the alignment type of signature text. + + + + + Specifies the signature text is aligned to Left. + + + + + Specifies the signature text is aligned to Center. + + + + + Specifies the signature text is aligned to Right. + + + + + The layout determine how to display the sign image. + + + + + Default. + Sign image status without any modification. + + + + + Stretch the sign image. + + + + + Represents Push Button terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is push button field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Check Box terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is checkbox field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Radio Button terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is radio button field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Choice terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is choice field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Text terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is text field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents field hierarchy which contain field dictionary and the ancestors. + + + + + The dictionary. + + + + + The ancestors in the hierarchy. + + + + + The field dictionary. + + + + + The root field dictionary. + + + + + Initialize a new instance. + + The field full name. + + + + Initialize a new instance. + + The field dictionary. + The ancestors in the hierarchy. + + + + Get field full name. + + + + + + Get field full name. + + The field dictionary. + The ancestors in the hierarchy. + The field full name. + + + + Whether contains property. + + The key. + Inheritable. + + If contain the property, true. + Otherwise, false. + + + + + Get property. + + The key. + Inheritable. + The value. + + + + Set property. + + The key. + The value. + + + + Represents terminal field in the PDF Form. + + + + + The assoiated form. + + + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + The field hierarchy. + + + + + The full name. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Get all widget annotation. + + + + + + Add field's widget annotation. + + The field. + The page of widget annotation. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + The widget annotation. + + + + Whether exist widget annotation entries in field dictionary. + + + If the contents of the field dictionary and the annotation dictionary can be merged into a single dictionary, true. + Otherwise, false. + + + + + Clone and remove widget annotation entries from field dictionary. + + The widget annotation dictionary. + + + + Merge widget annotation entries to field dictionary. + + The field dictionary. + The widget annotation + + + + Add page widget annotation. + + The page dictionary. + The new widget annotation dictionary. + + + + Replace page widget annotation. + + The old widget annotation dictionary. + The new widget annotation dictionary. + + + + Used to gathering information interactively from the user. + + + + + The assoiated document. + + + + + The assoiated document. + + + + + The form dictionary. + + + + + Initialize a new instance. + + + + + Get all fields. + + + + + + Find fields. + + The full name. + The matched fields. + + + + Create signature field. + + The full name. + The new signature field. + + + + + Get field dictionary list. + + The array. + The field dictionary list. + + + + Represents signature field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is signature field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + PDF’s logical structure facilities provide a mechanism for incorporating + structural information about a document’s content into a PDF file. Such + information might include, for example, the organization of the document into + chapters and sections or the identification of special elements such as figures, + tables, and footnotes. The logical structure facilities are extensible, allowing + applications that produce PDF files to choose what structural information to + include and how to represent it, while enabling PDF consumers to navigate a file + without knowing the producer’s structural conventions. + + + + + Construct a new PDF's logical structure. + + + + + Construct PDF's logical structure. + + The structure tree root. + + + + Append structure type element. + + The structure type. + The pdf structure type element. + + + + Get the children structure elements. + + The pdf structure type element list. + + + + Create PDF's logical structure. + + The pdf document. + return new logical structure. + + + + Get PDF's logical structure. + + The pdf document. + + Return PDF's logical structure.If null,the pdf document has not PDF's logical structure. + + + + + A number tree used in finding the structure elements to which content items belong. + + + + + A name tree that maps element identifiers to the structure elements. + + + + + A dictionary that maps the names of structure types used + in the document to their approximate equivalents in the set of standard structure types. + + + + + A dictionary that maps name objects designating attribute classes to + the corresponding attribute objects or arrays of attribute objects + + + + + Represents the Pdf Artifact property list. + + + + + Gets or sets the artifact type + + + + + Gets or sets top of the artifact’s bounding box. + + + + + Gets or sets left of the artifact’s bounding box. + + + + + Gets or sets Bottom of the artifact’s bounding box. + + + + + Gets or sets Bottom of the artifact’s bounding box. + + + + + Gets or sets the subtype of the artifact + + + + + Gets or sets top edge of the page + + + + + Gets or sets left edge of the page + + + + + Gets or sets Bottom edge of the page + + + + + Gets or sets Bottom edge of the page + + + + + Represents the standard struct types. + + + + + Represents the Pdf mark information. + + + + + A flag indicating whether the document conforms to Tagged PDF conventions. + + + + + Represents the Pdf user property. + + + + + The attribute information is held in one or more attribute objects + associated with the structure element. + + + + + Represents the pdf structure marked-content identifier or + marked-content reference, object reference. + + + + + Represents the pdf structure node. + + + + + Represents the pdf structure element. + + + + + The structure type. + + + + + The element identifier. + + + + + The current revision number of this structure element. + + + + + The title of the structure element. + + + + + A language identifier specifying the natural language + for all text in the structure element except where + overridden by language specifications for nested structure elements or marked content. + + + + + An alternate description of the structure element and + its children in human-readable form, which is useful + when extracting the document’s contents in support of + accessibility to users with disabilities or for other purposes. + + + + + The expanded form of an abbreviation. + + + + + Text that is an exact replacement for the structure element + and its children. This replacement text (which should apply + to as small a piece of content as possible) is useful when + extracting the document’s contents in support of accessibility + to users with disabilities or for other purposes. + + + + + Get the children of this structure element. + + + The children of this structure element. + The value of list may be one of the following objects: + structure element or marked-content identifier or + marked-content reference, object reference. + + + + + Append structure type element. + + The structure type. + The pdf structure type element. + + + + Begin a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + The role or significance of the sequence. + + + + Begin a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + The role or significance of the sequence. + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + End a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + + + + Reference struct content. + + + The page object representing the page on which the graphics objects in the marked-content sequence are rendered. + + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + Reference struct content. + + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + BookletLayout. + + + + + The bookletSubset mode. + Default value BothSides. + + + + + The booklet binding mode. + Default value Left. + + + + + Get or set BookletBinding,default value Left. + + + + + Initializes a new instance of the PdfSinglePageLayout class + + + + + Get page content bound in paper content bound. + + The paper printable content bound. + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when booklet Binding is Left or Right. + + The paper content bound. + The page content bound. + + + + Get page content bound when scaling booklet binding is LiftHigh or RightHigh + + The paper content bound. + The page bound. + The page content bound. + + + + Pdf print to booklet subset mode + + + + + Print BothSides. + + + + + Only print Front Side.. + + + + + Only print Reverse Side. + + + + + Pdf print to booklet binding mode + + + + + Left Binding + + + + + Right Binding. + + + + + LeftHigh Binding. + + + + + RightHigh Binding. + + + + + Multi pages to one paper layout. + + + + + Multiple pages order in paper layout. + + + + + A value indicating whether the pages has the page border. + + + + + The number of rows for the paper layout. + + + + + The number of columns for the paper layout. + + + + + The spacing between pages and pages,measured in hundredths of an inch. + + + + + Get or set the number of columns for paper layout. + + + + + Get or set the number of rows for paper layout. + + + + + Get or set a value indicating whether the pages has the page border. + + + + + Get or set the order of pages in the paper layout. + + + + + Initializes a new instance of the PdfMultiPageLayout class. + + + + + Get the page content bounds in paper content bound. + + The paper content bound. + The page content bound in paper content bound. + + + + Get the page bounds in horizontal layout. + + the paper content bound + The page bounds. + + + + Get the page bounds in horizontal reverse layout. + + The paper content bound. + The page bounds. + + + + Get the page bounds in vertical layout. + + The paper content bound. + The page bounds. + + + + Get the page bounds in vertical reverse layout. + + The paper content bound. + The page bounds. + + + + Get the page content bounds in paper bound. + + The page bounds. + The page content bounds. + + + + Multi pages order in the Paper layout. + + + + + Horizontal and from left to right + + + + + Horizontal and from right to left + + + + + Vertical and from left to right + + + + + Vertical and from right to left + + + + + Split one page to multi papers layout. + + + + + Initializes a new instance of the PdfSplitPageLayout class + + + + + Get page bounds. + + The page bound. + The paper content bound. + A List collection abount the page bounds. + + + + One page to one paper layout. + + + + + Page scaling mode,default value FitSize. + + + + + Custom scaling(unit:percent),default value 100f. + + + + + A value indicating whether automatic portrait and landscape. + Default value false. + + + + + Get or set page scaling mode,default value FitSize. + + + + + Get or set custom scaling(unit:percent),default value 100f. + + + + + Get or set a value indicating whether automatic portrait and landscape. + Default value false. + + + + + Initializes a new instance of the PdfSinglePageLayout class + + + + + Get page content bound in paper content bound. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is FitSize. + + The paper content bound. + The page content bound. + + + + Get page content bound when scaling mode is ActualSize. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is CustomSacle. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is ShrinkOverSized. + + The paper content bound. + The page bound. + The page content bound. + + + + Pdf Print Page Scale type + + + + + Adaptive content size. + + + + + The actual size of the content. + + + + + Shrink oversized pages. + + + + + Custom scale. + + + + + Represents information about page size. + The PaperSize's width and height,unit:in hundredths of an inch. + + + + + Letter format. + + + + + Note format. + + + + + Legal format. + + + + + A0 format. + + + + + A1 format. + + + + + A2 format. + + + + + A3 format. + + + + + A4 format. + + + + + A5 format. + + + + + A6 format. + + + + + A7 format. + + + + + A8 format. + + + + + A9 format. + + + + + A10 format. + + + + + B0 format. + + + + + B1 format. + + + + + B2 format. + + + + + B3 format. + + + + + B4 format. + + + + + B5 format. + + + + + ArchE format. + + + + + ArchD format. + + + + + ArchC format. + + + + + ArchB format. + + + + + ArchA format. + + + + + The American Foolscap format. + + + + + HalfLetter format. + + + + + 11x17 format. + + + + + Ledger format. + + + + + The page print to paper. + + + + + Pdf document printSetting. + + + + + Pdf document object. + + + + + The current pages array index in m_pages. + + + + + The printed pages array, it's elements value is document page index. + + + + + Initializes a new instance of the PdfPrinter class. + + Pdf document printSetting. + Pdf document object. + + + + Print Preview. + + + + + Print document. + + + + + Begin print page. + + + + + + + Query page setting. + + + + + + + Print Page. + + + + + + + End print. + + + + + + + Begin print page for one page to one paper. + + + + + Query page setting for one page to one paper. + + + + + + Print one page to one paper. + + + + + + Get the scale page bound. + + The page base + The paper bound + The scale page bound + + + + Begin print page for print to booklet. + + + + + Query page setting for print to booklet. + + + + + + Print document to booklet. + + + + + + Begin print page for multiple pages to one paper. + + + + + Query page setting for multiple pages to one paper. + + + + + + Print multiple pages to one paper. + + + + + + Current page image. + + + + + Current page bound. + + + + + Split bounds of current page. + + + + + Split bound index of current page. + + + + + Paper content bound. + + + + + Begin print page for one page to multiple papers. + + + + + Query page setting for one page to multiple papers. + + + + + + Print one page to multiple papers. + + + + + + Initialize print. + + + + + Get page metafile. + + Document page index. + Page Image. + + + + Get paper margin bound which according paperSettings. the paperSettings + is the attribute of PrintPageEventArgs.PageSettings. (Unit: hundredths of an inch) + PrinterUnit.Display is hundredths of an inch. + + Paper set. + Is consider hard margin. + + If the considerHardXY is true,get the paper content bound arrcording to the printable area. + Otherwise the considerHardXY is false,get the paper content bound according to the whole piece of paper. + Paper content bound(Unit:hundredths of an inch). + + + + + Get page bound. + + Page bound(Unit:PrinterUnit.Display). + + + + Print the pdf page to the paper's bound using uniform mode. + + Provides data for the print page event. + The pdf page. + The pape content bound(Unit:PrinterUnit.Display). + + + + Print the page bound of pdf page image to the paper's bound using fill mode. + + Provides data for the print page event. + The pdf page image. + The pdf page bound(Unit:PrinterUnit.Display). + The pdf page split bound(Unit:PrinterUnit.Display). + The paper's bound(Unit:PrinterUnit.Display). + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Provides data for paper setting event. + + + + + Get current paper index,from 1. + + + + + Gets the paper source trays that are available on the printer. + + + + + Get or set current paper source on the printer. + + + + + Initializes a new instance. + + Current paper index. + paper source trays that are available on the printer. + Current paper source on the printer. + + + + Represents the method that handles paper setting event. + + The source of the event. + The event data + + + + The page print settings. + + + + + Defines a reusable object that sends output to a printer. + + + + + Page layout mode. + + + + + One page to one paper layout. + + + + + Multi-page to one paper layout. + + + + + One page to multi-paper layout. + + + + + Booklet layout. + + + + + The user has specified print pages save in the array. + + + + + User Set Margins + + + + + when user set margins,should be use UserSetMargins instead of paperSettings.Margins(default:false;when user set,m_blUserSetMargins=true) + + + + + Defines a reusable object that sends output to a printer. + + + + + Get or set the name of printer which is on printing pdf document. + + + + + Get or set the document name to display (for example, in a print status dialog box or printer queue) while printing the document. + + + + + Get or set the size of a piece of paper. + + + + + Get or set the number of copies of the document to print. + + + + + Get or set a value indicating whether the page should be printed in color. + true if the page should be printed in color; otherwise, false. The default + is determined by the printer. + + + + + Get or set a value indicating whether the printed document is collated. + + + + + Get or set a value indicating whether the page is printed in landscape or portrait orientation. + Returns: + True if the page should be printed in landscape orientation; otherwise, false. + + + + + Get or set the print controller that guides the printing process. + + + + + Get a value indicating whether the printer supports double-sided printing. + + + + + Get or set the printer setting for double-sided printing. + + + + + Get or set the printer resolution kind. + + + + + Get the pagenumber which you choose as the start page to printing. + + + + + Get the pagenumber which you choose as the final page to printing. + + + + + Gets a value indicating whether the System.Drawing.Printing.PrinterSettings.PrinterName property designates a valid printer. + + + + + Get the user has specified print pages. + + + + + Get or set page layout mode. + + + + + Get one page to one paper layout. + + + + + Get multi-page to one paper layout. + + + + + Get one page to multi-paper layout. + + + + + Get booklet layout. + + + + + Occurs immediately before print each paper. + Note: Ignore on MacOS/Linux platform. + + + + + Occurs when the Spire.pdf.PdfDocument.Print() method is called + and before the first page of the document prints. + + + + + Occurs when the last page of the document has printed. + + + + + Occurs when the output to print for the current page is needed. + + + + + Occurs immediately before each Spire.pdf.PdfDocument.PrintSettings.PrintPage + event. + + + + + Initializes a new instance of the PdfPrintSetting class. + + + + + Set print page range. + + From page. + To page. + + + + Set print some pages. + + Selection pages. + + + + Select one page to one paper layout. + Default pageScalingMode = PdfSinglePageScalingMode.FitSize, autoPortraitOrLandscape = true, customScaling = 100f. + + + + + Select one page to one paper layout. + + Page scaling mode. + + + + Select one page to one paper layout. + + Page scaling mode. + Indicating whether automatic portrait and landscape. + + + + Select one page to one paper layout. + + Page scaling mode. + Indicating whether automatic portrait and landscape. + Custom scaling(unit:percent),default value 100f.Valid only if pageScalingMode== PdfSinglePageScalingMode.CustomScale. + + + + Select muti page to one paper layout. + Default rows = 2, columns = 2, hasPageBorder = false, pageOrder = PdfMultiPageOrder.Horizontal. + + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + A value indicating whether the pages has the page border. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + A value indicating whether the pages has the page border. + Multiple pages order. + + + + Select split page to muti paper layout. + + + + + Select booklet layout. + + + + + Select booklet layout. + + The mode of BookletSubset. + + + + Select booklet layout. + + The mode of BookletBinding. + + + + Select booklet layout. + + The mode of BookletSubset. + The mode of BookletBinding. + + + + Set paper margins,measured in hundredths of an inch. + + Paper margin top(unit:hundredths of an inch). + Paper margin bottom(unit:hundredths of an inch). + Paper margin left(unit:hundredths of an inch). + Paper margin right(unit:hundredths of an inch). + + + + return user set Margins + + + + + + when user set margins,should be use UserSetMargins instead of paperSettings.Margins + + + + + Set printing to file. + + File name. + + + + Trig before each System.Drawing.Printing.PrintDocument.PrintPage. + + The source of the event. + A System.Drawing.Printing.QueryPageSettingsEventArgs that contains the event data. + + + + User set event in begin print. + + The source of the event. + A System.Drawing.Printing.PrintEventArgs that contains the event data. + + + + User set event when the last page of the document has printed. + + The source of the event. + A System.Drawing.Printing.PrintEventArgs that contains the event data. + + + + User set event in print page. + + The source of the event. + A System.Drawing.Printing.PrintPageEventArgs that contains the event data. + + + + User set event in query page setting. + + The source of the event. + A System.Drawing.Printing.QueryPageSettingsEventArgs that contains the event data. + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Pdf print pages layout mode. + + + + + One page to one paper. + + + + + Multiple pages to one paper. + + + + + One page to multiple papers. + + + + + Print to booklet. + + + + + Specifies a printer resolution kind. + + + + + High resolution. + + + + + Medium resolution. + + + + + Low resolution. + + + + + Draft-quality resolution. + + + + + Custom resolution. + + + + + The document’s labeling ranges. + + + + + Decimal arabic numerals style to be used for the numeric portion of each page label. + + + + + Uppercase roman numerals style to be used for the numeric portion of each page label. + + + + + Lowercase roman numerals style to be used for the numeric portion of each page label. + + + + + Uppercase letters style to be used for the numeric portion of each page label. + + + + + Lowercase letters style to be used for the numeric portion of each page label. + + + + + The number tree which is the PageLabels entry in the document catalog. + + + + + The number tree which is the PageLabels entry in the document catalog. + + + + + Construct a new instance. + + + + + Construct a new instance. + + The document’s labeling ranges. + + + + Add labeling range which is a series of consecutive pages using the same numbering system. + + + the page index of the first page in the labeling range. + + + The numbering style to be used for the numeric portion of each page label. + As follow: + Decimal_Arabic_Numerals/Uppercase_Roman_Numerals/Lowercase_Roman_Numerals/Uppercase_Letters/Lowercase_Letters + + + The label prefix for page labels in the labeling range. + + + + + Add labeling range which is a series of consecutive pages using the same numbering system. + + + the page index of the first page in the labeling range. + + + The numbering style to be used for the numeric portion of each page label. + As follow: + Decimal_Arabic_Numerals/Uppercase_Roman_Numerals/Lowercase_Roman_Numerals/Uppercase_Letters/Lowercase_Letters + + + The label prefix for page labels in the labeling range. + + + The value of the numeric portion for the first page label in the range. + Subsequent pages are numbered sequentially from this value, which must be greater than or equal to 1. Default value: 1. + + + + + Get page label. + + The page index. + The page label. + + + + Get page label. + + The page index. + the page index of the first page in the labeling range. + The labeling characteristics for the pages in the labeling range. + The page label. + + + + Get the numeric portion for the page label in the range. + + The number. + The numbering style to be used for the numeric portion of each page label. + The numeric portion for the page label in the range. + + + The number. + UpperCase or LowerCase + The roman numerals style number. + + + + Convert number to letters style. + + The number. + UpperCase or LowerCase + The letters style number. + + + + Represents the pdf application data, used to store private data. + + + + + The application data dictionary. + + + + + The pdf application data dictionary. + + + + + The private data of application data dictionary. + The vaild type: string Dictionary. + + + + + Initialize a pdf piece instance. + + The piece dictionary + + + + Initialize a pdf piece instance. + + The content + + + + Initialize instance. + + The content + + + + Itialize instance. + + The application data + + + + Get the pdf application data dictionary. + + The pdf application data dictionary + + + + Pdf dictionary to dictionary. + + The pdf dictionary + The dictioanry + + + + Pdf array to list. + + The array + The list + + + + Represents the pdf piece info can used to hold private application datas. + + + + + Represents the piece info dictionary. + + + + + Represents the application datas. + + + + + Get the application datas. + + + + + Initialize a pdf piece info instance. + + The piece info dictionary + + + + Initialize a pdf piece info instance. + + + + + Initialize instance. + + + + + Add application data. + + The application name + The private data + + + + Remove the application data. + + The application name + + + + Get the piece info dictionary. + + + + + The booklet options + + + + + The booklet subset + + + + + Initializes a new instance of the class. + + + + + + + Set the booklet subset,only support both sides + + + + + The booklet subset + + + + + The result in document should be printed on both sides of paper. + + + + + Compress contents records. + + The list of records. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Save graphics state. + + + + + Restore graphics state. + + + + + Whether the line widths are equal. + + The record. + true, when the same. + + + + Trim the record operands. + + The record + + + + + Trim the operand if contains .00 + + + + + + + Optimize the font data + + The pdf object. + + + + Optimize the font data + + The font dictionary. + + + + Convert to non-embedded font. + + The font dictionary. + + + + Destructor + + + + + Closes the document. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Reads 4 bytes from the byte array + + Corresponding value + + + + Reads 8 bytes from the byte array + + Corresponding value + + + + Read 4 bytes from the byte array + + Corresponding string value + + + + Read 2 bytes from the byte array + + Corresponding integer value + + + + Get table bytes + + + + + + + + Indicates the common table list + + + + + Update the font data. + + + + + + + Get the font table entry. + + + + + + + + Calulates the check sum value. + + + + + + + Optimize the font. + + The font dictionary. + + + + Optimize the font. + + The font dictionary. + + + + Optimize type0 font + + + + + + + Get the local table last index + + The font dictionary. + + + + + Set the font tables. + + + + + + + + + + Calculate the local and hmtx table length. + + + + + + + + + Update the embedded subset font Name based on the PDF specification. + + + + + + + Compress image pdf stream. + + The pdf object. + + + + Compress image pdf stream. + + The image pdf stream. + The result image. + + + + Remove metadata item. + + The image pdf stream. + + + + Resize image. + + The image pdf stream. + true, when resize sucess. + + + + Compress jpeg image. + + The image pdf stream. + true, if compression sucess; Otherwise, false. + + + + Compress image with JPXDecode. + + The image pdf stream. + + + + Get the image interpolation. + + + + + + + Check whether filter is DCTFilter. + + The image pdf stream + Is DCTFilter, return true; otherwise, return false. + + + + Decode the pdfstream to image. + + The image pdf stream + The result image. + + + + Compress pdf stream with flate filter. + + The pdf stream + Compression success, return true; otherwise, return false. + + + + Destructor + + + + + Closes the document. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + The compression provider. + + + + + The pdf compression options. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Excute after visit the document. + + The pdf processing context. + + + + The class can be used to set some options when do merge operation. + + + + + Gets or sets a value indicates whether to merge the fields with the same name into one field. + + + + + Represents a booklet creator, which allows to create a booklet from a Pdf document. + + + + + Thie method creates a booklet + + The loaded document. + The out file + Size of the page. + + + + Thie method creates a booklet + + The loaded document. + The out stream + Size of the page. + + + + Thie method creates a booklet + + The loaded document. + The out stream + Size of the page. + BookletOptions bookletOptions + Delegate for handling event when the begin drawing page in a booklet. + Delegate for handling event when the end drawing page in a booklet. + + + + + Gets the next pair of page indeces. + + The current iteration index. + The pages count. + if set to true if the result in document should be printed + on both sides of paper. + + An array of integers that holds the indices. + + + + + define a pdf table column + + + + + columns index + + + + + columns index + + + + + Text in table + + + + + Gets or sets the font compression options. + + + + + Gets or sets the image compression options. + + + + + Represents the image quality. + + + + + Gets or sets the compressed image quality. + + Default value is 60. + + + + The origin document. + + + + + The compression options. + + + + + The compression options. + + + + + Initializes a new instance of the class. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Compress document. + + The out file path. + + + + The number of indirect objects. + + + + + The original stream object. + + + + + Initializes a new instance of the class. + + + + + Gets the Image Boundary location. + + + + + Gets the Image,save to stream. + + + + + Gets the image name. + + + + + The number of indirect object. + + + + + The original stream object. + + + + + Initializes a new instance of the class. + + + + + Get all image information on the page. + + The pdf page. + + + + Replace image. + + The original image info. + The new replace image. + + + + Delete an image. + + The information of the image to be delete. + + + + Delete an image. + + The information of the image to be delete. + whether to delete the image resource. + + + + The class can be used to merge pdf documents + + + + + List of inputDocuments + + + + + Merges the specified source documents and return destination document. + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + Some options when do merge operation. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + Some options when do merge operation. + + + + CommonMerge + + + + + + + + define a pdf table row + + + + + columns index + + + + + All columns in the current row + + + + + columns index + + + + + All columns in the current row + + + + + define a pdf table + + + + + table index + + + + + + + + + + + + + + + All rows in the current table + + + + + table index + + + + + All rows in the current table + + + + + + + + + + + + + + + + + Get the current table row count + + + + + + Get the current table column count + + + + + + Get value from the current table + + the row index,the index starts at 0 + the column index,the index starts at 0 + the text + + + + Represent the pdf table extractor. + + + + + 获取当前页面对象 + + + + + Return PdfTable + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance of the class. + + + + + + Extract table from the pdf document + + pageIndex + An array of PdfTable. + + + + TableObject to PdfTable + + + + + + + Create table,fill text + + the current table index + the current row index + the current column index + the current column text + + + + Find tables that on the current page + + + + + + + Represent the pdf text extractor. + + + + + The page. + + + + + Represents an instance. + + The page + + + + Extract the page text. + + The options. + The Extracted Text. + + + + Extract text. + + The extract options + The exteracted text + + + + Process rectanglef. + + The area + The rectanglef + + + + Represents the text replace. + + + + + The page. + + + + + The command delegate. + + + + + The commands. + + + + + Represents an instance. + + The page + + + + Replaces the text in the page page. + + The old text. + The new text. + + + + Replaces all the text in the page page. + + The old text + The new text + + + + Update object stream. + + The recodr collection + + + + Get text paragraph replacer. + + The old text + The text edit options + The text paragraph replacer + + + + Clear the commands. + + + + + Whether the string contains chinese. + + The string + if contains,return true + + + + Get the text font instance. + + The text manager + The abstract text range + The value + The text font instance + + + + Unicodes to char codes. + + The unicode string + The font structure + it is process escape character? + The char codes + + + + Get the font resource name. + + The font resource name + + + + Build the font. + + The font size + The font resource dictionary + The text + + + + Get the font name. + + The abstract text range + The string + The font name + + + + Set width to font. + + The true type font + + + + Wether is contains current font resource. + + The font reource + if contains.return true.or false + + + + Get the font dictionary + + The font resource dictioary + The font dictionary + + + + Whether the physical text segments belongs page. + + The page resource + The physical text segments resource + Belongs page return true,or false + + + + Flush physical text segments. + Do not support the form text now ,so delete the form physical text segments. + + The text ranger + The page + + + + The horizontal alignment. + + + + + The vertical alignment. + + + + + Get the replaced text width. + + The replaced text width + + + + Charcodes to chars. + + The str + The chars + + + + Represent the pdf text extract context. + + + + + Specified the text extract area. + + + + + Whether is use simple extraction. + + + + + Whether is extract all texts. + + + + + Show hidden text? + + + + + Whether is use simple extraction. + default vale: false. + + + + + Whether is extract all texts. + default vale: false. + + + + + Whether is show hidden texts. + default vale: false. + + + + + Specified the text extract area. + default vale: RectangleF.Empty. + + + + + Initialize a new instance. + + + + + Represents base class for all action types. + + + + + Gets or sets the next action to be performed after the action represented by this instance. + + + + + Represents collection of actions. + + + + + Adds the specified action. + + The action. + action + + + + Inserts the action at the specified position. + + The index. + The action. + + + + Gets the index of the action. + + The action. + action + + + + Determines whether the action is contained within collection. + + The action. + + Value, indicating the presents of the action in collection. + + + + + Clears this collection. + + + + + Removes the specified action. + + The action. + + + + Removes the action at the specified position. + + The index. + + + + Initializes a new instance of the class. + + + + + Represents the form action base class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether fields contained in + collection will be included for resetting or submitting. + + + If Include property is true, only the fields in this collection will be reset or submitted. + If Include property is false, the fields in this collection are not reset or submitted + and only the remaining form fields are reset or submitted. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + + true if include; otherwise, false. + + + + Gets the fields. + + The fields. + + + + Represents an action which goes to a destination in the current document. + + + + + Initializes a new instance of the class. + + The destination to jump to. + + + + Initializes a new instance of the class. + + The page to jump to. + + + + Gets or sets the destination. + + The destination. + + + + Initializes a new instance of the class. + + The destination to jump to. + + + + Gets or sets the destination. + + The destination. + + + + Represents an action which performs java script action in pdf document. + + + + + Initializes a new instance of the class. + + The java script code. + A string value representing valid javascript code to be executed. + + + + Gets or sets the javascript code to be executed when this action is executed. + + A string value representing valid javascript code to be executed. + + + + The Adobe Built-in JavaScript + + + + + Get a AFNumber_Format string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate. + The formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed + The currency style - not used + The currency symbol + True to prepend the currency symbol; false to display on the end of the number + + + + Get a AFNumber_Keystroke string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate. + The formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed + The currency style - not used + The currency symbol + True to prepend the currency symbol; false to display on the end of the number + + + + Get a AFRange_Validate string + + Indicate the use of the greater than comparison + The value to be used in the greater than comparison + Indicate the use of the less than comparison + The value to be used in the less than comparison + + + + Get a AFPercent_Format string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate + + + + Get a AFPercent_Keystroke string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate + + + + Get a AFDate_FormatEx string + + Must be one of: "m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yymm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM" + + + + Get a AFDate_KeystrokeEx string + + Must be one of: "m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yymm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM" + + + + Get a AFTime_Format string + + The time format: 0 = 24HR_MM [ 14:30 ], 1 = 12HR_MM [ 2:30 PM ], 2 = 24HR_MM_SS [ 14:30:15 ], 3 = 12HR_MM_SS [ 2:30:15 PM ] + + + + Get a AFTime_Keystroke string + + The time format: 0 = 24HR_MM [ 14:30 ], 1 = 12HR_MM [ 2:30 PM ], 2 = 24HR_MM_SS [ 14:30:15 ], 3 = 12HR_MM_SS [ 2:30:15 PM ] + + + + Get a AFSpecial_Format string + + The type of formatting to use:0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN + + + + Get a AFSpecial_Format string + + The type of formatting to use:0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN + + + + Get a AFSimple_Calculate string + + Must be one of "AVG", "SUM", "PRD", "MIN", "MAX" + The name list of the fields to use in the calculation + + + + Represents an action which launches an application or opens or prints a document. + + + + + Initializes a new instance of the class. + + Name of the file to be launched. + + + + Initializes a new instance of the class. + + Name of the file to be launched. + Name of the file to be launched. + Name of the path type. + + + + Gets or sets file to be launched. + + + + + Indicates the target document should be opened in a new window or not. + + + + + Represents an action which perfoms the named action. + + + + + Gets or sets the destination. + + The object representing destination of an action. + + + + Initializes a new instance of the class. + + The object representing destination of an action. + + + + Represents additional actions of the annotations. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + annotations active area. + + The mouse down action. + + + + Gets or sets the action to be performed when the mouse button is released + inside the annotations active area.. + + The mouse up action. + + + + Gets or sets the action to be performed when the annotation receives the + input focus. + + The got focus action. + + + + Gets or sets the action to be performed when the annotation loses the + input focus. + + The lost focus action. + + + + Represents an action for the document. + + + + + Gets or sets the action to execute when the document is opened. + + A specifying the action to be executed when documents opens in the viewer. + + + + Gets or sets the action to be performed before the document is closed. + + A object specifying the action to be executed before the document is closed. + + + + Gets or sets the java script action to be performed before the document is saved. + + A object specifying the action to be executed before the document is saved. + + + + Gets or sets the jave script action to be performed after the document is saved. + + A object specifying the action to be executed after the document is saved. + + + + Gets or sets the action to be performed before the document is printed. + + A object specifying the action to be executed before the document is printed. + + + + Gets or sets the action to be performed after the document is printed. + + A object specifying the action to be executed after the document is printed. . + + + + Represents an embedded go-to action which allows jumping to or from a PDF file that is embedded in another PDF file. + + + + + Indicates the target document should be opened in a new window or not. + + + + + The target document name. + + + + + The destination in the target document to jump to. + + + + + Initialize a new instance of PdfEmbeddedGoToAction. + + The target PDF file name to be opened. + The destination. + If true, the target PDF would be opened in a new window.Otherwise false. + + + + Represents actions to be performed as response to field events. + + + + + Initializes a new instance of the class. + + The annotation actions. + + + + Gets or sets the JavaScript action to be performed when the user types a keystroke + into a text field or combo box or modifies the selection in a scrollable list box. + This action can check the keystroke for validity and reject or modify it. + + A object specifying the action to be executed when the user types a keystroke. + + + + Gets or sets the JavaScript action to be performed before the field is formatted + to display its current value. + + A object specifying the action to be executed for formating the field value. + + + + Gets or sets the JavaScript action to be performed + This action can check the new value for validity. + + A object specifying the action to be executed for validating the field value. + + + + Gets or sets the JavaScript action to be performed to recalculate the value + of this field when that of another field changes. + + A object specifying the action to be executed for calculating the field value. + + + + Gets or sets the action to be performed when the mouse button is released + inside the fields area. + + A descendant specifying the action to be executed when the mouse button is released inside the field's area. + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + fields area. + + A descendant specifying the action to be executed when the mouse button is pressed inside the field's area. + + + + Gets or sets the action to be performed when the field receives the + input focus. + + A descendant specifying the action to be executed when the field receives the input focus. + + + + Gets or sets the action to be performed when the field loses the + input focus. + + A descendant specifying the action to be executed when the field losts the input focus. + + + + Represents Pdf form's reset action. + + This action allows a user to reset the form fields to their default values. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether fields contained in Fields + collection will be included for resetting. + + true if include; otherwise, false. + + If Include property is true, only the fields in this collection will be reset. + If Include property is false, the fields in this collection are not reset + and only the remaining form fields are reset. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + + + + + Represents the sound action. + + + + + Initializes a new instance of the class. + + Name of the sound file. + + + + Gets or sets the volume at which to play the sound, in the range -1.0 to 1.0. + + The volume of the sound. + + + The name of the sound file. + + + + Gets or sets the sound. + + represents the sound. + + + + Gets or sets a value whether to play the sound synchronously or asynchronously. + If this flag is true, the viewer application retains control, allowing no further + user interaction other than canceling the sound, until the sound has been + completely played. Default value: false. + + true if synchronous; otherwise, false. + + + + Gets or sets a value indicating whether to repeat the sound indefinitely. + If this entry is present, the property is ignored. Default value: false. + + true if repeat; otherwise, false. + + + + Gets or sets a value indicating whether to mix this sound with any other + sound already playing. If this flag is false, any previously playing sound is + stopped before starting this sound; this can be used to stop a repeating + sound. Default value: false. + + true if mix; otherwise, false. + + + + Represents Pdf form's submit action. + + This type of action allows a user to go to a resource on the Internet, tipically a hypertext link. + + + + Initializes a new instance of the class. + + The URL. + + + An string value specifying the full URI for the internet resource. + + + + Gets or sets the HTTP method. + + The HTTP method. + + + + If set, any submitted field values representing dates are converted to the + standard format. The interpretation of a form field as a date is not specified + explicitly in the field itself but only in the JavaScript code that processes it. + + + true if use canonical date time format when submit data; otherwise, false. + + + + + Gets or sets a value indicating whether to submit mouse pointer coordinates. If set, + the coordinates of the mouse click that caused the submit-form action are transmitted + as part of the form data. + + true if submit coordinates; otherwise, false. + + + + Gets or sets a value indicating whether to submit fields without value. + If set, all fields designated by the Fields collection and the + flag are submitted, regardless of whether they have a value. For fields without a + value, only the field name is transmitted. + + + true if submit fields without value or the empty ones; otherwise, false. + + + + + Gets or sets a value indicating whether to submit form's incremental updates. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the submitted FDF file includes the contents of all incremental + updates to the underlying PDF document. If clear, the incremental updates are + not included. + + + true if incremental updates should be submitted; otherwise, false. + + + + + Gets or sets a value indicating whether to submit annotations. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the submitted FDF file includes all markup annotations in the + underlying PDF document. If clear, markup annotations are not included. + + true if annotations should be submitted; otherwise, false. + + + + Gets or sets a value indicating whether to exclude non user annotations form submit + data stream. Meaningful only when the form is being submitted in Forms Data Format + and the property is set to true. + + + true if non user annotations should be excluded; otherwise, false. + + + + + Gets or sets a value indicating whether to include form to submit data stream. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the property is a file name containing an embedded file + stream representing the PDF file from which the FDF is being submitted. + + true if form should be embedded to submit stream; otherwise, false. + + + + Gets or sets the submit data format. + + The submit data format. + + + + Gets or sets a value indicating whether fields contained in Fields + collection will be included for submitting. + + true if include; otherwise, false. + + If Include property is true, only the fields in this collection will be submitted. + If Include property is false, the fields in this collection are not submitted + and only the remaining form fields are submitted. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + If the field has Export property set to false it will be not included for + submitting in any case. + + + + + Represents an action which resolves unique resource identifier. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The unique resource identifier. + + + + Gets or sets the unique resource identifier. + + The unique resource identifier. + + + + Specifies the file path type. + + + + + Specifies the file location with out including the domain name. + + + + + Specifies the location, including the domain name. + + + + + Specifies the available named actions supported by the viewer. + + + + + Navigate to first page. + + + + + Navigate to last page. + + + + + Navigate to next page. + + + + + Navigate to previous page. + + + + + Specifies the available data formats for submitting the form data. + + + + + If clear, the Fields array specifies which fields to + include in the submission. + + + + + If set, all fields designated by the Fields array and the Include/ + Exclude flag are submitted, regardless of whether they have a value. + For fields without a value, only the + field name is transmitted. + + + + + Meaningful only if the SubmitPDF and XFDF flags are clear. If set, + field names and values are submitted in HTML Form format. If + clear, they are submitted in Forms Data Format + + + + + If set, field names and values are submitted using an HTTP GET + request. If clear, they are submitted using a POST request. This flag + is meaningful only when the ExportFormat flag is set; if ExportFormat + is clear, this flag must also be clear. + + + + + If set, the coordinates of the mouse click that caused the submitform + action are transmitted as part of the form data. + + + + + Meaningful only if the SubmitPDF flags are clear. If set, + field names and values are submitted as XML Forms Data Format . + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF file includes the contents + of all incremental updates to the underlying PDF document, + as contained in the Differences entry in the FDF dictionary. + If clear, the incremental updates are not included. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF file includes all markup + annotations in the underlying PDF document. + If clear, markup annotations are not included. + + + + + If set, the document is submitted as PDF, using the + MIME content type application/pdf (described in Internet RFC + 2045, Multipurpose Internet Mail Extensions (MIME), Part One: + Format of Internet Message Bodies; see the Bibliography). If set, all + other flags are ignored except GetMethod. + + + + + If set, any submitted field values representing dates are + converted to the standard format described. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and + ExportFormat flags are clear) and the IncludeAnnotations flag is + set. If set, it includes only those markup annotations whose T entry + matches the name of the current user, as determined + by the remote server to which the form is being submitted. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF excludes the F entry. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the F entry of the submitted FDF is a file + specification containing an embedded file stream representing the + PDF file from which the FDF is being submitted. + + + + + Represents the activation states for the 3D annotation. + + + + + Gets or sets the activation mode for the annotation. + + + + + Gets or sets the deactivation mode for the annotation. + + + + + Gets or sets the activation state for the annotation. + + + + + Gets or sets the deactivation state for the annotation. + + + + + Gets or sets a value indicating whether the toolbar should be displayed when the annotation is activated or not. + + If true, a toolbar should be displayed by default when the annotation is activated and given focus. If false, a toolbar should not be displayed by default. + + + + Gets or sets a value indicating whether the UI for managing the 3D artwork should be displayed when the annotation is activated. + + If true, the user interface should be made visible when the annotation is activated. If false, the user interface should not be made visible by default. + + + + Initializes the new instance of class. + + + + + Represents the lighting to apply for the 3D artwork. + + + + + Gets or sets the type of the animation. + + + + + Gets or sets the play count. + + + + + Gets or sets the rendering opacity. + A positive number specifying the time multiplier to be used when running the animation. A value greater than one shortens the time it takes to play the animation, or effectively speeds up the animation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + PDF 3D Animation Type. + + + + Represents the background appearance for 3D artwork. + + + + + Gets or sets the background color. + + The object specifying the background color for the 3D artwork. + + + + Gets or sets a value indicating how the background is applied. + + True if the background is applied to entire annotation, false if the background is applied to annotation's 3D view box only. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifying the background color for the 3D artwork. + + + + Initializes a new instance of the class. + + + + + + Represents the clipping portion of the 3D artwork for the purpose of showing artwork cross sections. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the center of the cutting plane. + A three element array specifying the center of rotation on the cutting plane in world space coordinates. + + + + + Gets or sets the cutting plane color. + + + + + Gets or sets the intersection color. + + + + + Gets or sets a value indicating whether the intersection of cutting plane with 3D artwork is visible. + + + + + Gets or sets the cutting plane opacity. + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + + Gets or sets the orientation of the cutting plane. + A three-element array specifying the orientation of the cutting plane in world space, where each value represents the orientation in relation to the X, Y, and Z axes, respectively. + If the array has more than 3 elements, only the first 3 will be considered. Exactly one of the values must be null, indicating an initial state of the cutting plane that is perpendicular to the corresponding axis and clipping all geometry on the positive side of that axis. The other two values must be numbers indicating the rotation of the plane, in degrees, around their corresponding axes. The order in which these rotations are applied should match the order in which the values appear in the array. + + + + + Represents the collection of objects. + + + + + Adds the specified value. + + The value. + + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of. + + The value. + + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The value. + + + + Gets or sets the at the specified index. + + + + + Represents the lighting scheme for the 3D artwork. + + + + + Gets or sets the Lighting style of the 3D artwork. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifies the style of the 3D artwork. + + + + Represents the particular areas of 3D artwork and the opacity and visibility with which individual nodes are displayed. + + + + + Gets or sets a value indicating whether the node is visible or not. + + True if the node is visible. + + + + Gets or sets the node name. + + The name of the 3D node. + + + + Gets or sets the cutting plane opacity. + + A number indicating the opacity of the cutting plane using a standard additive blend mode. + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + Gets or sets the 3D transformation matrix. + + A 12-element 3D transformation matrix that specifies the position and orientation of this node, relative to its parent, in world coordinates. + If the array has more than 12 elements, only the first 12 will be considered. + + + + Initializes a new instance of the class. + + + + + Represents a collection of objects. + + + + + Adds the specified value. + The value. + + + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of. + + The value. + + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The value. + + + + Gets or sets the at the specified index. + + + + + Represents the mapping of 3D camera co-ordinates onto the target coordinate system of the annotation. + + + + + Gets or sets the type of the projection. + + + + + Gets or sets the projection ClipStyle. + + + + + Gets or sets the scale mode for ortho graphic projections. + + + + + Gets or sets the far clipping distance. + + + + + Gets or sets the field of view. + + + + + Gets or sets the near clipping distance. + + + + + Gets or sets the projection scaling. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Pdf3D Projection Type. + + + + Represents the rendering mode of the 3D artwork. + + + + + Gets or sets the type of the projection. + + + + + Gets or sets the Auxiliary color. + + + + + Gets or sets the Face color. + + + + + Gets or sets the crease value. + The crease value is specified in degrees, from 0 to 360. + + + + + Gets or sets the rendering opacity. + + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifies the rendering style of the 3D artwork. + + + + Represents a attributes to be applied to the virtual camera associated with a 3D annotation. + + + + + Gets or sets the background for this view. + + + + + Gets or sets the 3D transformation matrix. + + A 12-element 3D transformation matrix that specifies a position and orientation of the camera in world coordinates. + If the array has more than 12 elements, only the first 12 will be considered. + + + + Gets or sets the center of orbit for 3D artwork. + + A non-negative number indicating a distance in the camera coordinate system along the z axis to the center of orbit for this view. + If this value is negative, the viewer application must determine the center of orbit. + + + + Gets the list of cross sections for this view. + A list of PDF3DCrossSection objects available for this view. + + + + + Gets or sets the view's external name. + + The external name of the view, suitable for presentation in a user interface. + + + + Gets or sets the view's internal name. + + + + + Gets or sets the Creates a new page and adds it as the last page of the document scheme for this view. + + + + + Gets the list of 3D nodes for this view. + + A list of PDF3DNode objects available for this view. + + + + Gets or sets the projection for this view. + + + + + Gets or sets the rendering mode for this view. + + + + + Gets or sets a value indicating whether nodes specified in the Nodes collection are returned to their original states (as specified in the 3D artwork) before applying transformation matrices and opacity settings specified in the node dictionaries. + + + + + Gets or sets the name of the view node. + + The view node in the content stream defines all the properties for viewing the 3D artwork. If both ViewNodeName and CameraToWorldMatrix are specified, then ViewNodeName takes precedence. + + + + Initializes a new instance of the class. + + + + + Represents a collection of Pdf3DView objects. + + + + + Adds the specified value. + + The value. + Pdf3DView + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of the Pdf3DView object. + + The value. + Pdf3DView + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The Pdf3DView object. + + + + Gets or sets the at the specified index. + + Pdf3DView + + + + Specifies an activation state of the 3D annotation. + + + + + Represents that the state in which the artwork has been read and a run-time instance of + the artwork has been created. In this state, it can be rendered but script-driven + real-time modifications (that is, animations) are disabled. + + + + + Represents that the artwork is instantiated, and it is being modified in real time to + achieve some animation effect. In the case of keyframe animation, the artwork is + live while it is playing and then reverts to an instantiated state when playing + completes or is stopped. + + + + + Specifies the available modes for activating a 3D annotation. + + + + + Represents that the annotation should be activated as soon as the page containing + the annotation is opened. + + + + + Represents that the annotation should be activated as soon as any part of the page + containing the annotation becomes visible. + + + + + Represents that the annotation should remain inactive until explicitly activated + by a script or user action. + + + + + Specifies the available modes for deactivating a 3D annotation. + + + + + Represents that the annotation should be deactivated as soon as the page is closed. + + + + + Represents that the annotation should be deactivated as soon as the page containing + the annotation becomes invisible. + + + + + Represents that the annotation should remain active until explicitly deactivated by a + script or user action. + + + + + Specifies the available states upon deactivating a 3D annotation. + + + + + Represents the initial state of the artwork before it has been used in any way. + + + + + Represents that the state in which the artwork has been read and a run-time instance of + the artwork has been created. In this state, it can be rendered but script-driven + real-time modifications (that is, animations) are disabled. + + + + + Represents that the artwork is instantiated, and it is being modified in real time to + achieve some animation effect. In the case of keyframe animation, the artwork is + live while it is playing and then reverts to an instantiated state when playing + completes or is stopped. + + + + + Specifies the available styles for applying light to 3D artwork. + + + + + The Lights as specified in the 3D artwork. + + + + + The lighting specified in the 3D artwork is ignored. + + + + + Three blue-grey infinite lights. + + + + + Three light-grey infinite lights. + + + + + One yellow, one aqua, and one blue infinite light. + + + + + Three grey infinite lights. + + + + + One red, one green, and one blue infinite light. + + + + + Three blue infinite lights. + + + + + Three red infinite lights. + + + + + Six grey infinite lights aligned with the major axes. + + + + + Three grey infinite lights and one light attached to the camera. + + + + + Single infinite light attached to the camera. + + + + + Specifies the available clipping style of the 3D annotation. + + + + + Represents the Clipping style. + + + + + Represents the Clipping style. + + + + + Specifies the available Ortho projection scaling mode of the 3D annotation. + + + + + Scale to fit the width of the annotation. + + + + + Scale to fit the height of the annotation. + + + + + Scale to fit the lesser of width or height of the annotation. + + + + + Scale to fit the greater of width or height of the annotation. + + + + + No scaling should occur due to binding. + + + + + Specifies the available projection type of the 3D annotation. + + + + + Represents Orthographic projection + + + + + Represents Perspective projection. + + + + + Specifies the available rendering style of the 3D artwork. + + + + + Displays textured and lit geometric shapes. In the case of artwork + that conforms to the Universal 3D File Format specification, these + shapes are triangles. + + + + + Displays textured and lit geometric shapes (triangles) with single + color edges on top of them. + + + + + Displays textured and lit geometric shapes (triangles) with an added + level of transparency. + + + + + Displays textured and lit geometric shapes (triangles) with an added + level of transparency, with single color opaque edges on top of it. + + + + + Displays the bounding box edges of each node, aligned with the axes + of the local coordinate space for that node. + + + + + Displays bounding boxes faces of each node, aligned with the axes of + the local coordinate space for that node, with an added level of transparency. + + + + + Displays bounding boxes edges and faces of each node, aligned with the axes of + the local coordinate space for that node, with an added level of transparency. + + + + + Displays only edges in a single color. + + + + + Displays only edges, though interpolates their color between their two vertices + and applies lighting. + + + + + Displays edges in a single color, though removes back-facing and obscured edges. + + + + + Displays only vertices in a single color. + + + + + Displays only vertices, though uses their vertex color and applies lighting. + + + + + Displays silhouette edges with surfaces, removes obscured lines. + + + + + Displays silhouette edges with lit and textured surfaces, removes obscured lines. + + + + + Displays silhouette edges with lit and textured surfaces and an additional emissive + term to remove poorly lit areas of the artwork. + + + + + Specifies the available animation style for rendering the 3D artwork. + + + + + Represents that the Keyframe animations should not be driven directly by + the viewer application. This value is used by documents that are intended + to drive animations through an alternate means, such as JavaScript. + + + + + Represents that the Keyframe animations are driven linearly from beginning to end. + This animation style results in a repetitive playthrough of the animation, + such as in a walking motion. + + + + + Represents that the Keyframe animations should oscillate along their time range. + This animation style results in a back-and-forth playing of the animation, + such as exploding or collapsing parts. + + + + + Represents the annotation with associated action. + + + + + Initializes a new instance of the class. + + Bounds of the annotation. + The Pdf action. + + + + Represents base class for link annotations with associated action. + + + + + Gets or sets the action for the link annotation. + + The action to be executed when the link is activated. + + + + Initializes a new instance of the class. + + Bounds of the annotation. + + + + Initializes a new instance of the class. + + Bounds specifies the location of the drawn text. + The specifies an action to be executed when the link is activated. + + + + Represents the states of an annotation's appearance. + + + + + Gets or sets the active state template. + + The object specifies an active state template. + + + + Gets or sets the inactive state. + + The object specifies an inactive state template. + + + + Gets or sets the mapping name of the active state. + + String specifies the mapping name of the active state. + + + + Gets or sets the mapping name of the inactive state. + + String specifies the mapping name of the inactive state. + + + + Initializes a new instance of the class. + + + + + Represents the appearance of an annotation. + + + + + Gets or sets object which applied to annotation in normal state. + + + + + Gets or sets object which applied to the annotation on hovering the mouse. + + + + + Gets or sets object which applied to an annotation when mouse button is pressed. + + + + + Initializes a new instance of the class. + + The object specifies the annotation. + + + + Represents extended appearance of the annotation. It has two states such as On state and Off state. + + + + + Gets the normal appearance of the annotation. + + The object specifies the normal appearance of the annotation. + + + + Gets the appearance when mouse is hovered. + + The object specifies the annotation appearance when the mouse is hovered on it. + + + + Gets the pressed state annotation. + + The appearance in pressed state. + + + + Initializes a new instance of the class. + + + + + The pdf fixed print dictionary. + + + + + The dictionary. + + + + + Initialize an instance. + + + + + Initializes annotation object. + + + + + Set the matrix. + + The matrix + + + + Set the horizontal translation. + + The horizontal + + + + Set the vertical translation. + + The vertiacl + + + + Gets the element. + + The element + + + + Gets or sets the rectangular diffecences + + + + + Gets or sets the user who created the annotation. + + + + + Gets or sets the annotation's subject. + + + + + Represents a line annotation. + + + + + To specifying Caption Type + + + + + To specifying author + + + + + To specifying subject + + + + + Gets or sets whether the line annotation caption should be displayed. + + true if the line caption should be displayed, otherwise false. + + + + Gets or sets Leader Line + + + + + Gets or sets Leader Line Extension + + + + + Gets or sets Border style of the Line Annotation. + + A enumeration member specifying the border style for the line. + + + + Gets or sets the style used for the beginning of the line. + + A enumeration member specifying the begin style for the line. + + + + Gets or sets the style used for the end of the line. + + A enumeration member specifying the end style for the line. + + + + Gets or sets the line caption text type. + + A enumeration member specifying the line caption type. + + + + Gets or sets LineIntent + + + + + Gets or sets Inner Color of the PdfLine + + + + + Gets or sets Background Color of the PdfLine + + + + + To specifying author + + + + + To specifying subject + + + + + Initializes new instance of class. + + The line points. + + + + Initializes new instance of class. + + The line points. + The line caption text. + + + + Initializes new instance of class. + + Bounds of the annotation. + + + + Represents the border style of the Line annotation. + + + + + Gets or sets the width. + + The line border width. + + + + Gets or sets the border style. + + The line border style. + + + + Gets or sets the Line Dash + + The line border dash array. + + + + Initializes a new instance of the class. + + + + + Represents the base class for link annotations. + + + + + Initializes new instance of class. + + + + + Initializes new instance of class. + + Bounds of the annotation. + + + + Represents the 3D annotation for a PDF document. + + + + + The crossTable + + + + + Gets the list of available views for the current 3D artwork. + + + + + Gets or sets the default view. + + The default view. + + + + Gets or sets the code to execute when the 3D artwork is instantiated. + Javascript code to be executed when the 3D artwork is instantiated. + + + + + Gets or sets the activation options for the annotation. + + Defines the times at which the annotation should be activated and deactivated and the state of the 3D artwork instance at those times. + + + + Gets a 3d viedo file from Pdf3DAnnotation + + + + Filename with Full path + + + + Initializes a new instance of the class. + + Bounds of the annotation. + + + Bounds of the annotation. + Name of the sound file. + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents Ink annotation in the PDF. + + + + + Initialize a new instance. + + annotation points position + The annotation points position, defining the location of the annotation + on the page in default user space units. + + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Gets or sets the annotation opacity. + The opacity is given in decimal, 1 is full opacity, 0 is no opacity. + + + + + Represents the ink annotation class. + + + + + The ink list. + + + + + The crossTable + + + + + The dictionary + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents the polygon annotation. + + + + + The radius. + + + + + The appearance. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The vertice coordinates. + + + + + The date and time when the annotation was most recently modified. + + + + + The border effect. + + + + + Gets or sets appearance of the annotation. + + + + + Initialize a new instance of PdfPolygonAnnotation. + + The page + The polygon vertices + + + + Get the vertices + + Return vertices + + + + Get the radius. + + The radius + + + + Generate cloud border arctangle. + + The polygon points + The rectangles + The start angles in degrees + The sweep angles in degrees + + + + Reseting the graphics matrix. + + + + + Draw the ap content. + + + + + Represents the poly line annotation. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The radius. + + + + + The appearance. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The vertice coordinates. + + + + + Gets or sets appearance of the annotation. + + + + + Initialize instance. + + + + + + + + + + Create rectangle. + + + + + Initialize a new instance of PdfPolygonAnnotation. + + The page + The polygon vertices + + + + Draw the ap content. + + + + + + + + + + + Represents the Rubber Stamp annotation for a PDF document. + + + + + internal varable for the rubberstamp annotation icon + + + + + Annotation's appearance. + + + + + The annotation`s creater + + + + + The annotation`s creat time + + + + + The annotation`s subject. + + + + + Gets or sets the annotation's icon. + + A enumeration member specifying the icon for the annotation when it is displayed in closed state. + + + + Gets or sets appearance of the annotation. + + + + + Gets or set the name of the annotation,the entry is deleted by default when the + input value is an empty string + + + + + Gets or sets the annotation's subject. + + + + + Gets or sets the creation date. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + RectangleF structure that specifies the bounds of the annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the rubber stamp annotation. + + + + Initializes annotation object. + + + + + Saves an annotation. + + + + + The water mark annotation. + + + + + The fixed print dictionary. + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the fixed print annotation. + + + + Set the matrix. + + The matrix + + + + Set the horizontal translation. + + The horizontal + + + + Set the vertical translation. + + The vertiacl + + + + Initializes annotation object. + + + + + Saves an annotation. + + + + + Represents the class for text web link annotation. + + + + + Gets or sets the Url address. + + + + + Initializes a new instance of the class. + + + + + Draws a Text Web Link on the Page + + The page where the annotation should be placed. + The location of the annotation. + Pdf Layout result + + + + Draw a Text Web Link on the Graphics + + The object specifies where annotation should be placed.. + The location of the annotation. + + + + Add annotation to page. + + The page + The advance + + + + Represents the text markup annotation. + + + + + Gets or sets TextMarkupAnnotationType . + + + + + Gets or sets text markup color. + + + + + Initializes new instance of class. + + + + + Initializes new instance of class. + + The markup annotation title. + The string specifies the text of the annotation. + The string specifies the markup text of the annotation. + The location of the markup text annotation. + The specifies the text appearance of the markup text annotation. + + + + Initializes new instance of class. + + The title of the annotation. + The text of the annotation. + The bounds of the annotation. + The font of the annotation. + + + + Initializes new instance of class. + + The title of the annotation. + The text of the annotation. + The bounds of the annotation. + + + + Initializes new instance of class. + + The bounds of the annotation. + + + + Represents the base class for loaded annotation classes. + + + + + Represents the Form field identifier + + + + + Gets and sets the Page. + + + + + Sets the name of the field. + + New name of the field. + + + + Represents the attachment annotation from the loaded document. + + + + + Gets or sets the icon of the annotation. + + + + + Gets the attachment file name of the annotation. + + + + + Represents the loaded caret annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + An array that describing the numerical differences between the annotation rectganle entry + and the actual boundaries + + + + + specifying a symbol + + + + + Gets or sets the symbol + + + + + Gets or sets the rectangular diffecences array + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Set the rectangular differences array + + An float array + + + + Gets the symbol + + The symbol + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true or false + + + + Check the validity of the number in array + + The array + Validity return true or false + + + + Represents the loaded document link annotation class. + + + + + Gets or Sets the destination of the annotation. + + + + + Represents the loaded file link annotation class. + + + + + Gets or sets the filename of the annotation. + + + + + Represents the free text annotation widget. + + + + + An array that describing the numerical differences between the annotation rectganle entry + and the actual boundaries + + + + + Gets or sets the date and time when the annotation was most recently modified. + + + + + Gets or sets the rectangular diffecences array + + + + + Gets a name describing the intent of the free text annotation. + + + + + Get the line ending style + + + + + Get the callout line + + + + + Gets the border width. + + + + + Gets the border color + + + + + Gets the border style + + + + + Gets the rectangular diffecences array + + An float array + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true ,or false + + + + Check the validity of the number in array + + The array + Validity return true ,or false + + + + Represents the loaded line annotation class. + + + + + To specifying author + + + + + To specifying subject + + + + + Gets or sets the back color of the annotation. + + + + + Gets or sets the begin line style of the annotation. + + + + + Gets or sets the caption type of the annotation. + + + + + Gets or sets the end line style of the annotation. + + + + + Gets or sets the inner line color of the annotation. + + + + + Gets or sets the leader line of the annotation. + + + + + Gets the endpoint of the annotation, it's at the bottom left + The origin of coordinate system corresponds to the lower-left corner of page.The positive x axis extends horizontally to the right and the positive y axis vertically upward + + + + + Gets the startpoint of the annotation, it's at the bottom left + The origin of coordinate system corresponds to the lower-left corner of page.The positive x axis extends horizontally to the right and the positive y axis vertically upward + + + + + Gets or sets the leader ext of the annotation. + + + + + Gets the line border of the annotation. + + + + + Gets or sets the line caption of the annotation. + + + + + Gets or sets the line intent of the annotation. + + + + + To specifying author + + + + + To specifying subject + + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Get begin line style point data. + + The point array data + + + + Get end line style point data. + + The point array data + + + + Get open arrow style data. + + The point + The point array data + + + + Represents the loaded markup annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Gets or sets the primary markup annotation + + + + + Gets or set the rely type + + + + + Gets or sets the intent + + + + + Gets or sets the rich content + + + + + Gets the popup annotation + + + + + Gets or sets the annotation's author. + + + + + Gets or sets the date and time when the annotation was created. + + + + + Gets or sets the annotation's subject. + + + + + Gets the opacity value to be used. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Sets the name of the annotation,the entry is deleted by default when the input + value is an empty string + + New name of the annotation. + + + + Get the promary markup annotation + + The promary markup annotation + + + + Gets the rely type,deauflt value is MarkupAnnotationRelyType.R + + The rely type + + + + Gets teh rich content + + rich content + + + + Gets the popup annotation + + The popup annotation + + + + Gets the annotation's author. + + + + + + Gets the date and time when the annotation was created. + + The time when the annotation was created + + + + Gets the intent + + The intent + + + + Gets the opacity + + The opacity + + + + Gets the annotation's subject. + + The annotation's subject + + + + Represents the loaded text PolygonAndPolyLine annotation class. + + + + + CrossTable + + + + + Dictionary + + + + + The vertice coordinates. + + + + + Gets or sets the inner line color of the annotation. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Get the vertices + + Return vertices + + + + Set the vertices + + The pointf array + + + + Check the vertices is valid + + The points + if vaild ,return true,or false + + + + Gets back color of the annotation. + + The back color. + + + + Set the inner line color + + The pdf rgb color + + + + Represents the loaded text Polygon annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Get or set the intent + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Gets the intent + + The intent + + + + Represents the loaded text Polygon annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Get or set the intent + + + + + Get or set the line ending style + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Gets the intent + + The intent + + + + Gets the intent + + The intent + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Build data. + + The ap builder + + + + Represents the loaded pop up annotation class. + + + + + Gets or sets the open option of the popup annotation. + + + + + Gets or sets the icon of the annotation. + + + + + Represents the loaded rubber stamp annotation class. + + + + + Gets or sets the icon of the annotation. + + + + + Represents the loaded sound annotation class. + + + + + Gets or sets the sound of the annotation. + + + + + Gets the filename of the annotation. + + + + + Gets or sets the icon of the annotation. + + + + + The crossTable + + + + + The dictionary + + + + + Gets or sets the inner line color of the annotation. + + + + + Gets or sets the rectangular diffecences array + + + + + Gets back color of the annotation. + + The back color. + + + + Set the inner line color + + The pdf rgb color + + + + Gets the rectangular diffecences array + + An float array + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true ,or false + + + + Check the validity of the number in array + + The array + Validity return true ,or false + + + + Represents the PdfLoadedStyledAnnotation. + + + + + Gets or sets the color. + + The color. + + + + Gets or sets the text. + + The text. + + + + + Gets or sets the annotation's border. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the annotation flags. + + + + + The author of the annotation. + + + + + The state of the annotation. + + + + + The stateModel of the annotation. + + + + + Gets the annotation's state. + + + + + Gets the annotation's stateModel. + + + + + Gets the iconname value to be used. + + + + + Gets the open option of the popup annotation. + + + + + Represents the loaded text markup annotation class. + + + + + Gets or sets the annotation Type. + + + + + Gets or sets the color. + + + + + Represents the loaded text web link annotation class. + + + + + Gets or sets the Url. + + + + + Represents the loaded unique resource identifier annotation class. + + + + + Gets or sets the unique resource identifier text of the annotation. + + + + + The water mark annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the fixed print annotation. + + + + Initializes annotation object. + + + + + Represents the loaded web link annotation class. + + + + + Specifies the name of an icon to be used in displaying the sound annotation. + + + + + Speaker icon of sound link. + + + + + Microphone icon of sound link. + + + + + Specifies the type of icon to be used in displaying file attachment annotations. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Specifies the enumeration of the annotation flags. + + + + + Default value. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Specifies the enumeration of popup annotation icons. + + + + + Indicates note popup annotation. + + + + + Indicates comment popup annotation. + + + + + Indicates help popup annotation. + + + + + Indicates insert popup annotation. + + + + + Indicates key popup annotation. + + + + + Indicates new paragraph popup annotation. + + + + + Indicates paragraph popup annotation. + + + + + Specifies the enumeration of popup annotation icons. + + + + + Indicates note text annotation. + + + + + Indicates comment text annotation. + + + + + Indicates help text annotation. + + + + + Indicates insert text annotation. + + + + + Indicates key text annotation. + + + + + Indicates new paragraph text annotation. + + + + + Indicates paragraph text annotation. + + + + + Specifies the enumeration of rubber stamp annotation icons. + + + + + Indicates additional names rubber stamp annotation + + + + + Indicates approved rubber stamp annotation + + + + + Indicates AsIs rubber stamp annotation + + + + + Indicates confidential rubber stamp annotation + + + + + Indicates departmental rubber stamp annotation + + + + + Indicates draft rubber stamp annotation + + + + + Indicates experimental rubber stamp annotation + + + + + Indicates expired rubber stamp annotation + + + + + Indicates final rubber stamp annotation + + + + + Indicates for comment rubber stamp annotation + + + + + Indicates for public release rubber stamp annotation + + + + + Indicates not approved rubber stamp annotation + + + + + Indicates not for public release rubber stamp annotation + + + + + Indicates sold rubber stamp annotation + + + + + Indicates topsecret rubber stamp annotation + + + + + Specifies the Line Ending Style to be used in the Line annotation. + + + + + Indicates Square + + + + + Indicates Circle + + + + + Indicates Diamond + + + + + Indicates OpenArrow + + + + + Indicates ClosedArrow + + + + + Indicates None + + + + + Indicates ROpenArrow + + + + + Indicates Butt + + + + + IdicaIndicatestes RClosedArrow + + + + + Indicates Slash + + + + + Specifies the Line Border Style is to be used in the Line annotation. + + + + + Indicates Solid + + + + + Indicates Dashed + + + + + Indicates Beveled + + + + + Indicates Inset + + + + + Indicates Underline + + + + + Specifies the Line Intent Style is to be used in the Line annotation. + + + + + Indicates Line Arrow as intent of the line annotation + + + + + Indicates LineDimension as intent of the line annotation + + + + + Specifies the Line Caption Type is to be used in the Line annotation. + + + + + Specifies the Style of the Text Markup Annotation + + + + + The Text Markup Annotation Type is Highlight. + + + + + The Text Markup Annotation Type is Underline. + + + + + The Text Markup Annotation Type is Squiggly. + + + + + The Text Markup Annotation Type is StrikeOut. + + + + + Specifies the annotation types. + + + + + Highlight type annotation. + + + + + Underline type annotation. + + + + + StrikeOut type annotation. + + + + + Squiggly type annotation. + + + + + AnnotationStates type. + + + + + TextAnnotation type. + + + + + LinkAnnotation type. + + + + + DocumentLinkAnnotation type. + + + + + FileLinkAnnotation type. + + + + + FreeTextAnnotation type. + + + + + LineAnnotation type. + + + + + SquareandCircleAnnotation type. + + + + + PolygonandPolylineAnnotation type. + + + + + TextMarkupAnnotation type. + + + + + CaretAnnotation type. + + + + + RubberStampAnnotation type. + + + + + LnkAnnotation type. + + + + + PopupAnnotation type. + + + + + FileAttachmentAnnotation type. + + + + + SoundAnnotation type. + + + + + MovieAnnotation type. + + + + + ScreenAnnotation type. + + + + + WidgetAnnotation type. + + + + + PrinterMarkAnnotation type. + + + + + TrapNetworkAnnotation type. + + + + + WatermarkAnnotation type. + + + + + TextWebLinkAnnotation type. + + + + + 3DAnnotation type. + + + + + No annotation. + + + + + Polygon Annotation type + + + + + PolyLine Annotation type + + + + + Square Annotation type + + + + + Ink Annotation type + + + + + Circle Annotation type + + + + + polygon annotation intent type + + + + + Indicates that the annotaiton is intended to function as a cloud + + + + + Indicates that the annotaiton is intended to function as dimension + + + + + polyLine annotation intent type + + + + + Indicates that the annotaiton is intended to function as dimension + + + + + Represents the base class for annotation objects. + + + + + The name of the annotation. + + + + + The ModifiedDate of the annotation. + + + + + Gets or sets the background of the annotations icon when closed. + The title bar of the annotations pop-up window. + The border of a link annotation. + + The color. + + + + Gets annotation's modified date. + + + + + Gets or sets annotation's border. + + + + + + Gets or sets location of the annotation. + + + + + Gets or sets the name of the annotation. + Note: The annotation name, a text string uniquely identifying it among all the annotations on its page. + + + + + Gets or sets size of the annotation. + + + + + Gets a page which this annotation is connected to. + + + + + Gets or sets content of the annotation. + + + + + Gets or sets annotation flags. + + + + + Set ap dictionary. + + + + + Build appearance dictionary. + + The appearance dictionary + + + + Represents the appearance of an annotation's border. + + + + + Gets or sets a horizontal corner radius. + + + + + Gets or sets a vertical corner radius. + + + + + Gets or sets the width of annotation's border. + + A float value specifying the width of the annotation's border. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A float value specifying the width of the annotation's border. + + + + Initializes a new instance of the class. + + A float value specifying the width of the annotation's border. + A float value specifying the horizontal corner radius value. + A float value specifying the vertical corner radius value. + + + + Represents collection of objects. + + + + + Gets the object at the specified position. + + The index value of the annotation in the collection. + Annotation object at the specified position. + + + + Initializes a new instance of the class. + + + + + Creates new annotation collection for the specified page. + + Page which collection is created for. + + + + Adds a new annotation to collection. + + The new annotation to be added to collection. + Position of the annotation in collection. + + + + Cleares the collection. + + + + + Searches the collection for the specified annotation. + + The annotation to search for. + True, if annotation is contained in collection. Otherwise - false. + + + + Searches the collection for the specified annotation. + + The Annotation to search. + Index of the element in the collection, if exists, or -1 if the element does not exist in the collection. + + + + Inserts annotation to the collection at the specified index. + + Index where to insert the element. + The annotation to insert in the collection. + + + + Removes the element at the specified field. + + The index of the element to remove. + + + + Removes the element from the collection. + + The element to remove. + + + + Represents an attachment annotation. + + + + + Gets or Sets attachment's icon. + + A enumeration member specifying the icon for the annotation when it is displayed in closed state. + + + A string value specifying the full path to the file to be embedded in the PDF file. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded in the PDF file. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded in the PDF file. + A byte array specifying the content of the annotation's embedded file. + If both FileName and FileContent are specified, the FileContent takes precedence. + + + The rectangle. + A string value specifying the full path to the file to be embedded in the PDF file. + The stream specifying the content of the annotation's embedded file. + If both FileName and FileContent are specified, the FileContent takes precedence. + + + + Represents annotation object with holds link on another location within a document. + + + + + Gets or sets the destination of the annotation. + + + + + Initializes new instance. + + Bounds of the annotation. + + + + Initializes new instance. + + Bounds of the annotation. + Destination of the annotation. + + + + Represents a base class for file attachment annotation. + + + + + The crossTable + + + + + Gets or sets file name of the annotation. + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents the annotation link to external file. + + + + A string value specifying the full path to the file to be embedded. + + + + Gets or sets the action. + + The action to be executed when the annotation is activated. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded. + + + + Represents a Base class for popup annotation which can be either in open or closed state. + + + + + Gets or sets icon style. + + + + + Gets or sets value whether annotation is initially open or closed + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + The string specifies the annotation text. + + + + Represents the sound annotation. + + + + + Gets or sets the icon to be used in displaying the annotation. + + The enumeration member specifying the icon for the annotation. + + + + Gets or sets the sound. + + The object specified a sound for the annotation. + + + The string specifies the file name of the sound annotation. + + + RectangleF structure that specifies the bounds of the annotation. + The string specifies the file name of the sound annotation. + + + + Represents the Uri annotation + + + + + Gets or sets the Uri address. + + + + + Gets or sets the action. + + The object specifies the action of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + unique resource identifier path. + + + + return text from image by OCR. + + + + + + + This extractor keeps track of the current Y position of each string. If it detectsthat the y position has changed, it inserts a line break into the output.If the PDF extractor text in a non-top-to-bottom fashion, this will result in the text not being a true representation of how it appears in the PDF. + + The Extracted Text. + + + + Represents the utility class to store information about Images and its location. + + + + + The number of indirect objects. + + + + + The original stream object. + + + + + Gets the Image Boundary location. + + + + + Gets the Image,save to stream. + + + + + Gets the Image index. + + + + + The number of indirect object. + + + + + The original stream object. + + + + + Whether the current image contains SMask entry + + The current image stream obejct + if has return true or false + + + + dispose the image resources + + + + + Pdf to html Set Parameter + + + + + In 1000 The Split Page + + + + + In 1000 The Split Page,default 1000 + + + + + wheather embedded image + + + + + Pdf to Html, Set Parameter + + + + + Writes the doc Comment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Get file Folder + + + + + write doc comment + + + + + + + Save file Relative Path + + + + + + + Save file folder + + + + + + + write doc comment + + + + + + Represents the path data reader. + + + + + Gets a value indicating whether this is EOF. + + true if EOF; otherwise, false. + + + + Gets text length. + + + + + Gets or sets the position. + + The position. + + + + Initializes a new instance of the PathDataReader class. + + + + + + Reads the symbols + + Symbol + + + + Gets the next symbol + + Symbol + + + + Gets the next symbol position. + + The next symbol position + + + + Updates the current position of the reader + + Length of the path data + + + + Reads the float value from the path data + + float value + True if the next value is float + + + + Reads the pint form the path data + + Point value + True if the next parameter is point + + + + Reads the points from the path data + + Points + + + + Checks if the current character is symbol + + True if the character is a symbol + + + + Reads the Name of the element + + XPS data + Reader position + Name + + + + Reads the boolean value from the Data + + XPS data + Reader position + True if the next value is boolean + + + + Reads the float from the data. + + XPS data + Reader position + float value + + + + Reads the point from the data + + XPS data + Reader position + point + + + + Reads the matrix from the data + + XPS data + Reader position + Matrix + + + + + Find item by searching in the .rels file + + + The index of item + + + + Get item from alternate content + + alternate content data + the type of item + the item + + + + Enumerator representing the available XPS elements. + + + + + Create a new ttf glyph. + + The ttf font + The glyph index + A new ttf glyph info + + + + Add char code to glyph info. + + The microsft + The glyph info + The char code + + + + Whether exsit glyph char code + + The true type reader + The glyph index + The char code + if exsit return true or false + + + + Bug897 + + + + + + + Converts the alternateContent graphics to PDF graphics. + + + + + + Converts the choice graphics to PDF graphics. + + + + + + Converts the fallback graphics to PDF graphics. + + + + + + Converts the baloo graphics to PDF graphics. + + + + + + Get the base image and mask image + + + + + + + + The index of the profile in the xps archive + + + + + The data of icc proifle + + + + + The number of color components + + + + + Initialize a new ICCProfile + + The index of the profile in the xps archive + The data of icc proifle + The number of color components + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Free users can only add up to 10 pages + + + + + Represents a base class for all barcode types. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Set the barcode text. + + + + Gets or sets the back color of the barcode. + + + + + Gets or sets the bar color of the barcode. + + + + + Gets or sets the text color of the barcode text. + + + + + Gets or sets the narrow bar width. + + + + + Gets or Sets the barcode text. + + + + + Gets or sets the location to render barcode in the PDF Document. + + + + + Gets or sets the empty area which is to be allocated around the barcode. + + + + + Gets or sets the bar height. + + + + + Gets the size of the barcode. + + + + + Gets or sets the rectangular area occupied by the barcode. + + + + + Represents the general barcode exception class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + User defined error message. + + + + Initializes a new instance of the class. + + User defined error message. + The inner exception. + + + + Represents the Class for specifying Quiet zones around the barcode. + + + + + Gets or sets the quiet zones at the right side of the barcode. + + + + + Gets or sets the quiet zones at Top of the barcode. + + + + + Gets or sets the quiet zones at the left side of the barcode. + + + + + Gets or sets the quiet zones at bottom of the barcode. + + + + + Gets or sets the quiet zones around the bar code. + + + + + Check whether all the margin values are equal. + + + + + Represents a Codabar barcode. + + This symbology allows the encoding of strings of up to 16 digits, 10 numeric digits (0 through 9) and + 6 special non alpha characters ("+", "-", "$", "/", ":", "."). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code11 barcode. + + Only the following symbols are allowed in a Code 11 barcode: 0 1 2 3 4 5 6 7 8 9 - + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + The Barcode Text. + + + + Represents a Code128A barcode. + + Only the following symbols are allowed in a Code 128 A barcode: NUL (\x00) SOH (\x01) STX (\x02) ETX (\x03) EOT (\x04) ENQ (\x05) ACK (\x06) BEL (\x07) BS (\x08) HT (\x09) LF (\x0A) VT (\x0B) FF (\x0C) CR (\x0D) SO (\x0E) SI (\x0F) DLE (\x10) DC1 (\x11) DC2 (\x12) DC3 (\x13) DC4 (\x14) NAK (\x15) SYN (\x16) ETB (\x17) CAN (\x18) EM (\x19) SUB (\x1A) ESC (\x1B) FS (\x1C) GS (\x1D) RS (\x1E) US (\x1F) SPACE ! # $ % ' * + , - . 0 1 2 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^ _ FNC1 (\xF0) FNC2 (\xF1) FNC3 (\xF2) FNC4 + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code128B Barcode. + + Only the following symbols are allowed in a Code 128 B barcode:SPACE ! " # $ % ' ( ) * + , - . / 0 12 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL (\x7F) FNC1 (\xF0) FNC2 (\xF1) FNC3 (\xF2) FNC4 (\xF3) SHIFT (\xF4). + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code128C barcode. + + Only the following symbols are allowed in a Code 128C barcode: 0 1 2 3 4 5 6 7 8 9 FNC1 (\xF0). Code 128 C encodes only numeric symbols at double density, each pair of digits is encoded using a single symbol. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code32 barcode. + + Only the following symbols are allowed in a Code 32 barcode: 1 2 3 4 5 6 7 8 9 0. The barcode length is 9 digits (8 user defined digits + 1 check digit). + Code 32 barcodes are also known as Italian Pharmacode barcodes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code39 barcode. + + Only the following symbols are allowed in a Code 39 barcode:Only the following symbols are allowed in a Code 39 barcode: 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - . $ / + % SPACE + All alphabetic characters are uppercase. If lowercase characters are required, then a Code 39 Extended barcode must be used. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code39 Extended barcode. + Code 39 Extended is designed to encode 128 full ASCII characters. + + All 128 ASCII characters can be encoded in an extended Code 39 barcode + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code93 barcode. + + Only the following symbols are allowed in a Code 93 barcode: 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - . $ / + % SPACE + All alphabetic characters are uppercase. If lowercase characters are required, then a Code 93 Extended barcode must be used. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a code93 extended barcode. + + All 128 ASCII characters can be encoded in an extended Code 93 barcode. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents the Base class for all the Single dimensional barcodes + + + + + Initializes the new instance of + + + + + Gets or sets the Text font. + + + + + Gets or sets the text display location. + + + + + + The Default value is false. + + + + Gets or sets a value indicating whether to enable to check digit calculation in the generated barcode or not. + + The Default value is True. + + + + Gets or sets the gap between the barcode and the displayed text. + + + + + Gets or sets the alignment of the text displayed on the barcode. + + Default value is Center. + + + + Gets or sets a value indicating whether [encode start stop symbols]. + + + true if [encode start stop symbols]; otherwise, false. + + + + + Draws the barcode on the at the specified region. + + The pdf page. + The barcode region. + + + + Draws the barcode on the at the specified location. + + The pdf page. + The barcode location. + + + + Draws the barcode on the at the specified location with the size. + + The pdf page. + The barcode location. + The barcode size. + + + + Exports the barcode as image. + The barcode image. + + + + + Specifies the barcode text display location. + + + + + Displays, no text. + + + + + Displays text, above the barcode. + + + + + Displays text, at the bottom of the barcode. + + + + + Specifies the barcode text alignment. + + + + + Displays the readable text on the left side of the barcode. + + + + + Displays the readable text at the center of the barcode. + + + + + Displays the readable text on the right side of the barcode. + + + + + Represents attachments of the Pdf document. + + + + Name of the file. + + + Name of the file. + The data to be attached as a file. + + + Name of the file. + The stream. + + + + Represents a collection of the attachment objects. + + + + + Initializes a new instance of the class. + + + + + Gets attachment by its index in the collection. + + Index of the attachment. + Attachment object by its index in the collection. + + + + Adds the specified attachment. + + The attachment. + Position of the inserted attachment. + + + + Adds the specified attachment. + + The attachment. + The associated document. + The relationship between attachment and associated document. + Position of the inserted attachment. + + + + Adds the specified attachment. + + The attachment. + Position of the inserted attachment. + + + + Inserts the specified index. + + The index. + The attachment. + + + + Removes the specified attachment. + + The attachment. + + + + Removes attachment at the specified index. + + The index. + + + + Indexes the of attachment. + + The attachment. + + + + + Determines whether + + The attachment. + + if it contains the specified attachment, set to true. + + + + + Clears the collection. + + + + + Gets the element. + + + + + Represents a fields which is calculated before the document saves. + + + + + Gets or sets the bounds of the field. + + The bounds value. + + + + Gets or sets the size of the field. + + The size of the field. + + + + Gets or sets the location of the field. + + The location. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the brush. + + The brush. + + + + Gets or sets the pen. + + The pen. + + + + Gets or sets the string format. + + The string format. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + + Represents class to display creation date of the document. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Gets or sets the format string. + + The format string. + + + + Represents date automated field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + A object that is used to fill the string. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Gets or sets the format string. + + The format string. + + + + Represents class which displays destination page's number. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Get and sets the PdfLoadedPage + + + + + Gets or sets the page. + + The page. + + + + Represent automatic field which contains document's author name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which value is dynamically evaluated. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents class which can concatenate multiple automatic fields into single string. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + A object that is used to fill the string. + + + + Initializes a new instance of the class. + + The wide-character string to be drawn. + The list of objects. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + The list of objects. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + A object that is used to fill the string. + The wide-character string to be drawn. + The list of objects. + + + + Gets or sets the text. + + The wide-character string to be drawn. + + + + Gets or sets the automatic fields. + + The automatic fields. + + + + Represents automatic field which has the same value within the + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Gets or sets the number style. + + The number style. + + + + Represents automatic field which has the same value within the + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents total page count automatic field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Gets or sets the number style. + + The number style. + + + + Represents page number field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display number of pages in section. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display page number within a section. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which has the same value + in the whole document. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which value can be evaluated in the moment of creation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + A collection specifies the viewing and organizational characteristics + of portable collections.The intent of portable collections is to present, + sort, and search collections of related document,such as email archives, + photo collections, and engineering bidsets. + + + + + A collection dictionary which specifies the viewing and organizational + characteristics of portable collections. + + + + + The embeddedFiles name tree which the file attachments comprising a collection. + + + + + (Required if the collection has folders; ExtensionLevel3) + An indirect reference to the folder dictionary that is the + single common ancestor of all other folders in a portable + collection. + + + + + Get the document collection associated files + + + + + Get the document collection associated field names + + + + + Construct an instance. + + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Construct an instance. + + The collections dictionary. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Add a local file. + + The local file path. + + + + Add a stream. + + The file name of the stream. + The stream. + + + + Add an attachment. + + The attachment. + + + + Add a custom field. + + Custom field name. + Custom field display name. + Custom field type. + + + + Add a file related field. + + File related field name. + File related field display name. + File related field type. + + + + Sort embedded files with field names. + + The names of fields that the PDF viewer application + uses to sort the items in the collection. + Specifies whether the items in the collection are sorted + in ascending order. + + + + Clear all files and folders. + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Create default dictionary + + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Custom field type. + + + + + The field data is stored as a PDF text string. + + + + + The field data is stored as a PDF date string. + + + + + The field data is stored as a PDF number. + + + + + File related field Type. + + + + + The field data is file name of the embedded file stream. + + + + + The field data is the description of the embedded file stream. + + + + + The field data is the modification date of the embedded file stream. + + + + + The field data is the creation date of the embedded file stream. + + + + + The field data is the size of the embedded file stream. + + + + + A folder for the purpose of organizing files into a hierarchical structure. + The structure is represented by a tree with a single root folder acting as + the common ancestor for all other folders and files in the collection. + + + + + A collection dictionary which specifies the viewing and organizational + characteristics of portable collections. + + + + + The embeddedFiles name tree which the file attachments comprising a collection. + + + + + (Required;ExtensionLevel3)A non-negative integer value + representing the unique folder identification number.Two folders + shall not share the same ID value. + The folder ID value appears as part of the name tree key of any file + associated with this folder.A detailed description of the association + between folder and files can be found after this table. + + + + + (Required;ExtensionLevel3)A file name representing the name of the + folder.Two sibling folders shall not share the same name following + case normalization. + Note:Descriptions of file name and case normalization follow this + table. + + + + + (Required for child folders; ExtensionLevel3) + An indirect reference to the parent folder of this folder. + This entry shall be absent for a root folder. + + + + + (Required if the folder has any descendents; ExtensionLevel3) + An indirect reference to the first child folder of this folder. + + + + + (Required for all but the last item at each level; ExtensionLevel3) + An indirect reference to the next sibling folder at this level. + + + + + Construct an instance. + + The folder name. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Construct an instance. + + The collections dictionary. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Add a local file into this folder. + + The local file path. + + + + Add a stream into this folder. + + The file name of the stream. + The stream. + + + + Delete the file in this folder. + + The file. + + + + Get the files in this folder. + + The file list in this folder. + + + + Create an subfolder. + + The subfolder name. + The PdfFolder. + + + + Delete an subfolder. + + The subfolder name. + + + + Get the subfolders of this folder. + + The subfolder list in this folder. + + + + Whether has subfolders. + + True or False + + + + Clear this folder. + + + + + Add local folder into this folder. + + The local folder path. + + + + Add an attachment into this folder. + + The attachment. + + + + Create default dictionary + + + + + + Generate foler ID which A non-negative integer value + representing the unique folder identification number. + Two folders shall not share the same ID value. + + The Unique folder ID. + + + + Get all folder ID which include current folder's ID and child folders's ID. + + The folder ID list. + + + + Two sibling folders shall not share the same name. + + The new child folder name. + True: no same name. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Each instance of this class represents + an bookmark node in the bookmark tree. + + + + + Gets or sets the outline destination. + + + + + Gets or sets the outline title. + + The outline title is the text, + which appears in the outline tree as a tree node. + + + + Gets or sets the color. + + + + + Gets or sets the text style. + + + + + It's true,expand node + It's false,collapse node + + + + + Gets or sets the Action for the Outline. + + + + + This class plays two roles: it's a base class for all bookmarks + and it's a root of a bookmarks tree. + + + + + Gets number of the elements in the collection. + + + + + Gets the at the specified index. + + index + + + + Creates and adds an outline. + + The title of the new outline. + The outline created. + + + + Determines whether the specified outline is a direct descendant of the outline base. + + The outline. + + true if the specified outline is a direct descendant of the outline base; + otherwise, false. + + + + + Removes the specified bookmark from the document. + + The title of the outline. + + + + Removes the specified bookmark from the document at the specified index. + + The index. + + + + Removes all the bookmark from the document. + + + + + Inserts a new outline at the specified index. + + The index. + The title of the new outline. + The new outline. + + + + + Gets the element. + + + + + + Allows to choose outline text style. + + + + + Regular text style. + + + + + Italic text style. + + + + + Bold text style. + + + + + Represents loaded bookmark class. + + + + + Gets or sets the outline destination. + + + + + Gets or sets the outline title. + + The outline title is the text, + which appears in the outline tree as a tree node. + + + + Gets or sets the color. + + + + + Gets or sets the text style. + + + + + The class can be used to set some options when do convert operation. + + + + + Pdf document to xlsx document,page content layout + + + + + Gets or sets a value indicates whether to use the high qulity image when convert xps to pdf. + + + + + Gets or sets a value indicates whether to use the high quality embedded svg when convert pdf to html. + + + + + Gets or sets a value indicates whether to use invariant culture mode when convert pdf to xps. + + + + + Gets or sets a value indicates whether to use PS mode to convert pdf to xps, doc. + + + + + Gets or sets a value indicates whether to use PS mode to convert pdf to img. + + + + + Gets or sets a value indicates whether to image background transparent pdf to img. + + + + + Gets or sets a value indicates whether to use the embedded svg in the result file when convert pdf to html. + + + + + Gets or sets a value indicates the count of page contents in one html file when convert pdf to html, works only when UseEmbeddedSvgMode property is set to false. + + + + + Gets or sets a value indicates whether to embed image data in the result file when convert pdf to html, works only when UseEmbeddedSvgMode property is set to false. + + + + + Gets or sets a value indicates the output svg's width in pixel unit, -1 means use the orignal width. + + + + + Gets or sets a value indicates the output svg's height in pixel unit, -1 means use the orignal width. + + + + + Gets or sets a value indicates whether whether to use flow recognition mode to convert pdf to doc(docx). + + + + + Pdf document to xlsx document,the xlsx options + + + + + Find Text in PDF file by absolute position or operator order.default is true. + + + + + Set pdf to image convert options. + + Indicates whether to use PS mode. + + + + Set pdf to image convert options. + + Alpha values rang from 0 to 255 + + + + Set pdf to xlsx convert options + the parameter is:the implementation class the xlsxOptions class + The implementation class:XlsxLineLayoutOptions or XlsxTextLayoutOptions + + + + + + Set pdf to xps convert options. + Default usePsMode = true,useInvariantCulture = false,useHighQualityImg = false. + + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + Indicates whether to use invariant culture. + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + Indicates whether to use invariant culture. + Indicates whether to use the high qulity image. + + + + Set pdf to doc convert options. + Default usePsMode = true. + + + + + Set pdf to doc convert options. + + Indicates whether to use PS mode. + + + + Set pdf to doc convert options. + + Indicates whether to use PS mode. + Indicates whether to use flow recognition mode. + + + + Set xps to pdf convert options. + Default useHighQualityImg = false. + + + + + Set xps to pdf convert options. + + Indicates whether to use the high qulity image. + + + + Set pdf to html convert options. + Default useEmbeddedSvg = true, useEmbeddedImg = false, maxPageOneFile = 500, useHighQualityEmbeddedSvg=true. + + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + Indicates the count of page contents in one html file, works only when useEmbeddedSvg is set to false. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + Indicates the count of page contents in one html file, works only when useEmbeddedSvg is set to false. + Indicates whether to use the high quality embedded svg in html file, works only when useEmbeddedSvg is set to true. + + + + Set pdf to svg options. + Default wPixel = -1f, hPixel = -1f, -1f means no change. + + + + + Set pdf to svg options. + + The output svg's width in pixel unit, -1f means no change. + + + + Set pdf to svg options. + + The output svg's width in pixel unit, -1f means no change. + The output svg's height in pixel unit, -1f means no change. + + + + The document piece info. + + + + + Indicates whether to use the high qulity image when convert document + + + + + Pdf to Html, Set Parameter + + + + + Get or Set Allow Create Form. + + + + + Indicates whether use invariant culture mode to convert pdf document. + + + + + Set some options when do convert operation. + + + + + Set,Get Current active pdf object + + + + + Get document PdfConformanceLevel + + + + + Gets the collection of document attachments displayed on a PDF page. + + + + + Gets the bookmarks. + + + + + Gets or sets the color space for page that will be created. + + + + + Gets or sets document's information and properties. + + + + + Gets the additional document's actions. + + + + + Gets the loaded form. + + + + + Page labels. + + + + + Gets or set the document piece info. + + + + + Gets the pages. + + + + + Gets the fonts which are available in the PDF document. + + Retruns the fonts which are used in the PDF document. + + + + Gets or sets the desired level of stream compression. + + All new objects should be compressed with this level of the compression. + + + + Gets the security parameters of the document. + + + + + Gets or sets a viewer preferences object controlling the way the document is to be + presented on the screen or in print. + + + + + Gets or sets the action to execute when the document is opened. + + + + + Gets or sets the action to be performed after the document is printed. + + A object specifying the action to be executed after the document is printed. . + + + + Gets or sets the jave script action to be performed after the document is saved. + + A object specifying the action to be executed after the document is saved. + + + + Gets or sets the action to be performed before the document is closed. + + A object specifying the action to be executed before the document is closed. + + + + Gets or sets the action to be performed before the document is printed. + + A object specifying the action to be executed before the document is printed. + + + + Gets or sets the java script action to be performed before the document is saved. + + A object specifying the action to be executed before the document is saved. + + + + Gets the template of pdf document + + + + + Indicates whether enable font cache. + + + + + Indicates the document is encrypted or not. + + + + + Indicates the document is a PDF Portfolio or not. + + + + + Optional content properties + + + + + The pdf collections. + + + + The path to source pdf file. + This constructor imports an existing pdf file into the document object. It automatically populates the Pages collection with the pages of the given document. + + + + Initializes a new instance of the class. + + The path to source PDF document. + The password (user or owner) of the encrypted document. + + + + Setting up the Pdf docuement standard,but Pdf/A2A standards are not suppored + + + + + + Initializes a new instance of the class. + + The byte array with the file content. + + + + Initializes a new instance of the class. + + The byte array with the file content. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance of the class. + + The stream with the file. + + + + Initializes a new instance. + + The stream with the file. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance of the class. + + The path to source pdf file. + This constructor imports an existing pdf file into the document object. It automatically populates the Pages collection with the pages of the given document. + + + + Initializes a new instance of the class. + + The path to source PDF document. + The password (user or owner) of the encrypted document. + + + + Load a xps bytes array. + + the xps byte array + + + + Load a xps file. + + + + + + Load a xps stream. + + + + + + Load a svg file. + + A relative or absolute path for the svg file + + + + Load a svg stream. + + A Svg file stream + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + paper size + PdfHtmlLayoutFormat layoutFormat + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + paper size + PdfHtmlLayoutFormat layoutFormat + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + Page setting + PdfHtmlLayoutFormat layoutFormat + + by default false, when load Html DOM timeout(PdfHtmlLayoutFormat.LoadHtmlTimeout),convert uncompleted Html DOM to pdf. + if true,until Html DOM load completed,then convert to pdf. + + + + + Load htmlSourceCode to Pdf + + htmlSourceCode + Auto detect page break + PdfPageSettings setting + PdfHtmlLayoutFormat layoutFormat + + + + Load htmlSourceCode to Pdf + + htmlSourceCode + Auto detect page break + PdfPageSettings setting + PdfHtmlLayoutFormat layoutFormat + + by default false, when load Html DOM timeout(PdfHtmlLayoutFormat.LoadHtmlTimeout),convert uncompleted Html DOM to pdf. + if true,until Html DOM load completed,then convert to pdf. + + + + + add free version infomation + + + + + apply limit for free version + + + + + Initializes a new instance of the class. + + The byte array with the file content. + + + + Initializes a new instance of the class. + + The stream with the file. + + + + Initializes a new instance of the class. + + The byte array with the file content. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance. + + The stream with the file. + The password (user or owner) of the encrypted document. + + + + Thie method creates a booklet + + The loaded document filename. + The page width + The page height + if set to true if the result in document should be printed + + + + Thie method creates a booklet + + The loaded document filename. + The page width + The page height + if set to true if the result in document should be printed + Delegate for handling event when the begin drawing page in a booklet. + Delegate for handling event when the end drawing page in a booklet. + + + + Verify pdf document regarding signature. + + Signature field name. + Signature is validated return true,otherwise false + + + + Get pdf document regarding signature. + + Signature field name. + + + + Whether the file is password protected. + + The file name + if password protected,return true,or false + + + + Indicates whthere contains extended right. + + + + + Removes the extended right. + + + + + Save the document to the specified stream. + + + The stream which default saved to the FileFormat.PDF format. + + + + + Convert the document to streams with the file format. + + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to streams with the file format. + + The start index. + The end index. + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to an stream with the file format. + + + The stream with the file format. + + + The file format. + FileFormat.SVG is not supported, because SVG file has no paging,so can't be saved to a stream. + + + + + Saves PDF document to file. + + A relative or absolute path for the file + + + + Saves PDF document to file. + + A relative or absolute path for the file + File format for the file + + + + Saves PDF document to PDF or other Format files. + Current only supports save PDF document to SVG and PDF + + A relative or absolute path for the file + The start page index.The index starts at 0 + The end page index. + File format for the file + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image,Set image Dpi + + Page with page index to save as image + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + Saves PDF document page as image,Set PdfImageType and image Dpi + + Page index + PdfImageType type + + X resolution + + + Y resolution + + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + The zoom factor + The write warning + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + The zoom factor + Returns page as Image + + + + Saves PDF document page as image + + Page index + PdfImageType type + Returns page as Image + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + The resulting clone must be of the same type as or a compatible type to the original instance. + + + + Appends the specified loaded document to this one. + + The loaded document. + + + + Appends a new page to this one. + + The new page. + + + + Imports a page. + + The loaded document. + The page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page index in the result document. + The page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The last created page in the result document. + + + + Merges the specified source documents and return destination document. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merges the PDF documents specified by the paths. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + The array of string paths. + A new PDF document containing all merged documents. + + + + Merges the PDF documents specified by the Stream. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + + + + + + Merges the PDF documents specified by the paths. + + + + A new PDF document containing all merged documents. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + + + + Splits a PDF file to many PDF files, each of them consists of one page from the source file. + + Template for destination file names. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Splits a PDF file to many PDF files, each of them consists of + one page from the source file. + + Template for destination file + names. + The number that is use as a start + point for the page numbering. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + remove document's javaScript + + if True remove succesfully,else remove the failure or document doesn't have JavaScript + + + + Print preview. + + Print preview control + + + + Print document. + + The print settings. + + + + Print settings. + + + + + Get the print settings. + + + + + Print document. + + + + + when export text,if have image ,will call IOCR and add text to export content. + + + + + + Closes the document. + + The document is disposed after calling the Close method. So, the document can not be saved if Close method was invoked. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Set the path to the folder where the custom font is located. + + the folder path. + + + + Clear the path of the folder where the custom font is located. + + + + + Represent common PdfDocumentBase classes. + + + + + Whether forbid warning when convert to Pdf/A Pdf/X + !!! Temp solution + + + + + specify whether to use high quality images + + + + + Pdf to Html, Set Parameter + + + + + + + + + + Free users can only add up to 10 pages + + + + + Internal variable to store the private font collection. + + + + + Optional content properties + + + + + The conformance level. + + + + + Page labels. + + + + + Gets the fonts which are available in the PDF document. + + Retruns the fonts which are used in the PDF document. + + + + Gets or sets a template that is applied to all pages in the document. + + The specifying the default template for the document. + + + + Gets the pages. + + + + + Gets the table extractor of the document. + + + + + Gets the security parameters of the document. + + + + + Gets or sets document's information and properties. + + + + + Gets or sets a viewer preferences object controlling the way the document is to be + presented on the screen or in print. + + + + + Gets or sets the desired level of stream compression. + + All new objects should be compressed with this level of the compression. + + + + Gets or sets the internal structure of the PDF file. + + + + + Get the PDF file structure. + + + + + Gets the additional document's actions. + + The specifying the document action. + + + + Gets the bookmarks. + + + + + Gets the Private Font Collection + + + + + Optional content properties + + + + + The pdf collections + + + + + Splits a PDF file to many PDF files, each of them consists of one page from the source file. + + Template for destination file names. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Splits a PDF file to many PDF files, each of them consists of + one page from the source file. + + Template for destination file + names. + The number that is use as a start + point for the page numbering. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Merges the specified source documents and return destination document. + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merges the PDF documents specified by the paths. + + The array of string paths. + A new PDF document containing all merged documents. + + + + Adds an object to a collection of the objects that will be disposed during document closing. + + The object that will be disposed during document closing. + + + + Convert the document to an stream with the file format. + + + The stream with the file format. + + + The file format. + FileFormat.SVG is not supported, because SVG file has no paging,so can't be saved to an stream. + + + + + Convert the document to streams with the file format. + + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to streams with the file format. + + The start index. + The end index. + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + + Returns page as Image + + + + Saves PDF document page as image,set Dpi + + Page with page index to save as image + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image,set Dpi + + Page with page index to save as image + + X resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + + Y resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + Returns page as Image + + + + Saves PDF document page as image + + Page index + PdfImageType type + Returns page as Image + + + + Saves PDF document page as image,Set PdfImageType and image Dpi + + Page index + PdfImageType type + + X resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + + Y resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + Returns page as Image + + + + Save a range page of the document to the specified stream. + + The stream. + The start index. + The end index. + + + A relative or absolute path for the file + The start page index. + The end page index. + + + + Saves the document to the specified filename. + + The filename. + + + + Save a range page of the document to xps as stream. + + The strart index. + The end index. + The xps stream. + + + + Save the document to xps as stream. + + The xps stream. + + + A relative or absolute path for the file + The start page index. + The end page index. + + + + Save a range page of the document to svg as stream[]. + + The start index. + The end index. + Stream collection. + + + + Save the document to svg as stream[]. + + Stream collection + + + + Save a range page of the document to html stream. + + The start index. + The end index. + The html stream. + + + + Save the document to html stream. + + The html stream. + + + + Convert pdf document to pcl. + + The start index. + The end index. + The out stream. + + + + Convert pdf document to pcl. + + The start index. + The end index. + The out stream. + + + + Save a range page of the document to doc as stream[]. + + The start index. + The end index. + The doc stream. + Is doc or docx. + + + + Save the document to doc as stream[]. + + The doc stream. + Is docs or doc. + + + + Convert pdf document to excel. + + The start index. + The end index. + The out stream. + + + + Save the document to excel as stream. + + The excel stream. + + + + Save the document to ofd as stream. + + The ofd stream. + + + + Save a range page of the document to ofd as stream. + + The strart index. + The end index. + The ofd stream. + + + + Closes the document. Releases all common resources. + + + + + Closes the document. + + if set to true the document should close its stream as well. + + + + Saves the document to the specified stream. + + The stream object where PDF document will be saved. + + + + Imports a page. + + The loaded document. + The page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page index in the result document. + The page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The last created page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The page index in the result document when startIndex == endIndex. + The last created page in the result document. + + + + Handle action annotation. + + The page corresponsedance + The page + + + + Free version Imports 10 pages range from a loaded document. + + + + + Merge same font when merge document. Bug_4941 + + The resource dictionary. + The document font map. + + + + Compare bytes. + + + + + + + + + + + + + + Appends the specified loaded document to this one. + + The loaded document. + + + + Import Original Document Destinations to new Document Catalog->Names -> Dests. + Quote page to this document Catalog->Names -> Dests -> Names + + Original Document + + + + Merge OCProperties + + + + + + + + + + + + + Merge D Item + + + + + + + + Whether the page exist the field + + The page + The field + If exist return true or false + + + + This class represents a set of the properties that define the internal structure of PDF file. + + + + + PDF Document object + + + + + read pdf file + + + + + Initializes a new instance of the class. + + + + + PDF Document object + + + + + read pdf file + + + + + Gets or sets the version of the PDF document. + + The document version. + + + + Gets or sets a value indicating whether [incremental update]. + + true if [incremental update]; otherwise, false. + + + + Gets or sets the type of PDF cross-reference. + + Please see the description of for more details. + + + + Gets the value indicating whether the PDF document is tagged one or not. + + If true PDF document is tagged, otherwise false. + + + + + + + + + + Tagged PDF's standard structure types + + + + + A generic block-level element or group of elements + + + + + A generic inline portion of text having no particular inherent characteristics + + + + + An item of graphical content + + + + + Represents the document's structure tree root dictionary + + + + + Build struct tree root before saved. + + + + + Represents the structure element + + + + + The parent struct element + + + + + The parent tree root + + + + + Build struct element before saved. + + + + + Delegate for handling event when drawing page in a booklet. + + The sender of the event. + The arguments of the event. + This event is raised when starting/finished drawing a page of the source file in a booklet. + + + + Represents DrawPageInBooklet Event arguments. + + + + + Gets the page of the source file. + + + + + Gets the index of the source page, basing on 0. + + + + + Gets the page of the booklet. + + + + + Gets the index of the booklet page, basing on 0. + + + + + Specifies the type of file format. + + + + + Specifies plain PDF file format. + + + + + Specifies Linearized PDF file format. + + + + + Specifies the different way of presenting the document at the client browser. + + + + + Send the generated document to the client browser and will open document inside browser or using application associated with .pdf extension externally. + + + + + Send the generated document to the client browser and presents an option to save the document to disk or open inside the browser. + + + + + Specifies the available PDF versions to save a PDF document. + + + + + PDF version 1.0. + + + + + PDF version 1.1. + + + + + PDF version 1.2. + + + + + PDF version 1.3. Adobe Acrobat 4. + + + + + PDF version 1.4. Adobe Acrobat 5. + + + + + PDF version 1.5. Adobe Acrobat 6. + + + + + PDF version 1.6. Adobe Acrobat 7. + + + + + PDF version 1.7. Adobe Acrobat 8. + + + + + Specifies the type of the PDF cross-reference. + + Default value is CrossReferenceStream + + + + The cross-reference table contains information that permits random access to indirect objects within the file so that the entire file need not be read to locate any particular object. The structure is useful for incremental updates, since it allows a new cross-reference section to be added to the PDF file, containing entries only for objects that have been added or deleted. Cross-reference is represented by cross-reference table. The cross-reference table is the traditional way of representing reference type. + + + + + Cross-reference is represented by cross-reference stream. Cross-reference streams are stream objects, and contain a dictionary and a data stream. + This leads to more compact representation of the file data especially along with the compression enabled. + This format is supported by PDF 1.5 version and higher only. + + + + + Specifies the Pdf document's Conformance-level. + + + + + Specifies Default / No Conformance. + + + + + This PDF/A ISO standard [ISO 19005-1:2005] is based on Adobe PDF version 1.4 + and This Level B conformance indicates minimal compliance to ensure that the + rendered visual appearance of a conforming file is preservable over the long term. + + + + + This PDF/X-1a:2001 ISO standard [ISO 15930-1] is based on Adobe PDF version 1.3 + which uses only CMYK + Spot Color and this compliance to ensure that the + contents will be reliably reproduced in the repress environment. + + + + + PDF/A-1a ensures the preservation of a document's logical structure and con-tent text stream in natural reading order. + + + + + PDF/A-2a standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check. + + + + + PDF/A-2b standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check. + + + + + PDF/A-3a standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check + + + + + PDF/A-3b standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check + + + + + Specifies the different page scaling option that shall be selected when a print dialog is displayed for this document. + + Default value is AppDefault. + + + + Indicates the conforming readers default print scaling. + + + + + Indicates no page scaling. + + + + + Defines data compression level. + + + + + Pack without compression. + + + + + Use high speed compression, reduce of data size is low. + + + + + Something middle between normal and BestSpeed compressions. + + + + + Use normal compression, middle between speed and size. + + + + + Pack better but require a little more time. + + + + + Use best compression, slow enough. + + + + + Gets or sets a value indicating whether this is editable. + + true if editable; otherwise, false. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value. + + + + Gets the first selected item in the list. + + The selected item. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the text alignment. + + The text alignment. + This property is meaningful for fields containing variable text only. + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Gets the name. + + The name. + + + + Gets the form. + + The form. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + The mapping name. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + if the field is read only, set to true. + + + + Gets or sets a value indicating whether this is required. + + true if required; otherwise, false. + + + + Gets or sets the tool tip. + + The tool tip. + + + + Gets the page. + + The page. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Represents form's field with style parameters. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Draws a button. + + The g. + The paint params. + The image. + The format. + + + + Calculate the text position + + the rectangle + the pdfStringFormat + the PdfFontBase + + + + Represents form field with appearance custom support. + + + + + Gets the appearance. + + The appearance. + + + + Represents button field in the PDF form. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the button. + + + + Gets or sets the caption text. + + The caption text. + + + + Gets or sets the button layout mode. + + + + + Gets or sets the text displayed when the mouse button is pressed within the annotation's active area, only available in Push mode. + + + + + Gets or sets the text displayed when the user rolls the cursor into the annotation's active area without pressing the mouse button, only available in Push mode. + + + + + Defining the icon layout. + + + + + Gets or sets the widget annotation's normal icon displayed when it is not interacting with the user. + + + + + Gets or sets the widget annotation's alternate icon displayed when the mouse button is pressed within its active area, only available in Push mode. + + + + + Gets or sets the widget annotation's rollover icon displayed when the user rolls the cursor into its active area without pressing the mouse button, only available in Push mode. + + + + + Adds Print action to current button field. + Clicking on the specified button will trigger the Print Dialog Box. + + + + + Represents the button icon layout options. + + + + + Gets or sets the circumstances under which the icon shall be scaled inside the annotation rectangle. + + + + + Gets or sets an array of two numbers between 0.0 and 1.0 indicating the fraction of leftover space to allocate at the left and bottom of the icon. + + + + + If true, indicates that the button appearance should be scaled to fit fully within the bounds of the annotation without taking into consideration the line width of the border. + + + + + Gets or sets the type of scaling to use. + + + + + Represents the type of scaling to use. + + + + + Scale the icon to fill the annotation rectangle exactly, without regard to its original aspect ratio. + + + + + Scale the icon to fit the width or height of the annotation rectangle while maintaining the icon's original aspect ratio. + + + + + Represents the button layout mode. + + + + + No icon; caption only. + + + + + No caption; icon only. + + + + + Caption below the icon. + + + + + Caption above the icon. + + + + + Caption to the right of the icon. + + + + + Caption to the left of the icon, + + + + + Caption overlaid directly on the icon. + + + + + Represtents the circumstances under which the icon shall be scaled inside the annotation rectangle. + + + + + Always scale. + + + + + Scale only when the icon is bigger than the annotation rectangele. + + + + + Scale only when the icon is smaller than the annotation rectangle. + + + + + Never scale. + + + + + Represents check box field in the PDF form. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the check box field. + + + + Gets or sets a value indicating whether this is checked. + + true if checked; otherwise, false. + + + + Represents base class for field which can be in checked and unchecked states. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the check box field. + + + + Gets or sets the style. + + The object specifies the style of the check box field. + + + + Represents combo box field in the PDF Form. + + + + + Initializes a new instance of the class. + + Page the field to be placed on. + The name of the field. + + + + Gets or sets a value indicating whether this is editable. + + true if editable; otherwise, false. + + + + Represents field of the Pdf document's interactive form. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Initializes a new instance of the class. + + Field Dictionary + + + + Gets the name. + + The name. + + + + Gets the form. + + The form. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + The mapping name. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + if the field is read only, set to true. + + + + Gets or sets a value indicating whether this is required. + + true if required; otherwise, false. + + + + Gets or sets the tool tip. + + The tool tip. + + + + Gets the page. + + The page. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Save the field apprearance + + The text + + + + Gets the element. + + + + + + Represents collection of the Pdf fields. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + + + Gets the with thier field name. + + + + + Adds the specified field. + + The field item which is added in the PDF form. + The field to be added on the page. + + + + Inserts the the field at the specified index. + + The index of the field. + The field which should be inserted at the specified index. + + + + Determines whether field is contained within the collection. + + Check whether object is present in the field collection or not. + + true if field is present in the collection, otherwise, false. + + + + + Gets the index of the field. + + The object whose index is requested. + Index of the field in collection. + + + + Removes the specified field in the collection. + + The object to be removed from collection. + + + + Removes field at the specified position. + + The index where to remove the item. + + + + Clears the form field collection. + + + + + Gets the element. + + + + + + Represents interactive form of the Pdf document. + + + + + Set a value to enabled form field highLight + + + + + pdfviewer fill,a form field needs to override ap + + + + + Merge the fields with the same name into one field or not + + + + + Initializes a new instance of the class. + + + + + Gets the fields. + + The Form fields. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Gets or sets a value indicating whether the form is read only. + + true if the form is read only; otherwise, false. + + + + Gets or sets a value indicating whether [field auto naming]. + + + + + Gets or sets a value indicating whether the viewer must generate appearances for fields. + + true if viewer must generate appearance; otherwise, false. + + + + Gets the element. + + + + + + Represents a collection of form fields. + + + + + Initializes a new instance of the class. + + + + + Represents list box field of the PDF form. + + + + + Initializes a new instance of the class. + + Page the field to be placed on. + The name of the field. + + + + Gets or sets a value indicating whether the field is multiselectable. + + true if multiselectable; otherwise, false. + + + + Represents base class form's list fields. + + + + + Internal variable to store CommitOnSelChange flag. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + + + + Gets the items. + + The items. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value. + + + + Gets the first selected item in the list. + + The selected item. + + + + Gets or sets the flag indicating if a new value selected is committed immediately without waiting to leave the field. + + + + + Represents an item of the list fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The item text, it is displayed in the list. + The item value, it is exported when form content is exported. + + + + Gets or sets the text. + + The text of the list item field. + + + + Gets or sets the value. + + The value of the list item field. + + + + Gets the element. + + The primitive. + + + + Represents list field item collection. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + The object. + + + + Adds the specified item in the collection. + + The object which to be added in the collection. + item + + + + Inserts the list item field at the specified index. + + The index where to insert the new item. + The object to be added to collection. + + + + Removes the specified item. + + The object which to be removed in the collection. + + + + Removes the item at the specified position. + + The index where to remove the item. + + + + Determines whether the item is contained by the collection. + + Check whether object is exists in the collection or not. + + true if the item is contained within the collection; otherwise, false. + + + + + Gets the index of the specified item. + + A object whose index is requested. + The index of the given item, -1 if the item does not exist. + + + + Clears the collection. + + + + + Gets the element. + + + + + + Represents radio button field in the PDF form. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value of the list field. + + + + Gets the first selected item in the list. + + The selected item of the field. + + + + Gets the items of the radio button field. + + The radio button field item collection. + + + + Represents an item of a radio button list. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the form of the field. + + The object of the field. + + + + Gets or sets the bounds. + + + + + Gets or sets the value. + + The value. + + + + Gets the element. + + + + + + Represents collection of radio buttons items. + + + + + Initializes a new instance of the class. + + The field. + + + + Adds the specified item. + + The object to be added to collection. + The index of the added field. + + + + Inserts an item at the specified index. + + The index where to insert the new item.. + A object to be added to collection. + + + + Removes the specified item from the collection. + + The object which is to be removed from the collection. + + + + Removes the item at the specified position. + + The index where to remove the item. + + + + Gets the index of the item within the collection. + + A object whose index is requested. + Index of the item with the collection. + + + + Determines whether the collection contains the specified item. + + Check whether object is exists in the collection or not. + + true if collection contains specified item; otherwise, false. + + + + + Clears the item collection. + + + + + Gets the at the specified index. + + Returns item at the specified position. + + + + Gets the element. + + + + + + Represents form field with appearance custom support. + + + + + Gets the appearance. + + The appearance. + + + + Represents signature field in the PDF Form. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + a PdfSignature obj + + + + Draws an image. + + The image. + The x. + The y. + + + + Draws an image. + + The image. + The rectangle. + + + + Draws an image. + + The image. + The point. + The size. + + + + Represents form's field with style parameters. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the text alignment. + + The text alignment. + This property is meaningful for fields containing variable text only. + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Represents text box field in the PDF form. + + + + + The password chrackter. + + + + + Gets or sets the text. + + The text of the text box field. + + + + Gets or sets the default value. + + The default value of the text box field. + + + + Gets or sets a value indicating whether to check spelling. + + true if check spelling; otherwise, false. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + true if need to insert spaces; otherwise, false. + + + + Gets or sets a value indicating whether this is multiline. + + true if multiline; otherwise, false. + + + + Gets or sets a value indicating whether this is password field. + + true if password field; otherwise, false. + + + + Gets or sets a value indicating whether this is scrollable. + + true if scrollable; otherwise, false. + + + + Gets or sets the maximum number of characters that can be entered in the text box. + + An integer value specifying the maximum number of characters that can be entered in the text box. + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the text box field. + + + + Represents fields flags enum. + + + + + Default field flag. + + + + + If set, the user may not change the value of the field. Any associated widget annotations + will not interact with the user; that is, they will not respond to mouse clicks or + change their appearance in response to mouse motions. This flag is useful + for fields whose values are computed or imported from a database. + + + + + If set, the field must have a value at the time it is exported by a submit-form action. + + + + + If set, the field must not be exported by a submit-form action + + + + + If set, the field can contain multiple lines of text; + if clear, the fields text is restricted to a single line. + + + + + If set, the field is intended for entering a secure password that should not be + echoed visibly to the screen. Characters typed from the keyboard should instead + be echoed in some unreadable form, such as asterisks or bullet characters. + + + + + If set, the text entered in the field represents the pathname of a file whose + contents are to be submitted as the value of the field. + + + + + If set, text entered in the field is not spell-checked. + + + + + If set, the field does not scroll (horizontally for single-line fields, vertically + for multiple-line fields) to accommodate more text than fits within its annotation + rectangle. Once the field is full, no further text is accepted. + + + + + Meaningful only if the MaxLen entry is present in the text field dictionary and if + the Multiline, Password, and FileSelect flags are clear. If set, the field is + automatically divided into as many equally spaced positions, or combs, as the + value of MaxLen, and the text is laid out into those combs. + + + + + If set, the value of this field should be represented as a rich text string. + If the field has a value, the RVentry of the field dictionary specifies + the rich text string. + + + + + If set, exactly one radio button must be selected at all times; clicking + the currently selected button has no effect. If clear, clicking the selected + button reselects it, leaving no button selected. + + + + + If set, the field is a set of radio buttons; if clear, the field is a check box. + This flag is meaningful only if the Pushbutton flag is clear. + + + + + If set, the field is a pushbutton that does not retain a permanent value. + + + + + If set, a group of radio buttons within a radio button field that use the same value + for the on state will turn on and off in unison; that is if one is checked, they + are all checked. If clear, the buttons are mutually exclusive. + + + + + If set, the field is a combo box; if clear, the field is a list box. + + + + + If set, the combo box includes an editable text box as well as a drop-down + list; if clear, it includes only a drop-down list. This flag is meaningful only + if the Combo flag is set. + + + + + If set, the fields option items should be sorted alphabetically. This flag + is intended for use by form authoring tools, not by PDF viewer applications. + + + + + If set, more than one of the fields option items may be selected simultaneously; + if clear, no more than one item at a time may be selected. + + + + + If set, the new value is committed as soon as a selection is made with the pointing + device. This option enables applications to perform an action once a selection is + made, without requiring the user to exit the field. If clear, the new value is not + committed until the user exits the field. + + + + + Specifies the available styles for a field border. + + Defaule value is Solid. + + + + A solid rectangle surrounding the annotation. + + + + + A dashed rectangle surrounding the annotation. + + + + + A simulated embossed rectangle that appears to be raised above the surface + of the page. + + + + + A simulated engraved rectangle that appears to be recessed below the surface + of the page. + + + + + A single line along the bottom of the annotation rectangle. + + + + + Specifies the highlight mode for a field. + + Defaule value is Invert. + + + + No highlighting. + + + + + Invert the contents of the field rectangle. + + + + + Invert the field's border. + + + + + Pushed highlighting. + + + + + Specifies the style for a check box field. + + The default value is Check. + + + + A check mark is used for the checked state. + + + + + A circle is used for the checked state. + + + + + A cross is used for the checked state. + + + + + A diamond symbol is used for the checked state. + + + + + A square is used for the checked state. + + + + + A star is used for the checked state. + + + + + Specifies Http request method. + + + + + Data submitted using Http Get method. + + + + + Data submitted using Http Post method. + + + + + Specifies the enumeration of submit data formats. + + + + + Data should be transmitted as Html. + + + + + Data should be transmitted as Pdf. + + + + + Data should be transmitted as Forms Data Format. + + + + + Data should be transmitted as XML Forms Data Format . + + + + + Represents states of the check field. + + + + + Indicated unchecked/unpressed state. + + + + + Indicated checked unpressed state. + + + + + Indicated pressed unchecked state. + + + + + Indicated pressed checked state. + + + + + Represents XML Forms Architecture (XFA). + + + + + XFA Template. + + + + + XFA Datasets. + + + + + XFA Config. + + + + + XML Data Package + + + + + Gets of sets data node value.deprecated to use,instead use xfaField to set field value. + + + + + Returns XML node of field tempalte. + + + + + Added by Henry Zhou. + To get the xfaField through its name. Notes: the param 'name' is the name have been midified by codes instead of originals. + + + + + + + FindSelectItemsByValueOrDataSets + + item text + + + + + + + Implements routines for manipulation with loaded pages. + + + + + Free users can only add up to 10 pages + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + + + + Get the Section Count. + + + + + Gets the at the specified index. + + + + + Gets the count. + + + + + Creates a new page and adds it to the collection. + + The created page. + + + + Creates a new page of the specified size and adds it to the collection. + + The size of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the new page. + The margins of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the new page. + The margins of the new page. + The rotation of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the page. + The margins of the page. + The rotation of the new page. + The orientation of the new page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The rotation of the new page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The origin of the page. + The size of the page. + The margins of the page. + The rotation of the new page. + The created page. + + + + Removes the page at the given specified index. + + Index of the page. + + + + Removes the specified page. + + The page to be remove. + + + + Removes the specified page. + + The page to be remove. + + + + ReArrange the Pages in the Loaded Document. + + The page sequence to arrange the pages. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The rotation of the new page. + The orientation of the new page. + The created page. + + + + Get the Section + + The index + The section + + + + Caculate the index of the page in the document. + + The pages + The page + The page number + whether the page is find in pages + + + + Whether the current object is page object + + The dic + if the dic is a page obejct ,return true ,or false + + + + FreeVersion,Allow Create 10 Pdf page + + PdfSection sec + PdfNewPage page + + + + + Gets the index of the page in the document. + + The current page. + Index of the page in the document if exists, -1 otherwise. + + + + foreach Nodes,find page + + + + + + + + + + + Implements enumerator to the loaded page collection. + + + + + Initializes a new instance of the class. + + The collection. + + + + Gets the current element in the collection. + + + The current element in the collection. + + The enumerator is positioned before the first element of the collection + or after the last element. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, + which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + Represents the loaded annotation colllection. + + + + + Gets the at the specified index. + + + + + Represents the annotation with specified name. + + The specified annotation name. + + + + Gets or sets the page. + + + + + Adds annotation to collection. + + Annotation to be added to collection. + Position of the annotation in collection. + + + + Creates the polygon annotation + + The dictionary + The cross table + + + + + Creates the polyLine annotation + + The dictionary + The cross table + + + + + Creates the square annotation + + The dictionary + The cross table + + + + + Creates the ink annotation + + The dictionary + The cross table + + + + + Creates the Circle annotation + + The dictionary + The cross table + + + + + Get or Set the background color of the field + + A object specifying the background color of field. + + + + Gets or Set the fore color of the field. + + A object specifying the background color of field. + + + + Get or Set the text alignment in a text box. + + A enumeration member specifying the text alignment in a text box. + + + + Get or Set the HighLightMode of the Field. + + A enumeration member specifying the highlight mode in a text box. + + + + Gets or Set value of the text box field. + + A string value representing the value of the item. + + + + Gets or set the default value of the field. + + A string value representing the default value of the item. + + + + Gets or sets a value indicating whether to check spelling. + + True if the field content should be checked for spelling erorrs, false otherwise. Default is true. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + + + + Gets or sets a value indicating whether this is multiline. + + True if the field is multiline, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is password field. + + True if the field is a password field, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is scrollable. + + True if the field content can be scrolled, false otherwise. Default is true. + + + + Gets or sets the maximum length of the field, in characters. + + A positive integer value specifying the maximum number of characters that can be entered in the text edit field. + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or Sets the width of the border. + + The width of the border. + + + + Gets the font. + + The font. + + + + Gets a value indicating the visibility of the field. + + + + + Gets the name of the field. + + A string value specifying the name of the field. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + A string value specifying the mapping name of the field. + + + + Gets or sets the tool tip. + + + + + Gets the page. + + + + + Gets or sets a value indicating whether [read only]. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is required. + + True if the field is required, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Represents a button field of an existing PDF document`s form. + + + + + Button background picture + + + + + Gets or sets Button background picture. + + + + + Gets or sets the caption text. + + A string value specifying the caption of the button. + + + + Gets the collection of button items. + + + + + Defining the icon layout. + + + + + need replace image + + + + + + Adds Print action to current button field. + Clicking on the specified button will trigger the Print Dialog Box. + + + + Represents button group item of an existing PDF document`s form. + + + + + Represents the base class for loaded state field. + + + + + Gets the items collection. + + + + + Represents the loaded state item. + + + + + Gets or sets a value indicating whether this is checked. + + + + + Represents collection of button item. + + + + + Gets the at the specified index. + + + + + Represents check box of an existing PDF document`s form. + + + + + Gets or sets a value indicating whether this is checked. + + True if the check box is checked, false otherwise. + + + + Gets the collection check box items. + + + + + Set the export value. + + The export value + + + + Represents collection of text box group items. + + + + + Gets the at the specified index. + + + + + Represents loaded check box item. + + + + + Represents a choice field of an existing PDF document`s form. + + + + + Gets the collection of choice items. + + + + + Gets or sets the first selected item in the list. + + + + + Gets or sets the value of the first selected item in the list. + + + + + Gets the first selected item in the list. + + + + + Gets the first selected item in the list. + + + + + Gets or sets the flag indicating if a new value selected is committed immediately without waiting to leave the field. + + + + + Represents the combo box field of an existing item. + + + + + Gets or sets a value indicating whether this is editable. + + True if the drop down list is editable, false otherwise. Default is false. + + + + Gets the collection of combo box items. + + + + + Represents group for combo box field. + + + + + Represents collection of Combo box items. + + + + + Gets the at the specified index. + + + + + Represents state item collection. + + + + + Gets the at the specified index. + + The index of specified item. + + + + Represents base class for loaded fields. + + + + + Form field identifier + + + + + Gets the name of the field. + + A string value specifying the name of the field. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + A string value specifying the mapping name of the field. + + + + Gets or sets the tool tip. + + + + + Gets the page. + + + + + Gets or sets a value indicating whether [read only]. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is required. + + True if the field is required, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets the form. + + The form. + + + + Re set the page. + + The page + + + + Sets the name of the field. + + New name of the field. + + + + Represents base class for field's group items. + + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets the page. + + + + + Represents Loaded form. + + + + + Gets the field collection. + + + + + Gets or sets a value indicating whether the form is read only. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets XFA data of the form. + + + + + + Gets or sets a value indicating whether need appearances. + + + + + Export the form data to a file. + + Name of the document which is need to export. + The format of exported data. + The name of the PDF file the data is exported from. + + + + Export the form data to a file. + + The stream where form data will be exported. + The format of exported data + The name of the PDF file the data is exported from + + + + Reset the signature flags. + + + + + Imports the data. + + Name of the file. + The data format. + + + + Import form data from XFDF file. + + + + + + Imports the data. + + Name of the file. + The data format. + if it is error flag, set to true. + + + + + Import form data from FDF file. + + The FDF file stream + False if the import should stop on the first field that generates an error, or true if the import should ignore the error and continue with the next field. + Document form fields filled with data which are imported from FDF. + + + + Sets/Resets the form field highlight option. + + + + + Called when [hex in string]. + + The test. + + + + + Extract Images from Signature + + + + + + + + + + + + + Represents field collection of loaded form. + + + + + Gets the at the specified index. + + + + + Returns field with specified name. + + The specified field name. + + + + Gets or sets the form. + + + + + Field Signature Names + + + + + Add field + + + + + + Gets the field. + + int index + The created field. + + + + Update field name. + + The field + + + + Get FieldName from FormWidget by exportValue + + + + + + + Get filedName from FiledWeiget + + + + + + + + find exportValue from AP By exportValue + + + + + + + + Get Fields from FormWidget by exportValue + + + + + + + Represents loaded list box field. + + + + + Gets or sets a value indicating whether the field is multiselectable.. + + + + + For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list) + Default value: 0. + + + + + Gets the items. + + The collection of list box items. + + + + 获取选中项中最大的一个索引 + + + + + + + 获取listbox可显示区域最大能显示多少个项 + + + + + + + + Represents group item for list field. + + + + + Represents loaded item collection. + + + + + Gets the at the specified index. + + + + + Represents loaded list item. + + + + + Gets or sets the text. + + A string value representing the display text of the item. + + + + Gets or sets the value. + + A string value representing the value of the item. + + + + Initializes a new instance of the class. + + The text. + The value. + + + + Represents a collection of list box field items. + + + + + Gets the at the specified index. + + + + + Inserts an item at the end of the collection. + + a object to be added to collection. + The index of item. + + + + Inserts the list item at the specified index. + + The index. + The item. + + + + Removes the element at the specified index. + + The index. + Throws IndexOutOfRange exception if the index is out of bounds. + + + + Clears the item collection. + + + + + Represents collection of radio box group items. + + + + + Gets the at the specified index. + + Returns object at the specified index. + + + + Represents radio button field of an existing PDF document`s form. + + + + + Gets or sets the value. + + The value of the radio button item. + + + + Gets or sets a value indicating whether this is selected. + + + + + Represents radio button field of an existing PDF document`s form. + + + + + Gets the collection of radio button items. + + A that represents the items within the list. + + + + Gets or sets the index of the selected item in the list. + + The lowest ordinal index of the selected items in the list. The default is -1, which indicates that nothing is selected. + + + + Gets or sets the value of the first selected item in the list. + + A string value specifying the value of the first selected item, null (Nothing in VB.NET) if there is no selected item. + + + + Gets the selected item. + + Return the item as PdfLoadedRadioButtonItem class + + + + Gets the button style. + + + + + Gets or sets the value of specified item. + + A string value representing the value of the item. + + + + Represents the signature field of an existing PDF document`s form. + + + + + draw signature + + + + + Need to convert a date + + convert a date + DateTime + + + + Represents the collection of loaded state item. + + + + + Gets the at the specified index. + + + + + Represents loaded styled field. + + + + + Get DA for from annot + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the action to be performed when the mouse button is released + inside the annotations active area.. + + The mouse up action. + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + annotations active area. + + The mouse down action. + + + + Gets or sets the action to be performed when the annotation receives the + input focus. + + The got focus action. + + + + Get or Set the background color of the field + + A object specifying the background color of field. + + + + Gets or sets the action to be performed when the annotation loses the + input focus. + + The lost focus action. + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or Sets the width of the border. + + The width of the border. + + + + Gets the font. + + The font. + + + + Get font size from DA + + The font parameters + The font size + + + + Gets the default index. + + + + + Gets a value indicating the visibility of the field. + + + + + Whether they are all ascii characters. + + if all characters are ascii characters,return true ,or false + + + + Get the xfa field from template + + A xmlnode + + + + Get the value of the specified attribute + + The value + + + + Initializes a new instance of the struct. + + The field. + + + + Initializes a new instance of the struct. + + The item. + + + + Represents an item in a text box field collection. + + + + + Represents the text box field of an existing PDF document`s form. + + + + + The password chrackter. + + + + + Gets or Set the fore color of the field. + + A object specifying the background color of field. + + + + Get or Set the text alignment in a text box. + + A enumeration member specifying the text alignment in a text box. + + + + Get or Set the HighLightMode of the Field. + + A enumeration member specifying the highlight mode in a text box. + + + + Gets or Set value of the text box field. + + A string value representing the value of the item. + + + + append ap content + + + + + + Set the boder style + + The writer + The bounds + + + + Get the transform matrix from the MK entry in dictionary. + + The annotation + The annotation's bound + The matrix + + + + Gets or set the default value of the field. + + A string value representing the default value of the item. + + + + Gets or sets a value indicating whether to check spelling. + + True if the field content should be checked for spelling erorrs, false otherwise. Default is true. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + + + + Gets or sets a value indicating whether this is multiline. + + True if the field is multiline, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is password field. + + True if the field is a password field, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is scrollable. + + True if the field content can be scrolled, false otherwise. Default is true. + + + + Gets or sets the maximum length of the field, in characters. + + A positive integer value specifying the maximum number of characters that can be entered in the text edit field. + + + + Gets the collection of text box field items. + + + + + Calculate how many lines of text + + + + + + + + + Calculate font size + + + + + + + + + + Get font size from da string + + + + + + Save the text box field appearance + + the text value + + + + Represents collection of text box group items. + + + + + Gets the at the specified index. + + + + + Represents base class of XFDF. + + + + + Initializes a new instance of the class. + + The filename. + + + + Identify push button field. + + + + + Identify check box field. + + + + + Identify radio button field. + + + + + Identify text field. + + + + + Identify listbox field. + + + + + Identify combobox field. + + + + + Identify signature field. + + + + + Identify that field has no type. + + + + + Specifies the format of Export or Import data. + + + + + Specifies XML file format + + + + + Specifies Forms Data Format file format + + + + + Specifies XFDF file format. + + + + + Get cached item. + + + Cache group which all objects in group share the same data. + + Any cached object,because all objects in group share the same data. + + + + Represents the separable blend. + + + + + Represents the instance. + + The blend mode + The alpha factor + + + + Initialize object. + + The blend mode + + + + String to enum. + + The enum type + The enum type + The enum type + + + + Blend image. + + The page image + The source image + The matrix + The blend bitmap + + + + Blend path. + + The page graphics + The pen color + The path + The page image + The bitmap + + + + Blend image. + + The back bitmap + The source bitmap + The blend bitmap + + + + Blend bitmap. + + The back bitdata + The source bitdata + The out bitdata + The width + The height + + + + Multily blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Darken blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Lighten blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Screen blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Normal blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Create blend bitmap. + + The width + The height + The dpix + The dpiy + The bitmap + + + + Subtracted image. + + The source image + The rect + The bitmap + + + + Get the image actual size. + + The widhth + The height + The dpix + The dpiy + The image actual size + + + + Get back bitmap. + + The page image + The float array + The width + The height + The bitmap + + + + Get source bitmap. + + The source image + The width + The height + The dpix + The dpiy + The bitmap + + + + Get the path bound. + + The path + The matrix + The rectangle + + + + Implements blend brush setting and functions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The number of elements in the Factors and Positions arrays. + + + + Gets or sets the factors array. + + + + + Represents the base class for PdfBlend and PdfColorBlend classes. + Implements basic routines needed by both classes. + + + + + Gets or sets the positions array. + + + + + Represents the collection of immutable default brushes. + + + + + Gets the AliceBlue brush. + + + + + Gets the antique white brush. + + + + + Gets the Aqua default brush. + + + + + Gets the Aquamarine default brush. + + + + + Gets the Azure default brush. + + + + + Gets the Beige default brush. + + + + + Gets the Bisque default brush. + + + + + Gets the Black default brush. + + + + + Gets the BlanchedAlmond default brush. + + + + + Gets the Blue default brush. + + + + + Gets the BlueViolet default brush. + + + + + Gets the Brown default brush. + + + + + Gets the BurlyWood default brush. + + + + + Gets the CadetBlue default brush. + + + + + Gets the Chartreuse default brush. + + + + + Gets the Chocolate default brush. + + + + + Gets the Coral default brush. + + + + + Gets the CornflowerBlue default brush. + + + + + Gets the Corn silk default brush. + + + + + Gets the Crimson default brush. + + + + + Gets the Cyan default brush. + + + + + Gets the DarkBlue default brush. + + + + + Gets the DarkCyan default brush. + + + + + Gets the DarkGoldenrod default brush. + + + + + Gets the DarkGray default brush. + + + + + Gets the DarkGreen default brush. + + + + + Gets the DarkKhaki default brush. + + + + + Gets the DarkMagenta default brush. + + + + + Gets the DarkOliveGreen default brush. + + + + + Gets the DarkOrange default brush. + + + + + Gets the DarkOrchid default brush. + + + + + Gets the DarkRed default brush. + + + + + Gets the DarkSalmon default brush. + + + + + Gets the DarkSeaGreen default brush. + + + + + Gets the DarkSlateBlue default brush. + + + + + Gets the DarkSlateGray default brush. + + + + + Gets the DarkTurquoise default brush. + + + + + Gets the DarkViolet default brush. + + + + + Gets the DeepPink default brush. + + + + + Gets the DeepSkyBlue default brush. + + + + + Gets the DimGray default brush. + + + + + Gets the DodgerBlue default brush. + + + + + Gets the Firebrick default brush. + + + + + Gets the FloralWhite default brush. + + + + + Gets the ForestGreen default brush. + + + + + Gets the Fuchsia default brush. + + + + + Gets the Gainsborough default brush. + + + + + Gets the GhostWhite default brush. + + + + + Gets the Gold default brush. + + + + + Gets the Goldenrod default brush. + + + + + Gets the Gray default brush. + + + + + Gets the Green default brush. + + + + + Gets the GreenYellow default brush. + + + + + Gets the Honeydew default brush. + + + + + Gets the HotPink default brush. + + + + + Gets the IndianRed default brush. + + + + + Gets the Indigo default brush. + + + + + Gets the Ivory default brush. + + + + + Gets the Khaki default brush. + + + + + Gets the Lavender default brush. + + + + + Gets the LavenderBlush default brush. + + + + + Gets the LawnGreen default brush. + + + + + Gets the LemonChiffon default brush. + + + + + Gets the LightBlue default brush. + + + + + Gets the LightCoral default brush. + + + + + Gets the LightCyan default brush. + + + + + Gets the LightGoldenrodYellow default brush. + + + + + Gets the LightGray default brush. + + + + + Gets the LightGreen default brush. + + + + + Gets the LightPink default brush. + + + + + Gets the LightSalmon default brush. + + + + + Gets the LightSeaGreen default brush. + + + + + Gets the LightSkyBlue default brush. + + + + + Gets the LightSlateGray default brush. + + + + + Gets the LightSteelBlue default brush. + + + + + Gets the LightYellow default brush. + + + + + Gets the Lime default brush. + + + + + Gets the LimeGreen default brush. + + + + + Gets the Linen default brush. + + + + + Gets the Magenta default brush. + + + + + Gets the Maroon default brush. + + + + + Gets the MediumAquamarine default brush. + + + + + Gets the MediumBlue default brush. + + + + + Gets the MediumOrchid default brush. + + + + + Gets the MediumPurple default brush. + + + + + Gets the MediumSeaGreen default brush. + + + + + Gets the MediumSlateBlue default brush. + + + + + Gets the MediumSpringGreen default brush. + + + + + Gets the MediumTurquoise default brush. + + + + + Gets the MediumVioletRed default brush. + + + + + Gets the MidnightBlue default brush. + + + + + Gets the MintCream default brush. + + + + + Gets the MistyRose default brush. + + + + + Gets the Moccasin default brush. + + + + + Gets the NavajoWhite default brush. + + + + + Gets the Navy default brush. + + + + + Gets the OldLace default brush. + + + + + Gets the Olive default brush. + + + + + Gets the OliveDrab default brush. + + + + + Gets the Orange default brush. + + + + + Gets the OrangeRed default brush. + + + + + Gets the Orchid default brush. + + + + + Gets the PaleGoldenrod default brush. + + + + + Gets the PaleGreen default brush. + + + + + Gets the PaleTurquoise default brush. + + + + + Gets the PaleVioletRed default brush. + + + + + Gets the PapayaWhip default brush. + + + + + Gets the PeachPuff default brush. + + + + + Gets the Peru default brush. + + + + + Gets the Pink default brush. + + + + + Gets the Plum default brush. + + + + + Gets the PowderBlue default brush. + + + + + Gets the Purple default brush. + + + + + Gets the Red default brush. + + + + + Gets the RosyBrown default brush. + + + + + Gets the RoyalBlue default brush. + + + + + Gets the SaddleBrown default brush. + + + + + Gets the Salmon default brush. + + + + + Gets the SandyBrown default brush. + + + + + Gets the SeaGreen default brush. + + + + + Gets the SeaShell default brush. + + + + + Gets the Sienna default brush. + + + + + Gets the Silver default brush. + + + + + Gets the SkyBlue default brush. + + + + + Gets the SlateBlue default brush. + + + + + Gets the SlateGray default brush. + + + + + Gets the Snow default brush. + + + + + Gets the SpringGreen default brush. + + + + + Gets the SteelBlue default brush. + + + + + Gets the Tan default brush. + + + + + Gets the Teal default brush. + + + + + Gets the Thistle default brush. + + + + + Gets the Tomato default brush. + + + + + Gets the Transparent default brush. + + + + + Gets the Turquoise default brush. + + + + + Gets the Violet default brush. + + + + + Gets the Wheat default brush. + + + + + Gets the White default brush. + + + + + Gets the WhiteSmoke default brush. + + + + + Gets the Yellow default brush. + + + + + Gets the YellowGreen default brush. + + + + + Represents the arrays of colors and positions used for + interpolating color blending in a multicolor gradient. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The count. + + + + Gets or sets the colours array. + + + + + Specifies the gradient direction of the linear gradient brush. + + + + + Specifies a gradient from upper right to lower left. + + + + + Specifies a gradient from upper left to lower right. + + + + + Specifies a gradient from left to right. + + + + + Specifies a gradient from top to bottom. + + + + + Specifies the constant values specifying whether to extend the shading + beyond the starting and ending points of the axis. + + + + + Do not extend any point. + + + + + Extend start point. + + + + + Extend end point. + + + + + Extend both start and end points. + + + + + Function-based shading. + + + + + Axial shading. + + + + + Radial shading. + + + + + Free-form Gouraud-shaded triangle mesh + + + + + Lattice-form Gouraud-shaded triangle mesh. + + + + + Coons patch mesh. + + + + + Tensor-product patch mesh. + + + + + Describes a graphics element which can be drawn by a pen. + + + + + Gets or sets a pen that will be used to draw the element. + + + + + The actual bounds of the html view. It may larger than Bounds + + + + + Represents an element that could be drawn and/or filled. + + + + + Gets or sets the brush. + + + + + Represents a base class for all page graphics elements. + + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + Location of the element in the Graphics' co-ordinate system. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + Represents the base class for all elements that can be layout on the pages. + + [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust")] + + + + Event. Raises after the element was printed on the page. + + + + + Event. Raises before the element should be printed on the page. + + + + + Draws the element on the page. + + Current page where the element should be drawn. + Start location on the page. + Layouting result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + X co-ordinate of the element on the page. + Y co-ordinate of the element on the page. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + Start location on the page. + Lay outing format. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + X co-ordinate of the element on the page. + Y co-ordinate of the element on the page. + Layout format. + Layout result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Layout format. + Layout result. + + + + Gets or sets the path of the font. + + + + + Gets or set the font stream. + + + + + Gets or sets the private font collection. + + + + + Base class for the main shapes. + + + + + Gets the bounds. + + rect + + + + + Class that represent HTML text area with the ability to span several pages. + + + + + Specifies how text in a is + horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + internal variable to store Size. + + + + + internal variable to store Mask. + + + + + internal variable to store Numbering. + + + + + internal variable to store Reserved. + + + + + internal variable to store Start Indent. + + + + + internal variable to store Right Indent. + + + + + internal variable to store Offset. + + + + + internal variable to store Alignment. + + + + + internal variable to store Tab Count. + + + + + internal variable to store rgxTabs. + + + + + internal variable to store Space Before. + + + + + internal variable to store Space After. + + + + + internal variable to store Line Spacing. + + + + + internal variable to store Style. + + + + + internal variable to store Line Spacing Rule. + + + + + internal variable to store Out line Level. + + + + + internal variable to store Shading Weight. + + + + + internal variable to store Shading Style. + + + + + internal variable to store Numbering Start. + + + + + internal variable to store Numbering Style. + + + + + internal variable to store Numbering Tab. + + + + + internal variable to store Border Space. + + + + + internal variable to store Border Width. + + + + + internal variable to store Borders. + + + + + internal variable to store size. + + + + + internal variable to store Mask. + + + + + internal variable to store Effects. + + + + + internal variable to store Height. + + + + + internal variable to store Offset. + + + + + internal variable to store Text Color. + + + + + internal variable to store CharSet. + + + + + internal variable to store Pitch And Family. + + + + + internal variable to store Weight. + + + + + internal variable to store Spacing. + + + + + internal variable to store BackColor. + + + + + internal variable to store lcid. + + + + + internal variable to store Reserved. + + + + + internal variable to store Style. + + + + + internal variable to store Kerning. + + + + + internal variable to store Under line Type. + + + + + internal variable to store Animation. + + + + + internal variable to store RevAuthor. + + + + + internal variable to store Reserved. + + + + + Represents the text area with the ability to span several pages. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Initializes a new instance of the class. + + The text. + The font. + + + + Initializes a new instance of the class. + + The text. + The font. + The pen. + + + + Initializes a new instance of the class. + + The text. + The font. + The brush. + + + + Initializes a new instance of the class. + + The text. + The font. + The pen. + The brush. + The format. + + + + Gets or sets a value indicating the text that should be printed. + + + + + Gets or sets a pen that will be used to draw the text. + + + + + Gets or sets the brush that will be used to draw the text. + + + + + Gets or sets a font that will be used to draw the text. + + + + + Gets or sets text settings that will be used to draw the text. + + + + + Draws the text on the page. + + Current page where the text should be drawn. + Start location on the page. + Lay outing format. + Lay outing result. + + + + Draws the text on the page. + + Current page where the text should be drawn. + Start location on the page. + Width of the text bounds. + Lay outing format. + Lay outing result. + + + + Draws the text on the page. + + Current page where the text should be drawn. + RectangleF structure that specifies the bounds of the text. + Lay outing format. + Lay outing result. + + + + Represents the data for a cancelable event. + + + + + Gets or sets a value indicating whether this is cancel. + + true if cancel; otherwise, false. + + + + Data for event before lay outing of the page. + + + + + Gets or sets value that indicates the lay outing bounds on the page. + + + + + Gets the page where the lay outing should start. + + + + + Initializes a new instance of the class. + + The bounds. + The page. + + + + Contains information about layout`s element . + + + + + Gets a result of the lay outing on the page. + + + + + Gets or sets a value indicating the next page where the element should be layout if the process is not finished or stopped. + + The default value is null. In this case the element will be layout on the next page. + + + + Initializes a new instance of the class. + + The result. + + + + Contains information about layout`s element . + + + + + Initializes a new instance of the class. + + The result. + + + + Gets a result of the lay outing on the page. + + + + + Delegate. Defines a type of the event before lay outing on the page. + + + + + Delegate. Defines a type of the event after lay outing on the page. + + + + + Delegate. Defines a type of the event after the text lay outing on the page. + + + + + Specifies type of paginating. + + + + + If the element exceeds the page, proceed it on the next page. + + + + + Draw the element on the one page only. + + + + + Specifies how the element should be contained on the page. + + + + + Fit the element according to the bounds specified or the page bounds. + + + + + If the element doesn't fit at the first page, don't draw it on this page. + + + + + Represents the used fonts in a PDF document. + + + + + Gets the name. + + The name. + + + + Gets the size. + + The size. + + + + Gets the style. + + The style. + + + + Gets the type. + + The type. + + + + Initializes a new instance of the class. + + The font. + + + + Replaces the specified new font. + + The new font. + + + + Replace the font size in the content. + + The font size. + The font name in the resources. + + + + Dispose font + + + + + Gets or sets ofset from beginning of TrueType font file. + + + + + Gets or sets length of this table. + + + + + Gets or sets table checksum. + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Typographic line gap. + Negative LineGap values are treated as DEF_TABLE_CHECKSUM. + + + + + Gets or sets contains CFF. + + + + + Gets or sets value indicating if Symbol font is used. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets a value indicating whether font is script. + + + + + Gets a value indicating whether font is serif. + + + + + Gets or sets description font item. + + + + + Gets or sets post-script font name. + + + + + Gets or sets font family name. + + + + + Gets or sets font name. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets widths table for the font. + + + + + Regular: 0 + Bold: 1 + Italic: 2 + Bold Italic: 3 + Bit 0- bold (if set to 1) + Bit 1- italic (if set to 1) + Bits 2-15- reserved (set to 0). + NOTE: + Note that macStyle bits must agree with the 'OS/2' table fsSelection bits. + The fsSelection bits are used over the macStyle bits in Microsoft Windows. + The PANOSE values and 'post' table values are ignored for determining bold or italic fonts. + + + + + Subscript size factor. + + + + + Superscript size factor. + + + + + First char of the font. + + + + + Last char of the font. + + + + + Gets a value indicating whether this instance is italic. + + true if this instance is italic; otherwise, false. + + + + Gets a value indicating whether this instance is bold. + + true if this instance is bold; otherwise, false. + + + + Local variable to store Format Selector. + + + + + Local variable to store Records Count. + + + + + Local variable to store Offset. + + + + + Local variable to store Name Records. + + + + + The PlatformID. + + + + + The EncodingID. + + + + + The PlatformIDLanguageID + + + + + The NameID. + + + + + The Length. + + + + + The Offset. + + + + + The Name. + + + + + The cmap. + + + + + The glyf. + + + + + The head. + + + + + The hhea. + + + + + The cmap. + + + + + The loca. + + + + + The maxp. + + + + + The cmap. + + + + + The post. + + + + + The OS2. + + + + + The CFF. + + + + + The cvt. + + + + + The fpgm. + + + + + The prep. + + + + + Modified: International date (8-byte field). + + + + + Created: International date (8-byte field). + + + + + MagicNumber: Set to 0x5F0F3CF5. + + + + + CheckSumAdjustment: To compute: set it to 0, sum the entire font as ULONG, + then store 0xB1B0AFBA - sum. + + + + + FontRevision: Set by font manufacturer. + + + + + Table version number: 0x00010000 for version 1.0. + + + + + Minimum x for all glyph bounding boxes. + + + + + Minimum y for all glyph bounding boxes. + + + + + Valid range is from 16 to 16384. + + + + + Maximum y for all glyph bounding boxes. + + + + + Maximum x for all glyph bounding boxes. + + + + + Regular: 0 + Bold: 1 + Italic: 2 + Bold Italic: 3 + Bit 0 - bold (if set to 1) + Bit 1 - italic (if set to 1) + Bits 2-15 - reserved (set to 0) + NOTE: + Note that macStyle bits must agree with the 'OS/2' table fsSelection bits. + The fsSelection bits are used over the macStyle bits in Microsoft Windows. + The PANOSE values and 'post' table values are ignored for determining bold or italic fonts. + + + + + Bit 0 - baseline for font at y=0 + Bit 1 - left SideBearing at x=0 + Bit 2 - instructions may depend on point size + Bit 3 - force ppem to integer values for all private scaler math; may use fractional ppem sizes if this bit is clear + Bit 4 - instructions may alter advance width (the advance widths might not scale linearly) + Note: All other bits must be zero. + + + + + LowestRecPPEM: Smallest readable size in pixels. + + + + + FontDirectionHint: + 0 Fully mixed directional glyphs + 1 Only strongly left to right + 2 Like 1 but also contains neutrals + -1 Only strongly right to left + -2 Like -1 but also contains neutrals. + + + + + 0 for short offsets, 1 for long. + + + + + 0 for current format. + + + + + Version. + + + + + Typographic ascent. + + + + + Maximum advance width value in HTML table. + + + + + Typographic descent. + + + + + Number of hMetric entries in HTML table; + may be smaller than the total number of glyphs in the font. + + + + + Typographic line gap. Negative LineGap values are treated as DEF_TABLE_CHECKSUM + in Windows 3.1, System 6, and System 7. + + + + + Minimum left SideBearing value in HTML table. + + + + + Minimum right SideBearing value; calculated as Min(aw - lsb - (xMax - xMin)). + + + + + Max(lsb + (xMax - xMin)). + + + + + Used to calculate the slope of the cursor (rise/run); 1 for vertical. + + + + + 0 for vertical. + + + + + 0 for current format. + + + + + Struct field. + + + + + The Average Character Width parameter specifies + the arithmetic average of the escapement (width) + of all of the 26 lowercase letters a through z of the Latin alphabet + and the space character. If any of the 26 lowercase letters are not present, + this parameter should equal the weighted average of all glyphs in the font. + For non-UGL (platform 3, encoding 0) fonts, use the unweighted average. + + + + + Indicates the visual weight (degree of blackness or thickness of strokes) + of the characters in the font. + + + + + Indicates a relative change from the normal aspect ratio (width to height ratio) + as specified by a font designer for the glyphs in a font. + + + + + Indicates font embedding licensing rights for the font. + Embeddable fonts may be stored in a document. + When a document with embedded fonts is opened on a system that does not have the font installed + (the remote system), the embedded font may be loaded for temporary (and in some cases, permanent) + use on that system by an embedding-aware application. + Embedding licensing rights are granted by the vendor of the font. + + + + + The recommended horizontal size in font design units for subscripts for this font. + + + + + The recommended vertical size in font design units for subscripts for this font. + + + + + The recommended horizontal offset in font design units for subscripts for this font. + + + + + The recommended vertical offset in font design units from the baseline for subscripts for this font. + + + + + The recommended horizontal size in font design units for superscripts for this font. + + + + + The recommended vertical size in font design units for superscripts for this font. + + + + + The recommended horizontal offset in font design units for superscripts for this font. + + + + + The recommended vertical offset in font design units from the baseline for superscripts for this font. + + + + + Width of the strikeout stroke in font design units. + + + + + The position of the strikeout stroke relative to the baseline in font design units. + + + + + This parameter is a classification of font-family design. + + + + + This 10 byte series of numbers are used to describe the visual characteristics + of a given typeface. These characteristics are then used to associate the font with + other fonts of similar appearance having different names. The variables for each digit are listed below. + The specifications for each variable can be obtained in the specification + PANOSE v2.0 Numerical Evaluation from Microsoft or Elseware Corporation. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + The four character identifier for the vendor of the given type face. + + + + + Information concerning the nature of the font patterns. + + + + + The minimum Unicode index (character code) in this font, + according to the cmap subtable for platform ID 3 and encoding ID 0 or 1. + For most fonts supporting Win-ANSI or other character sets, this value would be 0x0020. + + + + + usLastCharIndex: The maximum Unicode index (character code) in this font, + according to the cmap subtable for platform ID 3 and encoding ID 0 or 1. + This value depends on which character sets the font supports. + + + + + The typographic ascender for this font. + Remember that this is not the same as the Ascender value in the 'hhea' table, + which Apple defines in a far different manner. + DEF_TABLE_OFFSET good source for usTypoAscender is the Ascender value from an AFM file. + + + + + The typographic descender for this font. + Remember that this is not the same as the Descender value in the 'hhea' table, + which Apple defines in a far different manner. + DEF_TABLE_OFFSET good source for usTypoDescender is the Descender value from an AFM file. + + + + + The typographic line gap for this font. + Remember that this is not the same as the LineGap value in the 'hhea' table, + which Apple defines in a far different manner. + + + + + The ascender metric for Windows. + This too is distinct from Apple's Ascender value and from the usTypoAscender values. + usWinAscent is computed as the yMax for all characters in the Windows ANSI character set. + usTypoAscent is used to compute the Windows font height and default line spacing. + For platform 3 encoding 0 fonts, it is the same as yMax. + + + + + The descender metric for Windows. + This too is distinct from Apple's Descender value and from the usTypoDescender values. + usWinDescent is computed as the -yMin for all characters in the Windows ANSI character set. + usTypoAscent is used to compute the Windows font height and default line spacing. + For platform 3 encoding 0 fonts, it is the same as -yMin. + + + + + This field is used to specify the code pages encompassed + by the font file in the 'cmap' subtable for platform 3, encoding ID 1 (Microsoft platform). + If the font file is encoding ID 0, then the Symbol Character Set bit should be set. + If the bit is set (1) then the code page is considered functional. + If the bit is clear (0) then the code page is not considered functional. + Each of the bits is treated as an independent flag and the bits can be set in any combination. + The determination of "functional" is left up to the font designer, + although character set selection should attempt to be functional by code pages if at all possible. + + + + + This field is used to specify the code pages encompassed + by the font file in the 'cmap' subtable for platform 3, encoding ID 1 (Microsoft platform). + If the font file is encoding ID 0, then the Symbol Character Set bit should be set. + If the bit is set (1) then the code page is considered functional. + If the bit is clear (0) then the code page is not considered functional. + Each of the bits is treated as an independent flag and the bits can be set in any combination. + The determination of "functional" is left up to the font designer, + although character set selection should attempt to be functional by code pages if at all possible. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Holds glyph index. + + + + + Holds character's width. + + + + + Code of the char symbol. + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Compares two WidthDescriptor objects. + + Another object for comparing. + A signed integer that indicates the relative order of this instance and value. + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Represents the standard CJK fonts. + + + + + Initializes a new instance of the class. + + The font family. + The size. + The style. + + + + Initializes a new instance of the class. + + The font family. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + The style. + + + + Gets the font family. + + + + + Represents the font. + + + + + Gets the name. + + The name. + + + + Gets the size. + + The size. + + + + Gets the height of the font in points. + + + + + Gets the descent of the font in points. + + + + + Gets the style information for this font. + + + + + Gets a value indicating whether this is bold. + + true if bold; otherwise, false. + + + + Gets a value indicating whether this is italic. + + true if italic; otherwise, false. + + + + Gets a value indicating whether this is strikeout. + + true if strikeout; otherwise, false. + + + + Gets a value indicating whether this is underline. + + true if underline; otherwise, false. + + + + Measures a string by using this font. + + Text to be measured. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Gets Pdf primitive representing the font. + + + + + Checks whether the object is similar to another object. + + The object to compare with the current object. + True - if the objects have equal internals and can share them, False otherwise. + + + + Represents one of the 14 standard PDF fonts. + + + + + Initializes a new instance of the class. + + The font family. + The size. + + + + Initializes a new instance of the class. + + The font family. + The size. + The style. + + + + Initializes a new instance of the class. + + The prototype. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + The style. + + + + Gets the FontFamily. + + + + + Represents the text layout information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The alignment. + + + + Initializes a new instance of the class. + + The column format. + + + + Initializes a new instance of the class. + + The alignment. + The vertical alignment. + + + + Gets or sets the text alignment. + + + + + Gets or sets the vertical text alignment. + + + + + Gets or sets the value that indicates text direction mode. + + Note, that this property doesn't change any alignment of the text. + property should be set manually to align the text. This property just enables or disables + support of right to left approach. + If the value is False, the text won't be checked for right to left symbols occurrence. + + + + Gets or sets value that indicates a size among the characters in the text. + When the glyph for each character in the string is rendered, this value is + added to the the glyphs displacement. + + + Default value is 0. + + + + Gets or sets value that indicates a size among the words in the text. + Word spacing works the same way as character spacing but applies only to the + space character, code 32. + + Default value is 0. + + + + Gets or sets value that indicates the vertical distance between the baselines of adjacent lines of text. + + Default value is 0. + + + + Gets or sets a value indicating whether the text + should be a part of the clipping path. + + + + + Gets or sets value indicating whether the text is in subscript or superscript mode. + + + + + Gets or sets the indent of the first line in the paragraph. + + + + + Only entire lines are laid out in the formatting rectangle. + By default layout continues until the end of the text, + or until no more lines are visible as a result of clipping, whichever comes first. + Note that the default settings allow the last line to be partially obscured by a formatting rectangle that is not a whole multiple of the line height. + To ensure that only whole lines are seen, specify this value and be careful to provide a formatting rectangle at least as tall as the height of one line. + + true if [line limit]; otherwise, false. + + + + Includes the trailing space at the end of each line. + By default the boundary rectangle returned by the MeasureString method of PdfFont excludes the space at the end of each line. + Set this flag to include that space in measurement. + + + true if [measure trailing spaces]; otherwise, false. + + + + + Overhanging parts of glyphs, + and unwrapped text reaching outside the formatting rectangle are allowed to show. + By default all text and glyph parts reaching outside the formatting rectangle are clipped. + + true if [no clip]; otherwise, false. + + + + Gets or sets value indicating type of the text wrapping. + + + + + Clones the object. + + The new created object. + + + + Represents TrueType font. + + [System.Security.Permissions.PermissionSet( System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust" )] + + + + Convert unicode text to charCode text using the character set encoding. + + + + + + Class lay outing the text. + + + + + Initializes a new instance of the class. + + + + + Layouts the text. + + String text. + Font for the text. + String format. + Bounds of the text. + Layout result. + + + + Process the '\t' in text. + + The text + The processed text + + + + Get the info text length + + The line info + The postion + the line info`s length + + + + Layouter result. + + + + + Gets the text which is not layouted + + + + + Gets the actual layouted text bounds + + + + + Gets layouted lines information. + + + + + Gets the height of the line. + + + + + Contains information about the line. + + + + + Gets width of the line text. + + + + + Gets line text. + + + + + Gets width of the line text. + + + + + Break type of the line. + + + + + Unknown type line. + + + + + The line has new line symbol. + + + + + layout break. + + + + + The line is the first in the paragraph. + + + + + The line is the last in the paragraph. + + + + + Is not a separator + + + + + Is a separator, but can not be the first char of a new line + + + + + Is a separator which can be the first char of a new line + + + + + Indicates that the character is an opening or initial quotation mark. + + + + + Letter, whoes code > 0x1EF4 + + + + + Check table name does not exist + + + + + + + set char Code for unicode char + + unicodeString + charCode + + + + Get CharCode + + + + + + + Specifies style information applied to text. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Represents the underline text. + + + + + Strikeout text. + + + + + Indicates type of standard PDF fonts. + + + + + Represents the Helvetica font. + + + + + Represents the Courier font. + + + + + Represents the Times Roman font. + + + + + Represents the Symbol font. + + + + + Represents the ZapfDingbats font. + + + + + Specifies the type of CJK font. + + + + + Represents the Hanyang Systems Gothic Medium font. + + + + + Represents the Hanyang Systems shin myeong Jo Medium font. + + + + + Represents the Heisei kaku GothicW5 font. + + + + + Represents the Heisei MinchoW3 font. + + + + + Represents the Monotype Hei Medium font. + + + + + Represents the monotype sung Light font. + + + + + Represents the sinotype song light font. + + + + + Specifies the type of the font. + + + + + Indicates the standard Adobe fonts. + + + + + Indicates the non-embedded TrueType fonts. + + + + + Indicates the Embedded TrueType fonts. + + + + + Specifies the types of text wrapping. + + + + + Text wrapping between lines when formatting within a rectangle is disabled. + + + + + Text is wrapped by words. If there is a word that is longer than bounds' width, this word is wrapped by characters. + + + + + Text is wrapped by words. If there is a word that is longer than bounds' width, it won't be wrapped at all + and the process will be finished. + + + + + Text is wrapped by characters. In this case the word at the end of the text line can be split. + + + + + Specifies type of the SubSuperScript. + + + + + Specifies no subscript or superscript. + + + + + Specifies superscript format. + + + + + Specifies subscript format. + + + + + Apple platform. + + + + + Macintosh platform. + + + + + Iso platform. + + + + + Microsoft platform. + + + + + The Copyright + + + + + The Font Family + + + + + The Font Sub Family + + + + + The Font Identifier + + + + + The Font Name + + + + + The Version + + + + + The PostScriptName + + + + + The Trademark + + + + + Unknown encoding. + + + + + When building a symbol font for Windows. + + + + + When building a Unicode font for Windows. + + + + + For font that will be used on a Macintosh. + + + + + Undefined encoding. + + + + + Unicode BMP(UCS-2) encoding. + + + + + Add by pdf-2610 + Unicode UCS-4 encoding. + + + + + Roman encoding. + + + + + Japanese encoding. + + + + + Chinese encoding. + + + + + This is the Apple standard character to glyph index mapping table. + + + + + This is the Microsoft standard character to glyph index mapping table. + + + + + Format 6: Trimmed table mapping. + + + + + Add by pdf-2610 + Format 12: Segmented Coverage table mapping. + + + + + ttf composite glyph flags. + + + + + The ARG_1_AND_2_ARE_WORDS. + + + + + The ARGS_ARE_XY_VALUES. + + + + + The ROUND_XY_TO_GRID. + + + + + The WE_HAVE_A_SCALE. + + + + + The RESERVED. + + + + + The MORE_COMPONENTS. + + + + + The WE_HAVE_AN_X_AND_Y_SCALE. + + + + + The WE_HAVE_A_TWO_BY_TWO. + + + + + The WE_HAVE_INSTRUCTIONS. + + + + + The USE_MY_METRICS. + + + + + Unknown encoding + + + + + Adobe standard Latin-text encoding + + + + + Mac OS standard encoding + + + + + An encoding for use with expert fonts + + + + + Windows Code Page 1252 + + + + + Encoding for text strings in a PDF document outside the document's content streams. + + + + + The horizontal identity mapping for 2-byte CIDs; may be used with CIDFonts using any + Registry, Ordering, and Supplement values. It maps 2-byte character codes ranging from + 0 to 65,535 to the same 2-byte CID value, interpreted high-order byte first. + + + + + All glyphs have the same width (as opposed to proportional or variable-pitch + fonts, which have different widths). + + + + + Glyphs have serifs, which are short strokes drawn at an angle on the top and + bottom of glyph stems (as opposed to sans serif fonts, which do not). + + + + + Font contains glyphs outside the Adobe standard Latin character set. The + flag and the nonsymbolic flag cannot both be set or both be clear. + + + + + Glyphs resemble cursive handwriting. + + + + + Font uses the Adobe standard Latin character set or a subset of it. + + + + + Glyphs have dominant vertical strokes that are slanted. + + + + + Bold font. + + + + + + + + + + + + + + + Represent pdf form XObject. + + + + + Form XObject pdf stream. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The resources. + + + + + + + + + + + + + + + + + + + + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_bound to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_matrix to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_visibilityGroup to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_resources to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_bound from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_matrix from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_visibilityGroup from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_resources from the pdf primitive. + + The form XObject dictionary. + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Default Quantizer Quality. + + + + + A 64 byte array which corresponds to a JPEG Luminance Quantization table. + + + + + A 64 byte array which corresponds to a JPEG Chromiance Quantization table. + + + + + Encodes a provided ImageBuffer[,,] to a JPG Image. + + The ImageBuffer containing the pixel data. + Dimension of the original image. This value is written to the image header. + Dimension on which the Encoder works. As the Encoder works in 8*8 blocks, if the image size is not divisible by 8 the remaining blocks are set to '0' (in this implementation) + Stream to which the JPEG data is to be written. + Required quantizer quality; Default: 50 , Lower value higher quality. + Interface for updating Progress. + Interface for updating CurrentOperation. + + + + Encodes a provided Image to a JPG Image. + + The Image to be encoded. + Stream to which the JPEG data is to be written. + Required quantizer quality; Default: 50 , Lower value higher quality. + Interface for updating Progress. + Interface for updating CurrentOperation. + + + + Generates Y, Cb, Cr, R, G and B values from given RGB_Buffer + + + + + Defines the different possible channel types. + + + + + Generates Y, Cb, Cr, R, G and B values from given RGB_Buffer + + The input RGB_Buffer. + Draw in grayscale. + Width of the image. + Height of the image. + Enum specifying the channel type required. + Interface for updating progress. + Interface for updating current operation. + 3D array of the specified channel type. + + + + The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device. + + [in] Handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen. + + If the function succeeds, the return value is the handle to a memory DC. + If the function fails, the return value is NULL. + + + + + The SelectObject function selects an object into the specified device context (DC). + The new object replaces the previous object of the same type. + + [in] Handle to the DC. + [in] Handle to the object to be selected. The specified object must have been created by using one of the following functions. + + + + + The SetStretchBltMode function sets the bitmap stretching mode in the specified device context. + + [in] Handle to the device context. + [in] Specifies the stretching mode. This parameter can be one of the values from StretchBltModes enum. + + If the function succeeds, the return value is the previous stretching mode. + If the function fails, the return value is zero. + + + + + The GetObject function retrieves information for the specified graphics object. + + [in] Handle to the graphics object of interest. This can be a handle to one of the following: a logical bitmap, a brush, a font, a palette, a pen, or a device independent bitmap created by calling the CreateDIBSection function. + [in] Specifies the number of bytes of information to be written to the buffer. + [out] Pointer to a buffer that receives the information about the specified graphics object. + + If the function succeeds, and lpvObject is a valid pointer, the return value is the number of bytes stored into the buffer. + If the function succeeds, and lpvObject is NULL, the return value is the number of bytes required to hold the information the function would store into the buffer. + If the function fails, the return value is zero. + + + + + The StretchBlt function copies a bitmap from a source rectangle into a destination + rectangle, stretching or compressing the bitmap to fit the dimensions of the destination + rectangle, if necessary. The system stretches or compresses the bitmap according to + the stretching mode currently set in the destination device context. + + [in] Handle to the destination device context. + [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle. + [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle. + [in] Specifies the width, in logical units, of the destination rectangle. + [in] Specifies the height, in logical units, of the destination rectangle. + [in] Handle to the source device context. + [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the source rectangle. + [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the source rectangle. + [in] Specifies the width, in logical units, of the source rectangle. + [in] Specifies the height, in logical units, of the source rectangle. + [in] Specifies the raster operation to be performed. Raster operation codes define how the system combines colors in output operations that involve a brush, a source bitmap, and a destination bitmap. + + If the function succeeds, the return value is nonzero. + If the function fails, the return value is zero. + + + + + The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context. + + [in] Handle to a device context. + [in] Specifies the bitmap width, in pixels. + [in] Specifies the bitmap height, in pixels. + + If the function succeeds, the return value is a handle to the compatible bitmap (DDB). + If the function fails, the return value is NULL. + + + + + The GetDIBits function retrieves the bits of the specified compatible bitmap + and copies them into a buffer as a DIB using the specified format. + + [in] Handle to the device context. + [in] Handle to the bitmap. This must be a compatible bitmap (DDB). + [in] Specifies the first scan line to retrieve. + [in] Specifies the number of scan lines to retrieve. + [out] Pointer to a buffer to receive the bitmap data. If this parameter is NULL, the function passes the dimensions and format of the bitmap to the BITMAPINFOHEADER structure pointed to by the lpbi parameter. + [in/out] Pointer to a BITMAPINFOHEADER structure that specifies the desired format for the DIB data. + [in] Specifies the format of the bmiColors member of the BITMAPINFOHEADER structure. + If the lpvBits parameter is non-NULL and the function succeeds, the return value is the number of scan lines copied from the bitmap. + + + + The SetDIBits function sets the pixels in a compatible bitmap (DDB) + using the color data found in the specified DIB . + + [in] Handle to a device context. + [in] Handle to the compatible bitmap (DDB) that is to be altered using the color data from the specified DIB. + [in] Specifies the starting scan line for the device-independent color data in the array pointed to by the lpvBits parameter. + [in] Specifies the number of scan lines found in the array containing device-independent color data. + [in] Pointer to the DIB color data, stored as an array of bytes. The format of the bitmap values depends on the biBitCount member of the BITMAPINFO structure pointed to by the lpbmi parameter. + [in] Pointer to a BITMAPINFOHEADER structure that contains information about the DIB. + [in] Specifies whether the bmiColors member of the BITMAPINFO structure was provided and, if so, whether bmiColors contains explicit red, green, blue (RGB) values or palette indexes. + If the function succeeds, the return value is the number of scan lines copied. + + + + The GetDC function retrieves a handle to a display device context (DC) + for the client area of a specified window or for the entire screen. + + [in] Handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen. + If the function succeeds, the return value is a handle to the DC for the specified window's client area. I + If the function fails, the return value is NULL. + + + + + The GetClientRect function retrieves the coordinates of a window's client area. + The client coordinates specify the upper-left and lower-right corners of the client area. + + [in] Handle to the window whose client coordinates are to be retrieved. + [out] Pointer to a RECT structure that receives the client coordinates. + If the function succeeds, the return value is nonzero. + + + + Performs a bit-block transfer of the color data corresponding to a + rectangle of pixels from the specified source device context into + a destination device context. + + Handle to the destination device context. + The leftmost x-coordinate of the destination rectangle (in pixels). + The topmost y-coordinate of the destination rectangle (in pixels). + The width of the source and destination rectangles (in pixels). + The height of the source and the destination rectangles (in pixels). + Handle to the source device context. + The leftmost x-coordinate of the source rectangle (in pixels). + The topmost y-coordinate of the source rectangle (in pixels). + A raster-operation code. + + true if the operation succeeded, false otherwise. + + + + + The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, + freeing all system resources associated with the object. After the object is deleted, + the specified handle is no longer valid. + + [in] Handle to a logical pen, brush, font, bitmap, region, or palette. + If the function succeeds, the return value is nonzero. + + + + The ReleaseDC function releases a device context (DC), freeing it for use by other applications. + The effect of the ReleaseDC function depends on the type of DC. + + [in] Handle to the window whose DC is to be released. + [in] Handle to the DC to be released. + + The return value indicates whether the DC was released. + If the DC was released, the return value is 1. + If the DC was not released, the return value is zero. + + + + + The SetPixel function sets the pixel at the specified coordinates to the specified color. + + [in] Handle to the device context. + [in] Specifies the x-coordinate, in logical units, of the point to be set. + [in] Specifies the y-coordinate, in logical units, of the point to be set. + [in] Specifies the color to be used to paint the point. + If the function succeeds, the return value is the RGB value that the function sets the pixel to. + This value may differ from the color specified by crColor; that occurs when an exact match for the + specified color cannot be found. + + + + Specifies a raster-operation code. These codes define how the color data for the + source rectangle is to be combined with the color data for the destination + rectangle to achieve the final color. + + + + dest = source + + + dest = source OR dest + + + dest = source AND dest + + + dest = source XOR dest + + + dest = source AND (NOT dest) + + + dest = (NOT source) + + + dest = (NOT src) AND (NOT dest) + + + dest = (source AND pattern) + + + dest = (NOT source) OR dest + + + dest = pattern + + + dest = DPSnoo + + + dest = pattern XOR dest + + + dest = (NOT dest) + + + dest = BLACK + + + dest = WHITE + + + + Get Font registry key. + + + + + Get font name key of teh registry. + + + + + Draws extra line between the last and first points. + + The pen. + The points. + If true, connects last and first points. + + + + Darw the multiple Line + + + + + + + + + + + + + + Invalid object type. + + + + + Brush object. + + + + + Pen object. + + + + + Path object. + + + + + Region object. + + + + + Image object. + + + + + Font object. + + + + + String format object. + + + + + Image attributes object. + + + + + Custom line cap object. + + + + + Default value. + + + + + Hatch brush. + + + + + Texture brush. + + + + + Path gradient brush. + + + + + Linear gradient brush. + + + + + Flags for a linear gradient brush. + + + + + Minimal data are present. + + + + + The brush applies a transformation matrix to the source image. + + + + + The brush contains a ColorBlend object for use with its InterpolationColors property. + + + + + The brush contains a Blend object for use with its Blend property. + + + + + The brush has a non-default value for the FocusScales property. + + + + + The brush uses gamma correction. + + + + + Represents pen flags. + + + + + Pen just with color set. + + + + + Transformation set. (20-... - float ) + + + + + StartCap set. ( 20 - int ) + + + + + EndCap set. ( 20 - int ) + + + + + LineJoin set. ( 20 - int ) + + + + + MiterLimit set. ( 20 - float ) + + + + + Pen has DashStyle defined. + + + + + DashCap set. ( 20 - int ) + + + + + DashOffset is defined. (20 - float) + + + + + DashPattern is defined. (20 - int: numArray; 24-... - float: DashPattern ) + + + + + Alignment set. (20 - int ) + + + + + CompoundArray set. (20 - int: numArray; 24-... - float: compoundArray ) + + + + + The pen uses a custom start cap. + + + + + The pen uses a custom end cap. + + + + + Unknown format. + + + + + Bitmap image. + + + + + Metafile image. + + + + + Region is from rectangle. + + + + + Region is from graphics path. + + + + + Region is empty. + + + + + Region is infinity. + + + + + Represents the bmp image object. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfBmpImage from stream. + + + + + + Initialize a new instance of PdfBmpImage from path. + + + + + + Initialize a new instance of PdfBmpImage from byte array. + + + + + + Initialize a new instance of PdfGifImage from path. + + + + + + Initialize a new instance of PdfGifImage from byte array. + + + + + + Initialize a new instance of PdfGifImage from stream. + + + + + + Get the count of frame in gif. + + + + + Get or set the current frame index. + + + + + Get the width of the image in pixels. + + + + + Get the height of the image in pixels. + + + + + Get the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + + Represents the jpeg2000 image object. + + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfBmpImage from path. + + + + + + Initialize a new instance of PdfBmpImage from byte array. + + + + + + Initialize a new instance of PdfBmpImage from stream. + + + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + Represents the jb2 image object. + + + + + Get the width of the image in pixel unit. + + + + + Get the height of the image in pixel unit. + + + + + Get the horizontal resoulution of the image in pixel unit. + + + + + Get the vertical resolution of the image in pixel unit. + + + + + Initialize a new instance of PdfJb2Image from file path. + + + + + + Initialize a new instance of PdfJb2Image from byte array. + + + + + + Initialize a new instance of PdfJb2Image from stream. + + + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Represents the jpeg image object. + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Initialize a new instance of PdfJpegImage from path. + + The file path + + + + Initialize a new instance of PdfJpegImage from byte array. + + The data array + + + + Initialize a new instance of PdfJpegImage from stream. + + The data stream + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Represents the png object. + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + + Get the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Get the horizontal resolution, in pixels per inch, of this Image. + + + + + Get the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfPngImage from file path. + + the file path + + + + Initialize a new instance of PdfPngImage from byte array. + + byte array + + + + Initialize a new instance of PdfPngImage from stream. + + stream + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + + Represents the tiff image object. + + + + + Get bytes count per component. + + The bytes count per component + + + + Process the image data. + if the value of SamplePerPixel bigger than 3 extra samples should + give an indication of the meaning of the additional channels + + The same y position image data. + The y position + Whether exist smask. + The processed image data. + + + + Represent pdf optional content group(or optional content membership). + + + + + Visible of optional content. + + + + + The intent of using optional group + + + + + Which is intended to represent a document designer's + structural organization of artwork. + + + + + Which is intended for interactive use by document consumers. + + + + + Represent pdf optional content group. + Content typically belongs to a single optional content group. + + + + + Optional content group dictionary + + + + + Optional content group Name + + + + + Optional group used Intent + + + + + Optional content configuration. + + + + + Optional content group reference. + + + + + Get or set pdf layer name. + Notice: + Name may be is not unique. + + + + + Get or set pdf layer view state. + + + + + Get or set pdf layer export state. + + + + + Get or set pdf layer print state. + + + + + Get or set pdf layer visible. + + + + + Get whether the layer shows on user interface or not. + + + + + Get reference of the layer. + + + + + Construct an instance + + The pdf layer name + The optional content configuration. + The pdf cross Table + + + + Construct an instance with the optional content group dictionary + + The optional content group dictionary + The optional content configuration. + The pdf cross Table + + + + Construct an instance with the optional content group dictionary + + The optional content group dictionary + The optional content configuration. + The pdf cross Table + The reference of the layer + + + + Create the layer graphics. + + + The pdf layer container's graphics. + eg: PdfPageBase.Canvas ... + + The pdf layer graphics. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_name to the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field m_intent to the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field Usage to the pdf primitive. + + The layer property + The layer property's state + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_name from the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field m_intent from the pdf primitive. + + The optional content group dictionary + + + + Represent pdf layer collection. + + + + + The PdfDocumentBase. + + + + + Optional content properties dictionary. + + + + + Optional content groups. + + + + + Default viewing optional content configuration. + + + + + Get the pdf layer of the index. + + Pdf layer index + Pdf layer + + + + Get the pdf layer of name. + Notice: + Pdf layer name may be is not unique. + If exist duplication of name,return first pdf layer of name. + If not exist pdf layer of name,return null; + + Pdf layer name + Pdf layer + + + + Gets the number of pdf layers contained. + + + + + Construct an instance + + The PdfDocumentBase. + The pdf cross table + + + + Construct an instance with the optional content properties dictionary + + The optional content properties dictionary + The PdfDocumentBase. + The pdf cross table + + + + Create a new empty pdf layer outline. + + Pdf layer outline. + + + + Add a new pdf layer. + + Pdf layer name. + Pdf layer. + + + + Add a new pdf layer. + + Pdf layer name. + Pdf layer's visibility. + Pdf layer. + + + + Remove the pdf layer. + + The pdf layer. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove the pdf layer. + + The pdf layer. + If true,remove content with the pdf layer.Otherwise,false. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove layer from Ocgs array. + + + + + + Remove the pdf layer. + Notice: Pdf layer name may be is not unique. + If exist duplication of name,will remove all pdf layers of name. + + Pdf layer name. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove the pdf layer. + Notice: Pdf layer name may be is not unique. + If exist duplication of name,will remove all pdf layers of name. + + Pdf layer name. + If true,remove content with the pdf layer.Otherwise,false. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Find pdf layers of name. + + Pdf layer name. + Pdf layers of name. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_defaultViewConfig,m_otherConfigs to the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance field m_layers to the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_defaultViewConfig,m_otherConfigs from the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance field m_layers from the pdf primitive. + + The optional content properties dictionary + + + + Represent pdf optional content configuration + + + + + Optional content configuration dictionary + + + + + A name for the configuration. + + + + + Used to initialize the states of all optional content groups's visibility. + + + + + An array of optional content groups whose state should be set to + ON when this configuration is applied. + + + + + An array of optional content groups whose state should be set to + OFF when this configuration is applied. + + + + + Used to determine which optional group's states to consider and ignore + in calculating the visibility of content. + + + + + An array specifying the recommended order for presentation of optional content + groups in user interface. + + + + + Construct an instance + + A name for the configuration. + The pdf cross table + + + + Construct an instance with the optional content configuration dictionary + + The optional content configuration dictionary + The pdf cross table + + + + Create a new empty pdf layer outline. + + Pdf layer outline. + + + + Configure a layer at top level. + + The pdf layer. + The layer's visibility. + + + + Remove a layer's configs. + + The pdf layer. + + + + Get layer's visibility. + + The pdf layer. + The pdf layer's visibility. + + + + Set layer's visibility. + + The pdf layer. + The pdf layer's visibility. + + + + Return layer shows on ui or not. + + The layer + + + + + + Append OCGs item for AS item + + the AS PdfArray + The layer property + + + + Get layer's visibility. + + The pdf Layer dictionary. + The pdf layer's visibility. + + + + Add pdf layer visibility settings. + + The list of pdf Layer dictionary. + Visibility of the pdf layer. + + + + Add pdf layer visibility settings. + + The pdf Layer dictionary. + Visibility of the pdf layer. + + + + Remove pdf layer visibility settings. + + The list of pdf Layer dictionary. + + + + Remove pdf layer visibility settings. + + The pdf Layer dictionary. + + + + Add pdf layer visibility settings. + + The pdf Layer. + Visibility of the pdf layer. + + + + Remove pdf layer visibility settings. + + The pdf Layer. + + + + Return the layer shows on ui or not. + + The layer + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_name to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_baseState to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_on to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_off to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_intent to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_layerOutline to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_name from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_baseState from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_intent from the pdf primitive. + + The optional content configuration dictionary. + + + + Synchronize the instance field m_on from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_off from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_layerOutline from the pdf primitive. + + The optional content configuration dictionary. + + + + Represent pdf optional content membership. + To express more complex visibility policies,content should declare itself not + to belong directly an optional content group but rather to an optional content + membership. + + + + + Optional content membership dictionary + + + + + Optional content group whose visibility determine the visibility of + this optional content membership. + + + + + Visibility policy. + + + + + Visibility expression. + + + + + All optional content groups in document,not all related this membership. + + + + + Pdf layer membership Visibility. + + + + + Construct a instance. + + all optional content groups. + The pdf cross table. + + + + Construct an instance with the optional content membership dictionary. + + The optional content membership dictionary. + all optional content groups. + The pdf cross table. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_relatedLayers to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityPolicy to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityExpression to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_relatedLayers from the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityPolicy from the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityExpression from the pdf primitive. + + The optional content membership dictionary + + + + Represent the recommended order for presentation of optional content + groups in user interface. + Refrence "Optional content configuration dictionary's entry order". + + + + + Optional content configuration dictionary's entry order + + + + + Construct an instance. + + The pdf cross table. + + + + Construct an instance with . + + + The pdf cross table + + + + Add a sub group outline. + + Group name. + Sub group outline. + + + + Add a outline entry of the pdf layer with a sub group outline. + + Pdf layer + Sub group outline. + + + + Add a outline entry of the pdf layer. + + Pdf layer + + + + Remove an entry of the layer,inclued sub enties. + + The layer. + + + + Remove an entry with the layer,inclued sub enties.. + Refrence "Optional content configuration dictionary's entry order". + + The layer. + The array include outline entries. + True,if has succeed.Otherwise,false. + + + + Gets the wrapped element. + + + + + Remove layer content in the page. + + The layer. + The page. + The pdfCrossTable + + + + Represent the visibility of optional content group(or optional content membership). + + + + + Specify the visibility expression for optional content belonging to PdfLayerMembership. + + + + + An array specifying a visibility expression + + + + + Visible of optional content. + + + + + Construct an instance + + The pdf cross table. + + + + Construct an instance with the visibility expression array. + + The visibility expression array. + The pdf cross table. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Specify the visibility policy for content belonging to PdfLayerMembership. + + + + + Not Specifying the visibility policy. + + + + + Visible if any of layer are On. + + + + + Visible only if all of layers are On. + + + + + Visible if any of layer are Off. + + + + + Visible only if all of layers are Off. + + + + + Represent the matrix + + + + + Gets the x translation value (the dx value, or the element in the third row and first column). + + + + + Gets the x translation value (the dx value, or the element in the third row and second column). + + + + + Gets an array of floating-point values that represents the elements. + + + + + Construct a instance as the identity matrix. + + + + + Construct a instance as the identity matrix. + + The value in the first row and first column. + The value in the first row and second column. + The value in the second row and first column. + The value in the second row and second column. + The value in the third row and first column. + The value in the third row and second column. + + + + Construct a instance to the geometric transform defined by the specified rectangle and array of points. + + A System.Drawing.Rectangle structure that represents the rectangle. + + An array of three System.Drawing.Point structures that represents the points + of a parallelogram to which the upper-left, upper-right, and lower-left corners + of the rectangle is to be transformed. The lower-right corner of the parallelogram + is implied by the first three corners. + + + + + Construct a instance to the geometric transform defined by the specified rectangle and array of points. + + A System.Drawing.RectangleF structure that represents the rectangle. + + An array of three System.Drawing.PointF structures that represents the points + of a parallelogram to which the upper-left, upper-right, and lower-left corners + of the rectangle is to be transformed. The lower-right corner of the parallelogram + is implied by the first three corners. + + + + + Prepend the specified matrix. + + Matrix is to be multiplied. + + + + Apply the specified matrix by the specified order. + + Matrix is to be multiplied. + Represent the applying order. + + + + Prepend the specified translation vector (offsetX and offsetY). + + The x value by which to translate. + The y value by which to translate. + + + + Apply the specified translation vector (offsetX and offsetY) by the specified order. + + The x value by which to translate. + The y value by which to translate. + Represent the applying order. + + + + Prepend the specified scale vector (scaleX and scaleY). + + The value by which to scale in the x-axis direction. + The value by which to scale in the y-axis direction. + + + + Apply the specified scale vector (scaleX and scaleY) by the specified order. + + The value by which to scale in the x-axis direction. + The value by which to scale in the y-axis direction. + Represent the applying order. + + + + Prepend a clockwise rotation(angle) around the origin. + + The angle of the rotation, in degrees. + + + + Apply a clockwise rotation(angle) around the origin by the specified order. + + The angle of the rotation, in degrees. + Represent the applying order. + + + + Prepend the specified skew angles(angleX angleY). + + The horizontal skew angle, in degrees. + The vertical skew angle, in degrees. + + + + Prepend the specified skew angles(angleX angleY) by the specified order. + + The horizontal skew angle, in degrees. + The vertical skew angle, in degrees. + Represent the applying order. + + + + Prepend the specified Shear vector (shearX and shearY). + + The horizontal shear factor. + The vertical shear factor. + + + + Apply the specified Shear vector (shearX and shearY) by the specified order. + + The horizontal shear factor. + The vertical shear factor. + Represent the applying order. + + + + Applies the geometric transform to a specified array of points. + + An array of points to transform. + The transformed points. + + + + Matrix1 multiply matrix2 to this. + + first matrix. + second matrix. + + + + Converts degree to radian. + + The degree + The radian + + + + Converts radian to degree. + + The radian + The degree + + + + Calculate 3 simple equation + + + + + Calculate 3 simple equation + + + + + Represent the applying order to matrix. + + + + + The new operation is applied before the old operation. + + + + + The new operation is applied after the old operation. + + + + + The collection of the default pens. + + + + + Gets the AliceBlue pen. + + + + + Gets the antique white pen. + + + + + Gets the Aqua default pen. + + + + + Gets the Aquamarine default pen. + + + + + Gets the Azure default pen. + + + + + Gets the Beige default pen. + + + + + Gets the Bisque default pen. + + + + + Gets the Black default pen. + + + + + Gets the BlanchedAlmond default pen. + + + + + Gets the Blue default pen. + + + + + Gets the BlueViolet default pen. + + + + + Gets the Brown default pen. + + + + + Gets the BurlyWood default pen. + + + + + Gets the CadetBlue default pen. + + + + + Gets the Chartreuse default pen. + + + + + Gets the Chocolate default pen. + + + + + Gets the Coral default pen. + + + + + Gets the CornflowerBlue default pen. + + + + + Gets the Corn silk default pen. + + + + + Gets the Crimson default pen. + + + + + Gets the Cyan default pen. + + + + + Gets the DarkBlue default pen. + + + + + Gets the DarkCyan default pen. + + + + + Gets the DarkGoldenrod default pen. + + + + + Gets the DarkGray default pen. + + + + + Gets the DarkGreen default pen. + + + + + Gets the DarkKhaki default pen. + + + + + Gets the DarkMagenta default pen. + + + + + Gets the DarkOliveGreen default pen. + + + + + Gets the DarkOrange default pen. + + + + + Gets the DarkOrchid default pen. + + + + + Gets the DarkRed default pen. + + + + + Gets the DarkSalmon default pen. + + + + + Gets the DarkSeaGreen default pen. + + + + + Gets the DarkSlateBlue default pen. + + + + + Gets the DarkSlateGray default pen. + + + + + Gets the DarkTurquoise default pen. + + + + + Gets the DarkViolet default pen. + + + + + Gets the DeepPink default pen. + + + + + Gets the DeepSkyBlue default pen. + + + + + Gets the DimGray default pen. + + + + + Gets the DodgerBlue default pen. + + + + + Gets the Firebrick default pen. + + + + + Gets the FloralWhite default pen. + + + + + Gets the ForestGreen default pen. + + + + + Gets the Fuchsia default pen. + + + + + Gets the Gainsborough default pen. + + + + + Gets the GhostWhite default pen. + + + + + Gets the Gold default pen. + + + + + Gets the Goldenrod default pen. + + + + + Gets the Gray default pen. + + + + + Gets the Green default pen. + + + + + Gets the GreenYellow default pen. + + + + + Gets the Honeydew default pen. + + + + + Gets the HotPink default pen. + + + + + Gets the IndianRed default pen. + + + + + Gets the Indigo default pen. + + + + + Gets the Ivory default pen. + + + + + Gets the Khaki default pen. + + + + + Gets the Lavender default pen. + + + + + Gets the LavenderBlush default pen. + + + + + Gets the LawnGreen default pen. + + + + + Gets the LemonChiffon default pen. + + + + + Gets the LightBlue default pen. + + + + + Gets the LightCoral default pen. + + + + + Gets the LightCyan default pen. + + + + + Gets the LightGoldenrodYellow default pen. + + + + + Gets the LightGray default pen. + + + + + Gets the LightGreen default pen. + + + + + Gets the LightPink default pen. + + + + + Gets the LightSalmon default pen. + + + + + Gets the LightSeaGreen default pen. + + + + + Gets the LightSkyBlue default pen. + + + + + Gets the LightSlateGray default pen. + + + + + Gets the LightSteelBlue default pen. + + + + + Gets the LightYellow default pen. + + + + + Gets the Lime default pen. + + + + + Gets the LimeGreen default pen. + + + + + Gets the Linen default pen. + + + + + Gets the Magenta default pen. + + + + + Gets the Maroon default pen. + + + + + Gets the MediumAquamarine default pen. + + + + + Gets the MediumBlue default pen. + + + + + Gets the MediumOrchid default pen. + + + + + Gets the MediumPurple default pen. + + + + + Gets the MediumSeaGreen default pen. + + + + + Gets the MediumSlateBlue default pen. + + + + + Gets the MediumSpringGreen default pen. + + + + + Gets the MediumTurquoise default pen. + + + + + Gets the MediumVioletRed default pen. + + + + + Gets the MidnightBlue default pen. + + + + + Gets the MintCream default pen. + + + + + Gets the MistyRose default pen. + + + + + Gets the Moccasin default pen. + + + + + Gets the NavajoWhite default pen. + + + + + Gets the Navy default pen. + + + + + Gets the OldLace default pen. + + + + + Gets the Olive default pen. + + + + + Gets the OliveDrab default pen. + + + + + Gets the Orange default pen. + + + + + Gets the OrangeRed default pen. + + + + + Gets the Orchid default pen. + + + + + Gets the PaleGoldenrod default pen. + + + + + Gets the PaleGreen default pen. + + + + + Gets the PaleTurquoise default pen. + + + + + Gets the PaleVioletRed default pen. + + + + + Gets the PapayaWhip default pen. + + + + + Gets the PeachPuff default pen. + + + + + Gets the Peru default pen. + + + + + Gets the Pink default pen. + + + + + Gets the Plum default pen. + + + + + Gets the PowderBlue default pen. + + + + + Gets the Purple default pen. + + + + + Gets the Red default pen. + + + + + Gets the RosyBrown default pen. + + + + + Gets the RoyalBlue default pen. + + + + + Gets the SaddleBrown default pen. + + + + + Gets the Salmon default pen. + + + + + Gets the SandyBrown default pen. + + + + + Gets the SeaGreen default pen. + + + + + Gets the SeaShell default pen. + + + + + Gets the Sienna default pen. + + + + + Gets the Silver default pen. + + + + + Gets the SkyBlue default pen. + + + + + Gets the SlateBlue default pen. + + + + + Gets the SlateGray default pen. + + + + + Gets the Snow default pen. + + + + + Gets the SpringGreen default pen. + + + + + Gets the SteelBlue default pen. + + + + + Gets the Tan default pen. + + + + + Gets the Teal default pen. + + + + + Gets the Thistle default pen. + + + + + Gets the Tomato default pen. + + + + + Gets the Transparent default pen. + + + + + Gets the Turquoise default pen. + + + + + Gets the Violet default pen. + + + + + Gets the Wheat default pen. + + + + + Gets the White default pen. + + + + + Gets the WhiteSmoke default pen. + + + + + Gets the Yellow default pen. + + + + + Gets the YellowGreen default pen. + + + + + Specifies the type of Horizontal alignment. + + + + + Specifies the element is aligned to Left. + + + + + Specifies the element is aligned to Center. + + + + + Specifies the element is aligned to Right. + + + + + Specifies the type of Vertical alignment. + + + + + Specifies the element is aligned to Top. + + + + + Specifies the element is aligned to Middle. + + + + + Specifies the element is aligned to Bottom. + + + + + Specifies the type of horizontal text alignment. + + + + + Specifies the text is aligned to Left. + + + + + Specifies the text is aligned to Center. + + + + + Specifies the text is aligned to Right. + + + + + Specifies the text as Justified text. + + + + + Specifies the text rendering mode. + + + + + Fill text. + + + + + Stroke text. + + + + + Fill, then stroke text. + + + + + Neither fill nor stroke text (invisible). + + + + + Fill text and add to path for clipping (see above).. + + + + + Stroke text and add to path for clipping (see above). + + + + + Stroke fill text and add to path for clipping. + + + + + Add text to path for clipping. + + + + + Specifies the corner style of the shapes. + + + + + The outer edges for the two segments are extended + until they meet at an angle. + + + + + An arc of a circle with a diameter equal to the line width is drawn + around the point where the two segments meet, connecting the outer edges for the two segments. + + + + + The two segments are finished with caps + and the resulting notch beyond the ends of the segments is filled + with a triangle. + + + + + Specifies the line cap style to be used at the ends of the lines. + + + + + The stroke is squared off at the endpoint of the path. There is no + projection beyond the end of the path. + + + + + A semicircular arc with a diameter equal to the line width is + drawn around the endpoint and filled in. + + + + + The stroke continues beyond the endpoint of the path + for a distance equal to half the line width and is squared off. + + + + + Possible dash styles of the pen. + + + + + Solid line. + + + + + Dashed line. + + + + + Dotted line. + + + + + Dash-dot line. + + + + + Dash-dot-dot line. + + + + + User defined dash style. + + + + + No line. + + + + + Specifies how the shapes are filled. + + + + + Nonzero winding number rule of determining "insideness" + of point. + + + + + Even odd rule of determining "insideness" of point. + + + + + Defines set of color spaces. + + + + + RGB color space. + + + + + CMYK color space. + + + + + GrayScale color space. + + + + + Indexed color space used internally. + + + + + Colors are represented solely with respect to the light source; + no correction is made for the output mediums white point + (such as the color of unprinted paper). + + + + + Colors are represented with respect to the combination of + the light source and the output mediums white point + (such as the color of unprinted paper). + + + + + Colors are represented in a manner that preserves + or emphasizes saturation. + + + + + Colors are represented in a manner that provides a pleasing + perceptual appearance. + + + + + Specifies the blend mode for transparency. + + + + + Selects the source color, ignoring the backdrop. + + + + + Multiplies the backdrop and source color values. + The result color is always at least as dark as either + of the two constituent colors. Multiplying + any color with black produces black; multiplying + with white leaves the original color unchanged. + Painting successive overlapping objects with a color + other than black or white produces progressively darker colors. + + + + + Multiplies the complements of the backdrop and source + color values, then complements the result. The result + color is always at least as light as either of the two + constituent colors. Screening any color with white + produces white; screening with black leaves the original + color unchanged. The effect is similar to projecting + multiple photographic slides simultaneously onto a single screen. + + + + + Multiplies or screens the colors, depending on + the backdrop color value. Source colors overlay + the backdrop while preserving its highlights and + shadows. The backdrop color is not replaced but + is mixed with the source color to reflect the + lightness or darkness of the backdrop. + + + + + Selects the darker of the backdrop and source colors. + The backdrop is replaced with the source where the source + is darker; otherwise, it is left unchanged. + + + + + Selects the lighter of the backdrop and source colors. + The backdrop is replaced with the source where the source + is lighter; otherwise, it is left unchanged. + + + + + Brightens the backdrop color to reflect the source color. + Painting with black produces no changes. + + + + + Darkens the backdrop color to reflect the source color. + Painting with white produces no change. + + + + + Multiplies or screens the colors, depending on the source color value. + The effect is similar to shining a harsh spotlight on the backdrop. + + + + + Darkens or lightens the colors, depending on the source color value. + The effect is similar to shining a diffused spotlight on the backdrop. + + + + + Subtracts the darker of the two constituent colors from the lighter color. + Painting with white inverts the backdrop color; painting with black produces no change. + + + + + Produces an effect similar to that of the Difference mode + but lower in contrast. Painting with white inverts + the backdrop color; painting with black produces no change. + + + + + Creates a color with the hue of the source color and + the saturation and luminosity of the backdrop color. + + + + + Creates a color with the saturation of the source color + and the hue and luminosity of the backdrop color. Painting + with this mode in an area of the backdrop that is a pure + gray (no saturation) produces no change. + + + + + Creates a color with the hue and saturation of + the source color and the luminosity of the backdrop + color. This preserves the gray levels of the backdrop + and is useful for coloring monochrome images or tinting color images. + + + + + Creates a color with the luminosity of the source color + and the hue and saturation of the backdrop color. This + produces an inverse effect to that of the Color mode. + + + + + Specifies the type of the PdfImage. + + + + + Specifies the image is bitmap. + + + + + Specifies the image is metafile. + Note: Metafile can't set dpi and use "Green context" dpi. + + + + + Specifies the types of the page's logical units. + + + + + Specifies the Measurement is in centimeters. + + + + + Specifies the Measurement is in picas. A pica represents 12 points. + + + + + Specifies the unit of measurement is 1 pixel. + + Pixel unit is device dependent unit. The result depends on the default Dpi on the machine. + + + + Specifies a printer's point (1/72 inch) as the unit of measure. + + + + + Specifies the inch as the unit of measure. + + + + + Specifies the document unit (1/300 inch) as the unit of measure. + + + + + Specifies the Measurement is in millimeters. + + + + + + + + + + Specifies the export state of the Layer + + + + + Allways export + + + + + Never export + + + + + Export when visible + + + + + Specifies the print state of the Layer + + + + + Allways print + + + + + Never print + + + + + Print when visible + + + + + Specifies the view state of the Layer + + + + + Allways visible + + + + + never visible + + + + + Visible when on + + + + + Implements structures and routines working with color. + + + + + Gets a null color. + + The empty. + + + + + Gets whether the PDFColor is Empty or not. + + true if this instance is empty; otherwise, false. + + + + + Gets or sets Blue channel value. + + The B. + + + + + Gets the blue. + + + + + Gets or sets Cyan channel value. + + The C. + + + + + Gets or sets Green channel value. + + The G. + + + + + Gets the green. + + The green. + + + + Gets or sets Gray channel value. + + The gray. + + + + + Gets or sets Black channel value. + + The K. + + + + + Gets or sets Magenta channel value. + + The M. + + + + + Gets or sets Red channel value. + + The R. + + + + + Gets the red. + + + + + Gets or sets Yellow channel value. + + The Y. + + + + + Initializes a new instance of the class. + + Source color object. + + + + + Initializes a new instance of the class. + + Source color object. + + + + + Initializes a new instance of the class. + + Gray value. + + + + + Initializes a new instance of the class. + + Red channel value. + Green channel value. + Blue channel value. + + + + + Initializes a new instance of the class. + + Cyan channel value. + Magenta channel value. + Yellow channel value. + Black channel value. + + + + + Creates the Alpha ,Red ,Green, and Blue value of this PDFColor structure. + + ARGB value. + + + + + Implicit operator. + + System.Drawing.Color. + PDFColor. + + + + + Implicit operator. + + System.Drawing.Color. + PDFColor. + + + + + Operator ==. + + The color 1. + The color 2. + + True if color 1 is equal to color 2; otherwise False. + + + + + + Operator !=. + + The color 1. + The color 2. + + True if color 1 is not equal to color 2; otherwise False. + + + + + + Determines whether the specified + is equal to the current . + + The to + compare with the current . + + True if the specified is equal + to the current ; otherwise - + False. + + + + + + Determines if the specified color is equal to this one. + + The color. + + True if the color is equal; otherwise - False. + + + + + + Serves as a hash function for a particular type, suitable for + use in hashing algorithms and data structures like a hash + table. + + + A hash code for the current . + + + + + + Compares colors. + + The color 1. + The color 2. + + True if colors are identical; otherwise - False. + + + + + The class representing a graphics context of the objects. + It's used for performing simple graphics operations. + + + + + The web link collection. + + + + + Gets the size of the canvas. + + Usually, this value is equal to the size of the object this graphics belongs to. + + + + Gets the size of the canvas reduced by margins and page templates. + + It indicates a size of the canvas reduced by margins and template dimensions. + This value doesn't change when any custom clip is set. + + + + Gets or sets the current color space. + + The value change of this property has impact on the objects + which will be drawn after the change. + + + + The web link collection. + + + + + Draws a line. + + The pen. + The point1. + The point2. + + + + Draws a line. + + The pen. + The x1. + The y1. + The x2. + The y2. + + + + Draws a rectangle. + + The pen. + The rectangle. + + + + Draws a rectangle. + + The pen. + The x. + The y. + The width. + The height. + + + + Draws a rectangle. + + The brush. + The rectangle. + + + + Draws a rectangle. + + The brush. + The x. + The y. + The width. + The height. + + + + Draws a rectangle. + + The pen. + The brush. + The rectangle. + + + + Draws a rectangle. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The pen. + The rectangle. + + + + Draws an ellipse. + + The pen. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The brush. + The rectangle. + + + + Draws an ellipse. + + The brush. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The pen. + The brush. + The rectangle. + + + + Draws an ellipse. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Draws an arc. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Draws an arc. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a polygon. + + The pen. + The points. + + + + Draws a polygon. + + The brush. + The points. + + + + Draws a polygon. + + The pen. + The brush. + The points. + + + + Draws a bezier curve. + + The pen. + The start point. + The first control point. + The second control point. + The end point. + + + + Draws a bezier curve. + + The pen. + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Draws a path. + + The pen. + The path. + + + + Draws a path. + + The brush. + The path. + + + + Draws a path. + + The pen. + The brush. + The path. + + + + Draws an image. + + The image. + The point. + + + + Draws an image. + + The image. + The x. + The y. + + + + Draws an image. + + The image. + The rectangle. + + + + Draws an image. + + The image. + The point. + The size. + + + + Draws an image,recommending monochrome image. + + The image. + The image compresson quality. + The point. + The size. + + + + Draws an image. + + The image. + The x. + The y. + The width. + The height. + + + + Draws an image,recommending monochrome image + + The image. + The image compresson quality. + The x. + The y. + The width. + The height. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Translates the coordinates by specified coordinates. + + The X value by which to translate + coordinate system. + The Y value by which to translate + coordinate system. + + + + + Scales the coordinates by specified coordinates. + + The value by which to scale coordinate + system in the X axis direction. + The value by which to scale coordinate + system in the Y axis direction. + + + + + Rotates the coordinate system in clockwise direction around specified point. + + The angle of the rotation (in degrees). + A System.Drawing.PointF that represents the center of the rotation. + + + + Rotates the coordinate system in clockwise direction. + + The angle of the rotation (in degrees). + + + + + Skews the coordinate system axes. + + Skews the X axis by this angle (in + degrees). + Skews the Y axis by this angle (in + degrees). + + + + + Draws a template using its original size, at the specified location. + + object. + Location of the template. + + + + Draws a template at the specified location and size. + + object. + Location of the template. + Size of the template. + + + + Flashes this instance. + + + + + Saves the current state of this Graphics and identifies the saved state with a GraphicsState. + + This method returns a GraphicsState that represents the saved state of this Graphics. + This method works similar to method. + + + + Restores the last state of this Graphics. + + + + + Restores the state of this Graphics to the state represented by a GraphicsState. + + GraphicsState that represents the state to which to restore this Graphics. + This method works similar to method. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip rectangle. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip rectangle. + The fill mode to determine which regions lie inside the clipping path. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip path. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip path. + The fill mode to determine which regions lie inside the clipping path. + + + + Sets the transparency. + + The alpha value for both pen + and brush operations. + + + + Sets the transparency. + + The alpha value for pen operations. + The alpha value for brush operations. + + + + Sets the transparency. + + The alpha value for pen operations. + The alpha value for brush operations. + The blend mode. + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if obj and this instance are the same type and + represent the same value; otherwise, false. + + + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + + + + Represents the state of a Graphics object. + + + + + A class representing page margins. + + + + + Gets or sets the left margin size. + + + + + Gets or sets the top margin size. + + + + + Gets or sets the right margin size. + + + + + Gets or sets the bottom margin size. + + + + + Sets margin of each side. + + Margin of each side. + + + + Initializes a new instance of the class. + + + + + Create and initialize margin. + + The margin size. + + + + Create and initialize margin. + + The left right. + The top bottom. + + + + Create and initialize margin. + + The left. + The top. + The right. + The bottom. + + + + Clones the object. + + The cloned object. + + + + A class defining settings for drawing operations. + + + + + Gets or sets the brush, which specifies the pen behaviour. + + If the brush is set, the color values are ignored, + except for PdfSolidBrush. + + + + Gets or sets the color of the pen. + + + + + Gets or sets the dash offset of the pen. + + + + + Gets or sets the dash pattern of the pen. + + + + + Gets or sets the dash style of the pen. + + + + + Gets or sets the line cap of the pen. + + + + + Gets or sets the line join style of the pen. + + The line join. + + + + Gets or sets the width of the pen. + + + + + Gets or sets the miter limit. + + + + + Initializes a new instance of the class. + + The color. + + + + Initializes a new instance of the class. + + Color of the pen. + Width of the pen's line. + + + + Initializes a new instance of the class. + + The brush. + + + + Initializes a new instance of the class. + + The brush. + Width of the pen's line. + + + + Initializes a new instance of the class. + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Clones this instance. + + A new pen with the same properties. + + + + Class allowing to convert different unit metrics. Converting is + based on Graphics object DPI settings that is why for differ + graphics settings must be created new instance. For example: + printers often has 300 and greater dpi resolution, for compare + default display screen dpi is 96. + + + + + Represents the abstract brush, which containing a basic functionality of a brush. + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Implements gradient brush capabilities. + + + + + Gets or sets the background color of the brush. + + This value is optional. If null is assigned to it, + the associated entry is removed from the appropriate dictionary. + + + + Gets or sets a value indicating whether use anti aliasing algorithm. + + + + + Gets the wrapped element. + + + + + Implements linear gradient brush by using PDF axial shading pattern. + + + + + Initializes a new instance of the class. + + The starting point of the gradient. + The end point of the gradient. + The starting color of the gradient. + The end color of the gradient. + + + + Initializes a new instance of the class. + + A RectangleF structure that specifies the bounds of the linear gradient. + The starting color for the gradient. + The ending color for the gradient. + The mode. + + + + Initializes a new instance of the class. + + A RectangleF structure that specifies the bounds of the linear gradient. + The starting color for the gradient. + The ending color for the gradient. + The angle, measured in degrees clockwise from the x-axis, + of the gradient's orientation line. + + + + Gets or sets a PdfBlend that specifies positions + and factors that define a custom falloff for the gradient. + + + + + Gets or sets a ColorBlend that defines a multicolor linear gradient. + + + + + Gets or sets the starting and ending colors of the gradient. + + + + + Gets a rectangular region that defines + the boundaries of the gradient. + + + + + Gets or sets the value indicating whether the gradient + should extend starting and ending points. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Represent radial gradient brush. + + + + + Initializes a new instance of the class. + + The start centre. + The start radius. + The end centre. + The end radius. + The start color. + The end color. + + + + Gets or sets a PdfBlend that specifies positions + and factors that define a custom falloff for the gradient. + + + + + Gets or sets a ColorBlend that defines a multicolor linear gradient. + + + + + Gets or sets the starting and ending colors of the gradient. + + + + + Gets or sets the rectangle. + + The rectangle. + + + + Gets or sets the value indicating whether the gradient + should extend starting and ending points. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Represents a brush that fills any object with a solid colour. + + + + + Initializes a new instance of the class. + + The color. + + + + Initializes a new instance of the class. + + color + + + + Gets or sets the color of the brush. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Implements a colored tiling brush. + + + + + Initializes a new instance of the class. + + The boundaries of the smallest brush cell. + + + + Initializes a new instance of the class. + + The boundaries of the smallest brush cell. + The Current Page Object. + + + + Initializes a new instance of the class. + + The size of the smallest brush cell. + + + + Initializes a new instance of the class. + + The size of the smallest brush cell. + The Current Page Object. + + + + Gets the boundary box of the smallest brush cell. + + + + + Gets the size of the smallest brush cell. + + + + + Gets Graphics context of the brush. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Gets the element. + + + + + Represents an arc shape. + + It ignores brush setting. + + + + Initializes a new instance of the class. + + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Implements Bezier curve shape. + + + + + Initializes a new instance of the class. + + The start point. + The first control point. + The second control point. + The end point. + + + + Initializes a new instance of the class. + + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Initializes a new instance of the class. + + The pen. + The start point. + The first control point. + The second control point. + The end point. + + + + Initializes a new instance of the class. + + The pen. + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Gets or sets the start point. + + + + + Gets or sets the first control point. + + + + + Gets or sets the second control point. + + + + + Gets or sets the end point. + + + + + Describes an ellipse shape. + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + + + + Gets the radius X. + + + + + Gets the radius Y. + + + + + Gets the center point. + + + + + The base class of arc and pie shapes. + + + + + Gets or sets the start angle. + + + + + Gets or sets the sweep angle. + + + + + Represents a line shape. + + + + + Initializes a new instance of the class. + + The x1. + The y1. + The x2. + The y2. + + + + Initializes a new instance of the class. + + The point1. + The point2. + + + + Initializes a new instance of the class. + + The pen. + The x1. + The y1. + The x2. + The y2. + + + + Initializes a new instance of the class. + + The pen. + The point1. + The point2. + + + + Gets or sets the x coordinate of the start point. + + + + + Gets or sets the y coordinate of the start point. + + + + + Gets or sets the x coordinate of the end point. + + + + + Gets or sets the y coordinate of the end point. + + + + + Implements graphics path, which is a sequence of primitive graphics elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The points. + The path types. + + + + Initializes a new instance of the class. + + The pen. + + + + Initializes a new instance of the class. + + The brush. + + + + Initializes a new instance of the class. + + The brush. + The fill mode. + + + + Initializes a new instance of the class. + + The pen. + The points. + The path types. + + + + Initializes a new instance of the class. + + The brush. + The fill mode. + The points. + The path types. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The fill mode. + + + + Gets or sets the fill mode. + + + + + Gets the path points. + + + + + Gets the path point types. + + + + + Gets the point count. + + + + + Gets the last point. + + + + + Adds an arc. + + The boundaries of the arc. + The start angle. + The sweep angle. + + + + Adds an arc. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Adds a bezier curve. + + The start point. + The first control point. + The second control point. + The end point. + + + + Adds a bezier curve. + + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Adds an ellipse. + + The boundaries of the ellipse. + + + + Adds an ellipse. + + The x. + The y. + The width. + The height. + + + + Adds a line. + + The point1. + The point2. + + + + Adds a line. + + The x1. + The y1. + The x2. + The y2. + + + + Appends the path specified to this one. + + The path, which should be appended. + + + + Appends the path specified by the points and their types to this one. + + The points. + The path point types. + + + + Appends the pie to this path. + + The rectangle. + The start angle. + The sweep angle. + + + + Appends the pie to this path. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Append the closed polygon to this path. + + The points of the polygon. + + + + Appends the rectangle to this path. + + The rectangle. + + + + Appends the rectangle to this path. + + The x. + The y. + The width. + The height. + + + + Starts a new figure. + + The next added primitive will start a new figure. + + + + Closes the last figure. + + + + + Closes all non-closed figures. + + + + + Gets the last point. + + The last point. + + + + Calc Point w/h + + + + + + get this path's bound. + + return this path's bound + + + + Represents Pdf Template object. + + + + + the origin location of the template + + + + + Initializes a new instance of the class. + + The size. + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The width. + The height. + Indicates if the template is used for PdfAppearance. + + + + Gets graphics context of the template. + + It will return null, if the template is read-only. + + + + Gets the size of the template. + + + + + Gets the width of the template. + + + + + Gets the height of the template. + + + + + Gets a value indicating whether the template is read-only. + + true if the template is read-only; otherwise, false. + Read-only templates does not expose graphics. They just return null. + + + + Resets the template and sets the specified size. + + The size. + + + + Resets an instance. + + + + + Gets the wrapped element. + + + + + Represents a pie shape. + + + + + Initializes a new instance of the class. + + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Represents a set of points connected with lines, could be drawn and filled. + + + + + Initializes a new instance of the class. + + The points. + + + + Initializes a new instance of the class. + + The pen. + The points. + + + + Initializes a new instance of the class. + + The brush. + The points. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The points. + + + + Gets or sets the points of the polygon. + + + + + Gets a number of the points in the polygon. + + + + + Adds a point to the polygon. + + The last point of the polygon. + + + + Represents a simple rectangle that could be drawn and/or filled. + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + + + + Represents an area bound by a rectangle. + + + + + Gets or sets the X co-ordinate of the upper-left corner of this the element. + + + + + Gets or sets the Y co-ordinate of the upper-left corner of this the element. + + + + + Gets or sets the width of this element. + + + + + Gets or sets the height of this element. + + + + + Gets or sets the size of this element. + + + + + Gets or sets bounds of this element. + + + + + Represents the bitmap images. + + + + + When replacing the picture,use this property + + + + + Gets or sets the active frame of the bitmap. + + The active frame index. + + + + Gets the number of frames in the bitmap. + + The frame count. + + + + Gets or sets the mask of bitmap. + + New PdfMask. + + + + Gets or sets the quality. + The range is from 0 to 100, 100 is the best quality. + + + When the image is stored into PDF not as a mask, + you may reduce its quality, which saves the disk space. + + + + + When replacing the picture,use this property + + + + + Creates new PdfBitmap instance. + + The image path. + + + + Creates new PdfBitmap instance. + + The stream. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Performs application-defined tasks associated with freeing, + releasing, or resetting unmanaged resources. + + + + + define method "SaveAsRawImageForIndexedFormat" supported IndexedFormat + + + + + + save indexed bitmap to raw image + support PixelFormat: Format1bppIndexed Format4bppIndexed Format8bppIndexed + + + + + + + + + + + + + + rgb image to cmyk + + + + + Represents the color mask for bitmaps. + + + + + Gets or sets the start color. + + The start color. + + + + Gets or sets the end color. + + The end color. + + + + Creates new PdfColorMask object. + + The start color. + The end color. + + + + Represents the base class for images. + + + + + Gets the height of the image in pixels. + + The height. + + + + If True, png direct convert to Jpx and no mask. + + + + + Gets the width of the image in pixels. + + The width. + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + The horizontal resolution. + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + The vertical resolution. + + + + Returns the size of the image in points. + + This property uses HorizontalResolution and VerticalResolution for calculating the size in points. + + + + Gets or sets the active frame of the image. + + + + + Gets the number of frames in the image. + + + + + Creates PdfImage from a file. + + Path to a file. + Returns a created PdfImage object. + + + + Creates PdfImage from stream. + + The stream. + Returns a created PdfImage object. + + + + Converts a object into a PDF image. + + The image. + Returns a created PdfImage object. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Type of the image that should be created. + The text string format. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Type of the image that should be created. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Height of the image in points. + Type of the image that should be created. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Height of the image in points. + Type of the image that should be created. + The text string format. + PdfImage containing RTF text. + + + + Gets the wrapped element. + + + + + Represents the image mask object for bitmaps. + + + + + Gets the image mask. + + The image mask. + + + + Gets the mask type. + + true if soft mask; otherwise, hard mask false. + + + + Creates new PdfImageMask object. + + The image mask. + + + + Base class for bitmap masking objects. + + + + + Class representing metafiles. + + + + + Check whether is unicode in private use areas. + + The text string. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + + load URL time out + + + + + load URL whether Waiting + + + + + + WebBrowser load Complete + + + + + Gets or sets page settings of the section. + + + + + Get html page start time + + + + + load URL whether Waiting + + + + + webBrowser load html whether Waiting time in milliseconds. + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + Gets or sets page settings of the section. + + + + + Options of converting html to pdf + + + + + Not clip + + + + + Clips width + + + + + Clips height + + + + + Clips width and height + + + + + default 30 s + + + + + load URL whether Waiting + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + Gets or sets layout type of the element. + + + + + If html view is larger than pdf page, zooms out it to fit pdf page. + But if html view is smaller than, will not zoom in it. + + + + + If html view is larger than page, resize pdf page to fit html view. + But if html view is smaller than, will not resize pdf page. + + + + + If html view is smaller than page, trim pdf page to fit html view. + + + + + The maximum time in milliseconds to wait the completion of loading html. + Default is 30000. + + + + + webBrowser load html whether Waiting + + + + + webBrowser load html whether Waiting time in milliseconds. + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + load from content type + + + + + load from ulr or file + + + + + load html SourceCode + + + + None -> 0 + + + Width -> 1 + + + Height -> 2 + + + Both -> 4 + + + float + + + float + + + float + + + float + + + Size + + + Size + + + Margins + + + PdfLayoutType + + + Clip + + + Clip + + + Clip + + + int + + + float + + + float + + + float + + + float + + + FRect + + + int + + + FRect + + + + Pointer to DebugLog.CLogInfo, C module uses it to write log message. + + + + + Pointer to HTMLConverter.dll + + + + + Pointer to ConvertToHTML method. + + + + + Path of dll folder, which contains HTMLConverter.dll + + + + + Convert HTML to PDF with plugin. + For more details, please check https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-with-New-Plugin.html + + + + + Sets the path of the folder which cantains the HTMLConverter.dll + and other dll files required for conversion. + + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf file name. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf Stream. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf file name. + the load htmlcode or url + + + + Convert an html page to a pdf stream. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf stream. + the load htmlcode or url + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf file name. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf stream. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf stream. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + [Obsolete("This method may be removed in the future.")] + + + + init HTML2PDFOption param + + Url address of the html page. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf file name. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + url or htmlcontent + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf stream. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + url or htmlcontent + + + + Support functions about Qt plugin library. + + + + + Load plugin library from plugin directory. + + The plugin directory. + The plugin library ptr. + + + + Free plugin library. + + The plugin library ptr. + + + + Get method delegate from plugin library. + + The method delegate type. + The plugin library ptr. + The method name. (avoid obfuscated code error) + The method delegate. + + + + Get default plugin directory. + + The default plugin directory. + + + + Get the absolute path. + + The path. + The absolute path. + + + + Generate temp file absolute path. + + The temp file name. + The temp file absolute path. + + + + Get plugin library helper on current platform. + + The plugin library helper. + + + + Load library. + + The full library file path. + The plugin library ptr. + + + + Free library. + + The plugin library ptr. + + + + Get method ptr. + + The plugin library ptr. + The method name. + The method ptr. + + + + Get error. + + The error. + + + + Prepare full library file name. + + The library directory. + The library file name,not include extensions. + The full library file name. + + + + Support functions about qt plugin library on windows. + + + + + Support functions about qt plugin library on linux. + + + + + Support functions about qt plugin library on unix-like. + + + + + Represents the layout parameters. + + + + + Gets or sets the starting layout page. + + + + + Gets or sets the lay outing bounds. + + + + + Gets or sets the vertical offsets. + + The vertical offsets. + + + + Gets or sets the lay outing settings. + + + + + HTML tags + + + + + parsing html tags + + html content + + drawing font + + + + + parsing html tags + + html content + + + + + + + + set html type + + + + + + + set text font + + + + + + set font style + + + + + + + + Represents the result of html to pdf conversion. + + + + + Initializes a new instance of the class. + + The image. + The page breaks. + The anchors. + + + + Gets the rendered image. + + The rendered image. + + + + Draws the HtmlToPdfResults on to the document. + + The Pdf Page. + The Metafile layout format. + + + + Performs application-defined tasks associated with releasing, or resetting unmanaged resources. + + + + + Specfies the status of the IPdfPrmitive. + + + + + The information of cross-reference store in a cross-referebnce stream + + + + + The reprocess object infomation + + + + + + The current load state + + + + + The highest object number in the document. + + + + + The load state + + + + + Gets the ReProcess Object infomation + + + + + Parse the cross reference stream in hybrid reference + + the position of the XRefstm object + the object + + + + Check whether the entry of cross reference stream is in correct place + + if correct return true ,otherwise false + + + + Check whether the entry of cross reference table is in correct place + + If correct return true ,otherwise false + + + + Check whether the entry`s offset that in cross reference table or cross reference stream is + in correct place + + If correct return true ,otherwise false + + + + Get object. + + The object information + The object number + The object + + + + Reparse object + + The object number + The object + + + + It is an error to process a cross reference stream, + where the object information obtained is reprocessed + + + + + Get the current object number stack + + The current object number stack + + + + Get the reference. + + The reference + + + + add the document info to the pdfObjects + + + + + Fixed TokenType.UnicodeString mismatch. + + + + + The collection of index objects. + + + + + Add object index. + + The element + The index + + + + Get Holds all integers that have been read ahead. + + + + + Check whether the indirect object`s position in file are same as the offset + + The indirect object`offset + The object number + If correct return true ,otherwise return false + + + + Get the stream of the XRefStm object + + a stream + + + + Reset the fields value. + + + + + Max free convert pages. + + + + + Retrieves character type info + + + + + Retrieves bi-directional layout info + + + + + Retrieves text processing info + + + + + Uppercase + + + + + Lowercase + + + + + Decimal digits + + + + + Space characters + + + + + Punctuation + + + + + Control characters + + + + + Blank characters + + + + + Hexadecimal digits + + + + + Any linguistic character: alphabetic, syllabary, or ideographic + + + + + Left to right + + + + + Right to left + + + + + European number, European digit + + + + + European numeric separator + + + + + European numeric terminator + + + + + Arabic number + + + + + Common numeric separator + + + + + Block separator + + + + + Segment separator + + + + + White space + + + + + Other neutrals + + + + + No implicit directionality (for example, control codes) + + + + + Diacritic nonspacing mark + + + + + Vowel nonspacing mark + + + + + Symbol + + + + + Katakana character + + + + + Hiragana character + + + + + Half-width (narrow) character + + + + + Full-width (wide) character + + + + + Ideographic character + + + + + Arabic Kashida character + + + + + Punctuation which is counted as part of the word + (Kashida, hyphen, feminine/masculine ordinal indicators, equal sign, and so forth) + + + + + All linguistic characters (alphabetical, syllabary, and ideographic) + + + + + Not applicable + + + + + Native enum. + + + + + Record of Emf metafile. + + + + + New miter limit. + + + + + Record of Emf metafile. + + + + + The XFORM structure specifies a world-space to page-space transformation. + + + + + Specifies scaling/rotation/reflection + + + + + Specified shear/rotation + + + + + Specified shear/rotation + + + + + Specifies scaling/rotation/reflection + + + + + Specifies the horizontal translation component, in logical units. + + + + + Specifies the vertical translation component, in logical units. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Point creation from lParam's data. + + lParam's data for initialing point structure. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + ABC structure. + + + + + Structure for 32 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Value of Alpha chanel. + + + + + Structure for 24 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Structure for 24 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + The source of the event. + A that contains the event data. + + + + Provides data for PageAdded event. + + + This event raised on adding the pages. + + + + + Gets the newly added page. + + a object representing the page which is added in the document. + + + + Initializes a new instance of the class. + + a object representing the page which is added in the document. + + + + Encapsulates a page template for all the pages in the document. + + + + + Gets or sets a left page template. + + + + + Gets or sets a top page template. + + + + + Gets or sets a right page template. + + + + + Gets or sets a bottom page template. + + + + + Gets or sets a left page template using on the even pages. + + + + + Gets or sets a top page template using on the even pages. + + + + + Gets or sets a right page template using on the even pages. + + + + + Gets or sets a bottom page template using on the even pages. + + + + + Gets or sets a left page template using on the odd pages. + + + + + Gets or sets a top page template using on the odd pages. + + + + + Gets or sets a right page template using on the odd pages. + + + + + Gets or sets a bottom page template using on the odd pages. + + + + + Gets a collection of stamp elements. + + + + + Initializes a new instance of the class. + + + + + The base class for all pages. + + + + + The page pieces info. + + + + + Returns the visible region of the page. + + + + + Returns page region after clipping. + + + + + Returns page region mediabox. + + + + + Returns page region after trimming. + + + + + Returns page region containing content. + + + + + Gets the field collection. + + + + + Get the page piece info. + + + + + Gets or sets page's background color. + + + + + The position and size of the background + + + + + Gets the information about the extracted image. + + + + + Gets the graphics of the . + + + + + Gets the parent section of the page. + + + + + Gets the collection of the page's layers. + + + + + Gets or sets index of the default layer. + + + + + Gets the default layer of the page. + + + + + Gets the size of the page. + + + + + Gets the actual size of the page. + + + + + Gets or sets page's background image. + + + + + Get the page label. + + + + + Returns page is blank flag for page's content. + + + + + Returns a page size reduced by page margins and page template dimensions. + + It's the actual size of the page where some output can be performed. + Returns a page size reduced by page margins and page template dimensions. + + + + Replace the Image at index's Position. + + The index of original image. + The new replace image. + + + + Replace the Image through the original image. + + The original image + The New Replace image + + + + Whether it is a image dictionary. + + The dictionary. + The dictionary is an image or not. + + + + Detemine whether the image in resource dictionary is used on current page + + the resource image name + if be used return true or false + + + + Creates a template from page content and all annotation appearances. + + The created template. + + + + Find text + + The text intends to search. + + Indicate the expected result is the whole word or not, which means, if it is true, only the word is exactly the same with the + searching word will be found;if it is false, any word including the searching word will be found. For instance,the text is "is this a pen?" + and the target is "is", if true, one result will be returned; if false, two results will be returned. + + + + + + Find text + + string searchPatternText + + + + + Find text + + + + + + + + + + + + Find all text and position. + + All text find in the page. + + + + Extracts text from the given PDF Page by SimpleTextExtractionStrategy. + + The Extracted Text. + + + + Extracts text in the range of rectangle from the given PDF Page. + The unit is Point,1/72 inch default. + the coordinate origin is top left corner of the page. + + Provide a rangle to extract text. + The Extracted Text. + + + + Extracts text in the range of rectangle from the given PDF page by SimpleTextExtractionStrategy. + the coordinate origin is top left corner of the page. + + Provide a rangle to extract text. + Provide simple text extraction policy + The Extracted Text. + + + + Extracts text from the given PDF Page. + + The Extracted Text. + + + + Extracts text from the given PDF Page. + + textExtractContext + The Extracted Text. + + + + foreach font from Dictionary + + pagedic + + + + Extracts images from the given PDF Page. + The name of a image in the resources save in the Tag attribute of the iamge. + + Returns the extracted image as Image[]. + + + + Extracts images from the given PDF Page. and image is not processed. + The name of a image in the resources save in the Tag attribute of the image. + + Returns the extracted image as Image[]. + + + + Delete an image. + The value of the image's Tag attribute is the name of the image in the resources. + If the value of Tag is null,the sample image is an inline image type. + + The image to be delete. + + + + Delete an image. + The value of the image's Tag attribute is the name of the image in the resources. + If the value of Tag is null,the sample image is an inline image type. + Warning : You must make sure that the image resource you are removing is the only + one referenced,otherwise an error will occur. + + The image to be delete. + whether to delete the image resource. + + + + Delete an image in a page. + + The image's name. + + + + Delete an image in a page. + + The image's name. + + + + Delete image's paint operator and image's resource in XObject stream. + + The XObject's dictionary of the page. + The resource dicionary in the XObject. + The name of image that going to remove. + The child XObject's item. + + + + Delete image's paint operator in XObject stream. + + The XObject's dictionary of the page. + The name of image that going to remove. + The child XObject's item. + + + + Delete an image by index in a page. + + The image index. + + + + Try to compress images(except inline image). + + The image index + If success, return true; otherwise false. + + + + Update page layer. + used after modifying the contenet stream of page. + + + + + Set tab order. + + The order name + + + + Gets the wrapped element. + + + + + Get page content. bug3787/1212 + + + + + + Whether this page exist blend mode. + + If exist ,return true,or false + + + + Whether exist blend mode in page content. + + If exist ,return true,or false + + + + Whether exist blend mode in page annotations content. + + If exist ,return true,or false + + + + Whether exist blend mode in Xobject. + + The xobject dictionary + The resource has validated. + If exist ,return true,or false + + + + Whether exist blend mode in form. + + The form stream + The resource has validated. + if exist,return true,or false + + + + Get forms type. + + The resource dictionary + forms type dictionary + + + + Whether is apply the extgstate. + + The record collection + The forms type + The gs name + If apply,return true,or false + + + + Insert rich text to page + + rich text + width + IsSplitLine + + + + Insert rich text to page + + rich text + width + IsSplitLine + Draw text x,y point + + + + Insert rich text to page + + rich text + width + IsSplitLine + + + + Insert rich text to page + + rich text + width + IsSplitLine + Draw text x,y point + + + + Raises before the page saves. + + + + + Represents parameters how to display the page in the presentation mode. + + + + + Gets or sets the transition style to use when moving to this page from another + during a presentation. + + The style. + + + + Gets or sets the duration of the transition effect, in seconds. + + The transition duration. + + + + Gets or sets the dimension in which the specified transition effect occurs. + + The dimension. + + + + Gets or sets the the direction of motion for the specified transition effect. + + The motion. + + + + The direction in which the specified transition effect moves, expressed in degrees counter + clockwise starting from a left-to-right direction. (This differs from the page objects + Rotate property, which is measured clockwise from the top.) + + + + + Gets or sets the starting or ending scale at which the changes are drawn. + If Motion property specifies an inward transition, the scale of the changes drawn progresses + from Scale to 1.0 over the course of the transition. If Motion specifies an outward + transition, the scale of the changes drawn progresses from 1.0 to Scale over the course + of the transition. + + + This property has effect for Fly transition style only. + + The scale. + + + + Gets or sets The pages display duration (also called its advance timing): the maximum + length of time, in seconds, that the page is displayed during presentations before + the viewer application automatically advances to the next page. By default, + the viewer does not advance automatically. + + The page duration. + + + + Initializes a new instance of the class. + + + + + Gets the element. + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Manipulates pages within a section. + + + + + Gets the at the specified index. + + + + + Gets the count of the pages. + + + + + Creates a new page and adds it into the collection. + + The new page. + + + + Adds a page into collection. + + The page. + + + + Inserts a page at the specified index. + + The index. + The page. + + + + Returns the index of the specified page. + + The page. + The index of the page. + + + + Determines whether the specified page is within the collection. + + The page. + + true if the collection contains the specified page; otherwise, false. + + + + + Removes the specified page. + + The page. + + + + Removes a page at the index specified. + + The index. + + + + Clears this collection. + + + + + + Encapsulates a page template for all the pages in the section. + + + + + Gets or sets value indicating whether parent Left page template should be used or not. + + + + + Gets or sets value indicating whether parent Top page template should be used or not. + + + + + Gets or sets value indicating whether parent Right page template should be used or not. + + + + + Gets or sets value indicating whether parent Bottom page template should be used or not. + + + + + Gets or sets value indicating whether + the parent stamp elements should be used or not. + + + + + Creates a new object. + + + + + A collection of stamps that are applied to the page templates. + + + + + Gets a stamp element by its index. + + + + + Creates a new stamp collection. + + + + + Adds a stamp element to the collection. + + The stamp element. + The index of the stamp element. + + + + Creates a stamp element and adds it to the collection. + + X co-ordinate of the stamp. + Y co-ordinate of the stamp. + Width of the stamp. + Height of the stamp. + The created stamp element. + + + + Checks whether the stamp element exists in the collection. + + Stamp element. + True - if stamp element exists in the collection, False otherwise. + + + + Inserts a stamp element to the collection at the specified position. + + The index of the stamp in the collection. + The stamp element. + + + + Removes the stamp element from the collection. + + The stamp element. + + + + Removes a stamp element from the specified position in the collection. + + The index of the stamp in the collection. + + + + Cleares the collection. + + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Collection of loaded and created pages. + + + + + + + + + + Gets the conformance level applied in the document. + + + + + Load from Stream ,And Used by PdfViewer-Asp + + + + + + + Load from Stream with password,And Used by PdfViewer-Asp + + + + + + + + Verify PDF Document regarding signature. + + Signature field name. + signature is validated return true,otherwise false + + + + Check if the document was altered after signed. True if modified; otherwise false. + + Signature field name. + signature is validated return false,otherwise true + + + + Get PdfSignatureFieldWidget obj from form by signName + + + + + + + + Remove Extended right. + + + + + + Get next PdfSignatureFieldWidget obj from form by signName + + + + + + + + Get PDF Document regarding CertificateData + + Signature field name. + + + + Get PDF Document regarding signature. + + Signature field name. + + + + Get the signature dictionary + + + + + + + + + + + + + + + + + + + + + + + + PdfDocumentBase Object + + + + + + Represents a logic to create Pdf document. + + + + + Layer OCProperties info + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The conformance level. + Not Supported under Medium Trust environment. + + + + set conformance value. + + The Conformance level. + + + + Delegate for the event. + + The sender. + The arguments. + + + + Occurs when the document is being saved. + + + This event raised on saving the document. It will keep track of the save progress of the document. + + + + + Layer OCProperties info + + + + + Gets the root of the bookmark tree in the document. + + A object specifying the document's bookmarks. + Creates an bookmark root instance + if it's called for first time. + + + + Gets the attachments of the document. + + The object contains list of files which are attached in the PDF document. + + + + Gets the interactive form of the document. + + The object contains the list of form elements of the document. + + + + Gets or sets the color space of the document. + + This property has impact on the new created pages only. + If a page was created it remains its colour space obliviously + to this property changes. + The of the document. + + + + Gets the default font. It is used for complex objects when font is + not explicitly defined. + + The default font. + + + + Indicates the document is a merged document or not, defalut value: false. + + + + + Gets a value indicating whether the document was encrypted. + + true if the document was encrypted; otherwise, false. + + + + Gets or Sets the Pdf Conformance level. + Supported : PDF/A-1b - Level B compliance in Part 1 + + + + + Saves the document to the specified stream. + + The stream object where PDF document will be saved. + + + + Closes the document. + + if set to true the document should be disposed completely. + The document is disposed after calling the Close method. So, the document can not be saved if Close method was invoked. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + The resulting clone must be of the same type as or a compatible type to the original instance. + + + + Shows the saving progress. + + + + + Gets the total number of the elements (pages) that need to be saved. + + + + + Gets the current element (page) index that just was saved. + + The index value increases constantly from 0 to Total. + + + + Gets the progress. + + Progress constantly increases from 0.0 to 1.0. + 1.0 value means that entire document has been saved. + + + + A class containing the information about the document. + + + + + Predefined properties in document info. + + + + + The metadata in catalog. + + + + + Gets or sets the creation date. + + + + + Gets or sets the modification date. + + + + + Gets or sets the title. + + + + + Gets or sets the author. + + + + + Gets or sets the subject. + + + + + Gets or sets the keywords. + + + + + Gets or sets the creator. + + + + + Gets or sets the producer. + + + + + Remove custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + + + + Set custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + The property value. + + + + Get custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + The property value.null if property not exist. + + + + Get all custom properties. + + The all properties. + + + + Gets the element. + + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Synchronize metadata. + + + + + Synchronize metadata's author. + + + + + Synchronize metadata's create date. + + + + + Synchronize metadata's creator. + + + + + Synchronize metadata's keywords. + + + + + Synchronize metadata's modification date. + + + + + Synchronize metadata's producer. + + + + + Synchronize metadata's subject. + + + + + Synchronize metadata's title. + + + + + Synchronize metadata's customProperties. + + + + + A metadata stream containing metadata for document. + + + + + Special char mapping in custom property name. + + + + + ISO8601 datetime format. + + + + + The metadata stream. + + + + + The xmp metadata structure. + + + + + A constructor for new metadata stream. + + + + + A constructor for a existing metadata stream. + + A existing metadata stream. + + + + Set author. If value is null, delete the property. + + The author. + + + + Get author. + + + + + Whether exist author property. + + Returns true if the property exists. + + + + Set create date.If value is null, delete the property. + + The create date. + + + + Set create date.If value is null, delete the property. + + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Get create date. + + + + + Whether exist create date property. + + Returns true if the property exists. + + + + Set creator. If value is null, delete the property. + + The creator. + + + + Get creator. + + + + + Whether exist creator property. + + Returns true if the property exists. + + + + Set keywords. If value is null, delete the property. + + The keywords. + + + + Get keywords. + + + + + Whether exist keywords property. + + Returns true if the property exists. + + + + Set modify date. If value is null, delete the property. + + The modify date. + + + + Set modify date. If value is null, delete the property. + + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Get modify date. + + + + + Whether exist modify date property. + + Returns true if the property exists. + + + + Set producer. If value is null, delete the property. + + The producer + + + + Get producer. + + + + + Whether exist producer property. + + Returns true if the property exists. + + + + Set subject. If value is null, delete the property. + + The subject. + + + + Get subject. + + + + + Whether exist subject property. + + Returns true if the property exists. + + + + Set title. If value is null, delete the property. + + The title. + + + + Get title. + + + + + Whether exist title property. + + Returns true if the property exists. + + + + Set custom property. If value is null, delete the property. + + The property name. + The property value. + + + + Get custom property. + + The property name. + + + + Whether xxist custom property. + + The property name. + Returns true if the property exists. + + + + Get all custom properties. + + The custom properties. + + + + Set pdf conformanceLevel. + + The pdf conformanceLevel. + + + + Get pdf conformanceLevel. + + The pdf conformanceLevel. + + + + Unescape special char in the escaped property name. + + The escaped property name. + The property name. + + + + The first character of an xml node name can only be a letter or a short underscore. + + The name + Processed string + + + + The first character of an xml node name can only be a letter or a short underscore. + + The name + UnProcessed string + + + + Escape special char in the property name. + + The property name. + The escaped property name. + + + + Convert xmp date time to .net DateTime + + The xmp date time. + The .net DateTime + + + + Gets the element. + + + + + + Defines the way the document is to be presented on the screen or in print. + + + + + A flag specifying whether to position the documents window in the center of the screen. + + + + + Set Expand or Collapse + + + + + + + Find Node Tree + + + + + + + + iterates Bookmark,Set Expand or Collapse + + + + + + + + + Find the click node + + + + + + + + + It's true,expand node + It's false,collapse node + + + + + A flag specifying whether the windows title bar should display the document title taken + from the Title entry of the document information dictionary. If false, the title bar + should instead display the name of the Pdf file containing the document. + + + + + A flag specifying whether to resize the documents window to fit the size of the first + displayed page. + + + + + A flag specifying whether to hide the viewer applications menu bar when the + document is active. + + + + + A flag specifying whether to hide the viewer applications tool bars when the document is active. + + + + + A flag specifying whether to hide user interface elements in the documents window + (such as scroll bars and navigation controls), leaving only the documents contents displayed. + + + + + A name object specifying how the document should be displayed when opened. + + + + + A name object specifying the page layout to be used when the document is opened. + + + + + Gets or Set the page scaling option to be selected + when a print dialog is displayed for this document. + + + + + Gets the element. + + + + + + Base collection of the pdf objects. + + + + + Initializes a new instance of the class. + + + + + Gets number of the elements in the collection. + + The total number of elements in the collection. + + + + Gets internal list of the collection. + + + + + Returns an enumerator that iterates through a collection. + + Returns an enumerator that iterates through a collection. + + + + Get a resource. + + The resource name. + The resource type. + A resource.return null if not exist. + + + + Get the resource. + + The resource name. + The resource type. + The resource.Return null,if not contain a resource with the name. + + + + Add a resource. + + The resource name. + The resource. + The resource type. + + + + Add a resource. + + The resource. + The resource type. + + + + Remove a resource. + + The resource name. + The resource type. + + + + Whether to contain the resource. + + The resource. + The resource type. + True,if contain the resource;False,otherwise. + + + + Get the resources. + + The resource type. + The resources dictionary of the resource type. + + + + Enumerator that implements page orientations. + + + + + Portrait orientation. + + + + + Landscape orientation. + + + + + The number of degrees by which the page should be rotated clockwise when displayed or printed. + + + + + The page is rotated as 0 angle. + + + + + The page is rotated as 90 angle. + + + + + The page is rotated as 180 angle. + + + + + The page is rotated as 270 angle. + + + + + Specifies numbering style of page labels. + + + + + No numbering at all. + + + + + Decimal arabic numerals. + + + + + Lowercase letters a-z. + + + + + Lowercase roman numerals. + + + + + Uppercase letters A-Z. + + + + + Uppercase roman numerals. + + + + + Specifies the docking style of the page template. + + This enumeration is used in class. + + + + The page template is not docked. + + + + + The page template edge is docked to the bottom page's side. + + + + + The page template edge is docked to the top page's side. + + + + + The page template edge is docked to the left page's side. + + + + + The page template edge is docked to the right page's side. + + + + + The page template stretch on full page. + + + + + Specifies how the page template is aligned relative to the template area. + + This enumeration is used in class. + + + + Specifies no alignment. + + + + + The template is top left aligned. + + + + + The template is top center aligned. + + + + + The template is top right aligned. + + + + + The template is middle left aligned. + + + + + The template is middle center aligned. + + + + + The template is middle right aligned. + + + + + The template is bottom left aligned. + + + + + The template is bottom center aligned. + + + + + The template is bottom right aligned. + + + + + A name object specifying the page layout to be used when the + document is opened. + + + + + Default Value. Display one page at a time. + + + + + Display the pages in one column. + + + + + Display the pages in two columns, with odd numbered + pages on the left. + + + + + Display the pages in two columns, with odd numbered + pages on the right. + + + + + Display the pages two at a time, with odd-numbered pages on the left + + + + + Display the pages two at a time, with odd-numbered pages on the right + + + + + Represents mode of document displaying. + + + + + Default value. Neither document outline nor thumbnail images visible. + + + + + Document outline visible. + + + + + Thumbnail images visible. + + + + + Full-screen mode, with no menu bar, window + controls, or any other window visible. + + + + + Optional content group panel visible. + + + + + Attachments are visible. + + + + + Page template is not used as header. + + + + + Page template is used as Top. + + + + + Page template is used as Bottom. + + + + + Page template is used as Left. + + + + + Page template is used as Right. + + + + + Enumeration of possible transition styles when moving to the page from another + during a presentation + + + + + Two lines sweep across the screen, revealing the new page. The lines may be either + horizontal or vertical and may move inward from the edges of the page or outward + from the center. + + + + + Multiple lines, evenly spaced across the screen, synchronously sweep in the same + direction to reveal the new page. The lines may be either horizontal or vertical. + Horizontal lines move downward; vertical lines move to the right. + + + + + A rectangular box sweeps inward from the edges of the page or outward from the center, + revealing the new page. + + + + + A single line sweeps across the screen from one edge to the other, revealing the new page. + + + + + The old page dissolves gradually to reveal the new one. + + + + + Similar to Dissolve, except that the effect sweeps across the page in a wide band moving from + one side of the screen to the other. + + + + + The new page simply replaces the old one with no special transition effect. + + + + + Changes are flown out or in, to or from a location that is offscreen. + + + + + The old page slides off the screen while the new page slides in, pushing the old page out. + + + + + The new page slides on to the screen, covering the old page. + + + + + The old page slides off the screen, uncovering the new page. + + + + + The new page gradually becomes visible through the old one. + + + + + Enumeration of transition dimensions. + + + + + Horizontal effect. + + + + + Vertical effect. + + + + + Enumeration of transition motions. + + + + + Inward motion from the edges of the page to center.. + + + + + Outward motion from the center of the page to edges. + + + + + Enumeration of transition directions. + + + + + Left to Right direction. + + + + + Bottom to Top direction. + + + + + Right to Left direction. + + + + + Top to Bottom direction. + + + + + TopLeft to BottomRight direction. + + + + + A name specifying the tab order to be used for annotations on the page. + + + + + Row Order + + + + + Column Order + + + + + Structure Order + + + + + Unspecified + + + + + Represents information about page size. + + + + + Letter format. + + + + + Note format. + + + + + Legal format. + + + + + A0 format. + + + + + A1 format. + + + + + A2 format. + + + + + A3 format. + + + + + A4 format. + + + + + A5 format. + + + + + A6 format. + + + + + A7 format. + + + + + A8 format. + + + + + A9 format. + + + + + A10 format. + + + + + B0 format. + + + + + B1 format. + + + + + B2 format. + + + + + B3 format. + + + + + B4 format. + + + + + B5 format. + + + + + ArchE format. + + + + + ArchD format. + + + + + ArchC format. + + + + + ArchB format. + + + + + ArchA format. + + + + + The American Foolscap format. + + + + + HalfLetter format. + + + + + 11x17 format. + + + + + Ledger format. + + + + + Represents a page loaded from a document. + + + + + Gets the size of the page. + + + + + Get the visible region of the page. + + + + + Gets the document. + + + + + Raises before the page saves. + + + + + Gets the text size of a specified font. + + Font key + Returns the text size of the specified font + + + + Represents a single PDF page. + + + + + Gets the size of the page. + + + + + Gets a collection of the annotations of the page. + + + + + Initializes a new instance of the class. + + + + + Sets crop box. + + + + + get xobject + + + + + + + create xobject + + + + + + + + refactoring resources,exclusion does not require resources + + + + + execute commond + + + + + + + + execute xobject + + + + + + + + Implements a virtual collection of all pages in the document. + + + + + Gets the total number of the pages. + + + + + Gets a page by its index in the document. + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + + + + Creates a page and adds it to the last section in the document. + + Created page object. + + + + Inserts a page at the specified index to the last section in the document. + + The index of the page in the section. + The page. + + + + Gets the index of the page in the document. + + The current page. + Index of the page in the document if exists, -1 otherwise. + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Describes layer of the page. + + + + + Gets parent page of the layer. + + + + + Gets Graphics context of the layer. + + + + + Creates new layer. + + Parent page of the layer. + + + + Gets the wrapped element. + + + + + Collection of the pages layers. + + + + + Gets or sets element by its index. + + The layers belonging to the same page can be added to the collection only. + + + + Creates new collection. + + Parent page for the layers in the collection. + + + + Creates a new layer and adds it to the end of the collection. + + Created layer. + + + + Creates a new layer and adds it to the end of the collection. + + Layer Name. + Layer Visibility. + Created layer. + + + + Creates a new layer and adds it to the collection. + + Layer Name. + Created layer. + + + + Creates a new layer and adds it to the end of the collection. + + Layer Name. + Layer Id. + Layer Visibility. + Created layer. + + + + You can only delete the layer that exists in the source document + + Layer Name. + + + + + You can only delete the layer that exists in the source document + + Layer Name. + Is delete all content include in this layer. + Is remove layerdefine in doc properties.. + delete layer message. + + + + Adds layer to the collection. + + Layer object. + The layers belonging to the same page can be added to the collection only. + + + + Inserts layer into collection. + + Index of the layer. + Layer object. + The layers belonging to the same page can be added to the collection only. + + + + Removes layer from the collection. Only the currently created layer can be deleted + + Layer object. + + + + Removes layer by its index. Only the currently created layer can be deleted + + Index of the layer. + + + + Checks whether collection contains layer. + + Layer object. + True - if collection contains layer, False otherwise. + + + + Returns index of the layer in the collection if exists, -1 otherwise. + + Layer object. + Returns index of the layer in the collection if exists, -1 otherwise. + + + + Cleares the collection. + + + + + Registers layer at the page. + + Index of the layer in the collection. + The new layer. + + + + Registers layer at the page. + + Index of the layer in the collection. + The new layer. + + + + Parses the layers. + + The loaded page. + + + + The flag of q or Q before and after all stream. Bug1031 + + The contents. + The cross table. + The flag. + + + + Represent class with setting of page. + + + + + Gets or sets the page orientation. + + + + + Gets or sets the size of the page. + + + + + Gets or sets the width of the page. + + + + + Gets or sets the height of the page. + + + + + Gets or sets the margins of the page. + + + + + Gets or sets the number of degrees by which the page should be rotated clockwise when displayed or printed. + + + + + Gets or sets the transition. + + The transition. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The size. + + + + Initializes a new instance of the class. + + The page orientation. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + + + + Initializes a new instance of the class. + + The margins. + + + + Initializes a new instance of the class. + + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Initializes a new instance of the class. + + The size. + The margins. + + + + Initializes a new instance of the class. + + The size. + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + The margins. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Sets the margins. + + The margins. + + + + Sets the margins. + + The left right. + The top bottom. + + + + Sets the margins. + + The left. + The top. + The right. + The bottom. + + + + Creates a clone of the object. + + Cloned object. + + + + Specifies the paper tray when the document is printed. + + + + + Gets or sets the page number (non zero-based) of the first page to print. + + + + + Gets or sets the page number (non zero-based) of the last page to print. + + + + + Specifies the paper tray from which the printer gets paper. + + + + + Describes a page template object that can be used as header/footer, watermark or stamp. + + + + + Gets or sets the dock style of the page template element. + + + + + Gets or sets alignment of the page template element. + + + + + Indicates whether the page template is located in front of + the page layers or behind of it. + + + + + Indicates whether the page template is located behind of + the page layers or in front of it. + + + + + Gets or sets location of the page template element. + + + + + Gets or sets X co-ordinate of the template element on the page. + + + + + Gets or sets Y co-ordinate of the template element on the page. + + + + + Gets or sets size of the page template element. + + + + + Gets or sets width of the page template element. + + + + + Gets or sets height of the page template element. + + + + + Gets or sets bounds of the page template element. + + + + + Gets graphics context of the page template element. + + + + + Creates a new page template. + + Bounds of the template. + + + + Initializes a new instance of the class. + + The bounds. + The page. + + + + Creates a new page template. + + Location of the template. + Size of the template. + + + + Initializes a new instance of the class. + + The location. + The size. + The page. + + + + Creates new page template object. + + Size of the template. + + + + Creates a new page template. + + Width of the template. + Height of the template. + + + + Creates a new page template. + + Width of the template. + Height of the template. + The Current Page object. + + + + Creates a new page template. + + X co-ordinate of the template. + Y co-ordinate of the template. + Width of the template. + Height of the template. + + + + Creates a new page template. + + X co-ordinate of the template. + Y co-ordinate of the template. + Width of the template. + Height of the template. + The Current Page object. + + + + Represents a section entity. A section it's a set of the pages with similar page settings. + + + + + Free users can only add up to 10 pages + + + + + Gets the pages. + + + + + Gets or sets page settings of the section. + + + + + Gets or sets a template for the pages in the section. + + + + + Gets the owner document. + + The document. + + + + Event rises when the new page has been added + + + + + FreeVersion,Allow Create 10 Pdf page + + PdfNewPage page + + + + + + Gets the wrapped element. + + + + + Resize the canvas of page according to html view size. + + + + Return the new size of canvas. + + + + set PdfHtmlLayoutFormat + + PdfHtmlLayoutFormat layoutFormat + bool autoDetectPageBreak + + + + Draws HTML to PDF + + Url address + Enable javascrpit + Enable hyperlink + Layouts html view format + + + + Draws HTML to PDF + + url address or socuce code + Enable javascrpit + Enable hyperlink + Enable autoDetectPageBreak + Layouts html view format + + + + Split by page height image + + + + + + + + Scan image data + + + + + + + + + + + Gets the current. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, + which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Get the number of leaf nodes (page objects) that are descendants of this node within the page tree. + + this node within the page tree. + the number of leaf nodes (page objects). + + + + The collection of the sections. + + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Creates a section and adds it to the collection. + + Created section object. + + + + Determines the index of the section. + + The section. + The index of the section. + + + + Inserts the section at the specified index. + + The index. + The section. + + + + Checks whether the collection contains the section. + + The section object. + True - if the sections belongs to the collection, False otherwise. + + + + + Gets the wrapped element. + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Convet pdf array to float array + + float array + + + + Is the current string a hexadecimal string? + + + + + + + Gets the headers. + + The headers. + + + + Gets the rows. + + The rows. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the style. + + The style. + + + + Gets the columns. + + The columns. + + + + Gets or sets a value indicating whether [repeat header]. + + true if [repeat header]; otherwise, false. + + + + Gets or sets whether to cross a page. + + + + + Initializes a new instance of the class. + + + + + Draws the specified graphics. + + The graphics. + The location. + The width. + + + + Draws the specified graphics. + + The graphics. + The x. + The y. + The width. + + + + Draws the specified graphics. + + The graphics. + The bounds. + + + + Draws the specified page. + + The page. + The location. + + + + + Draws the specified page. + + The page. + The location. + The format. + + + + + Draws the specified page. + + The page. + The bounds. + + + + + Draws the specified page. + + The page. + The bounds. + The format. + + + + + Draws the specified page. + + The page. + The x. + The y. + + + + + Draws the specified page. + + The page. + The x. + The y. + The format. + + + + + Draws the specified page. + + The page. + The x. + The y. + The width. + + + + + Draws the specified page. + + The page. + The x. + The y. + The width. + The format. + + + + + Gets or sets the width. + + The width. + + + + Gets the height. + + The height. + + + + Gets or sets the row span. + + The row span. + + + + Gets or sets the column span. + + The column span. + + + + Gets or sets the cell style. + + The cell style. + + + + Gets or sets the value. + + The value. + + + + Gets or sets the string format. + + The string format. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The row. + + + + Calculate the minimum drawable height. + If the available height in the page less than the value, the grid needs to drawn on a new page. + + + + + Whether this cell contains multiple lines of text. + + + + + + Keep four decimals. + Avoid the loss of precision when calcullating cell width and height, + resulting in the loss of content. + + + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Returns the index of a particular cell in the collection. + + The cell. + + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Gets or sets the width. The with is equal to the content + width plus margin plus half of the left and right borders. + + The width. + + + + Gets or sets the format. + + The format. + + + + Gets the grid. + + The grid. + + + + Initializes a new instance of the class. + + The grid. + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Adds this instance. + + + + + + Adds the specified count. + + The count. + + + + Adds the specified column. + + The column. + + + + Removes the first occurrence of a specific object from the PdfGridColumnCollection. + + The object to remove from the PdfGridColumnCollection. + + true if item is successfully removed; otherwise, false + + + + Removes the element at the specified index of the PdfGridColumnCollection. + + The zero-based index of the element to remove. + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Gets the cells. + + The cells. + + + + Gets or sets the row style. + + The row style. + + + + Gets or sets the height.The height is equal to the content + height plus margin plus half of the top and bottom borders. + + The height. + + + + Gets or sets whether to cross a page. + + + + + Initializes a new instance of the class. + + The parent grid. + + + + Applies the cell style to all the cells present in a row. + + The cell style. + + + + Adds this instance. + + + + + + Sets the span. + + Index of the row. + Index of the cell. + The row span. + The col span. + + + + Applies the style. + + The style. + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Gets the rows. + + The rows. + + + + Adds the specified count. + + The count. + + + + Clears this instance. + + + + + Applies the style. + + The style. + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + + + + + + Sets the cell padding. + + The cell padding. + + + + Gets or sets the background brush. + + The background brush. + + + + Gets or sets the text brush. + + The text brush. + + + + Gets or sets the text pen. + + The text pen. + + + + Gets or sets the font. + + The font. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Grid style + + + + + Gets or sets the cell spacing. + + The cell spacing. + + + + Gets or sets the cell padding. + + The cell padding. + + + + Gets or sets the border overlap style. + + The border overlap style. + + + + Gets or sets a value indicating whether to allow horizontal overflow. + + + true if [allow horizontal overflow]; otherwise, false. + + + + + Gets or sets the type of the horizontal overflow. + + The type of the horizontal overflow. + + + + Initializes a new instance of the class. + + + + + Grid row style + + + + + Get or sets the cell padding. + + The cell padding. + + + + Sets the grid style. + + The grid style. + + + + Initializes a new instance of the class. + + + + + Grid cell style + + + + + Get or sets the cell padding. + + The cell padding. + + + + Sets the row style. + + The row style. + + + + Gets the string format. + + The string format. + + + + Gets or sets the border. + + The border. + + + + Gets or sets the background image. + + The background image. + + + + Initializes a new instance of the class. + + + + + Represents the content that can be written in a grid cell. + + + + + Set the image's location in a grid cell. + + + + + It is a collection of PdfGridCellContent classes + + + + + + + + + + + + + + + + + + + + Arguments of BeginPageLayoutEvent. + + + + + Gets the start row. + + The start row. + + + + Arguments of EndPageLayoutEvent. + + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Gets the default. + + The default. + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The left. + The right. + The top. + The bottom. + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The left. + The right. + The top. + The bottom. + + + + Represents base class for markers. + + + + + Gets or sets marker font. + + + + + Gets or sets marker brush. + + + + + Gets or sets marker pen. + + + + + Gets or sets the format. + + The format. + + + + Gets or sets a value indicating whether the marker is + situated at the left of the list or at the right of the list. + + + + + Represents marker for ordered list. + + + + + Gets or sets the list numbering style. + + + + + Gets ar sets start number for ordered list. Default value is 1. + + + + + Gets or sets the delimiter. + + + + + Gets or sets the suffix of the marker. + + + + + Initializes a new instance of the class. + + Number style of marker. + Number delimiter of marker. + Number suffix of marker. + Number font of marker. + + + + Initializes a new instance of the class. + + Number style of marker. + Number suffix of the marker. + Number font of marker. + + + + Initializes a new instance of the class. + + Number style of marker. + Number font of marker. + + + + Represents bullet for the list. + + + + + Gets or sets template of the marker. + + + + + Gets or sets image of the marker. + + + + + Gets or sets marker text. + + + + + Gets or sets the style. + + + + + Initializes a new instance of the class. + + The text of the marker. + Marker font. + + + + Initializes a new instance of the class. + + The style of the marker. + + + + Initializes a new instance of the class. + + The image of the marker. + + + + Initializes a new instance of the class. + + Template of the marker. + + + + Specifies the marker style. + + + + + Marker have no style. + + + + + Marker is like a disk. + + + + + Marker is like a square. + + + + + Marker is like a Asterisk. + + + + + Marker is like a circle. + + + + + Marker is custom string. + + + + + Marker is custom image. + + + + + Marker is custom template. + + + + + Represents marker alignment. + + + + + Left alignment for marker. + + + + + Right alignment for marker. + + + + + Represents base class for lists. + + + + + Gets items of the list. + + + + + Gets or sets tabulation for the list. + + + + + Gets or sets the indent from the marker to the list item text. + + + + + Gets or sets the list font. + + + + + Gets or sets list brush. + + + + + Gets or sets list pen. + + + + + Gets or sets the format of the list. + + The format. + + + + Event that rises when item begin layout. + + + + + Event that rises when item end layout. + + + + + Draws an list on the Graphics. + + Graphics context where the list should be printed. + X co-ordinate of the list. + Y co-ordinate of the list. + + + + Represents the list item of the list. + + + + + Gets or sets item font. + + + + + Gets or sets item text. + + + + + Gets or sets item string format. + + + + + Gets or sets list item pen. + + + + + Gets or sets list item brush. + + + + + Gets or sets sublist for item. + + + + + Gets or sets indent for item. + + + + + Creates new empty pdf list item. + + + + + Creates new pdf list item with default settings. + + + + + Initializes a new instance of the class. + + The text of item. + The font of item. + + + + Initializes a new instance of the class. + + The text of item. + The font of item. + The string format. + + + + Creates new list item. + + The item text. + The item font. + The string format of item. + The item pen. + The item brush. + + + + Represents collection of list items. + + + + + Gets the PdfListItem from collection at the specified index. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A string array that contains items separated by the new line character. + + + + Adds the specified item. + + The item. + The item index in collection. + + + + Adds the specified item. + + The item. + The item indent. + + + + Adds the item with a specified text. + + The text. + + + + + Adds the specified text. + + The text. + The item indent. + List item. + + + + Adds the specified text. + + The text. + The font. + The item index in collection. + + + + Adds the specified text. + + The text. + The font. + The item indent. + List item. + + + + Inserts item at the specified index. + + The specified index. + The item. + The item index + + + + Inserts the specified index. + + The index. + The item. + The item indent. + + + + Removes the specified item from the list. + + The specified item. + + + + Removes the item at the specified index from the list. + + he specified index. + + + + Determines the index of a specific item in the list. + + The item to locate in the list. + The index of item if found in the list; otherwise, -1. + + + + Clears collection. + + + + + Represents the ordered list. + + + + + Gets or sets marker of the list items. + + + + + True if user want to use numbering hierarchy, otherwise false. + + + + + Creates ordered list. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The style. + + + + Creates ordered list using items. + + Items for a list. + + + + Initializes a new instance of the class. + + The marker for the list. + + + + Initializes a new instance of the class. + + The item collection. + The marker for the list. + + + + Initializes a new instance of the class. + + The formatted text. + + + + Initializes a new instance of the class + from formatted text that is splitted by new lines. + + The formatted text. + The marker. + + + + Represents unordered list. + + + + + Gets or sets the marker. + + + + + Initializes a new instance of the class. + + + + + Creates unordered list using items. + + Items for a list. + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The marker for the list. + + + + Initializes a new instance of the class. + + The items collection. + The marker for the list. + + + + Initializes a new instance of the class. + + The formatted text. + + + + Initializes a new instance of the class + from formatted text that is splitted by new lines. + + The formatted text. + The marker. + + + + Delegate for handling BeginItemLayoutEvent. + + The item that begin layout. + Begin Item Layout arguments. + + + + Delegate for handling EndItemLayoutEvent. + + The item that end layout. + End Item Layout arguments. + + + + Represents begin layout event arguments. + + + + + Gets the item. + + The item that layout. + + + + Gets the page. + + The page in which item start layout. + + + + Represents end layout event arguments. + + + + + Gets the item that layout. + + The item that layout. + + + + Gets the page in which item ended layout. + + The page in which item ended layout. + + + + Gets the widths. + + The total width + An array containing widths. + + + + Zoom in or out the width. + + The width + The zoom factor + + + + Represents fast table with few features. + + + + + Gets the columns. + + The table column collection + + + + Gets the rows. + + + + + Gets or sets the data source. + + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the datasource type of the PdfTable + + + + + Gets or sets the properties. + + + + + Gets or sets a value indicating whether + PdfTable should ignore sorting in data table. + + + + + Gets a value Indicates whether can cross a page. + + + + + The event raised on starting row lay outing. + + + + + The event raised on having finished row lay outing. + + + + + The event raised on starting cell lay outing. + + + + + The event raised on having finished cell layout. + + + + + The event raised when the next row data is requested. + + + + + The event raised when the column number is requested. + + + + + The event raised when the row number is requested. + + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + The location of the element. + The width of the table. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + The width of the table. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + The bounds. + + + + Draws the table starting from the specified page. + + The page. + The location. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The location. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The bounds. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The bounds. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The width. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The width. + The format. + The results of the lay outing. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + Represents parameters of PdfTable. + + + + + Specifies whehther the table populates the entire page + + + + + get or set the value of fitWidth. + + + + + Gets or sets the default cell style. + + + + + Gets or sets the odd row cell style. + + + + + Gets or sets a value indicating whether + to use rows or column captions for forming header. + + + + + Gets or sets the header rows count. + + + + + Gets or sets the header cell style. + + + + + Gets or sets a value indicating whether to repeat header on each page. + + + + + Gets or sets a value indicating whether the header is visible. + + If the header is made up with ordinary rows they aren't visible + while this property is set to false. + + + + Gets or sets the cell spacing. + + + + + Gets or sets the cell padding. + + + + + Gets or sets a value indicating whether the cell borders + should overlap its neighbour's borders or be drawn in the cell interior. + + Please, use this property with caution, + because it might cause unexpected results if borders + are not the same width and colour. + + + + Gets or sets the pen of the table border. + + + + + Initializes a new instance of the class. + + + + + Represents information about cell style. + + + + + Gets or sets the font. + + + + + Gets or sets the string format of the cell text. + + + + + Gets or sets the font which will be used to draw text outlines. + + It should be null for default text representation. + + + + Gets or sets the brush which will be used to draw font. + + This brush will be used to fill glyphs interior, which is the default. + + + + Gets or sets the pen with which the border will be drawn. + + + + + Gets or sets the brush with which the background will be drawn. + + It's null by default. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + The font brush. + The border pen. + + + + Represents the collection of the columns. + + + + + Gets the at the specified index. + + + + + Adds the specified column. + + The column. + + + + Gets the widths of the columns. + + The start column. + The end column. + An array containing widths. + + + + Represents a single column of the table. + + + + + Gets or sets the string format. + + The string format. + + + + Gets or sets the width of the column. + + + + + Gets or sets the column name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the column. + + + + Represents a single column of the table. + + + + + The array of values that are used to create the new row. + + + + + Represents the collection of the columns. + + + + + Gets the at the specified index. + + + + + Adds the specified row. + + The row. + + + + The array of values that are used to create the new row. + + + + + Represents as a message deliverer from PdfTable class to the user. + + + + + Represents the parameters for Light Table layout. + + + + + Gets or sets the start column index. + + + + + Gets or sets the end column index. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base format. + + + + Delegate for handling StartRowLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when starting a row in a layout. + + + + Delegate for handling EndRowLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when you are finished laying out a row on a page. + + + + Delegate for handling StartCellLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when laying out a cell on a page. + + + + Delegate for handling EndCellLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when you have finished laying out a page. + + + + Delegate for handling NextRowEvent. + + The sender of the event. + The arguments of the event. + + + + Delegate for handling GettingColumnNumber Event. + + The sender of the event. + The arguments of the event. + + + + Delegate for handling GettingRowNumber Event. + + The sender of the event. + The arguments of the event. + + + + Represents StartRowLayout Event arguments. + + + + + Gets the index of the row. + + + + + Gets or sets the cell style. + + + + + Gets or sets the span map. + + + + + Gets or sets a value indicating whether table drawing should stop. + + + + + Gets or sets a value indicating whether this row should be ignored. + + + + + Gets or sets a value indicating whether column string format should be ignored. + + + + + Sets the minimal height of the row. + + + + + Represents arguments of EndRowLayoutEvent. + + + + + Gets the index of the row. + + + + + Gets a value indicating whether the row was drawn completely + (nothing should be printed on the next page). + + + + + Gets or sets a value indicating whether this row should be the last one printed. + + + + + Gets or sets the row bounds. + + + + + The base class for cell layout arguments. + + + + + Gets the index of the row. + + + + + Gets the index of the cell. + + + + + Gets the value. + + The value might be null or an empty string, + which means that either no text were acquired or all + text was on the previous page. + + + + Gets the bounds of the cell. + + + + + Gets the graphics, on which the cell should be drawn. + + + + + Represents arguments of StartCellLayout Event. + + + + + Gets or sets a value indicating whether the value of this cell should be skipped. + + + + + Represents arguments of EndCellLayout Event. + + + + + Represents arguments of the NextRow Event. + + + + + Gets or sets the row data. + + + + + Gets the column count. + + + + + Gets the index of the row. + + + + + The arguments of the GettingColumnNumber Event. + + + + + Gets or sets the column number. + + + + + The arguments of the GettingRowNumber Event. + + + + + Gets or sets the column number. + + + + + Specifies values specifying where the header should formed from. + + + + + The header is formed from column captions' values. + + + + + The header is formed from rows. + + + + + Specifies type for table width. + + + + + Use the fit page width + each width of columns will zoom in or out + using the ratio of totall width of the table to the width of page + + + + + use the Coustom width + takes the totall width of the set column as the width of the table,no zoom. + notes:if set this type but does not set the column width it will use default column width + + + + + Specifies the datasource type. + + + + + Specifies that the PdfTable has been binded to an external datasource. + + + + + Specifies that the values are directly binded to the PdfTable. + + + + + Specifies values of the border overlap style. + + + + + Cell borders overlap (are drawn using the same coordinates). + + + + + Cell borders are drawns in the cell's interior. + + + + + Represents custom Metadata. + + + + + Sets the xmp property. + + + + + Gets type of the schema. + + + + + Initializes a new instance of the class. + + Parent XmpMetadata. + The XML namespace. + The namespace URI. + + + + Enumerates types of the xmp structure. + + + + + A structure containing dimensions for a drawn object. + + + + + A structure containing the characteristics of a font used in a document. + + + + + A structure containing the characteristics of a Coloring (swatch) used in a document. + + + + + A thumbnail image for a file. + + + + + Job structure. + + + + + Enumerates types of the xmp schema. + + + + + Dublin Core Schema. + + + + + Basic Schema. + + + + + Rights Management Schema. + + + + + Basic Job Ticket Schema. + + + + + Paged Text Schema. + + + + + Adobe PDF Schema. + + + + + Custom schema. + + + + + Types of the xmp arrays. + + + + + Unknown array type. + + + + + Unordered array. + + + + + Ordered array. + + + + + Alternative array. + + + + + Base class for the xmp entities. + + + + + Gets Xml data of the entity. + + + + + Represents XMP metadata of the document. + + + + + Gets XMP data in XML format. + + + + + Gets namespace manager of the Xmp metadata. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The XMP. + + + + Adds schema to the XMP in XML format. + + XMP schema in XML format. + If XMP already contains such schema - there will be two equal schemas at the xmp. + + + + Return title if exists; otherwise return null + + + + + + Return subject if exists; otherwise return null + + + + + + Return author if exists; otherwise return null + + + + + + Return producer if exists; otherwise return null + + + + + + return keywords if exists; otherwise return null + + + + + + Return specified custom field value if exists; otherwise return null + + + + + + + Return all custom properties if exsit; otherwise return empty Dictionary + + + + + + Return create date if exists; otherwise return default DateTime + + + + + + Return creator if exists; otherwise return null + + + + + + Return modify date if exists; otherwise return System.DateTime.MinValue + + + + + + Set title to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set subject to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set subject to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set producer to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set keywords to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set custom property to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + + Set title to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set Creator to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set ModifyDates to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Gets the element. + + + + + + Represents the rich text. + + + + + Gets or set the xmls. + + + + + Gets or set the xfa. + + + + + Gets or set the apiversion. + + + + + Gets or set the spec. + + + + + Gets or set the style. + + + + + Gets the paragraphs. + + + + + Represents the rich text. + + + + + + To ap dictionary. + + The ap dictionary + + + + Generate ap dictionary. + + The ap dictionary + + + + Generate normal dictionary. + + + + + Initialize. + + + + + Initialize the client bound. + + + + + Initialize the normal dictionary. + + + + + Get bbox. + + The bbox + + + + Get the transparency. + + the transparency + + + + Generate ap content. + + + + + Initialize state. + + + + + Draw border area. + + + + + Append content. + + + + + Draw contents. + + + + + Drae contents. + + The text + The rich text style + + + + Draw text. + + The text + The style + The float type list + + + + Draw lines. + + The list + The rich text style + + + + Get font resource name. + + The rich text style + The resource name + + + + Create font dictionary. + + The font resource name + The font name + + + + Get font name. + + The rich style + The font name + + + + Get the the stroking path. + + The stroking path + + + + Get the the fill path. + + The fill path + + + + Get line width. + + Line width + + + + Get back ground color. + + The back ground color + + + + Get the border color. + + The border color + + + + Get font base line. + + The font + The font base line + + + + Get the font line space. + + The font + The font line space + + + + Get font. + + The font name + The font size + The font + + + + Measure text width + + The text + The font + The text width + + + + Clear the string builder content. + + The string builder instance + + + + Move the point to. + + The point + + + + Make current point to anthor point. + + The point + + + + Restore curernt state. + + + + + Save the current state. + + + + + Begin draw text. + + + + + End draw text. + + + + + The ctm. + + The martix + + + + Set the current color space. + + + + + Set curernt font name and font size. + + The font name + The font size + + + + The TD. + + The x + The y + + + + Show text. + + char codes + + + + Use non-zero Fill the current path. + + + + + Storken the current path. + + + + + Close the stroke path. + + + + + Introduce rgb color. + + The color + The is stroking + + + + Set the graphics state. + + + + + Append rectangle + + The rectangle + + + + Set line width. + + The line width + + + + Set the text leading. + + The linespace + + + + Set character space. + + + + + + Set the word space. + + + + + + Use even-odd Fill the current path. + + + + + Represents the rich text builder. + + + + + Represents the rich text builder instance. + + + + + Builder richtext. + + The annotation + The richtext instance + + + + Get the rich content. + + The annotation + The rich content + + + + Get default style string. + + The annotation + The default style string + + + + Builder default style. + + The defaultStyle + The rich text style + + + + String to stream. + + The rich text + The stream + + + + Parese xml to richtext. + + The xml + + + + Parse body node. + + The body node + + + + Parse body node. + + The paragraph + + + + Parse paragraph. + + The paragraph + + + + + Parse span. + + The span + The paragraph + + + + Parse attributes. + + The attribute + + + + Parse attributes. + + The attribute + + + + Implements structures and routines working with rich text style. + + + + + Gets the font size. + + + + + Gets the font style. + + + + + Gets the font weight. + + + + + Gets the font family. + + + + + Gets the color. + + + + + Gets the text deciration. + + + + + Gets the font stretch. + + + + + Replace the style. + + The base style + The rich style + + + + Parse default style. + + The ds + + + + Parse style + + The styleString + + + + Parse font weight. + + The wight + The font weight + + + + Parse the list. + + The value + The list + + + + Parse color. + + The color + The color + + + + Parse float. + + The value + A float value + + + + Parse enums. + + The unknow type + + + + + + Implements structures and routines working with paragraph. + + + + + Gets the spans. + + + + + Gets or set the style. + + + + + Gets or set the content. + + + + + Implements structures and routines working with span. + + + + + Gets or set the style. + + + + + Gets or set the content. + + + + + The text align enum. + + + + + The font style enum. + + + + + The text decoration enum. + + + + + The font stretch enum. + + + + Byte buffer container including length of valid data. + Stefan Makswit + 11.10.2006 + + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + the inner byte array might be bigger than that. + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + Loads the stream into a buffer. + an Stream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + Appends a byte to the buffer. + a byte + + + Appends a byte array or part of to the buffer. + a byte array + an offset with + + + + Append a byte array to the buffer + a byte array + + + Append another buffer to this buffer. + another ByteBuffer + + + Detects the encoding of the byte buffer, stores and returns it. + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + + Returns the encoding string. + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + Stefan Makswit + 22.08.2006 + + + the state of the automaton + + + the result of the escaping sequence + + + count the digits of the sequence + + + The look-ahead size is 6 at maximum (&#xAB;) + + a Reader + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + Stefan Makswit + 16.02.2006 + + + Converts an ISO 8601 string to an XMPDateTime. + + Converts an ISO 8601 string to an XMPDateTime. + Parse a date according to ISO 8601 and + http://www.w3.org/TR/NOTE-datetime: + + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm:ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + + Data fields: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + + Note that ISO 8601 does not seem to allow years less than 1000 or greater + than 9999. We allow any year, even negative ones. The year is formatted + as "%.4d". + + Note: Tolerate missing TZD, assume is UTC. Photoshop 8 writes + dates like this for exif:GPSTimeStamp. + + Note: DOES NOT APPLY ANYMORE. + Tolerate missing date portion, in case someone foolishly + writes a time-only value that way. + + a date string that is ISO 8601 conform. + Returns a Calendar. + Is thrown when the string is non-conform. + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + Converts a Calendar into an ISO 8601 string. + + Converts a Calendar into an ISO 8601 string. + Format a date according to ISO 8601 and http://www.w3.org/TR/NOTE-datetime: + + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm:ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + + Data fields: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + + + Note: ISO 8601 does not seem to allow years less than 1000 or greater than 9999. + We allow any year, even negative ones. The year is formatted as "%.4d". + + Note: Fix for bug 1269463 (silently fix out of range values) included in parsing. + The quasi-bogus "time only" values from Photoshop CS are not supported. + + an XMPDateTime-object. + Returns an ISO 8601 string. + + + Stefan Makswit + 22.08.2006 + + + Returns the current position. + + + initializes the parser container + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + Skips the next char. + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + Stefan Makswit + 12.10.2006 + + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + The result is a buffer where those chars have been converted to UTF-8; + that means it contains only valid UTF-8 chars. + + Explanation of the processing: First the encoding of the buffer is detected looking + at the first four bytes (that works only if the buffer starts with an ASCII-char, + like xmls '<'). UTF-16/32 flavours do not require further proccessing. + + In the case, UTF-8 is detected, it assumes wrong UTF8 chars to be a sequence of + Latin-1/Cp1252 encoded bytes and converts the chars to their corresponding UTF-8 byte + sequence. + + The 0x80..0x9F range is undefined in Latin-1, but is defined in Windows code + page 1252. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are formally undefined + by Windows 1252. These are in XML's RestrictedChar set, so we map them to a + space. + + The official Latin-1 characters in the range 0xA0..0xFF are converted into + the Unicode Latin Supplement range U+00A0 - U+00FF. + + Example: If an Euro-symbol (€) appears in the byte buffer (0xE2, 0x82, 0xAC), + it will be left as is. But if only the first two bytes are appearing, + followed by an ASCII char a (0xE2 - 0x82 - 0x41), it will be converted to + 0xC3, 0xA2 (â) - 0xE2, 0x80, 0x9A (‚) - 0x41 (a). + + a byte buffer contain + Returns a new buffer containing valid UTF-8 + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + Stefan Makswit + 11.08.2006 + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + Asserts that a specific language is set. + a specific lang + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + Asserts that a parameter is not null. + the parameter's value + Thrown if the parameter is null. + + + Asserts that any string parameter is not null or empty. + a string parameter's value + Thrown if the parameter is null or has length 0. + + + Asserts that the xmp object is of this implemention (). + the XMP object + A wrong implentaion is used. + + + Start of coreSyntaxTerms. + + + End of coreSyntaxTerms + + + Start of additions for syntax Terms. + + + End of of additions for syntaxTerms. + + + Start of oldTerms. + + + End of oldTerms. + + + ! Yes, the syntax terms include the core terms. + + + Parser for "normal" XML serialisation of RDF. + Stefan Makswit + 14.07.2006 + + + this prefix is used for default namespaces + + + The main parsing method. + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + ParseOptions to indicate the parse options provided by the client + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.10 nodeElementList + + ws* ( nodeElement ws* ) + + + This method is only called from the rdf:RDF-node (top level). + + the xmp metadata object that is generated + the parent xmp node + the top-level xml node + /// ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* ) + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.14 propertyElt + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attribute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + Add a leaf node with the text value and qualifiers for the attributes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thrown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thrown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thrown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thrown on parsing errors + + + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( + idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + <ns:Prop1/> <!-- a simple property with an empty value --> + <ns:Prop2 rdf:resource="http: *www.adobe.com/"/> <!-- a URI value --> + <ns:Prop3 rdf:value="..." ns:Qual="..."/> <!-- a simple qualified property --> + <ns:Prop4 ns:Field1="..." ns:Field2="..."/> <!-- a struct with simple fields --> + An emptyPropertyElt is an element with no contained content, just a possibly empty set of + attributes. An emptyPropertyElt can represent three special cases of simple XMP properties: a + simple property with an empty value (ns:Prop1), a simple property whose value is a URI + (ns:Prop2), or a simple property with simple qualifiers (ns:Prop3). + An emptyPropertyElt can also represent an XMP struct whose fields are all simple and + unqualified (ns:Prop4). + It is an error to use both rdf:value and rdf:resource - that can lead to invalid RDF in the + verbose form written using a literalPropertyElt. + The XMP mapping for an emptyPropertyElt is a bit different from generic RDF, partly for + design reasons and partly for historical reasons. The XMP mapping rules are: + + If there is an rdf:value attribute then this is a simple property + with a text value. + All other attributes are qualifiers. + If there is an rdf:resource attribute then this is a simple property + with a URI value. + All other attributes are qualifiers. + If there are no attributes other than xml:lang, rdf:ID, or rdf:nodeID + then this is a simple + property with an empty value. + Otherwise this is a struct, the attributes other than xml:lang, rdf:ID, + or rdf:nodeID are fields. + + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thrown on parsing errors + + + Adds a child node. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thrown on parsing errors + + + Adds a qualifier node. + the parent xmp node + + the name of the qualifier which has to be + QName including the default prefix + + the value of the qualifier + Returns the newly created child node. + thrown on parsing errors + + + The parent is an RDF pseudo-struct containing an rdf:value field. + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thrown on parsing errors + + + Checks if the node is a white space. + an XML-node + + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + 7.2.4 oldTerms + + rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID + + the term id + Returns true if the term is an old term. + + + + 7.2.2 coreSyntaxTerms + + rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | + rdf:datatype + + the term id + Return true if the term is a core syntax term + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + an XML node + Returns the term ID. + + + Check if the child name + an XML node + Returns bool + + + Stefan Makswit + 09.11.2006 + + + Splits a qname into prefix and localname. + a QName + + + Constructor that initializes the fields + the prefix + the name + + + Returns whether the QName has a prefix. + + + XML localname + the localName + + + XML namespace prefix + the prefix + + + Utility functions for the XMPToolkit implementation. + Stefan Makswit + 06.06.2006 + + + segments of a UUID + + + length of a UUID + + + table of XML name start chars (<= 0xFF) + + + table of XML name chars (<= 0xFF) + + + + Normalize an xml:lang value so that comparisons are effectively case + insensitive as required by RFC 3066 (which supersedes RFC 1766). + + + The normalization rules: + + The primary subtag is lower case, the suggested practice of ISO 639. + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + All other subtags are lower case. + + + raw value + Returns the normalized value. + + + + Split the name and value parts for field and qualifier selectors. + + + + [qualName="value"] - An element in an array of structs, chosen by a field value. + [?qualName="value"] - An element in an array, chosen by a qualifier value. + + The value portion is a string quoted by ' or ". The value may contain + any character including a doubled quoting character. The value may be + empty. + + Note: It is assumed that the expression is formal correct. + + The selector + The name string + The value string + + + a schema namespace + an XMP Property + + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + + Check some requirements for an UUID: + + Length of the UUID is 32 + The Delimiter count is 4 and all the 4 delimiter are on their right position (8,13,18,23) + + + uuid to test + true - this is a well formed UUID, false - UUID has not the expected format + + + Simple check for valid XML names. + + Within ASCII range + + ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] + + are accepted, above all characters (which is not entirely + correct according to the XML Spec. + + an XML Name + Return true if the name is correct. + + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + + + These are XML names, except that they must not contain a colon. + + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + Serializes the node value in XML encoding. + + Its used for tag bodies and attributes. + + Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. + + Note: Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + a string + flag if string is attribute value (need to additional escape quotes) + Decides if LF, CR and TAB are escaped. + Returns the value ready for XML output. + + + Replaces the ASCII control chars with a space. + a node value + Returns the cleaned up value + + + Simple check if a character is a valid XML start name char. + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + The default implementation of . + Stefan Makswit + 16.02.2006 + + + The nanoseconds take micro and nano seconds, while the milliseconds are in the calendar. + + + + Creates an XMPDateTime-instance with the current time in the default time zone. + + + + Creates an XMPDateTime-instance from a calendar. + a Calendar + + + Creates an XMPDateTime-instance from an ISO 8601 string. + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + Returns the ISO string representation. + + + Number of milliseconds since the Unix epoch (1970-01-01 00:00:00). + + + Number of milliseconds since the Unix epoch (1970-01-01 00:00:00). + + + The XMPIterator implementation. + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + Stefan Makswit + 29.06.2006 + + + flag to indicate that skipSiblings() has been called. + + + the node iterator doing the work + + + Constructor with optional initial values. + If propName is provided, schemaNS has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is reduced to this property within the schemaNS + advanced iteration options, see + If the node defined by the parameters is not existing. + + + the base namespace of the property path, will be changed during the iteration + + + The XMPIterator implementation. + + The XMPIterator implementation. + It first returns the node itself, then recursively the children and qualifier of the node. + + Stefan Makswit + 29.06.2006 + + + iteration state + + + iteration state + + + iteration state + + + the state of the iteration + + + the currently visited node + + + the recursively accumulated path + + + the iterator that goes through the children and qualifier list + + + index of node with parent, only interesting for arrays + + + the iterator for each child + + + the cached PropertyInfo to return + + + Default constructor + + + Constructor for the node iterator. + + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + Prepares the next node to return if not already done. + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + Calls hasNext() and returns the prepared node. + + Calls hasNext() and returns the prepared node. Afterward it's set to null. + The existence of returnProperty indicates if there is a next node, otherwise + an exception is thrown. + + + + Not supported. + + + the node that will be added to the path. + the path up to this node. + the current array index if an array is traversed + Returns the updated path. + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + Originally called "XmpPropertyInfo450" + "450" was the line number in XMPIteratorImpl.java of the Adobe Java 5.1.2 source file + This class was anonymous, but that is unnecessary here + + + + Returns the returnProperty. + + + the returnProperty to set + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + Stefan Makswit + 02.10.2006 + + + Constructor + + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + Prepares the next node to return if not already done. + + + + Implementation of . + + Stefan Makswit + 17.02.2006 + + + Property values are Strings by default + + + root of the metadata tree + + + the xpacket processing instructions content + + + Constructor for an empty metadata object. + + + Constructor for a cloned metadata tree. + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a property, but the result value can be requested. + + Returns a property, but the result value can be requested. + + a schema namespace + a property name or path + the type of the value, see VALUE_... + Returns an XMPProperty + Collects any exception that occurs. + + + + Combines the two ported classes XmpProperty407 and XmpProperty682 + "407" and "682" were the line numbers in XMPMetaImpl.java of the Adobe Java 5.1.2 source file + These classes were anonymous, and that is unnecessary here + + + + Returns a property, but the result value can be requested. + a schema namespace + a property name or path + the type of the value, see VALUE_... + + Returns the node value as an object according to the + valueType. + + Collects any exception that occurs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the packetHeader attributes, only used by the parser. + the processing instruction content + + + Performs a deep clone of the XMPMeta-object + + + + + + Returns the root node of the XMP tree. + + + Locate or create the item node and set the value. + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for setProperty() and related calls, used after the node is + found or created. + + the newly created node + the node value, can be null + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + an int indicating the value type + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. + + + After the parsing several normalisations are applied to the XMP tree. + + Stefan Makswit + 01.02.2006 + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a XDocument, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an Stream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + To improve the performance on legal files, it is first tried to parse normally, + while the character fixing is only done when the first pass fails. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + Wraps parsing and I/O-exceptions into an XMPException. + + + Wraps parsing and I/O-exceptions into an XMPException. + + + Find the XML node that is the root of the XMP data tree. + + Find the XML node that is the root of the XMP data tree. Generally this + will be an outer node, but it could be anywhere if a general XML document + is parsed (e.g. SVG). The XML parser counted all rdf:RDF and + pxmp:XMP_Packet nodes, and kept a pointer to the last one. If there is + more than one possible root use PickBestRoot to choose among them. + + If there is a root node, try to extract the version of the previous XMP + toolkit. + + Pick the first x:xmpmeta among multiple root candidates. If there aren't + any, pick the first bare rdf:RDF if that is allowed. The returned root is + the rdf:RDF child if an x:xmpmeta element was chosen. The search is + breadth first, so a higher level candidate is chosen over a lower level + one that was textually earlier in the serialized XML. + + initially, the root of the xml document as a list + + flag if the xmpmeta-tag is still required, might be set + initially to true, if the parse option "REQUIRE_XMP_META" is set + + The result array that is filled during the recursive process. + + Returns an array that contains the result or null. + The array contains: + + [0] - the rdf:RDF-node + [1] - an object that is either XMP_RDF or XMP_PLAIN (the latter is deprecated) + [2] - the body text of the xpacket-instruction. + + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + + Possible improvements: + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + Stefan Makswit + 21.02.2006 + + + list of child nodes, lazy initialized + + + list of child node references for faster lookup. Only initialized when the original _children list exceeds 9 entries + + + list of qualifier of the node, lazy initialized + + + options describing the kind of the node + + + Creates an XMPNode with initial values. + the name of the node + the value of the node + the options of the node + + + Constructor for the node without value. + the name of the node + the options of the node + + + Resets the node. + + + + Get the parent node. + + + Set internally by , and . + + + + an index [1..size] + Returns the child with the requested index. + + + Adds a node as child to this node. + an XMPNode + + + + Adds a node as child to this node. + + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + + an XMPNode + + + + Replaces a node with another one. + + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + + the replacement XMPNode + + + Removes a child at the requested index. + the index to remove [1..size] + + + Removes a child node. + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + Removes all children from the node. + + + Returns the number of children without necessarily creating a list. + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + Returns the number of qualifier without necessarily creating a list. + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + Removes all qualifiers from the node and sets the options appropriate. + + + qualifier node name to look for + + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + + + Get whether the node has children. + + + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + + Returns whether the node has qualifier attached. + + + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + + Iterator that disallows removal. + + + + Performs a deep clone of the node and the complete subtree. + + + Performs a deep clone of the node and the complete subtree. + if skipEmpty is true, it will not clone node which has empty child and empty value. + If true, it will not clone those nodes with empty value and empty children + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + if skipEmpty is true, it will not clone node which has empty child and empty value. + + the node to add the cloned subtree + If true, it will not clone those nodes with empty value and empty children + + + Renders this node and the tree under this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + Get and set the implicit node flag. + + + + + Get and set whether the node contains aliases (applies only to schema nodes). + + + + + Get and set whether this node is an alias (applies only to schema nodes). + + + + + Get and set whether this node has an rdf:value child node. + + + + + Sorts the XMP node and its children, recursively. + + + Sorting occurs according to the following rules: + + Nodes at one level are sorted by name, that is prefix + local name + Starting at the root node the children and qualifier are sorted recursively, + which the following exceptions. + Sorting will not be used for arrays. + Within qualifier "xml:lang" and/or "rdf:type" stay at the top in that order, + all others are sorted. + + + + + Dumps this node and its qualifier and children recursively. + + Dumps this node and its qualifier and children recursively. + Note: It creates empty options on every node. + FfF: sort schemas and properties on each level if and only if it would increase performance + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Get whether this node is a language qualifier. + + + + + Get whether this node is a type qualifier. + + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + Internal child find. + the child list to search in + the child dictionary ref to initialize or search. Needs to be a ref parameter or it won't update the original Dictionary + the search expression + Returns the found node or null. + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + Utilities for XMPNode. + Stefan Makswit + Aug 28, 2006 + + + Find or create a schema node if createNodes is false and + the root of the xmp tree. + a namespace + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + the parent node + the node name to find + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + Follow an expanded path expression to find or create a node. + the node to begin the search. + the complete xpath + + flag if nodes shall be created + (when called by setProperty()) + + + the options for the created leaf nodes (only when + createNodes == true). + + Returns the node if found or created or null. + + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + FfF: think about moving is to XMPNode... (make removeChild/Qualifier private and + FfF: publish just deleteNode(XMPNode) + + the top-most node to delete. + + + This is setting the value of a leaf node. + an XMPNode + a value + + + Verifies the PropertyOptions for consistency and updates them as needed. + + Verifies the PropertyOptions for consistency and updates them as needed. + If options are null they are created with default values. + FfF: add an kind of autofix options to PropertyOptions and remove this method!!! + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to string, apply special conversions for defined + types in XMP. + + the node value to set + Returns the String representation of the node value. + + + + After processing by ExpandXPath, a step can be of these forms: + + + After processing by ExpandXPath, a step can be of these forms: + + qualName - A top level property or struct field. + [index] - An element of an array. + [last()] - The last element of an array. + [qualName="value"] - An element in an array of structs, chosen by a field value. + [?qualName="value"] - An element in an array, chosen by a qualifier value. + ?qualName - A general qualifier. + + Find the appropriate child node, resolving aliases, and optionally creating nodes. + + the node to start to start from + the xpath segment + + returns the found or created node + + + + Find or create a qualifier node under a given parent node. + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + + Returns the index of th + + + + Make sure the x-default item is first. + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + an alt text array node + + + See if an array is an alt-text array. + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + the array node to check if its an alt-text array + + + Appends a language item to an alt text array. + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + + + Look for an exact match with the specific language. + If a generic language is given, look for partial matches. + Look for an "x-default"-item. + Choose the first item. + + + the alt text array node + the generic language + the specific language + + Returns the kind of match as an Integer and the found node in an + array. + + + + + Looks for the appropriate language item in a text alternative array.item + an array node + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + Stefan Makswit + Aug 18, 2006 + + + caches the correct dc-property array forms + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + Visit all schemas to do general fixes and handle special cases. + the metadata object implementation + Thrown if the normalisation fails. + + + + Undo the denormalization performed by the XMP used in Acrobat 5. + + + If a Dublin Core array had only one item, it was serialized as a simple + property. + + The xml:lang attribute was dropped from an + alt-text item if the language was x-default. + + the DC schema node + Thrown if normalization fails + + + Make sure that the array is well-formed AltText. + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + + the property node of the array to repair. + Forwards unexpected exceptions. + + + Visit all of the top level nodes looking for aliases. + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + Moves an alias node of array form to another schema into an array + the property iterator of the old schema (used to delete the property) + the node to be moved + the base array for the array item + Forwards XMP errors + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + The outermost call is special. + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + + + If there is no dc:rights array, or an empty array - + Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright. + + + If there is a dc:rights array but it has no x-default item - + Create an x-default item as a copy of the first item then apply rule #3. + + + If there is a dc:rights array with an x-default item, + Look for a double linefeed in the value. + + If no double linefeed, compare the x-default value to the xmpDM:copyright value. + + If they match then leave the x-default value alone. + Otherwise, append a double linefeed and the xmpDM:copyright value to the x-default value. + + + If there is a double linefeed, compare the trailing text to the xmpDM:copyright value. + + If they match then leave the x-default value alone. + Otherwise, replace the trailing x-default text with the xmpDM:copyright value. + + + + + In all cases, delete the xmpDM:copyright property. + + + the metadata object + the "dm:copyright"-property + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. + + There is only one singleton instance used by the toolkit, accessed via . + + Stefan Makswit + 27.01.2006 + + + a map from a namespace URI to its registered prefix. + + + a map from a prefix to the associated namespace URI. + + + A map of all registered aliases, from qname to IXmpAliasInfo. + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + Associates an alias name with an actual name. + + Associates an alias name with an actual name. + + Define a alias mapping from one namespace/property to another. Both + property names must be simple names. An alias can be a direct mapping, + where the alias and actual have the same data type. It is also possible + to map a simple alias to an item in an array. This can either be to the + first item in the array, or to the 'x-default' item in an alt-text array. + Multiple alias names may map to the same actual, as long as the forms + match. It is a no-op to reregister an alias in an identical fashion. + Note: This method is not locking because only called by registerStandardAliases + which is only called by the constructor. + Note2: The method is only package-private so that it can be tested with unittests + + The namespace URI for the alias. Must not be null or the empty string. + The name of the alias. Must be a simple name, not null or the empty string and not a general path expression. + The namespace URI for the actual. Must not be null or the empty string. + The name of the actual. Must be a simple name, not null or the empty string and not a general path expression. + Provides options for aliases for simple aliases to array items. This is needed to know what kind of array to create if + set for the first time via the simple alias. Pass XMP_NoOptions, the default value, for all direct aliases regardless of whether the actual + data type is an array or not (see ). + for inconsistant aliases. + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + Stefan Makswit + 11.07.2006 + + + Static method to serialize the metadata object. + + For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so that its possible to + serialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to serialize to + serialization options, can be null for default. + + + + Serializes an XMPMeta-object as RDF into a string. + + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes the XMPMeta-object using the standard RDF serialization format. + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + FfF: Move to XMLStreamWriter (a lot of test would break due to slight format change). + + Stefan Makswit + 11.07.2006 + + + default padding + + + The w/r is missing inbetween + + + a set of all rdf attribute qualifier + + + the metadata object to be serialized. + + + the output stream to serialize to + + + this writer is used to do the actual serialization + + + the stored serialization options + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + The actual serialization. + the metadata object to be serialized + outputStream the output stream to serialize to + the serialization options + If case of wrong options or any other serialization error. + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + Write each of the parent's simple unqualified properties as an attribute. + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns below ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + + <ns:UnqualifiedStructProperty-1 + ... The fields as attributes, if all are simple and unqualified + /> + <ns:UnqualifiedStructProperty-2 rdf:parseType="Resource"> + ... The fields as elements, if none are simple and unqualified + </ns:UnqualifiedStructProperty-2> + <ns:UnqualifiedStructProperty-3> + <rdf:Description + ... The simple and unqualified fields as attributes + > + ... The compound or qualified fields as elements + </rdf:Description> + </ns:UnqualifiedStructProperty-3> + <ns:UnqualifiedArrayProperty> + <rdf:Bag> or Seq or Alt + ... Array items as rdf:li elements, same forms as top level properties + </rdf:Bag> + </ns:UnqualifiedArrayProperty> + <ns:QualifiedProperty rdf:parseType="Resource"> + <rdf:value> ... Property "value" + following the unqualified forms ... </rdf:value> + ... Qualifiers looking like named struct fields + </ns:QualifiedProperty> + + *** Consider numbered array items, but has compatibility problems. + Consider qualified form with rdf:Description and attributes. + + the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. + + + Serializes a simple property. + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + Serializes an array property. + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + Serializes a struct property. + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes one schema with all contained properties in pretty-printed manner. + + + Each schema's properties are written to a single + rdf:Description element. All of the necessary namespaces are declared in + the rdf:Description element. The baseIndent is the base level for the + entire serialization, that of the x:xmpmeta element. An xml:lang + qualifier is written as an attribute of the property start tag, not by + itself forcing the qualified property form. + + <rdf:Description rdf:about="TreeName" xmlns:ns="URI" ... > + ... The actual properties of the schema, see SerializePrettyRDFProperty + <!-- ns1:Alias is aliased to ns2:Actual --> ... If alias comments are wanted + </rdf:Description> + + + a schema node + + Forwarded writer exceptions + + + + Writes all used namespaces of the subtree in node to the output. + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursively traversed. + + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + Start the outer rdf:Description element, including all needed xmlns attributes. + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + Write the </rdf:Description> end tag. + + + + Recursively handles the "value" for a node. + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + + <ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty> + <ns:UnqualifiedStructProperty> (If no rdf:resource qualifier) + <rdf:Description> + ... Fields, same forms as top level properties + </rdf:Description> + </ns:UnqualifiedStructProperty> + <ns:ResourceStructProperty rdf:resource="URI" + ... Fields as attributes + > + <ns:UnqualifiedArrayProperty> + <rdf:Bag> or Seq or Alt + ... Array items as rdf:li elements, same forms as top level properties + </rdf:Bag> + </ns:UnqualifiedArrayProperty> + <ns:QualifiedProperty> + <rdf:Description> + <rdf:value> ... Property "value" following the unqualified + forms ... </rdf:value> + ... Qualifiers looking like named struct fields + </rdf:Description> + </ns:QualifiedProperty> + + + the property node + property shall be rendered as attribute rather than tag + + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. + + + Writes the array start and end tags. + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + Serializes the node value in XML encoding. + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + A node can be serialized as RDF-Attribute, if it meets the following conditions: + + is not array item + don't has qualifier + is no URI + is no composite property + + + an XMPNode + Returns true if the node serialized as RDF-Attribute + + + Writes indents and automatically includes the base indent from the options. + number of indents to write + forwards exception + + + Writes an int to the output. + an int + forwards writer exceptions + + + Writes a char to the output. + a char + forwards writer exceptions + + + Writes a String to the output. + a String + forwards writer exceptions + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + Writes a newline according to the options. + Forwards exception + + + Stefan Makswit + 11.08.2006 + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + See . + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: Include aliases in the + "named schema" case above. + + If metadata processing fails + + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. + Forwards the Exceptions from the metadata processing + + + Remove all schema children according to the flag doAllProperties. + Empty schemas are automatically remove by XMPNode. + a schema node + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + The destination XMP object. + the source node + the parent of the destination node + + Replace the values of existing properties. + flag if properties with empty values should be deleted in the destination object. + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + Make sure the separator is OK. + + Separators must be one semicolon surrounded by zero or more spaces. Any of the recognized semicolons or spaces are allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + opened and closing quote in a string + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + a char + Return the character kind. + + + the open quote char + Returns the matching closing quote for an open quote. + + + Add quotes to the item. + the array item + the open quote character + the closing quote character + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + + U+0022 ASCII space + U+3000, ideographic space + U+303F, ideographic half fill space + U+2000..U+200B, en quad through zero width space + + + + + + + U+002C, ASCII comma + U+FF0C, full width comma + U+FF64, half width ideographic comma + U+FE50, small comma + U+FE51, small ideographic comma + U+3001, ideographic comma + U+060C, Arabic comma + U+055D, Armenian comma + + + + + + + U+003B, ASCII semicolon + U+FF1B, full width semicolon + U+FE54, small semicolon + U+061B, Arabic semicolon + U+037E, Greek "semicolon" (really a question mark) + + + + + + + U+0022 ASCII quote + U+00AB and U+00BB, guillemet quotes + U+3008..U+300F, various quotes + U+301D..U+301F, double prime quotes + U+2015, dash quote + U+2018..U+201F, various quotes + U+2039 and U+203A, guillemet quotes + + + + The square brackets are not interpreted as quotes anymore (bug #2674672) + (ASCII '[' (0x5B) and ']' (0x5D) are used as quotes in Chinese and + Korean.)
+
+
+ + + + U+0000..U+001F ASCII controls + U+2028, line separator + U+2029, paragraph separator + + + + + Moves the specified Property from one Meta to another. + Meta Object from where the property needs to move + Meta Object to where the property needs to move + Schema of the specified property + Name of the property + true in case of success otherwise false. + + + estimates the size of an xmp node + XMP Node Object + the estimated size of the node + + + Utility function for placing objects in a Map. It behaves like a multi map. + A Map object which takes int as a key and list of list of string as value + A key for the map + A value for the map + + + Utility function for retrieving biggest entry in the multimap + see EstimateSizeForJPEG for size calculation + A Map object which takes int as a key and list of list of string as value + the list with the maximum size. + + + Utility function for creating esimated size map for different properties of XMP Packet. + see PackageForJPEG + Meta Object whose property sizes needs to calculate. + A treeMap Object which takes int as a key and list of list of string as values + + + Utility function for moving the largest property from One XMP Packet to another. + see MoveOneProperty and PackageForJPEG + Meta Object from where property moves. + Meta Object to where property moves. + A treeMap Object which holds the estimated sizes of the property of stdXMP as a key and their string representation as map values. + + + creates XMP serializations appropriate for a JPEG file. + + The standard XMP in a JPEG file is limited to 64K bytes. This function + serializes the XMP metadata in an XMP object into a string of RDF.If + the data does not fit into the 64K byte limit, it creates a second packet + string with the extended data. + + The XMP object containing the metadata. + A string object in which to return the full standard XMP packet. + A string object in which to return the serialized extended XMP, empty if not needed. + A string object in which to return an MD5 digest of the serialized extended XMP, empty if not needed. + + + merges standard and extended XMP retrieved from a JPEG file. + + When an extended partition stores properties that do not fit into the + JPEG file limitation of 64K bytes, this function integrates those + properties back into the same XMP object with those from the standard XMP + packet. + + An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object. + An XMP object which the caller has initialized from the extended XMP packet in a JPEG file. + + + modifies a working XMP object according to a template object. + + The XMP template can be used to add, replace or delete properties from + the working XMP object. The actions that you specify determine how the + template is applied.Each action can be applied individually or combined; + if you do not specify any actions, the properties and values in the + working XMP object do not change. + + The destination XMP object. + The template to apply to the destination XMP object. + Option flags to control the copying. If none are specified, + the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: +
    +
  • CLEAR_UNNAMED_PROPERTIES Delete anything that is not in the template.
  • +
  • ADD_NEW_PROPERTIES Add properties; see detailed description.
  • +
  • REPLACE_EXISTING_PROPERTIES Replace the values of existing properties.
  • +
  • REPLACE_WITH_DELETE_EMPTY Replace the values of existing properties and delete properties if the new value is empty.
  • +
  • INCLUDE_INTERNAL_PROPERTIES Operate on internal properties as well as external properties.
  • +
+ +
+ + Marks a struct field step, also for top level nodes (schema "fields"). + + + Marks a qualifier step. + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + Marks an array index step + + + Represents an XMP XmpPath with segment accessor methods. + 28.02.2006 + + + stores the segments of an + + + Append a path segment + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + Serializes the normalized XMP-path. + + + Parser for XMP XPaths. + 01.03.2006 + + + + Split an expression apart at the conceptual steps, adding the + root namespace prefix to the first property component. + + + The schema URI is put in the first (0th) slot in the expanded . + Check if the top level component is an alias, but don't resolve it. + + In the most verbose case steps are separated by '/', and each step can be + of these forms: + + + prefix:name + A top level property or struct field. + + + [index] + An element of an array. + + + [last()] + The last element of an array. + + + [fieldName="value"] + An element in an array of structs, chosen by a field value. + + + [@xml:lang="value"] + An element in an alt-text array, chosen by the xml:lang qualifier. + + + [?qualName="value"] + An element in an array, chosen by a qualifier value. + + + @xml:lang + An xml:lang qualifier. + + + ?qualName + A general qualifier. + + + + The logic is complicated though by shorthand for arrays, the separating + '/' and leading '*' are optional. These are all equivalent: array/*[2] + array/[2] array*[2] array[2] All of these are broken into the 2 steps + "array" and "[2]". + + The value portion in the array selector forms is a string quoted by ''' + or '"'. The value may contain any character including a doubled quoting + character. The value may be empty. + + The syntax isn't checked, but an XML name begins with a letter or '_', + and contains letters, digits, '.', '-', '_', and a bunch of special + non-ASCII Unicode characters. An XML qualified name is a pair of names + separated by a colon. + + schema namespace + property name + Returns the expanded . + Thrown if the format is not correct somehow. + + + + + + + + Parses a struct segment + the current position in the path + The segment or an error + If the segment is empty + + + Parses an array index segment. + the xmp path + Returns the segment or an error + thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + + the root namespace + the parsing position helper + the path to contribute to + If the path is not valid. + + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + a qualifier name + If the name is not conformant + + + Verify if an XML name is conformant. + an XML name + When the name is not XML conformant + + + Set up the first 2 components of the expanded . + + Normalizes the various cases of using + the full schema URI and/or a qualified root property name. Returns true for normal + processing. If allowUnknownSchemaNS is true and the schema namespace is not registered, false + is returned. If allowUnknownSchemaNS is false and the schema namespace is not registered, an + exception is thrown + + (Should someday check the full syntax:) + + schema namespace + the root xpath segment + Returns root QName. + Thrown if the format is not correct somehow. + + + This objects contains all needed char positions to parse. + + + the complete path + + + the start of a segment name + + + the end of a segment name + + + the begin of a step + + + the end of a step + + + A segment of a parsed . + 23.06.2006 + + + Constructor with initial values. + the name of the segment + + + Constructor with initial values. + the name of the segment + the kind of the segment + + + Get and set the kind of the path segment. + + + Get and set the name of the path segment. + + + Get and set whether the segment is an alias. + + + Get and set the alias form, if this segment has been created by an alias. + + + This interface is used to return info about an alias. + Stefan Makswit + 27.01.2006 + + + Gets the namespace URI for the base property. + + + Gets the default prefix for the given base property. + + + Gets the path of the base property. + + + + Gets the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + + The XMPDateTime-class represents a point in time up to a resolution of nanoseconds. + + + Dates and time in the serialized XMP are ISO 8601 strings. There are utility functions + to convert to the ISO format, a Calendar or get the Timezone. The fields of + XMPDateTime are: + + month - The month in the range 1..12. + day - The day of the month in the range 1..31. + minute - The minute in the range 0..59. + hour - The time zone hour in the range 0..23. + minute - The time zone minute in the range 0..59. + nanosecond - The nanoseconds within a second. Note: if the XMPDateTime is + converted into a calendar, the resolution is reduced to milliseconds. + timeZone - a TimeZone-object. + + DateTime values are occasionally used in cases with only a date or only a time component. A date + without a time has zeros for all the time fields. A time without a date has zeros for all date + fields (year, month, and day). + + + + Get and set the year value. Can be negative. + + + Get and set the month, within range 1..12. + + + Get and set the day of the month, within range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Get and set the minute, within range 0..59. + + + Get and set the second, within range 0..59. + + + Get and set the sub-second period, in nanoseconds. + + + Get and set the offset, primarily for ISO8601 converter. + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + Returns a Calendar (only with millisecond precision). + + + Dates before Oct 15th 1585 (which normally fall into validity of + the Julian calendar) are also rendered internally as Gregorian dates. + + + + Returns the ISO 8601 string representation of the date and time. + + + Interface for the XMPMeta iteration services. + + XMPIterator provides a uniform means to iterate over the + schema and properties within an XMP object. + + The iteration over the schema and properties within an XMP object is very + complex. It is helpful to have a thorough understanding of the XMP data tree. + One way to learn this is to create some complex XMP and examine the output of + XMPMeta#toString. This is also described in the XMP + Specification, in the XMP Data Model chapter. + + The top of the XMP data tree is a single root node. This does not explicitly + appear in the dump and is never visited by an iterator (that is, it is never + returned from XMPIterator#next()). Beneath the root are + schema nodes. These are just collectors for top level properties in the same + namespace. They are created and destroyed implicitly. Beneath the schema + nodes are the property nodes. The nodes below a property node depend on its + type (simple, struct, or array) and whether it has qualifiers. + + An XMPIterator is created by XMPMeta#iterator() constructor + defines a starting point for the iteration and options that control how it + proceeds. By default the iteration starts at the root and visits all nodes + beneath it in a depth first manner. The root node is not visited, the first + visited node is a schema node. You can provide a schema name or property path + to select a different starting node. By default this visits the named root + node first then all nodes beneath it in a depth first manner. + + The XMPIterator#next() method delivers the schema URI, path, + and option flags for the node being visited. If the node is simple it also + delivers the value. Qualifiers for this node are visited next. The fields of + a struct or items of an array are visited after the qualifiers of the parent. + + The options to control the iteration are: + + JUST_CHILDREN - Visit just the immediate children of the root. Skip + the root itself and all nodes below the immediate children. This omits the + qualifiers of the immediate children, the qualifier nodes being below what + they qualify, default is to visit the complete subtree. + JUST_LEAFNODES - Visit just the leaf property nodes and their + qualifiers. + JUST_LEAFNAME - Return just the leaf component of the node names. + The default is to return the full xmp path. + OMIT_QUALIFIERS - Do not visit the qualifiers. + INCLUDE_ALIASES - Adds known alias properties to the properties in the iteration. + Note: Not supported in Java or .NET Spire.Xmp! + + + next() returns XMPPropertyInfo-objects and throws + a NoSuchElementException if there are no more properties to + return. + + Stefan Makswit + 25.01.2006 + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + This class represents the set of XMP metadata as a DOM representation. + + It has methods to read and modify all kinds of properties, create an iterator over all properties + and serialize the metadata to a string, byte array or stream. + + Stefan Makswit + 20.01.2006 + + + + The property value getter-methods all take a property specification: the first two parameters + are always the top level namespace URI (the "schema" namespace) and the basic name + of the property being referenced. + + + See the introductory discussion of path expression usage for more information. + + All of the functions return an object inherited from PropertyBase or + null if the property does not exists. The result object contains the value of + the property and option flags describing the property. Arrays and the non-leaf levels of + nodes do not have values. + + See for detailed information about the options. + + This is the simplest property getter, mainly for top level simple properties or after using + the path composition functions in . + + + The namespace URI for the property. May be null or the empty + string if the first component of the propName path contains a namespace prefix. The + URI must be for a registered namespace. + + + The name of the property. May be a general path expression, must not be + null or the empty string. Using a namespace prefix on the first + component is optional. If present without a schemaNS value then the prefix specifies + the namespace. The prefix must be for a registered namespace. If both a schemaNS URI + and propName prefix are present, they must be corresponding parts of a registered + namespace. + + + Returns an containing the value and the options, or + null if the property does not exist. + + Wraps all errors and exceptions that may occur. + + + Provides access to items within an array. + + The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The constant + always refers to the last existing array item. + + + Returns an containing the value and the options or + null if the property does not exist. + + Wraps all errors and exceptions that may occur. + + + Returns the number of items in the array. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + Provides access to fields within a nested structure. + + The namespace for the field is passed as a URI, you need not worry about the path string syntax. + + The names of fields should be XML qualified names, that is within an XML namespace. The path + syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is + never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given + sequence of XML text. + + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + Returns an containing the value and the options or + null if the property does not exist. Arrays and non-leaf levels of + structs do not have values. + + Wraps all errors and exceptions that may occur. + + + Provides access to a qualifier attached to a property. + + The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. + In many regards qualifiers are like struct fields. See the introductory discussion of qualified + properties for more information. + + The names of qualifiers should be XML qualified names, that is within an XML namespace. The + path syntax for a qualified name uses the namespace prefix. This is unreliable since the + prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand + in a given sequence of XML text. + + Note: Qualifiers are only supported for simple leaf properties at this time. + + The namespace URI for the struct. Has the same usage as in . + + The name of the property to which the qualifier is attached. May be a general + path expression, must not be null or the empty string. Has the same + namespace prefix usage as in . + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + Returns an containing the value and the options of the + qualifier or null if the property does not exist. The name of the + qualifier must be a single XML name, must not be null or the empty + string. Has the same namespace prefix usage as the propName parameter. + + The value of the qualifier is only set if it has one (Arrays and non-leaf levels of + structs do not have values). + + Wraps all errors and exceptions that may occur. + + + + The property value setters all take a property specification, their + differences are in the form of this. + + + The first two parameters are always the top level namespace URI (the schema namespace) and + the basic name of the property being referenced. See the introductory discussion of path expression + usage for more information. + + All of the functions take a string value for the property and option flags describing the + property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs + do not have values. Empty arrays and structs may be created using appropriate option flags. + All levels of structs that is assigned implicitly are created if necessary. appendArayItem + implicitly creates the named array if necessary. + + See for detailed information about the options. + + This is the simplest property setter, mainly for top level simple properties or after using + the path composition functions in . + + The namespace URI for the property. Has the same usage as in . + + The name of the property. + Has the same usage as in . + + + the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, and + byte[] are handled, on all other is called. + + Option flags describing the property. See the earlier description. + Wraps all errors and exceptions that may occur. +
+ + + The namespace URI + The name of the property + the value for the property + Wraps all errors and exceptions + + + Replaces an item within an array. + + The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use + + to find + out the length of the array. + + + the new value of the array item. Has the same usage as propValue in + . + + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + The namespace URI + The name of the array + The index to insert the new item + the new value of the array item + Wraps all errors and exceptions + + + Inserts an item into an array previous to the given index. + + The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index to insert the new item. Arrays in XMP are indexed from 1. Use + to append items. + + + the new value of the array item. Has the same usage as + propValue in . + + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the array + The name of the array + The index to insert the new item + the value of the array item + Wraps all errors and exceptions + + + Simplifies the construction of an array by not requiring that you pre-create an empty array. + + The array that is assigned is created automatically if it does not yet exist. Each call to + appendArrayItem() appends an item to the array. The corresponding parameters have the same + use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If + the array exists, it must have the specified form. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be null or + the empty string. Has the same namespace prefix usage as propPath in . + + + Option flags describing the array form. The only valid options are + + , + , + or + . + + Note: the array options only need to be provided if the array is not + already existing, otherwise you can set them to null or use + . + + the value of the array item. Has the same usage as propValue in . + Option flags describing the item to append () + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the array + The name of the array + the value of the array item + Wraps all errors and exceptions + + + Provides access to fields within a nested structure. + + The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in . + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + + + the value of thefield, if the field has a value. + Has the same usage as propValue in . + + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the struct + The name of the struct + The namespace URI for the field + The name of the field + the value of the field + Wraps all errors and exceptions + + + Provides access to a qualifier attached to a property. + + The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. + In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties + for more information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in . + + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the struct + The name of the property to which the qualifier is attached + The namespace URI for the qualifier + The name of the qualifier + the value of the qualifier + Wraps all errors and exceptions + + + Deletes the given XMP subtree rooted at the given property. + It is not an error if the property does not exist. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + + + Deletes the given XMP subtree rooted at the given array item. + It is not an error if the array item does not exist. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. + It is not an error if the field does not exist. + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns true if the property exists. + + + Tells if the array item exists. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last + existing array item. + + Returns true if the array exists, false otherwise. + + + DoesStructFieldExist tells if the struct field exists. + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + Returns true if the field exists. + + + DoesQualifierExist tells if the qualifier exists. + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + Returns true if the qualifier exists. + + + + These functions provide convenient support for localized text properties, including a number + of special and obscure aspects. + + + Localized text properties are stored in alt-text arrays. They + allow multiple concurrent localizations of a property value, for example a document title or + copyright in several languages. The most important aspect of these functions is that they + select an appropriate array item based on one or two RFC 3066 language tags. One of these + languages, the "specific" language, is preferred and selected if there is an exact match. For + many languages it is also possible to define a "generic" language that may be used if there + is no specific language match. The generic language must be a valid RFC 3066 primary subtag, + or the empty string. For example, a specific language of "en-US" should be used in the US, + and a specific language of "en-UK" should be used in England. It is also appropriate to use + "en" as the generic language in each case. If a US document goes to England, the "en-US" + title is selected by using the "en" generic language and the "en-UK" specific language. It is + considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 + primary tag. For example "en" is not a good specific language, it should only be used as a + generic language. Passing "i" or "x" as the generic language is also considered poor practice + but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: + http://www.w3.org/International/articles/language-tags/ + + Note: RFC 3066 language tags must be treated in a case insensitive manner. The XMP + Toolkit does this by normalizing their capitalization: + + The primary subtag is lower case, the suggested practice of ISO 639. + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + All other subtags are lower case. The XMP specification defines an artificial language, + "x-default", that is used to explicitly denote a default item in an alt-text array. + + The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. + The SetLocalizedText function has several special features related to the x-default item, see + its description for details. The selection of the array item is the same for GetLocalizedText + and SetLocalizedText: + + Look for an exact match with the specific language. + If a generic language is given, look for a partial match. + Look for an x-default item. + Choose the first item. + + A partial match with the generic language is where the start of the item's language matches + the generic string and the next character is '-'. An exact match is also recognized as a + degenerate case. It is fine to pass x-default as the specific language. In this case, + selection of an x-default item is an exact match by the first rule, not a selection by the + 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to + produce a match. getLocalizedText returns information about a selected item in + an alt-text array. The array item is selected according to the rules given above. + + + The namespace URI for the alt-text array. Has the same usage as in + . + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in . + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + Returns an containing the value, the actual language and + the options if an appropriate alternate collection item exists, null + if the property. + does not exist. + + Wraps all errors and exceptions that may occur. + + + Modifies the value of a selected item in an alt-text array. + + Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + + The namespace URI for the alt-text array. Has the same usage as in + . + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in . + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the alt-text array + The name of the alt-text array + The name of the generic language + The name of the specific language + the new value for the appropriate array item + Wraps all errors and exceptions + + + + These are very similar to and above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + + + The path composition functions in may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a bool value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns an int value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a long value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a double value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a IXmpDateTime object or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a Calendar-object or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a byte[]-array contained the decoded base64 value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + Note that there is no setPropertyString()z, because sets a string value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a string value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to set a property to a literal boolean value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as boolean + Wraps all exceptions + + + Convenience method to set a property to a literal int value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as int + Wraps all exceptions + + + Convenience method to set a property to a literal long value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as long + Wraps all exceptions + + + Convenience method to set a property to a literal double value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as double + Wraps all exceptions + + + Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date. + The namespace URI for the property. Has the same usage as in. + The name of the property. Has the same usage as in . + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the property value as XMPDateTime + Wraps all exceptions + + + Convenience method to set a property with a Calendar-object, which is serialized to an ISO8601 date. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the property value as Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the property value as Calendar + Wraps all exceptions + + + Convenience method to set a property from a binary byte[]-array, which is serialized as base64-string. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as byte array + Wraps all exceptions + + + Constructs an enumerable for the properties within this XMP object. + Wraps all errors and exceptions that may occur. + + + This correlates to the about-attribute, returns the empty String if no name is set. + Returns the name of the XMP object. + + + Sets the name of the XMP object. + + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Sorts the complete datamodel according to the following rules: + + Schema nodes are sorted by prefix. + Properties at top level and within structs are sorted by full name, that is prefix + local name. + Array items are not sorted, even if they have no certain order such as bags. + Qualifier are sorted, with the exception of "xml:lang" and/or "rdf:type" that stay at the top of the list in that order. + + + + + Perform the normalization as a separate parsing step. + + Normally it is done during parsing, unless is set to true. + + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + Renders this node and the tree under this node in a human readable form. + Returns a multiline string containing the dump. + + + Models a a text property together with its language and options. + Stefan Makswit + 23.01.2006 + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + + Returns the language of the alt-text item. + + + Models a property together with its path and namespace. + Instances of this type are are iterated via . + Stefan Makswit + 06.07.2006 + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + The schema registry keeps track of all namespaces and aliases used in the XMP + metadata. + + + At initialisation time, the default namespaces and default aliases + are automatically registered. Namespaces must be registered before + used in namespace URI parameters or path expressions. Within the XMP Toolkit + the registered namespace URIs and prefixes must be unique. Additional + namespaces encountered when parsing RDF are automatically registered. The + namespace URI should always end in an XML name separator such as '/' or '#'. + This is because some forms of RDF shorthand catenate a namespace URI with an + element name to form a new URI. + + Aliases in XMP serve the same purpose as Windows file shortcuts, + Macintosh file aliases, or UNIX file symbolic links. The aliases are simply + multiple names for the same property. One distinction of XMP aliases is that + they are ordered, there is an alias name pointing to an actual name. The + primary significance of the actual name is that it is the preferred name for + output, generally the most widely recognized name. + + The names that can be aliased in XMP are restricted. The alias must be a top + level property name, not a field within a structure or an element within an + array. The actual may be a top level property name, the first element within + a top level array, or the default element in an alt-text array. This does not + mean the alias can only be a simple property. It is OK to alias a top level + structure or array to an identical top level structure or array, or to the + first item of an array of structures. + + Stefan Makswit + 27.01.2006 + + + Register a namespace URI with a suggested prefix. + + It is not an error if the URI is already registered, no matter what the prefix is. + If the URI is not registered but the suggested prefix is in use, a unique prefix is + created from the suggested one. The actual registered prefix is always + returned. The function result tells if the registered prefix is the + suggested one. + + Note: No checking is presently done on either the URI or the prefix. + + The URI for the namespace. Must be a valid XML URI. + + The suggested prefix to be used if the URI is not yet + registered. Must be a valid XML name. + + + Returns the registered prefix for this URI, is equal to the + suggestedPrefix if the namespace hasn't been registered before, + otherwise the existing prefix. + + If the parameters are not accordingly set + + + Obtain the prefix for a registered namespace URI. + + It is not an error if the namespace URI is not registered. + + + The URI for the namespace. Must not be null or the empty + string. + + Returns the prefix registered for this namespace URI or null. + + + Obtain the URI for a registered namespace prefix. + + It is not an error if the namespace prefix is not registered. + + + The prefix for the namespace. Must not be null or the empty + string. + + Returns the URI registered for this prefix or null. + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + Deletes a namespace from the registry. + + Does nothing if the URI is not registered, or if the namespaceURI + parameter is null or the empty string. + + Note: Not yet implemented. + + The URI for the namespace. + + + Determines if a name is an alias, and what it is aliased to. + + The namespace URI of the alias. Must not be null or the empty string. + + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + + + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + Searches for registered aliases. + an XML conform qname + + Returns if an alias definition for the given qname to another + schema and property is registered. + + + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + XMP Toolkit Version Information. + + Version information for the XMP toolkit is available at runtime via . + + Stefan Makswit + 23.01.2006 + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + Options for XMPSchemaRegistryImpl#registerAlias. + Stefan Makswit + 20.02.2006 + + + This is a direct mapping. + This is a direct mapping. The actual data type does not matter. + + + The actual is an unordered array, the alias is to the first element of the array. + + + The actual is an ordered array, the alias is to the first element of the array. + + + The actual is an alternate array, the alias is to the first element of the array. + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + + Returns a object + + If the options are not consistant. + + + Options for XMPIterator construction. + Stefan Makswit + 24.01.2006 + + + Just do the immediate children of the root, default is subtree. + + + Just do the leaf nodes, default is all nodes in the subtree. + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + Return just the leaf part of the path, default is the full path. + + + Omit all qualifiers. + + + The base class for a collection of 32 flag bits. + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + Stefan Makswit + 24.01.2006 + + + the internal int containing all options + + + a map containing the bit names + + + The default constructor. + + + Constructor with the options bit mask. + the options bit mask + If the options are not correct + + + Resets the options. + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + Is friendly to access it during the tests. + Returns the options. + + + The options to set. + If the options are not correct + + + Creates a human readable string from the set options. + + Note: This method is quite expensive and should only be used within tests or as + + + Returns a string listing all options that are set to true by their name, + like "option1 | option4". + + + + Returns the options as hex bitmask. + + + To be implemented by inheritants. + Returns a bit mask where all valid option bits are set. + + + To be implemented by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + The inheriting option class can do additional checks on the options. + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + Checks options before they are set. + + First it is checked if only defined options are used, second the additional + -method is called. + + the options to check + Thrown if the options are invalid. + + + Looks up or asks the inherited class for the name of an option bit. + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + Options for . + + Stefan Makswit + 24.01.2006 + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + Do not reconcile alias differences, throw an exception instead. + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + Disallow DOCTYPE declarations to prevent entity expansion attacks. + + + Map of nodes whose children are to be limited. + + + Sets the options to the default values. + + + Returns true if some XMP nodes have been limited. + + + the Map with name of nodes and number-of-items to limit them to + Returns the instance to call more set-methods. + + + Returns map containing names oF XMP nodes to limit and number-of-items limit corresponding to the XMP nodes. + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + Stefan Makswit + 03.07.2006 + + + may be used in the future + + + Default constructor + + + Initialization constructor + the initialization options + If the options are not valid + + + + Get and set whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + + Return whether this property is an array with a limit on number-of-elements. + + + the limit to set on number-of-elements + Returns this to enable cascaded options. + + + Returns the current limit on number-of-elements + + + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Compares two options set for array compatibility. + other options + Returns true if the array options of the sets are equal. + + + Merges the set options of a another options object with this. + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + + other options + If illegal options are provided + + + Returns true if only array options are set. + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + /// Stefan Makswit + 24.01.2006 + + + Bit indicating little endian encoding, unset is big endian + + + Bit indication UTF16 encoding. + + + UTF8 encoding; this is the default + + + Default constructor. + + + Constructor using initial options + the initial options + Thrown if options are not consistent. + + + Omit the XML packet wrapper. + + + Omit the <x:xmpmeta> tag. + + + Mark packet as read-only. + Default is a writeable packet. + + + Use a compact form of RDF. + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + Use the canonical form of RDF if set. + By default the compact form is used. + + + Serialize as "Plain XMP", not RDF. + + + Include a padding allowance for a thumbnail image. + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + The padding parameter provides the overall packet length. + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + Sort the struct properties and qualifier before serializing + + + UTF16BE encoding + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + The string to be used as a line terminator. + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + The amount of padding to be added if a writeable XML packet is created. + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + Returns the text encoding to use. + + + Returns clone of this SerializeOptions-object with the same options set. + + + + Options for . + + Stefan Makswit + 24.01.2006 + + + Default constructor. + + + Constructor using initial options + the initial options + Thrown if options are not consistent. + + + + + + + + + + + + + + + + + + Returns clone of this TemplateOptions-object with the same options set. + + + + http://grepcode.com/file_/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/io/PushbackReader.java/?v=source + + + + Stefan Makswit + + + The XML namespace for XML. + + + The XML namespace for RDF. + + + The XML namespace for the Dublin Core schema. + + + The XML namespace for the IPTC Core schema. + + + The XML namespace for the IPTC Extension schema. + + + The XML namespace for the DICOM medical schema. + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + The XML namespace Adobe XMP Metadata. + + + The XML namespace for the XMP "basic" schema. + + + The XML namespace for the XMP copyright schema. + + + The XML namespace for the XMP digital asset management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the Photoshop custom schema. + + + The XML namespace for the Photoshop Album schema. + + + The XML namespace for Adobe's EXIF schema. + + + NS for the CIPA XMP for Exif document v1.1 + + + The XML namespace for Adobe's TIFF schema. + + + BExt Schema + + + RIFF Info Schema + + + Transform XMP + + + Adobe Flash SWF + + + Adobe Creative Cloud Video + + + legacy Dublin Core NS, will be converted to NS_DC + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + The XML namespace for fields of the Dimensions type. + + + The XML namespace for fields of a graphical image. + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + The XML namespace for fields of the ResourceEvent type. + + + The XML namespace for fields of the ResourceRef type. + + + The XML namespace for fields of the Version type. + + + The XML namespace for fields of the JobRef type. + + + The canonical true string value for Booleans in serialized XMP. + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + The canonical false string value for Booleans in serialized XMP. + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + Index that has the meaning to be always the last item in an array. + + + Node name of an array item. + + + The x-default string for localized properties + + + xml:lang qualifier + + + rdf:li syntaxTerm + + Does not appear in the original Java version. Added because of its usage in + ParseRdf.cs and XmpNode.cs when string-comparing for array items. + + + + rdf:type qualifier + + + Processing Instruction (PI) for xmp packet + + + XMP meta tag version new + + + XMP meta tag version old + + + + A factory to create instances from a or an + ISO 8601 string or for the current time. + + Stefan Makswit + 16.02.2006 + + + Creates an from a -object. + a -object. + An -object. + + + Creates an empty -object. + Returns an -object. + + + Creates an -object from initial values. + years + months from 1 to 12 (Remember that the month in is defined from 0 to 11) + days + Returns an -object. + + + Creates an -object from initial values. + years + months from 1 to 12 (Remember that the month in is defined from 0 to 11) + days + hours + minutes + seconds + nanoseconds + Returns an -object. + + + Creates an from an ISO 8601 string. + The ISO 8601 string representation of the date/time. + An -object. + When the ISO 8601 string is non-conform + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Make sure a time is local. + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the variable containing the time to be modified. + Returns an updated -object. + + + Stefan Makswit + + + This code is introduced by Java. + + + This exception wraps all errors that occur in the XMP Toolkit. + Stefan Makswit + 16.02.2006 + + + Gets the error code of the XMP toolkit. + + + Constructs an exception with a message and an error code. + the message + the error code + + + Constructs an exception with a message, an error code and an inner exception. + the error message. + the error code + the exception source + + + Parses and serialises instances. + Stefan Makswit + 30.01.2006 + + + Returns the singleton instance of the . + + + Returns an empty instance. + + + + These functions support parsing serialized RDF into an XMP object, and serializing an XMP + object into RDF. + + + These functions support parsing serialized RDF into an XMP object, and serializing an XMP + object into RDF. The input for parsing may be any valid Unicode + encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization + is always as UTF-8. + + parseFromBuffer() parses RDF from an Stream. The encoding + is recognized automatically. + + an Stream + Options controlling the parsing. + The available options are: + + XMP_REQUIRE_XMPMETA - The <x:xmpmeta> XML element is required around <rdf:RDF>. + XMP_STRICT_ALIASING - Do not reconcile alias differences, throw an exception. + + Note: The XMP_STRICT_ALIASING option is not yet implemented. + + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Creates an XMPMeta-object from a string. + + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Creates an XMPMeta-object from a byte-buffer. + + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Serializes an XMPMeta-object as RDF into an OutputStream. + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a string. + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serialization errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + Resets the schema registry to its original state (creates a new one). + + Resets the schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purposes. + + + + Obtain version information. + + + Utility services for the metadata object. + + It has only public static functions, you cannot create + an object. These are all functions that layer cleanly on top of the core XMP toolkit. + + These functions provide support for composing path expressions to deeply nested properties. The + functions XMPMeta such as GetProperty(), + getArrayItem() and getStructField() provide easy access to top + level simple properties, items in top level arrays, and fields of top level structs. They do not + provide convenient access to more complex things like fields several levels deep in a complex + struct, or fields within an array of structs, or items of an array that is a field of a struct. + These functions can also be used to compose paths to top level array items or struct fields so + that you can use the binary accessors like getPropertyAsInteger(). + + You can use these functions is to compose a complete path expression, or all but the last + component. Suppose you have a property that is an array of integers within a struct. You can + access one of the array items like this: + + + string path = XmpPathFactory.ComposeStructFieldPath(schemaNS, "Struct", fieldNS, "Array"); + string path += XmpPathFactory.ComposeArrayItemPath(schemaNS, "Array", index); + PropertyInteger result = xmpObj.GetPropertyAsInteger(schemaNS, path); + + You could also use this code if you want the string form of the integer: + + String path = XmpPathFactory.ComposeStructFieldPath (schemaNS, "Struct", fieldNS, + "Array"); + PropertyText xmpObj.GetArrayItem (schemaNS, path, index); + + + Note: It might look confusing that the schemaNS is passed in all of the calls above. + This is because the XMP toolkit keeps the top level "schema" namespace separate from + the rest of the path expression. + Note: These methods are much simpler than in the C++-API, they don't check the given + path or array indices. + + Stefan Makswit + 25.01.2006 + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNS and + "i" is the decimal representation of itemIndex. + + Throws exception if index zero is used. + + + Compose the path expression for a field in a struct. + The namespace URI for the field. Must not be null or the empty string. + The name of the field. Must be a simple XML name, must not be null or the empty string. + + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNS and "fNS" is the prefix for fieldNS. + + Thrown if the path to create is not valid. + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + + + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + + + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNS and "qNS" is the prefix for qualNS. + + Thrown if the path to create is not valid. + + + Compose the path expression to select an alternate item by language. + + The path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNS. + + + + Compose the path expression to select an alternate item by a field's value. + + The path syntax allows two forms of "content addressing" that may be used to select an item in an + array of alternatives. The form used in ComposeFieldSelector lets you select an item in an + array of structs based on the value of one of the fields in the structs. The other form of + content addressing is shown in ComposeLangSelector. For example, consider a simple struct + that has two fields, the name of a city and the URI of an FTP site in that city. Use this to + create an array of download alternatives. You can show the user a popup built from the values + of the city fields. You can then get the corresponding URI as follows: + + + String path = composeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity ); + XMPProperty prop = xmpObj.getStructField ( schemaNS, path, fieldNS, "URI" ); + + + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The namespace URI for the field used as the selector. Must not be + null or the empty string. + + + The name of the field used as the selector. Must be a simple XML name, must + not be null or the empty string. It must be the name of a field that is + itself simple. + + The desired value of the field. + + Returns the composed path. This will be of the form + ns:arrayName[fNS:fieldName='fieldValue'], where "ns" is the + prefix for schemaNS and "fNS" is the prefix for fieldNS. + + Thrown if the path to create is not valid. + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + Utility methods for XMP. + Stefan Makswit + 21.02.2006 + + + Create a single edit string from an array of strings. + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + Separate a single edit string into an array of strings. + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + Remove multiple properties from an XMP object. + + Remove multiple properties from an XMP object. + RemoveProperties was created to support the File Info dialog's Delete + button, and has been been generalized somewhat from those specific needs. + It operates in one of three main modes depending on the schemaNS and + propName parameters: + + Non-empty schemaNS and propName - The named property is + removed if it is an external property, or if the + flag doAllProperties option is true. It does not matter whether the + named property is an actual property or an alias. + Non-empty schemaNS and empty propName - The all external + properties in the named schema are removed. Internal properties are also + removed if the flag doAllProperties option is set. In addition, + aliases from the named schema will be removed if the flag includeAliases + option is set. + Empty schemaNS and empty propName - All external properties in + all schema are removed. Internal properties are also removed if the + flag doAllProperties option is passed. Aliases are implicitly handled + because the associated actuals are internal if the alias is. + + It is an error to pass an empty schemaNS and non-empty propName. + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: + Include aliases in the "named schema" case above. + Note: Currently not supported. + + Forwards the Exceptions from the metadata processing + + + Append properties from one XMP object to another. + + Append properties from one XMP object to another. + XMPUtils#appendProperties was created to support the File Info dialog's Append button, and + has been been generalized somewhat from those specific needs. It appends information from one + XMP object (source) to another (dest). The default operation is to append only external + properties that do not already exist in the destination. The flag + doAllProperties can be used to operate on all properties, external and internal. + The flag replaceOldValues option can be used to replace the values + of existing properties. The notion of external + versus internal applies only to top level properties. The keep-or-replace-old notion applies + within structs and arrays as described below. + + If replaceOldValues is true then the processing is restricted to the top + level properties. The processed properties from the source (according to + doAllProperties) are propagated to the destination, + replacing any existing values.Properties in the destination that are not in the source + are left alone. + If replaceOldValues is not passed then the processing is more complicated. + Top level properties are added to the destination if they do not already exist. + If they do exist but differ in form (simple/struct/array) then the destination is left alone. + If the forms match, simple properties are left unchanged while structs and arrays are merged. + If deleteEmptyValues is passed then an empty value in the source XMP causes + the corresponding destination XMP property to be deleted. The default is to treat empty + values the same as non-empty values. An empty value is any of a simple empty string, an array + with no items, or a struct with no fields. Qualifiers are ignored. + + + The detailed behavior is defined by the following pseudo-code: + + appendProperties ( sourceXMP, destXMP, doAllProperties, + replaceOldValues, deleteEmptyValues ): + for all source schema (top level namespaces): + for all top level properties in sourceSchema: + if doAllProperties or prop is external: + appendSubtree ( sourceNode, destSchema, replaceOldValues, deleteEmptyValues ) + appendSubtree ( sourceNode, destParent, replaceOldValues, deleteEmptyValues ): + if deleteEmptyValues and source value is empty: + delete the corresponding child from destParent + else if sourceNode not in destParent (by name): + copy sourceNode's subtree to destParent + else if replaceOld: + delete subtree from destParent + copy sourceNode's subtree to destParent + else: + // Already exists in dest and not replacing, merge structs and arrays + if sourceNode and destNode forms differ: + return, leave the destNode alone + else if form is a struct: + for each field in sourceNode: + AppendSubtree ( sourceNode.field, destNode, replaceOldValues ) + else if form is an alt-text array: + copy new items by "xml:lang" value into the destination + else if form is an array: + copy new items by value into the destination, ignoring order and duplicates + + Note: appendProperties can be expensive if replaceOldValues is not passed and + the XMP contains large arrays. The array item checking described above is n-squared. + Each source item is checked to see if it already exists in the destination, + without regard to order or duplicates. + Simple items are compared by value and "xml:lang" qualifier, other qualifiers are ignored. + Structs are recursively compared by field names, without regard to field order. Arrays are + compared by recursively comparing all items. + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. + Forwards the Exceptions from the metadata processing + + + Convert from string to Boolean. + The string representation of the Boolean. + + The appropriate boolean value for the string. The checked values + for true and false are: + + and + "t" and "f" + "on" and "off" + "yes" and "no" + "value <> 0" and "value == 0" + + + If an empty string is passed. + + + Convert from boolean to string. + a boolean value + + The XMP string representation of the boolean. The values used are + given by the constants and + . + + + + Converts a string value to an int. + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + an int value + The string representation of the int. + + + Converts a string value to a long. + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to a double. + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to an XMPDateTime. + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + an XMPDateTime + The string representation of the long. + + + Convert from a byte array to a base64 encoded string. + the byte array to be converted + Returns the base64 string. + + + Decode from Base64 encoded string to raw data. + a base64 encoded string + Returns a byte array containing the decoded string. + Thrown if the given string is not property base64 encoded + + + Creates XMP serializations appropriate for a JPEG file. + The standard XMP in a JPEG file is limited to 64K bytes. This function + serializes the XMP metadata in an XMP object into a string of RDF . If + the data does not fit into the 64K byte limit, it creates a second packet + string with the extended data. + The XMP object containing the metadata. + A string builder object in which to return the full standard XMP packet. + A string builder object in which to return the serialized extended XMP, empty if not needed. + A string builder object in which to return an MD5 digest of the serialized extended XMP, empty if not needed. + @throws NoSuchAlgorithmException if fail to find algorithm for MD5 + Forwards the Exceptions from the metadata processing + + + Merges standard and extended XMP retrieved from a JPEG file. + When an extended partition stores properties that do not fit into the + JPEG file limitation of 64K bytes, this function integrates those + properties back into the same XMP object with those from the standard XMP + packet. + An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object. + An XMP object which the caller has initialized from the extended XMP packet in a JPEG file. + Forwards the Exceptions from the metadata processing + + + Modifies a working XMP object according to a template object. + + The XMP template can be used to add, replace or delete properties from + the working XMP object. The actions that you specify determine how the + template is applied.Each action can be applied individually or combined; + if you do not specify any actions, the properties and values in the + working XMP object do not change. + + These actions are available: + + Clear CLEAR_UNNAMED_PROPERTIES : Deletes top-level + properties.Any top-level property that is present in the template(even + with empty value) is retained.All other top-level properties in the + working object are deleted + Add ADD_NEW_PROPERTIES: Adds new properties to the + working object if the template properties have values.See additional + detail below. + Replace REPLACE_EXISTING_PROPERTIES: Replaces the + values of existing top-level properties in the working XMP if the value + forms match those in the template. Properties with empty values in the + template are ignored. If combined with Clear or Add actions, those take + precedence; values are cleared or added, rather than replaced. + Replace/Delete empty REPLACE_WITH_DELETE_EMPTY: + Replaces values in the same way as the simple Replace action, and also + deletes properties if the value in the template is empty.If combined + with Clear or Add actions, those take precedence; values are cleared or + added, rather than replaced. + Include internal INCLUDE_INTERNAL_PROPERTIES: Performs + specified action on internal properties as well as external properties. + By default, internal properties are ignored for all actions. + + + The Add behavior depends on the type of property: + + If a top-level property is not in the working XMP, and has a value in + the template, the property and value are added.Empty properties are not + added. + If a property is in both the working XMP and template, the value + forms must match, otherwise the template is ignored for that property. + If a struct is present in both the working XMP and template, the + individual fields of the template struct are added as appropriate; that + is, the logic is recursively applied to the fields.Struct values are + equivalent if they have the same fields with equivalent values. + If an array is present in both the working XMP and template, items + from the template are added if the value forms match. Array values match + if they have sets of equivalent items, regardless of order. + Alt-text arrays use the \c xml:lang qualifier as a key, adding languages that are missing. + + + Array item checking is n-squared; this can be time-intensive if the + Replace option is not specified.Each source item is checked to see if it + already exists in the destination, without regard to order or duplicates. + Simple items are compared by value and xml:lang qualifier; + other qualifiers are ignored.Structs are recursively compared by field + names, without regard to field order.Arrays are compared by recursively + comparing all items. + + The destination XMP object. + The template to apply to the destination XMP object. + Option flags to control the copying. If none are specified, + the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: + + CLEAR_UNNAMED_PROPERTIES Delete anything that is not in the template + ADD_NEW_PROPERTIES Add properties; see detailed description. + REPLACE_EXISTING_PROPERTIES Replace the values of existing properties. + REPLACE_WITH_DELETE_EMPTY Replace the values of existing properties and delete properties if the new value is empty. + INCLUDE_INTERNAL_PROPERTIES Operate on internal properties as well as external properties. + + + Forwards the Exceptions from the metadata processing + + + Replicate a subtree from one XMP object into another, possibly at a + different location. + The source XMP object. + The destination XMP object. + The schema namespace URI for the source subtree. + The root location for the source subtree. May be a general path expression, must not be null or the empty string. + The schema namespace URI for the destination. Defaults to the source namespace. + The root location for the destination. May be a general path expression. Defaults to the source location. + Option flags to control the separation. (For now, this argument is ignored. 0 should be passed. + Forwards the Exceptions from the metadata processing + + + + Compression level. + + + + + Represents the compressed stream writer + + + + + Type of the block. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Data.SQLite.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Data.SQLite.dll new file mode 100644 index 0000000..6a9fdec Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Data.SQLite.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Data.SQLite.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Data.SQLite.xml new file mode 100644 index 0000000..9b2e7b6 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Data.SQLite.xml @@ -0,0 +1,22383 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + For a given intrinsic type, return a DbType + + The native type to convert + The corresponding (closest match) DbType + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + This method attempts to query the flags associated with the database + connection in use. If the database connection is disposed, the default + flags will be returned. + + + The command containing the databse connection to query the flags from. + + + The connection flags value. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + NoDefaultFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" connection string property + was used. When this value is non-zero, + will retain treatment of the password as a NUL-terminated text string. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default databse type for this connection. This value will only + be used if the + flag is set. + + + + + The default databse type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Attempts to decrypt a database file that was encrypted using the legacy CryptoAPI-based + RC4 codec that was previously included with System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + SQL statement text as the statement first begins executing + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Reads the next row from the resultset + + True if a new row was successfully loaded and is ready for processing + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callbakc function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for collating sequences + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being resitered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The flags associated with the parent connection object. + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it is + set by the method on its first call. Later, it + is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + method. + On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Call calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Runtime.CompilerServices.Unsafe.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..1908d92 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Runtime.CompilerServices.Unsafe.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..b5dd21b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,258 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + + + + + + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Bypasses definite assignment rules for a given value. + The uninitialized object. + The type of the uninitialized object. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + + is , and is a non-nullable value type. + + is not a boxed value type. + +-or- + + is not a boxed . + + cannot be found. + A to the boxed value . + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/TerminalConfigValue.json b/采集器3.5框架封装包2023-10-26/调度器/Debug/TerminalConfigValue.json new file mode 100644 index 0000000..e69de29 diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/TerminalNameConfig.json b/采集器3.5框架封装包2023-10-26/调度器/Debug/TerminalNameConfig.json new file mode 100644 index 0000000..e69de29 diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/TerminalTypeConfig.json b/采集器3.5框架封装包2023-10-26/调度器/Debug/TerminalTypeConfig.json new file mode 100644 index 0000000..e69de29 diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.dll new file mode 100644 index 0000000..c9f0de7 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.pdb b/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.pdb new file mode 100644 index 0000000..bb41a35 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.xml new file mode 100644 index 0000000..d18acac --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/Win32ApiUtils.xml @@ -0,0 +1,1089 @@ + + + + Win32ApiUtils + + + + + PrintWindow的绘图选项 + + + + + 只有窗口的客户端区域被复制到hdc Blt中。默认情况下,复制整个窗口 + + + + + GetDeviceCap指定返回项 + + + + + 屏幕的高度(光栅线) + + + + + 设备单位的物理页面宽度 + + + + + 设备x轴的比例系数 + + + + + 设备y轴的比例系数 + + + + + TernaryRasterOperations + 位图与目标位图以及图案刷的颜色值进行布尔运算的方式 + + + + + 原图 + + + + + 获取指定设备的性能参数 + + 设备上下文环境的句柄 + 指定返回项 + + + + 为一个设备创建设备上下文环境 + + 1.DISPLAY:屏幕设备 2.WINSPOOL:打印驱动 Or.Null + 所用专门设备的名称。该名由打印管理器分配显示 + Null + 这个结构保存初始值。传递0值则适用默认设置 + + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + _lopen的标志集 + + + + + 以可读、可写的方式打开文件 + + + + + 可打开文件,以便由其他程序读写 + + + + + OpenProcess访问标志 + + + + + 启用VirtualProtectEx和WriteProcessMemory功能中的进程句柄来修改进程的虚拟内存。 + + + + + 启用ReadProcessMemory功能中的进程句柄从进程的虚拟内存读取。 + + + + + 启用WriteProcessMemory功能中的进程句柄来写入进程的虚拟内存。 + + + + + VirtualAllocEx中flAllocationType的标志 + + + + + 该函数在内存页面的指定区域的内存或磁盘上的分页文件中分配实际物理存储。该函数将内存初始化为零。 + + + + + 该函数保留一系列的进程的虚拟地址空间,而不会在内存或磁盘上的页面文件中分配任何实际物理存储。 + + + + + VirtualAllocEx中的保护标志 + + + + + 启用对提交的页面区域的读取和写入权限。 + + + + + VirtualFreeEx的释放标志 + + + + + 该函数释放指定的页面区域。页面进入空闲状态。 + + + + + 打开二进制文件 + + 欲打开文件的名字 + 访问模式和共享模式常数的一个组合 + 如果函数成功,返回值是一个文件句柄。 + + + + 关闭文件句柄 + + + + + 返回现有进程对象的句柄。 + + 想得到的访问权限 + 指定返回的句柄是否可以被继承 + 指定要打开的进程的ID + 进程对象 + + + + 在目标进程地址空间分配内存. + + 在其中分配内存的进程句柄 + 所需的分配起始地址 + 要分配的区域的大小(以字节为单位) + 分配类型 + 访问类型保护 + + + + + 在指定的进程中写入内存。要写入的整个区域必须可访问,否则操作失败。 + + 要写入的进程句柄 + 开始写入地址 + 指向缓冲区的指针写入数据 + 要写入的字节数 + 实际写入的字节数 + + + + 在指定的进程中读取内存。要读取的整个区域必须可访问,否则操作失败。 + + 要读取的进程句柄 + 起始读取地址 + 缓冲区地址放置读取数据 + 要读取的字节数 + 读取到的字节数的地址 + + + + 在指定进程的虚拟地址空间内释放,分解或同时释放内存区域。 + + 要释放内存的进程句柄 + 释放的起始地址 + 大小,以字节为单位的内存区域释放 + 释放类型 + + + + + 函数用来获得当前可用的物理和虚拟内存信息,是GlobalMemoryStatus的64位版本。 + + 用来接收信息的结构 + + + + 强制终结进程 + + 线程句柄 + 结束代码 + 是否成功 + + + + 用于获得系统信息 + + + + + 结构的长度,在使用函数前必须初始化此值 + + + + + 物理内存的使用率(0~100的整数) + + + + + 物理内存的总量,以字节为单位(以下均相同) + + + + + 物理内存的剩余量 + + + + + 系统页面文件大小 + + + + + 系统可用页面文件大小 + + + + + 虚拟内存的总量 + + + + + 虚拟内存的剩余量 + + + + + 保留,值为0 + + + + + 隐藏窗体,并激活另一个窗体 + + + + + 与SW_RESTORE相同 + + + + + 激活并以最小化的形式显示窗体 + + + + + 激活并以最大化的形式显示窗体 + + + + + 最大化指定的窗体 + + + + + 以上次的状态显示指定的窗体,但不激活它 + + + + + 激活窗体,并将其显示在当前的大小和位置上 + + + + + 最小化指定的窗体,并激活另一个窗体 + + + + + 以最小化形式显示指定的窗体,但不激活它 + + + + + 以当前的状态显示指定的窗体,但不激活它 + + + + + 以原本的大小和位置,激活并显示指定的窗体 + + + + + 设置显示的状态由STARTUPINFO结构体指定 + + + + + 运行文件 + + 父窗口句柄,可为0 + 操作类型:"Open" 打开文件,"Print" 打印文件, "explore" 浏览文件夹 + 文件名 + 文件的命令行参数 + 文件所在目录 + 展示方式 + + + + + 获取ComboBox下拉框的所有选项的值 + + ComboBox下拉框的句柄 + ComboBox下拉框的的值列表 + + + + 改变ComboBox下拉框的选择项 + + ComboBox下拉框的句柄 + ComboBox下拉框的序号(从0开始) + + + + 读取ListView任一格子的文本 + + ListView的句柄 + 行,0开始 + 列,0开始 + 文本的编码 + 文本 + + + + 读取TreeView数据 + + TreeView的句柄 + 读取到的数据 + + + + 获取DateTimePicker的显示日期 + + 句柄 + DateTimePicker的显示日期 + + + + 设置DateTimePicker的日期 + + 句柄 + 要设置的日期 + 是否需要点击右方向键 + 输入后的等待,默认为1秒 + + + + 与文件相关的工具类 + + + + + 错误标志 + + + + + 查看文件是否被占用 + + + + + 与键盘相关的工具类 + + + + + 向句柄指向的窗口或控件输入字符串 + + 窗口或控件的句柄 + 要输入的字符串 + + + + 按下指定键 + + 要按下的键 + 等待时间 + + + + 按下指定组合键 + + 长按键 + 短按键 + 等待时间 + + + + 输入字符串, + 以SendInput的键盘事件串形式发送. + + + + + 与鼠标相关的工具类 + + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 鼠标按坐标点击 + + + + + 鼠标按坐标双击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 鼠标按坐标右击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 与显示器有关的工具类 + + + + + 判断是否存在遮挡指定窗口的窗口. + + 指定窗口 + 遮挡住指定窗口的窗口句柄 + + + + 判断是否存在遮挡指定区域的窗口. + + 指定窗口 + 指定区域 + 遮挡住指定区域的窗口句柄 + + + + 获取屏幕缩放系数 + + + + + 提取屏幕截图,根据窗口句柄 + + 句柄 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 提取屏幕截图,根据坐标和大小 + 需要手动将缩放系数适配 + + + + + + + + + + 获取屏幕上指定位置像素点 + + + + + 获取窗口中所有与指定颜色相同的像素点信息 + + 窗口句柄 + 指定颜色 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 获取指定位置中所有与指定颜色相同的像素点信息 + + 左上x轴坐标 + 左上y轴坐标 + 宽度 + 高度 + 指定颜色 + + + + 获取指定图片中所有与指定颜色相同的像素点信息 + + 图片 + 颜色 + 像素点集 + + + + 窗口基本信息 + + + + + 标题 + + + + + 类名 + + + + + 句柄 + + + + + 父窗口句柄 + + + + + 父窗口基本信息 + + + + + 子级 + + + + + 与窗口有关的工具类 + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 向窗口发送关闭信息 + + + + + 获取窗口的矩形信息 + 左上角坐标以及宽高 + + + + + 复制窗口文本到调用者提供的缓冲区. + + 句柄 + 窗口文本 + + + + 以List的形式列出父窗口下所有子窗口的基本信息.(全递归) + + 父窗口句柄 + 递归子窗口基本信息 + + + + 查找符合key条件并返回第一个集合内的窗口信息. + --模糊查询 + 对比Hadnle,ParentHandle,Caption,ClassName + + 遍历的窗口信息集合 + 要找的数据 + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName.精确查询 + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回所有符合条件的集合内的窗口信息 + + 集合 + 所有符合条件的选项 + + + + 坐标结构体 + + + + + 鼠标事件标志 + + + + + 移动鼠标 + + + + + 模拟鼠标左键按下 + + + + + 模拟鼠标左键抬起 + + + + + 鼠标右键按下 + + + + + 鼠标右键抬起 + + + + + 鼠标中键按下 + + + + + 中键抬起 + + + + + 标示是否采用绝对坐标 + + + + + 键盘事件标志 + + + + + 按下 + + + + + 弹起 + + + + + 设置指定窗口的显示状态的标志集 + + + + + 隐藏窗口并激活其他窗口 + + + + + 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志 + + + + + 激活窗口并将其最小化 + + + + + 激活窗口并将其最大化 + + + + + 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态 + + + + + 在窗口原来的位置以原来的尺寸激活和显示窗口 + + + + + 最小化指定的窗口并且激活在Z序中的下一个顶层窗口 + + + + + 窗口最小化,激活窗口仍然维持激活状态 + + + + + 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态 + + + + + 激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志 + + + + + 最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志 + + + + + 发送输入 (SendInput)方法的标志集 + + + + + 鼠标 + + + + + 键盘 + + + + + 硬件 + + + + + 检索到的句柄标识 Z 顺序中最高级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中最低级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口下方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口上方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识指定窗口的所有者窗口(如果有)。 + + + + + 如果指定的窗口是父窗口,则检索到的句柄标识 Z 顺序顶部的子窗口; + 否则,检索到的句柄为 NULL。该函数仅检查指定窗口的子窗口。它不检查后代窗口。 + + + + + 检索到的句柄标识指定窗口拥有的已启用弹出窗口(搜索使用GW_HWNDNEXT找到的第一个此类窗口); + 否则,如果没有启用的弹出窗口,则检索到的句柄是指定窗口的句柄。 + + + + + 操作鼠标 + + 标志集 + x坐标位置 + y坐标位置 + 标志为Wheel值时,设置为滚轮滚动量 + 与鼠标事件相关的附加32位值 + + + + + 移动鼠标到指定位置 + + + + + 操作键盘 + + 键值 + 该键的硬件扫描码 + 标志位集 + 与击键相关的附加的32位值 + + + + 操作键盘或者鼠标, + 将指定事件串插入键盘或鼠标输入流. + + pInputs的数量 + 事件串 + SendInputParm结构的字节大小 + + + + 将一个字符翻译成相应的虚拟键码和对于当前键盘的转换状态 + + + + + 检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换) + + 定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9), + nVirtKey必须被置为相应字符的ASCII码值,对于其他的键,nVirtKey必须是一虚拟键码。 + 若使用非英语键盘布局,则取值在ASCIIa~z和0~9的虚拟键被用于定义绝大多数的字符键。 + 例如,对于德语键盘格式,值为ASCII0(OX4F)的虚拟键指的是”0″键,而VK_OEM_1指”带变音的0键” + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 获取桌面句柄 + + + + + + 寻找顶级窗口 + + 窗口的类名 + 窗口的标题 + + + + + 寻找与指定条件相符的第一个子窗口 + + 父窗口句柄.若为0则以桌面窗口为父窗口并查找所有的子窗口 + 子窗口句柄,指示查找从此子窗口句柄的下一个开始 + 类名 + 标题 + + + + + 枚举子窗口 + + 父窗口句柄 + 回调.true为继续遍历,false为停止遍历 + 附加值 + + + + + 获取父窗口句柄 + + + + + 获取窗口标题的长度 + + + + + 获取窗口标题 + + 句柄 + 用来返回的字符串 + 最大长度 + + + + 获取窗口类名 + + 窗口句柄 + 用来返回的字符串 + 最大长度 + + + + + 返回指定窗口的边框矩形的大小. + 为四个角的坐标. + + 窗口句柄 + 传回的窗口矩形信息 + + + + 获取窗口所在的进程ID + + 窗口句柄 + 进程ID返回值 + + + + 获得指定窗口的可视状态 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + 根据坐标获取窗口句柄 + + 坐标信息 + 窗口句柄 + + + + 检索与指定窗口具有指定关系(Z 顺序或所有者)的窗口的句柄。 + + 窗口的手柄。检索到的窗口句柄基于 uCmd 参数的值相对于此窗口。 + 指定窗口与要检索其句柄的窗口之间的关系。 + + + + + 该函数对指定的窗口设置键盘焦点。该窗口必须与调用线程的消息队列相关。 + + + + + + + 将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号 + + + + + + 取前台窗口的句柄(用户当前工作的窗口) + 在某些情况下,如一个窗口失去激活时,前台窗口可以是NULL。 + + + + + 激活一个窗口,该窗口必须与调用线程的消息队列相关联 + + + + + 设置窗口的显示状态 + + 窗口句柄 + 标志集 + + + + + 获取指定窗口的设备上下文句柄 + 用于在窗口的非客户端区域内进行特殊的绘制效果 + + + + + 将一个可视窗口复制到指定的设备上下文(DC)中 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + PostMessage和PostMessage所使用的标志位集合, + 未来使用时若枚举内不存再则添加上去. + + + + + 修改下拉框 默认选中那一项 相当于MFC中的SetCurlSel + + + + diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/itextsharp.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/itextsharp.dll new file mode 100644 index 0000000..d9f1d58 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/itextsharp.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/itextsharp.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/itextsharp.xml new file mode 100644 index 0000000..823198f --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/itextsharp.xml @@ -0,0 +1,38512 @@ + + + + itextsharp + + + + Gets the name of the resultant PDF file. + This name will be passed to makePdf, assertPdf and comparePdf methods. + @return + + + Gets the name of the compare PDF file. + This name will be passed to comparePdf method. + @return + + + Sets the maximum errors count which will be returned as the result of the comparison. + @param compareByContentMaxErrorCount the errors count. + @return Returns this. + + + Sets the absolute error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Sets the relative error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Creates a new instance of MemoryLimitsAwareException. + + @param message the detail message. + + + + A + + handles memory allocation and prevents decompressed pdf streams from occupation of more space than allowed. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream with two or more filters of identical type + occupies more memory than allowed. + + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + this + + instance. + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams with two or more filters of identical type + occupy more memory than allowed. + + he maximum allowed size which can be occupied by all decompressed pdf streams. + + + this + + instance. + + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + @param size the initial size. + @throws IllegalArgumentException if size is negative. + + + Gets the maximum size which can be occupied by this output stream. + + @return the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + + @param maxStreamSize the maximum size which can be occupied by this output stream. + @return this {@link MemoryLimitsAwareOutputStream} + + + {@inheritDoc} + + + Query and change fields in existing documents either by method + calls or by FDF merging. + @author Paulo Soares + + + A field type invalid or not found. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + Holds value of property generateAppearances. + + + Holds value of property fieldCache. + + + Gets the list of appearance names. Use it to get the names allowed + with radio and checkbox fields. If the /Opt key exists the values will + also be included. The name 'Off' may also be valid + even if not returned in the list. + + For Comboboxes it will return an array of display values. To extract the + export values of a Combobox, please refer to {@link AcroFields#getListOptionExport(String)} + + @param fieldName the fully qualified field name + @return the list of names or null if the field does not exist + + + Gets the list of export option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + Gets the list of display option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + + + Export the fields as a FDF. + @param writer the FDF writer + + + Renames a field. Only the last part of the name can be renamed. For example, + if the original field is "ab.cd.ef" only the "ef" part can be renamed. + @param oldName the old field name + @param newName the new field name + @return true if the renaming was successful, false + otherwise + + + Retrieve the rich value for the given field + @param name + @return The rich value if present, or null. + @since 5.0.6 + + + Gets the field value. + @param name the fully qualified field name + @return the field value + + + Gets the field values of a Choice field. + @param name the fully qualified field name + @return the field value + @since 2.1.3 + + + + + Merges an XML data structure into this form. + @param n the top node of the data structure + @throws java.io.IOException on error + @throws com.lowagie.text.DocumentException o error + + + Sets the fields by FDF merging. + @param fdf the FDF form + @throws IOException on error + @throws DocumentException on error + + + Sets the fields by XFDF merging. + @param xfdf the XFDF form + @throws IOException on error + @throws DocumentException on error + + + Regenerates the field appearance. + This is usefull when you change a field property, but not its value, + for instance form.SetFieldProperty("f", "bgcolor", BaseColor.BLUE, null); + This won't have any effect, unless you use RegenerateField("f") after changing + the property. + + @param name the fully qualified field name or the partial name in the case of XFA forms + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param saveAppearance save the current appearance of the field or not + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the rich value for the given field. See PDF Reference chapter + 12.7.3.4 (Rich Text) and 12.7.4.3 (Text Fields) for further details. Note that iText doesn't create an appearance for Rich Text fields. + So you either need to use XML Worker to create an appearance (/N entry in the /AP dictionary), or you need to use setGenerateAppearances(false) to tell the viewer + that iText didn't create any appearances. + @param name Field name + @param richValue html markup + @return success/failure (will fail if the field isn't found, isn't a text field, or doesn't support rich text) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @param saveAppearance save the current appearance of the field or not + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets different values in a list selection. + No appearance is generated yet; nor does the code check if multiple select is allowed. + + @param name the name of the field + @param value an array with values that need to be selected + @return true only if the field value was changed + @since 2.1.4 + + + Gets all the fields. The fields are keyed by the fully qualified field name and + the value is an instance of AcroFields.Item. + @return all the fields + + + Gets the field structure. + @param name the name of the field + @return the field structure or null if the field + does not exist + + + Gets the long XFA translated name. + @param name the name of the field + @return the long field name + + + Gets the field box positions in the document. The return is an array of float + multiple of 5. For each of this groups the values are: [page, llx, lly, urx, + ury]. The coordinates have the page rotation in consideration. + @param name the field name + @return the positions or null if field does not exist + + + Removes all the fields from page. + @param page the page to remove the fields from + @return true if any field was removed, false otherwise + + + Removes a field from the document. If page equals -1 all the fields with this + name are removed from the document otherwise only the fields in + that particular page are removed. + @param name the field name + @param page the page to remove the field from or -1 to remove it from all the pages + @return true if the field exists, false otherwise + + + Removes a field from the document. + @param name the field name + @return true if the field exists, false otherwise + + + Sets the option to generate appearances. Not generating apperances + will speed-up form filling but the results can be + unexpected in Acrobat. Don't use it unless your environment is well + controlled. The default is true. + @param generateAppearances the option to generate appearances + + + The field representations for retrieval and modification. + + + writeToAll constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + This function writes the given key/value pair to all the instances + of merged, widget, and/or value, depending on the writeFlags setting + + @since 2.1.5 + + @param key you'll never guess what this is for. + @param value if value is null, the key will be removed + @param writeFlags ORed together WRITE_* flags + + + Mark all the item dictionaries used matching the given flags + + @since 2.1.5 + @param writeFlags WRITE_MERGED is ignored + + + An array of PdfDictionary where the value tag /V + is present. + + + + An array of PdfDictionary with the widgets. + + + + An array of PdfDictionary with the widget references. + + + + An array of PdfDictionary with all the field + and widget tags merged. + + + + An array of Integer with the page numbers where + the widgets are displayed. + + + + An array of Integer with the tab order of the field in the page. + + + + Preferred method of determining the number of instances + of a given field. + + @since 2.1.5 + @return number of instances + + + Remove the given instance from this item. It is possible to + remove all instances using this function. + + @since 2.1.5 + @param killIdx + + + Retrieve the value dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return dictionary storing this instance's value. It may be shared across instances. + + + Add a value dict to this Item + + @since 2.1.5 + @param value new value dictionary + + + Retrieve the widget dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return The dictionary found in the appropriate page's Annot array. + + + Add a widget dict to this Item + + @since 2.1.5 + @param widget + + + Retrieve the reference to the given instance + + @since 2.1.5 + @param idx instance index + @return reference to the given field instance + + + Add a widget ref to this Item + + @since 2.1.5 + @param widgRef + + + Retrieve the merged dictionary for the given instance. The merged + dictionary contains all the keys present in parent fields, though they + may have been overwritten (or modified?) by children. + Example: a merged radio field dict will contain /V + + @since 2.1.5 + @param idx instance index + @return the merged dictionary for the given instance + + + Adds a merged dictionary to this Item. + + @since 2.1.5 + @param mergeDict + + + Retrieve the page number of the given instance + + @since 2.1.5 + @param idx + @return remember, pages are "1-indexed", not "0-indexed" like field instances. + + + Adds a page to the current Item. + + @since 2.1.5 + @param pg + + + forces a page value into the Item. + + @since 2.1.5 + @param idx + + + Gets the tabOrder. + + @since 2.1.5 + @param idx + @return tab index of the given field instance + + + Adds a tab order value to this Item. + + @since 2.1.5 + @param order + + + Clears a signed field. + @param name the field name + @return true if the field was signed, false if the field was not signed or not found + @since 5.0.5 + + + Gets the field names that have signatures and are signed. + @return the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + @return the field names that have blank signatures + + + Gets the signature dictionary, the one keyed by /V. + @param name the field name + @return the signature dictionary keyed by /V or null if the field is not + a signature + + + Gets a reference to the normal appearance of a field. + + @param name the field name + @return a reference to the /N entry of the /AP dictionary or null if the field is not found + + + Checks is the signature covers the entire document or just part of it. + @param name the signature field name + @return true if the signature covers the entire document, + false otherwise + + + + Gets the total number of revisions this document has. + @return the total number of revisions + + + Gets this field revision. + @param field the signature field name + @return the revision or zero if it's not a signature field + + + Extracts a revision from the document. + @param field the signature field name + @return an Stream covering the revision. Returns null if + it's not a signature field + @throws IOException on error + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Adds a substitution font to the list. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param font the font + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Gets the XFA form processor. + @return the XFA form processor + + + Removes the XFA stream from the document. + + + Creates a new pushbutton from an existing field. If there are several pushbuttons with the same name + only the first one is used. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField)}. + @param field the field name that should be a pushbutton + @return a new pushbutton or null if the field is not a pushbutton + + + Creates a new pushbutton from an existing field. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField,int)}. + @param field the field name that should be a pushbutton + @param order the field order in fields with same name + @return a new pushbutton or null if the field is not a pushbutton + + + Replaces the first field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @return true if the field was replaced, false if the field + was not a pushbutton + + + Replaces the designated field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @param order the field order in fields with same name + @return true if the field was replaced, false if the field + was not a pushbutton + + + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + @param name String + @return boolean does the signature field exist + @since 5.5.1 + + + A class representing a field position + @since 5.0.2 + + + + Summary description for InputMeta. + + + + + Summary description for MetaDo. + + + + Creates new MetaState + + + Getter for property currentBackgroundColor. + @return Value of property currentBackgroundColor. + + + Getter for property currentTextColor. + @return Value of property currentTextColor. + + + Getter for property backgroundMode. + @return Value of property backgroundMode. + + + Getter for property textAlign. + @return Value of property textAlign. + + + Getter for property polyFillMode. + @return Value of property polyFillMode. + + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + + Reads a BMP from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + @param is the stream + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + The BMP may not have a header and be considered as a plain DIB. + @param is the stream + @param noHeader true to process a plain DIB + @param size the size of the DIB. Not used for a BMP + @throws IOException on error + @return the image + + + Reads a BMP from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a BMP from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + @param width the line width + + + Encodes a number of lines. + @param data the data to be encoded + @param offset the offset into the data + @param size the size of the data to be encoded + + + Encodes a full image. + @param data the data to encode + @param width the image width + @param height the image height + @return the encoded image + + + Encodes a number of lines. + @param data the data to be encoded + @param height the number of lines to encode + + + Closes the encoder and returns the encoded data. + @return the encoded data + + + Reads gif images of all types. All the images in a gif are read in the constructors + and can be retrieved with other methods. + @author Paulo Soares + + + Reads gif images from an URL. + @param url the URL + @throws IOException on error + + + Reads gif images from a file. + @param file the file + @throws IOException on error + + + Reads gif images from a byte array. + @param data the byte array + @throws IOException on error + + + Reads gif images from a stream. The stream isp not closed. + @param isp the stream + @throws IOException on error + + + Gets the number of frames the gif has. + @return the number of frames the gif has + + + Gets the image from a frame. The first frame isp 1. + @param frame the frame to get the image from + @return the image + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Gets the logical screen. The images may be smaller and placed + in some position in this screen to playback some animation. + No image will be be bigger that this. + @return the logical screen dimensions as [x,y] + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + Support for JBIG2 Images. + This class assumes that we are always embedding into a pdf. + + @since 2.1.5 + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + @param ra an random access file or array + @return a byte array + + + returns an Image representing the given page. + @param ra the file or array containing the image + @param page the page number of the image + @return an Image object + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + TODO: the indeterminate-segment-size value of dataLength, else? + + @since 2.1.5 + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Creates a new instance of PngImage + + + Reads a PNG from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a PNG from a stream. + @param is the stream + @throws IOException on error + @return the image + + + Reads a PNG from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a PNG from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + A list of constants used in class TIFFImage. + + + + A bool storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaing multiple directories. + + @param stream a SeekableStream to read from. + @param directory the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + @param stream a SeekableStream to read from. + @param ifd_offset the long byte offset of the directory. + @param directory the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + Returns the number of directory entries. + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + + Returns true if a tag appears in the directory. + + + Returns an ordered array of ints indicating the tag + values. + + + Returns an array of TIFFFields containing all the fields + in this directory. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + + Returns a bool indicating whether the byte order used in the + the TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + Returns the offset of the IFD corresponding to this + TIFFDirectory. + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + The logical order of bits within a byte. +
+            1 = MSB-to-LSB
+            2 = LSB-to-MSB (flipped)
+            
+
+ + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + + Returns the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + + + Returns the number of elements in the IFD. + + + + + + + + + + + + + + + + + + + + Reads TIFF images + @author Paulo Soares + + + Gets the number of pages the TIFF document has. + @param s the file source + @return the number of pages + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + Reads a page from a TIFF image. Direct mode is not used. + @param s the file source + @param page the page to get. The first page is 1 + @return the Image + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + @param h The number of rows the compressed data contains. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newString to the end of oldString. + + + + @author psoares + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + + @param seq + @return the cid code or -1 for end + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + This class represents a CMap file. + + @author Ben Litchfield (ben@benlitchfield.com) + @since 2.1.4 + + + Creates a new instance of CMap. + + + This will tell if this cmap has any one byte mappings. + + @return true If there are any one byte mappings, false otherwise. + + + This will tell if this cmap has any two byte mappings. + + @return true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + + @param code The code used to lookup. + @param offset The offset into the byte array. + @param length The length of the data we are getting. + + @return The string that matches the lookup. + + + + @author psoares + + + + @author psoares + + + Interface providing alternate description for accessible elements. + + + Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @return + + + Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @param value + + + Gets all the properties of accessible element. + @return + + + Role propherty of the accessible element. + Note that all child elements won't also be tagged. + @return + + + Use this methods to get the AcroForm object. + Use this method only if you know what you're doing + @return the PdfAcroform object of the PdfDocument + + + Use this methods to add a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Use this method to adds the PdfAnnotation + to the calculation order array. + @param annot the PdfAnnotation to be added + + + Use this method to set the signature flags. + @param f the flags. This flags are ORed with current ones + + + A PDF document can have an open action and other additional actions. + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws DocumentException on invalid action type + + + Encryption settings are described in section 3.5 (more specifically + section 3.5.2) of the PDF Reference 1.7. + They are explained in section 3.3.3 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + A PDF page can have an open and/or close action. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws DocumentException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + The PDF version is described in the PDF Reference 1.7 p92 + (about the PDF Header) and page 139 (the version entry in + the Catalog). You'll also find info about setting the version + in the book 'iText in Action' sections 2.1.3 (PDF Header) + and 3.3 (Version history). + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header, + but only if param refers to a higher version. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + Sets the PDF version as it will appear in the Catalog. + Note that this only has effect if you use a later version + than the one that appears in the header. This method + ignores the parameter if you try to set a lower version + than the one currently set in the Catalog. + @param version the PDF name that will be used for the Version key in the catalog + + + Adds a developer extension to the Extensions dictionary + in the Catalog. + @param de an object that contains the extensions prefix and dictionary + @since 2.1.6 + + + Viewer preferences are described in section 3.6.1 and 8.1 of the + PDF Reference 1.7 (Table 3.25 on p139-142 and Table 8.1 on p579-581). + They are explained in section 13.1 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + + + Sets the PDF/X conformance level. + Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. + It must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + Shape arabic characters. This code was inspired by an LGPL'ed C library: + Pango ( see http://www.pango.com/ ). Note that the code of this is the + original work of Paulo Soares. Hence it is perfectly justifiable to distribute + it under the MPL. + + @author Paulo Soares + + + Some fonts do not implement ligaturized variations on Arabic characters + e.g. Simplified Arabic has got code point 0xFEED but not 0xFEEE + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Not a valid option value. + + + Bit mask for digit shaping options. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Bit mask for digit type options. + + + Arabic is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Signals that a bad PDF format has been used to construct a PdfObject. + + @see PdfException + @see PdfBoolean + @see PdfNumber + @see PdfString + @see PdfName + @see PdfDictionary + @see PdfFont + + + Base class containing properties and methods commom to all + barcode types. + + @author Paulo Soares + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The minimum bar width. + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + The text font. null if no text. + + + The size of the text or the height of the shorter bar + in Postnet. + + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + The height of the bars. + + + The text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + Gets the minimum bar width. + @return the minimum bar width + + + Gets the bar multiplier for wide bars. + @return the bar multiplier for wide bars + + + Gets the text font. null if no text. + @return the text font. null if no text + + + Gets the size of the text. + @return the size of the text + + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + @return the baseline. + + + Gets the height of the bars. + @return the height of the bars + + + Gets the text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + @return the text alignment + + + The property for the optional checksum generation. + + + Sets the property to show the generated checksum in the the text. + @param checksumText new value of property checksumText + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + @param startStopText new value of property startStopText + + + Sets the property to generate extended barcode 39. + @param extended new value of property extended + + + Gets the code to generate. + @return the code to generate + + + Sets the property to show the guard bars for barcode EAN. + @param guardBars new value of property guardBars + + + Gets the code type. + @return the code type + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Creates a template with the barcode. + @param cb the PdfContentByte to create the template. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the template + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + Creates an Image with the barcode. + @param cb the PdfContentByte to create the Image. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the Image + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + The alternate text to be used, if present. + + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + @param altText the alternate text + + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128 + + + Removes the FNC1 codes in the text. + @param code the text to clean + @return the cleaned text + + + Gets the human readable text of a sequence of AI. + @param code the text + @return the human readable text + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + @param text the text to check + @param textIndex where to check from + @param numDigits the number of digits to check + @return the check result + + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + @param text the text to pack + @param textIndex where to pack from + @param numDigits the number of digits to pack. It is always an even number + @return the packed digits, two digits per character + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @param codeSet forced code set, or AUTO for optimized barcode. + @return the code ready to be fed to getBarsCode128Raw() + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @return the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. The input has the actual barcodes, not + the human readable text. + @param text the barcode + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + Implements the code 39 and code 39 extended. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = true;
+            extended = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + + Creates the bars. + @param text the text to create the bars. This text does not include the start and + stop characters + @return the bars + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + @param text the extended text + @return the escaped text + + + Calculates the checksum. + @param text the text + @return the checksum + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code codabar. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textAlignment = Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + Creates a new BarcodeCodabar. + + + Creates the bars. + @param text the text to create the bars + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X21 encodation. + + + X12 encodation. + + @deprecated Use {@link BarcodeDataMatrix#DM_X12} instead. + + + EDIFACT encodation. + + + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + + + + Gets an Image with the barcode. A successful call to the method generate() + before calling this method is required. + @return the barcode Image + @throws BadElementException on error + + + Creates a java.awt.Image. A successful call to the method generate() + before calling this method is required. + @param foreground the color of the bars + @param background the color of the background + @return the image + + + Gets the generated image. The image is represented as a stream of bytes, each byte representing + 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row + is aligned at byte boundaries. The dimensions of the image are defined by height and width + plus 2 * ws. + @return the generated image + + + + + Gets/sets the whitespace border around the barcode. + @param ws the whitespace border around the barcode + + + + Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, + supplemental 2 and 5. The default parameters are: +
+            x = 0.8f;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            guardBars = true;
+            codeType = EAN13;
+            code = "";
+             
+ + @author Paulo Soares +
+ + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN + + + Calculates the EAN parity character. + @param code the code + @return the parity character + + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + @param text the code to convert. It must have 12 numeric characters + @return the 8 converted digits or null if the + code could not be converted + + + Creates the bars for the barcode EAN13 and UPCA. + @param _code the text with 13 digits + @return the barcode + + + Creates the bars for the barcode EAN8. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode UPCE. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode supplemental 2. + @param _code the text with 2 digits + @return the barcode + + + Creates the bars for the barcode supplemental 5. + @param _code the text with 5 digits + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + @param ean the EAN/UPC barcode + @param supp the supplemental barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + Creates new BarcodeInter25 + + + Deletes all the non numeric characters from text. + @param text the text + @return a string with only numeric characters + + + Calculates the checksum. + @param text the numeric text + @return the checksum + + + Creates the bars for the barcode. + @param text the text. It can contain non numeric characters + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed + and variable sizes, automatic and manual error levels, raw codeword input, + codeword size optimization and bitmap inversion. The output can + be a CCITT G4 Image or a raw bitmap. + @author Paulo Soares + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + The size will be at least codeColumns + with a variable number of codeRows. + + + The size will be at least codeRows + with a variable number of codeColumns. + + + The error level correction is set automatically according + to ISO 15438 recomendations. + + + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + No text interpretation is done and the content of codewords + is used directly. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + Use Macro PDF417 Encoding + @see #setMacroFileId(String) + @see #setMacroSegmentId(int) + @see #setMacroSegmentCount(int) + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + @param id the id (starting at 0) + @see #setMacroSegmentCount(int) + + + Sets the segment count for macro PDF417 encoding + @param cnt the number of macro segments + @see #setMacroSegmentId(int) + + + Sets the File ID for macro PDF417 encoding + @param id the file id + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Gets an Image with the barcode. The image will have to be + scaled in the Y direction by yHeightfor the barcode + to have the right printing aspect. + @return the barcode Image + @throws BadElementException on error + + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + @return The raw barcode image + + + Gets the number of X pixels of outBits. + @return the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + @return the number of Y pixels of outBits + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + @param codeRows the number of barcode rows + + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + @param codeColumns the number of barcode data columns + + + Gets the codeword array. This array is always 928 elements long. + It can be writen to if the option PDF417_USE_RAW_CODEWORDS + is set. + @return the codeword array + + + Sets the length of the codewords. + @param lenCodewords the length of the codewords + + + Gets the error level correction used for the barcode. It may different + from the previously set value. + @return the error level correction used for the barcode + Sets the error level correction for the barcode. + @param errorLevel the error level correction for the barcode + + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + @param text the bytes that form the barcode + + + Sets the text that will form the barcode. This text is converted + to bytes using the encoding Cp437. + @param s the text that will form the barcode + @throws UnsupportedEncodingException if the encoding Cp437 is not supported + + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + @param options the options to generate the barcode + + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + @param aspectRatio the barcode aspect ratio + + + Sets the Y pixel height relative to X. It is usually 3. + @param yHeight the Y pixel height relative to X + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property text. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Gets the size of the barcode grid. + + + Implements the Postnet and Planet barcodes. The default parameters are: +
+            n = 72f / 22f; // distance between bars
+            x = 0.02f * 72f; // bar width
+            barHeight = 0.125f * 72f; // height of the tall bars
+            size = 0.05f * 72f; // height of the short bars
+            codeType = POSTNET; // type of code
+             
+ + @author Paulo Soares +
+ + The bars for each character. + + + Creates new BarcodePostnet + + + Creates the bars for Postnet. + @param text the code to be created without checksum + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + A QRCode implementation based on the zxing code. + @author Paulo Soares + @since 5.0.2 + + + Creates the QR barcode. The barcode is always created with the smallest possible size and is then stretched + to the width and height given. Set the width and height to 1 to get an unscaled barcode. + @param content the text to be encoded + @param width the barcode width + @param height the barcode height + @param hints modifiers to change the way the barcode is create. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + @throws WriterException + + + Gets an Image with the barcode. + @return the barcode Image + @throws BadElementException on error + + + Gets the size of the barcode grid. + + + A thin border with 1 point width. + + + A medium border with 2 point width. + + + A thick border with 3 point width. + + + The field is visible. + + + The field is hidden. + + + The field is visible but does not print. + + + The field is hidden but is printable. + + + The user may not change the value of the field. + + + The field must have a value at the time it is exported by a submit-form + action. + + + The field may contain multiple lines of text. + This flag is only meaningful with text fields. + + + The field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + The field is intended for entering a secure password that should + not be echoed visibly to the screen. + + + The text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + The text entered in the field will not be spell-checked. + This flag is meaningful only in text fields and in combo + fields with the EDIT flag set. + + + If set the combo box includes an editable text box as well as a drop list; if + clear, it includes only a drop list. + This flag is only meaningful with combo fields. + + + whether or not a list may have multiple selections. Only applies to /CH LIST + fields, not combo boxes. + + + combo box flag. + + + Holds value of property rotation. + + + Holds value of property visibility. + + + Holds value of property fieldName. + + + Holds value of property options. + + + Holds value of property maxCharacterLength. + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the border width in points. To eliminate the border + set the border color to null. + @param borderWidth the border width in points + + + Sets the border style. The styles are found in PdfBorderDictionary + and can be STYLE_SOLID, STYLE_DASHED, + STYLE_BEVELED, STYLE_INSET and + STYLE_UNDERLINE. + @param borderStyle the border style + + + Sets the border color. Set to null to remove + the border. + @param borderColor the border color + + + Sets the background color. Set to null for + transparent background. + @param backgroundColor the background color + + + Sets the text color. If null the color used + will be black. + @param textColor the text color + + + Sets the text font. If null then Helvetica + will be used. + @param font the text font + + + Sets the font size. If 0 then auto-sizing will be used but + only for text fields. + @param fontSize the font size + + + Sets the text horizontal alignment. It can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER and Element.ALIGN_RIGHT. + @param alignment the text horizontal alignment + + + Sets the text for text fields. + @param text the text + + + Sets the field dimension and position. + @param box the field dimension and position + + + Sets the field rotation. This value should be the same as + the page rotation where the field will be shown. + @param rotation the field rotation + + + Convenience method to set the field rotation the same as the + page rotation. + @param page the page + + + Sets the field visibility flag. This flags can be one of + VISIBLE, HIDDEN, VISIBLE_BUT_DOES_NOT_PRINT + and HIDDEN_BUT_PRINTABLE. + @param visibility field visibility flag + + + Sets the field name. + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the option flags. The option flags can be a combination by oring of + READ_ONLY, REQUIRED, + MULTILINE, DO_NOT_SCROLL, + PASSWORD, FILE_SELECTION, + DO_NOT_SPELL_CHECK and EDIT. + @param options the option flags + + + Sets the maximum length of the field�s text, in characters. + It is only meaningful for text fields. + @param maxCharacterLength the maximum length of the field�s text, in characters + + + Moves the field keys from from to to. The moved keys + are removed from from. + @param from the source + @param to the destination. It may be null + + + + Summary description for BaseFont. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The maximum height above the baseline reached by glyphs in this + font, excluding the height of glyphs for accented characters. + + + The y coordinate of the top of flat capital letters, measured from + the baseline. + + + The maximum depth below the baseline reached by glyphs in this + font. The value is a negative number. + + + The angle, expressed in degrees counterclockwise from the vertical, + of the dominant vertical strokes of the font. The value is + negative for fonts that slope to the right, as almost all italic fonts do. + + + The lower left x glyph coordinate. + + + The lower left y glyph coordinate. + + + The upper right x glyph coordinate. + + + The upper right y glyph coordinate. + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + The underline position. Usually a negative value. + + + The underline thickness. + + + The strikethrough position. + + + The strikethrough thickness. + + + The recommended vertical size for subscripts for this font. + + + The recommended vertical offset from the baseline for subscripts for this font. Usually a negative value. + + + The recommended vertical size for superscripts for this font. + + + The recommended vertical offset from the baseline for superscripts for this font. + + + The weight class of the font, as defined by the font author + @since 5.0.2 + + + The width class of the font, as defined by the font author + @since 5.0.2 + + + The entry of PDF FontDescriptor dictionary. + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + A value larger than 500 indicates bold font-weight. + + + The font is Type 1. + + + The font is True Type with a standard encoding. + + + The font is CJK. + + + The font is True Type with a Unicode encoding. + + + A font already inside the document. + + + A Type3 font. + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + default array of six numbers specifying the font matrix, mapping glyph space to text space + + + if the font has to be embedded + + + if the font doesn't have to be embedded + + + if the font has to be cached + + + if the font doesn't have to be cached + + + The path to the font resources. + + + The fake CID code that represents a newline. + + + * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029) + * Treated as a line feed character in XFA rich and plain text. + * @since 5.4.3 + + + The font type. + + + a not defined character in a custom PDF encoding + + + table of characters widths for this encoding + + + encoding names + + + same as differences but with the unicode codes + + + encoding used with this font + + + true if the font is to be embedded in the PDF + + + The compression level for the font stream. + @since 2.1.3 + + + true if the font must use its built in encoding. In that case the + encoding is only used to map a char to the position inside + the font, not to the expected char name. + + + cache for the fonts already used. + + + list of the 14 built in fonts. + + + Forces the output of the width array. Only matters for the 14 + built-in fonts. + + + Converts char directly to byte + by casting. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Custom encodings use this map to key the Unicode character + to the single byte code. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + @param contents the content of the stream + @param lengths an array of int that describes the several lengths of each part of the font + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Generates the PDF stream for a font. + @param contents the content of a stream + @param subType the subtype of the font. + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Creates new BaseFont + + + Creates a new font. This will always be the default Helvetica font (not embedded). + This method is introduced because Helvetica is used in many examples. + @return a BaseFont object (Helvetica, Winansi, not embedded) + @throws IOException This shouldn't occur ever + @throws DocumentException This shouldn't occur ever + @since 2.1.1 + + + + + + + + Creates a font based on an existing document font. The created font font may not + behave as expected, depending on the encoding or subset. + @param fontRef the reference to the document font + @return the font + + + Indicates whether the font is used for verticl writing or not. + @return true if the writing mode is vertical for the given font, false otherwise. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + @param name the full name of the font + @return the name without the modifiers Bold, Italic or BoldItalic + + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + @param enc the encoding to be normalized + @return the normalized encoding + + + Creates the widths and the differences arrays + @throws UnsupportedEncodingException the encoding is not supported + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Gets the descent of a String in normalized 1000 units. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @return the dexcent in normalized 1000 units + + + Gets the ascent of a String in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @return the ascent in normalized 1000 units + + + Gets the descent of a String in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @param fontSize the size of the font + @return the dexcent in points + + + Gets the ascent of a String in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @param fontSize the size of the font + @return the ascent in points + + + Gets the width of a String in points taking kerning + into account. + @param text the String to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a string in points. + @param text the string to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a char in points. + @param char1 the char to get the witdth of + @param fontSize the font size + @return the width in points + + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program (if possible). + This method will return null for some types of fonts (CJKFont, Type3Font) + or if there is no font program available (standard Type 1 fonts). + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the encoding used to convert string into byte[]. + @return the encoding name + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the font type. The font types can be: FONT_TYPE_T1, + FONT_TYPE_TT, FONT_TYPE_CJK and FONT_TYPE_TTUNI. + @return the font type + + + Gets the embedded flag. + @return true if the font is embedded. + + + Gets the symbolic flag of the font. + @return true if the font is symbolic + + + Creates a unique subset prefix to be added to the font name when the font is embedded and subset. + @return the subset prefix + + + Gets the Unicode character corresponding to the byte output to the pdf stream. + @param index the byte index + @return the Unicode character + + + Gets the postscript font name. + @return the postscript font name + + + + + + Gets all the names from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), GetFamilyFontName(), GetFullFontName()} + + + Gets all the entries of the namestable from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), getFamilyFontName(), getFullFontName()} + + + + Gets the code pages supported by the font. This has only meaning + with True Type fonts. + @return the code pages supported by the font + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcFile the file name of the font + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcArray the font as a byte array + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Gets the font width array. + @return the font width array + + + Gets the array with the names of the characters. + @return the array with the names of the characters + + + Gets the array with the unicode characters. + @return the array with the unicode characters + + + Set to true to force the generation of the + widths array. + @param forceWidthsOutput true to force the generation of the + widths array + + + Sets the conversion of char directly to byte + by casting. This is a low level feature to put the bytes directly in + the content stream without passing through string.GetBytes(). + @param directTextToByte New value of property directTextToByte. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to true + only the glyphs used will be included in the font. When set to false + and {@link #addSubsetRange(int[])} was not called the full font will be included + otherwise just the characters ranges will be included. + @param subset new value of property subset + + + + Gets the CID code given an Unicode. + It has only meaning with CJK fonts. + @param c the Unicode + @return the CID equivalent + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Gets a list of all document fonts. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @return the list of fonts and references + + + Gets a list of the document fonts in a particular page. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @param page the page to list the fonts from + @return the list of fonts and references + + + Gets the smallest box enclosing the character contours. It will return + null if the font has not the information or the character has no + contours, as in the case of the space, for example. Characters with no contours may + also return [0,0,0,0]. + @param c the character to get the contour bounding box from + @return an array of four floats with the bounding box in the format [llx,lly,urx,ury] or + null + + + Gets default array of six numbers specifying the font matrix, mapping glyph space to text space + @return an array of six values + null + + + iText expects Arabic Diactrics (tashkeel) to have zero advance but some fonts, + most notably those that come with Windows, like times.ttf, have non-zero + advance for those characters. This method makes those character to have zero + width advance and work correctly in the iText Arabic shaping and reordering + context. + + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + @param range the character range + + + Sets the compression level to be used for the font streams. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + Does all the line bidirectional processing with PdfChunk assembly. + + @author Paulo Soares + + + Creates new BidiLine + + + Call this after processLine() to know if any word was split into several lines. + @return + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @return the sum of all widths + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @param originalWidth the full width of the line. It is used in case of RTL and tab stops + @return the sum of all widths + + + Method that changes a String with Arabic characters into a String in which the ligatures are made. + @param s the original String + @param runDirection + @param arabicOptions + @return the String with the ligaturesc + + + Left-to-right + + + Left-to-Right Embedding + + + Left-to-Right Override + + + Right-to-Left + + + Right-to-Left Arabic + + + Right-to-Left Embedding + + + Right-to-Left Override + + + Pop Directional Format + + + European Number + + + European Number Separator + + + European Number Terminator + + + Arabic Number + + + Common Number Separator + + + Non-Spacing Mark + + + Boundary Neutral + + + Paragraph Separator + + + Segment Separator + + + Whitespace + + + Other Neutrals + + + Minimum bidi type value. + + + Maximum bidi type value. + + + Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive + and represent the direction codes of the characters in the text. + + @param types the types array + + + Initialize using an array of direction types and an externally supplied paragraph embedding level. + The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), + 0 is for LTR paragraphs, and 1 is for RTL paragraphs. + + @param types the types array + @param paragraphEmbeddingLevel the externally supplied paragraph embedding level. + + + The algorithm. + Does not include line-based processing (Rules L1, L2). + These are applied later in the line-based phase of the algorithm. + + + + + Rules X9. + Remove explicit codes so that they may be ignored during the remainder + of the main portion of the algorithm. The length of the resulting text + is returned. + @return the length of the data excluding explicit codes and BN. + + + Reinsert levels information for explicit codes. + This is for ease of relating the level information + to the original input data. Note that the levels + assigned to these codes are arbitrary, they're + chosen so as to avoid breaking level runs. + @param textLength the length of the data after compression + @return the length of the data (original length of + types array supplied to constructor) + + + 2) determining explicit levels + Rules X1 - X8 + + The interaction of these rules makes handling them a bit complex. + This examines resultTypes but does not modify it. It returns embedding and + override information in the result array. The low 7 bits are the level, the high + bit is set if the level is an override, and clear if it is an embedding. + + + 3) resolving weak types + Rules W1-W7. + + Note that some weak types (EN, AN) remain after this processing is complete. + + + 6) resolving neutral types + Rules N1-N2. + + + 7) resolving implicit embedding levels + Rules I1, I2. + + + + Return multiline reordering array for a given level array. + Reordering does not occur across a line break. + + + Return reordering array for a given level array. This reorders a single line. + The reordering is a visual to logical map. For example, + the leftmost char is string.CharAt(order[0]). + Rule L2. + + + Return the base level of the paragraph. + + + Return true if the type is considered a whitespace type for the line break rules. + + + Return the strong type (L or R) corresponding to the level. + + + Return the limit of the run starting at index that includes only resultTypes in validSet. + This checks the value at index, and will return index if that value is not in validSet. + + + Return the start of the run including index that includes only resultTypes in validSet. + This assumes the value at index is valid, and does not check it. + + + Set resultTypes from start up to (but not including) limit to newType. + + + Set resultLevels from start up to (but not including) limit to newLevel. + + + Throw exception if type array is invalid. + + + Throw exception if paragraph embedding level is invalid. Special allowance for -1 so that + default processing can still be performed when using this API. + + + Throw exception if line breaks array is invalid. + + + Acts like a StringBuilder but works with byte arrays. + floating point is converted to a format suitable to the PDF. + @author Paulo Soares + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + List items for the linked list that builds the new CID font. + + + remember the current offset and increment by item's size in bytes. + + + Emit the byte stream for this item. + + + Fix up cross references to this item (applies only to markers). + + + set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + + A range item. + + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + @author orly manor + + TODO To change the template for this generated type comment go to + Window - Preferences - Java - Code Generation - Code and Comments + + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + a utility that creates a range item for an entire index + + @param indexOffset where the index is + @return a range item representing the entire index + + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + + A random Access File or an array + (contributed by orly manor) + + + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + A HashMap containing the glyphs used in the text after being converted + to glyph number by the CMap + + + The GlyphsUsed keys as an ArrayList + + + A HashMap for keeping the FDArrays being used by the font + + + A HashMaps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed HashMap as ArrayList + + + An array of the new Indexs for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursivly + + + C'tor for CFFFontSubset + @param rf - The font file + @param GlyphsUsed - a HashMap that contains the glyph used in the subset + + + Calculates the length of the charset according to its format + @param Offset The Charset Offset + @param NumofGlyphs Number of glyphs in the font + @return the length of the Charset + + + Function calculates the number of ranges in the Charset + @param NumofGlyphs The number of glyphs in the font + @param Type The format of the Charset + @return The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + @param Font The index of the font being processed + @return The Processed FDSelect of the font + + + Function reads the FDSelect and builds the FDArrayUsed HashMap According to the glyphs used + @param Font the Number of font being processed + + + Read the FDArray count, offsize and Offset array + @param Font + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + @param fontName - The name of the font to be taken out of the CFF + @return The new font stream + @throws IOException + + + Function calcs bias according to the CharString type and the count + of the subrs + @param Offset The offset to the relevent subrs index + @param Font the font + @return The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings + @param FontIndex the font + @throws IOException + + + + The function finds for the FD array processed the local subr offset and its + offset array. + @param Font the font + @param FD The FDARRAY processed + + + + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + @param begin the start point of the subr + @param end the end point of the subr + @param GBias the bias of the Global Subrs + @param LBias the bias of the Local Subrs + @param hSubr the HashMap for the lSubrs + @param lSubr the ArrayList for the lSubrs + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + Function checks the key and return the change to the stack after the operator + @return The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + + Pop one element from the stack + + + + Add an item to the stack + + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + @param begin the start point of the subr + @param end the end point of the subr + @param LBias the bias of the Local Subrs + @param GBias the bias of the Global Subrs + @param LSubrsOffsets The Offsets array of the subroutines + @return The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param Used the hashmap of the used objects + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + @param NewOffsets the subsetted offset array + @param NewObjects the subsetted object array + @return the new index created + + + The function builds the new output stream according to the subset process + @param Font the font + @return the subseted font stream + @throws IOException + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + @param Count the count field of the index + @param Offsize the offsize field of the index + @param First the first offset of the index + + + Function adds the keys into the TopDict + @param fdarrayRef OffsetItem for the FDArray + @param fdselectRef OffsetItem for the FDSelect + @param charsetRef OffsetItem for the CharSet + @param charstringsRef OffsetItem for the CharString + + + Function takes the original string item and adds the new strings + to accomodate the CID rules + @param Font the font + + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + @param fdselectRef OffsetItem for the FDSelect + @param nglyphs the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + @param charsetRef OffsetItem for the CharSet + @param nglyphs the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + @param fdarrayRef OffsetItem for the FDArray + @param privateRef OffsetItem for the Private Dict + @param Font the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + @param Font the font + @throws IOException + + + Function subsets the FDArray and builds the new one with new offsets + @param Font The font + @param fdPrivate OffsetItem Array (one for each FDArray) + @throws IOException + + + Function Adds the new private dicts (only for the FDs used) to the list + @param Font the font + @param fdPrivate OffsetItem array one element for each private + @param fdPrivateBase IndexBaseItem array one element for each private + @param fdSubrs OffsetItem array one element for each private + @throws IOException + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + @param Font The index of the font + @param fdPrivateBase The IndexBaseItem array for the linked list + @param fdSubrs OffsetItem array for the linked list + @throws IOException + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + @param Offset The Offset for the private dict + @param Size The size of the private dict + @return The size of the offset of the subrs in the private dict + + + Function computes the size of an index + @param indexOffset The offset for the computed index + @return The size of the index + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + @param Font the font + @param Subr The OffsetItem for the subrs of the private + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + @param Font the font + @param PrivateBase IndexBaseItem for the private that's referencing to the subrs + @param Subrs OffsetItem for the subrs + @throws IOException + + + Creates a CJK font compatible with the fonts in the Adobe Asian font Pack. + + @author Paulo Soares + + + The encoding used in the PDF document for CJK fonts + + + The path to the font resources. + + + The font name + + + The style modifier + + + The CMap name associated with this font + + + Creates a CJK font. + @param fontName the name of the font + @param enc the encoding of the font + @param emb always false. CJK font and not embedded + @throws DocumentException on error + @throws IOException on error + + + Returns a font compatible with a CJK encoding or null if not found. + @param enc + @return + + + Checks if its a valid CJK font. + @param fontName the font name + @param enc the encoding + @return true if it is CJK font + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + You can't get the FontStream of a CJK font (CJK fonts are never embedded), + so this method always returns null. + @return null + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + + + Implementation of DocumentFont used while parsing PDF streams. + @since 2.1.4 + + + The font dictionary. + + + the width of a space for this font, in normalized 1000 point units + + + The CMap constructed from the ToUnicode map from the font's dictionary, if present. + This CMap transforms CID values into unicode equivalent + + + Mapping between CID code (single byte only for now) and unicode equivalent + as derived by the font's encoding. Only needed if the ToUnicode CMap is not provided. + + + Creates an instance of a CMapAwareFont based on an indirect reference to a font. + @param refFont the indirect reference to a font + + + Parses the ToUnicode entry, if present, and constructs a CMap for it + @since 2.1.7 + + + Inverts DocumentFont's uni2byte mapping to obtain a cid-to-unicode mapping based + on the font's encoding + @since 2.1.7 + + + For all widths of all glyphs, compute the average width in normalized 1000 point units. + This is used to give some meaningful width in cases where we need an average font width + (such as if the width of a space isn't specified by a given font) + @return the average width of all non-zero width glyphs in the font + + + @since 2.1.5 + Override to allow special handling for fonts that don't specify width of space character + @see com.itextpdf.text.pdf.DocumentFont#getWidth(int) + + + Decodes a single CID (represented by one or two bytes) to a unicode String. + @param bytes the bytes making up the character code to convert + @param offset an offset + @param len a length + @return a String containing the encoded form of the input bytes using the font's encoding. + + + Decodes a string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + @since 2.1.7 + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + + + Encodes bytes to a String. + @param bytes the bytes from a stream + @param offset an offset + @param len a length + @return a String encoded taking into account if the bytes are in unicode or not. + @deprecated method name is not indicative of what it does. Use decode instead. + + + + @author Paulo Soares + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + Constructs a PDF Collection. + @param type the type of PDF collection. + + + Identifies the document that will be initially presented + in the user interface. + @param description the description that was used when attaching the file to the document + + + Sets the Collection schema dictionary. + @param schema an overview of the collection fields + + + Sets the Collection sort dictionary. + @param sort a collection sort dictionary + + + @author blowagie + + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + The type of the PDF collection field. + + + Creates a PdfCollectionField. + @param name the field name + @param type the field type + + + The relative order of the field name. Fields are sorted in ascending order. + @param i a number indicating the order of the field + + + Sets the initial visibility of the field. + @param visible the default is true (visible) + + + Indication if the field value should be editable in the viewer. + @param editable the default is false (not editable) + + + Checks if the type of the field is suitable for a Collection Item. + + + Returns a PdfObject that can be used as the value of a Collection Item. + @param String value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) + + + The PdfCollectionSchema with the names and types of the items. + + + Constructs a Collection Item that can be added to a PdfFileSpecification. + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + @param prefix a prefix + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + @param name the name of the collection field + @param field a Collection Field + + + Constructs a PDF Collection Sort Dictionary. + @param key the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + @param keys the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + @param ascending true is the default, use false for descending order + + + Defines the sort order of the field (ascending or descending). + @param ascending an array with every element corresponding with a name of a field. + + + Creates dictionary referring to a target document that is the parent of the current document. + @param nested null if this is the actual target, another target if this is only an intermediate target. + + + Creates a dictionary referring to a target document. + @param child if false, this refers to the parent document; if true, this refers to a child document, and you'll have to specify where to find the child using the other methods of this class + + + If this dictionary refers to a child that is a document level attachment, + you need to specify the name that was used to attach the document. + @param name the name in the EmbeddedFiles name tree + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the name of the page (or use setFileAttachmentPage to specify the page number). + Once you have specified the page, you still need to specify the attachment using another method. + @param name the named destination referring to the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page number (or use setFileAttachmentPagename to specify a named destination). + Once you have specified the page, you still need to specify the attachment using another method. + @param page the page number of the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the name of the attachment added to this page (or use setFileAttachmentIndex). + @param name the name of the attachment + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the index of the attachment added to this page (or use setFileAttachmentName). + @param name the name of the attachment + + + If this dictionary refers to an intermediate target, you can + add the next target in the sequence. + @param nested the next target in the sequence + + + Each colorSpace in the document will have an instance of this class + + @author Phillip Pan (phillip@formstar.com) + + + The indirect reference to this color + + + The color name that appears in the document body stream + + + The color + + + Each spot color used in a document has an instance of this class. + @param colorName the color name + @param indirectReference the indirect reference to the font + @param scolor the PDfSpotColor + + + Gets the indirect reference to this color. + @return the indirect reference to this color + + + Gets the color name as it appears in the document body. + @return the color name + + + Gets the SpotColor object. + @return the PdfSpotColor + + + + Eliminate the arabic vowels + + + Compose the tashkeel in the ligatures. + + + Do some extra double ligatures. + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Signals that there is no more text available. + + + Signals that there is no more column. + + + The column is valid. + + + The line is out the column limits. + + + The line cannot fit this column position. + + + Upper bound of the column. + + + Lower bound of the column. + + + The column Element. Default is left Element. + + + The left column bound. + + + The right column bound. + + + The chunks that form the text. + + + The current y line location. Text will be written at this line minus the leading. + + + The X position after the last line that has been written. + @since 5.0.3 + + + The leading for the current line. + + + The fixed text leading. + + + The text leading that is multiplied by the biggest font size in the line. + + + The PdfContent where the text will be written to. + + + The line status when trying to fit a line to a column. + + + The first paragraph line indent. + + + The following paragraph lines indent. + + + The right paragraph lines indent. + + + The extra space between paragraphs. + + + The width of the line when the column is defined as a simple rectangle. + + + Holds value of property spaceCharRatio. + + + Holds value of property linesWritten. + + + Holds value of property arabicOptions. + + + Pointer for the row in a table that is being dealt with + @since 5.1.0 + + + The index of the last row that needed to be splitted. + @since 5.0.1 changed a boolean into an int + -2 value mean it is the first attempt to split the first row. + -1 means that we try to avoid splitting current row. + + + if true, first line height is adjusted so that the max ascender touches the top + + + @since 5.4.2 + + + Creates a ColumnText. + @param text the place where the text will be written to. Can + be a template. + + + Creates an independent duplicated of the instance org. + @param org the original ColumnText + @return the duplicated + + + Makes this instance an independent copy of org. + @param org the original ColumnText + @return itself + + + Adds a Phrase to the current text array. + @param phrase the text + + + Replaces the current text array with this Phrase. + Anything added previously with AddElement() is lost. + @param phrase the text + + + Adds a Chunk to the current text array. + Will not have any effect if AddElement() was called before. + @param chunk the text + + + + + Finds the intersection between the yLine and the column. It will + set the lineStatus apropriatly. + @param wall the column to intersect + @return the x coordinate of the intersection + + + Finds the intersection between the yLine and the two + column bounds. It will set the lineStatus apropriatly. + @return a float[2]with the x coordinates of the intersection + + + Finds the intersection between the yLine, + the yLine-leadingand the two + column bounds. It will set the lineStatus apropriatly. + @return a float[4]with the x coordinates of the intersection + + + Sets the columns bounds. Each column bound is described by a + float[] with the line points [x1,y1,x2,y2,...]. + The array must have at least 4 elements. + @param leftLine the left column bound + @param rightLine the right column bound + + + Simplified method for rectangular columns. + @param phrase a Phrase + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx + @param lly + @param urx + @param ury + + + Simplified method for rectangular columns. + @param rect the rectangle for the column + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the yLine. + @return the yLine + + + Gets the number of rows that were drawn when a table is involved. + + + Gets the Element. + @return the alignment + + + Gets the first paragraph line indent. + @return the indent + + + Sets the first paragraph line indent. + + @param indent the indent + @param repeatFirstLineIndent do we need to repeat the indentation of the first line after a newline? + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the currentLeading. + + @return the currentLeading + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Call this after go() to know if any word was split into several lines. + @return + + + Sets the extra space between paragraphs. + @return the extra space between paragraphs + + + Clears the chunk array. A call to go() will always return + NO_MORE_TEXT. + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction. + @return the run direction + + + Gets the number of lines written. + @return the number of lines written + + + Gets the X position of the end of the last line that has been written + (will not work in simulation mode!). + @since 5.0.3 + + + Sets the arabic shaping options. The option can be AR_NOVOWEL, + AR_COMPOSEDTASHKEEL and AR_LIG. + @param arabicOptions the arabic shaping options + + + Gets the biggest descender value of the last line written. + @return the biggest descender value of the last line written + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + @return the width of the line + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @return the width of the line + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment. It is not influenced by the run direction + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + + + Fits the text to some rectangle adjusting the font size as needed. + @param font the font to use + @param text the text + @param rect the rectangle where the text must fit + @param maxFontSize the maximum font size + @param runDirection the run direction + @return the calculated font size that makes the text fit + + + Sets the canvas. + @param canvas + + + Sets the canvases. + @param canvas + + + Checks if the element has a height of 0. + @return true or false + @since 2.1.2 + + + Enables/Disables adjustment of first line height based on max ascender. + @param use enable adjustment if true + + + Checks the status variable and looks if there's still some text. + + + Holds value of property filledWidth. + + + Sets the real width used by the largest line. Only used to set it + to zero to start another measurement. + @param filledWidth the real width used by the largest line + + + Replaces the filledWidth if greater than the existing one. + @param w the new filledWidth if greater than the existing one + + + Sets the first line adjustment. Some objects have properties, like spacing before, that + behave differently if the object is the first to be written after go() or not. The first line adjustment is + true by default but can be changed if several objects are to be placed one + after the other in the same column calling go() several times. + @param adjustFirstLine true to adjust the first line, false otherwise + + + Creates an AES Cipher with CBC and no padding. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + Creates a new instance of ARCFOUREncryption + + + An initialization vector generator for a CBC block encryption. It's a random generator based on RC4. + @author Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + @return a 16 byte random initialization vector + + + Gets a random initialization vector. + @param len the length of the initialization vector + @return a random initialization vector + + + Creates a new instance of StandardDecryption + + + Creates an AES Cipher with CBC and padding PKCS5/7. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + + An instance of the default SplitCharacter. + + + Default constructor, has no custom characters to check. + + + Constructor with one splittable character. + + @param character char + + + Constructor with an array of splittable characters + + @param characters char[] + + + + Returns the current character + + @param current current position in the array + @param ck chunk array + @param cc the character array that has to be checked + @return the current character + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + + Gets the postscript font name. + @return the postscript font name + + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + + Always returns null. + @return null + @since 2.1.3 + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Exposes the unicode - > CID map that is constructed from the font's encoding + @return the unicode to CID map + @since 2.1.7 + + + Exposes the CID - > unicode map that is constructed from the font's encoding + @return the CID to unicode map + @since 5.4.0 + + + Gets the difference map + @return the difference map + @since 5.0.5 + + + Element that draws a dotted line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @since 2.1.2 + + + the gap between the dots. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Setter for the gap between the center of the dots of the dotted line. + @param gap the gap between the center of the dots + + + Interface for an Element that allows you to draw something at the current + vertical position. Trivial implementations are LineSeparator and VerticalPositionMark. + It is also used to define what has to be drawn by a separator chunk. + @since 2.1.2 + + + Implement this method if you want to draw something at the current Y position + (for instance a line). + @param canvas the canvas on which you can draw + @param llx the x coordinate of the left page margin + @param lly the y coordinate of the bottom page margin + @param urx the x coordinate of the right page margin + @param ury the y coordinate of the top page margin + @param y the current y position on the page + + + Element that draws a solid line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @author Paulo Soares + @since 2.1.2 + + + The thickness of the line. + + + The width of the line as a percentage of the available page width. + + + The color of the line. + + + The alignment of the line. + + + Creates a new instance of the LineSeparator class. + @param lineWidth the thickness of the line + @param percentage the width of the line as a percentage of the available page width + @param color the color of the line + @param align the alignment + @param offset the offset of the line relative to the current baseline (negative = under the baseline) + + + Creates a new instance of the LineSeparator class. + @param font the font + + + Creates a new instance of the LineSeparator class with + default values: lineWidth 1 user unit, width 100%, centered with offset 0. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Draws a horizontal line. + @param canvas the canvas to draw on + @param leftX the left x coordinate + @param rightX the right x coordindate + @param y the y coordinate + + + Setter for the line width. + @param lineWidth the thickness of the line that will be drawn. + + + Setter for the width as a percentage of the available width. + @return a width percentage + + + Setter for the color of the line that will be drawn. + @param color a color + + + Setter for the alignment of the line. + @param align an alignment value + + + Helper class implementing the DrawInterface. Can be used to add + horizontal or vertical separators. Won't draw anything unless + you implement the draw method. + @since 2.1.2 + + + Another implementation of the DrawInterface; its draw method will overrule LineSeparator.Draw(). + + + The offset for the line. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + @param drawInterface the drawInterface for this vertical position mark. + @param offset the offset for this vertical position mark. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + @see com.lowagie.text.Element#process(com.lowagie.text.ElementListener) + + + @see com.lowagie.text.Element#type() + + + @see com.lowagie.text.Element#isContent() + + + @see com.lowagie.text.Element#isNestable() + + + @see com.lowagie.text.Element#getChunks() + + + Setter for the interface with the overruling Draw() method. + @param drawInterface a DrawInterface implementation + + + Setter for the offset. The offset is relative to the current + Y position. If you want to underline something, you have to + choose a negative offset. + @param offset an offset + + + Enumerates all the fonts inside a True Type Collection. + + @author Paulo Soares + + + Class for an index. + + @author Michael Niedermair + + + Keeps a map with fields that are to be positioned in inGenericTag. + + + Keeps the form field that is to be positioned in a cellLayout event. + + + The PdfWriter to use when a field has to added in a cell event. + + + The PdfFormField that is the parent of the field added in a cell event. + + + Creates a new event. This constructor will be used if you need to position fields with Chunk objects. + + + Some extra padding that will be taken into account when defining the widget. + + + Add a PdfFormField that has to be tied to a generic Chunk. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + @param padding The padding to set. + + + @param parent The parent to set. + + + @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String) + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + Class for an index. + + @author Michael Niedermair + + + keeps the indextag with the pagenumber + + + All the text that is passed to this event, gets registered in the indexentry. + + @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag( + com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, + com.lowagie.text.Rectangle, java.lang.String) + + + indexcounter + + + the list for the index entry + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + + + Comparator for sorting the index + + + Set the comparator. + @param aComparator The comparator to set. + + + Returns the sorted list with the entries and the collected page numbers. + @return Returns the sorted list with the entries and teh collected page numbers. + + + Class for an index entry. +

+ In the first step, only in1, in2,in3 and tag are used. + After the collections of the index entries, pagenumbers are used. +

+
+ + first level + + + second level + + + third level + + + the tag + + + the lsit of all page numbers. + + + the lsit of all tags. + + + Create a new object. + @param aIn1 The first level. + @param aIn2 The second level. + @param aIn3 The third level. + @param aTag The tag. + + + Returns the in1. + @return Returns the in1. + + + Returns the in2. + @return Returns the in2. + + + Returns the in3. + @return Returns the in3. + + + Returns the tag. + @return Returns the tag. + + + Returns the pagenumer for this entry. + @return Returns the pagenumer for this entry. + + + Add a pagenumber. + @param number The page number. + @param tag + + + Returns the key for the map-entry. + @return Returns the key for the map-entry. + + + Returns the pagenumbers. + @return Returns the pagenumbers. + + + Returns the tags. + @return Returns the tags. + + + print the entry (only for test) + @return the toString implementation of the entry + + + If you want to add more than one page eventa to a PdfWriter, + you have to construct a PdfPageEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page eventa to the forwarder. + @param eventa an eventa that has to be added to the forwarder. + + + Called when the document is opened. + + @param writer + the PdfWriter for this document + @param document + the document + + + + Called when a page is finished, just before being written to the + document. + + @param writer + the PdfWriter for this document + @param document + the document + + + + + + + + + + + If you want to add more than one event to a cell, + you have to construct a PdfPCellEventForwarder, add the + different events to this object and add the forwarder to + the PdfPCell. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + If you want to add more than one page event to a PdfPTable, + you have to construct a PdfPTableEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[]) + + + @see com.itextpdf.text.pdf.PdfPTableEventAfterSplit#afterSplitTable(com.itextpdf.text.pdf.PdfPTable, com.itextpdf.text.pdf.PdfPRow, int) + @since iText 5.4.3 + + + + @author Paulo Soares + + + Constructs an extended color of a certain type and a certain color. + @param type + @param red + @param green + @param blue + @param alpha + + + Reads an FDF form and makes the fields available + @author Paulo Soares + + + Reads an FDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an FDF form. + @param pdfIn the byte array with the form + @throws IOException on error + + + Reads an FDF form. + @param url the URL of the document + @throws IOException on error + + + Reads an FDF form. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field dictionary. + @param name the fully qualified field name + @return the field dictionary + + + Gets a byte[] containing a file that is embedded in the FDF. + @param name the fully qualified field name + @return the bytes of the file + @throws IOException + @since 5.0.1 + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Writes an FDF form. + @author Paulo Soares + + + The PDF file associated with the FDF. + + + Creates a new FdfWriter. + + + Writes the content to a stream. + @param os the stream + @throws DocumentException on error + @throws IOException on error + + + Removes the field value. + @param field the field name + @return true if the field was found and removed, + false otherwise + + + Gets all the fields. The map is keyed by the fully qualified + field name and the values are PdfObject. + @return a map with all the fields + + + Gets the field value. + @param field the field name + @return the field value or null if not found + + + Sets the field value as a name. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a string. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a PDFAction. + For example, this method allows setting a form submit button action using {@link PdfAction#createSubmitForm(String, Object[], int)}. + This method creates an A entry for the specified field in the underlying FDF file. + Method contributed by Philippe Laflamme (plaflamme) + @param field the fully qualified field name + @param action the field's action + @return true if the value was inserted, + false if the name is incompatible with + an existing field + @since 2.1.5 + + + Sets all the fields from this FdfReader + @param fdf the FdfReader + + + Sets all the fields from this PdfReader + @param pdf the PdfReader + + + Sets all the fields from this AcroFields + @param acro the AcroFields + + + Gets the PDF file name associated with the FDF. + @return the PDF file name associated with the FDF + + + Each font in the document will have an instance of this class + where the characters used will be represented. + + @author Paulo Soares + + + The indirect reference to this font + + + The font name that appears in the document body stream + + + The font + + + The font if its an instance of TrueTypeFontUnicode + + + The array used with single byte encodings + + + The map used with double byte encodings. The key is Int(glyph) and the + value is int[]{glyph, width, Unicode code} + + + The font type + + + true if the font is symbolic + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Each font used in a document has an instance of this class. + This class stores the characters used in the document and other + specifics unique to the current working document. + @param fontName the font name + @param indirectReference the indirect reference to the font + @param baseFont the BaseFont + + + Gets the indirect reference to this font. + @return the indirect reference to this font + + + Gets the font name as it appears in the document body. + @return the font name + + + Gets the BaseFont of this font. + @return the BaseFont of this font + + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + @param text the text to convert + @return the conversion + + + Writes the font definition to the document. + @param writer the PdfWriter of this document + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. Set to false + to include all. + @param subset new value of property subset + + + + Adds a Font to be searched for valid characters. + @param font the Font + + + Process the text so that it will render with a combination of fonts + if needed. + @param text the text + @return a Phrase with one or more chunks + + + + @author Paulo Soares + + + Hyphenates words automatically accordingly to the language and country. + The hyphenator engine was taken from FOP and uses the TEX patterns. If a language + is not provided and a TEX pattern for it exists, it can be easily adapted. + + @author Paulo Soares + + + The hyphenator engine. + + + The second part of the hyphenated word. + + + Creates a new hyphenation instance usable in Chunk. + @param lang the language ("en" for english, for example) + @param country the country ("GB" for Great-Britain or "none" for no country, for example) + @param leftMin the minimun number of letters before the hyphen + @param rightMin the minimun number of letters after the hyphen + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + return number of items in array + + + returns current capacity of array + + + This is to implement memory allocation in the array. Like Malloc(). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Reset Vector but don't resize or clear elements + + + return number of items in array + + + returns current capacity of array + + + + + number of hyphenation points in word + + + rawWord as made of alternating strings and {@link Hyphen Hyphen} + instances + + + @return the number of hyphenation points in the word + + + @return the pre-break text, not including the hyphen character + + + @return the post-break text + + + @return the hyphenation points + + + + + value space: stores the inteletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + @param values a string of digits from '0' to '9' representing the + interletter values. + @return the index into the vspace array where the packed values + are stored. + + + String compare, returns 0 if equal or + t is a substring of s + + + + Hyphenate word and return a Hyphenation object. + @param word the word to be hyphenated + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + w = "****nnllllllnnn*****", + where n is a non-letter, l is a letter, + all n may be absent, the first n is at offset, + the first l is at offset + iIgnoreAtBeginning; + word = ".llllll.'\0'***", + where all l in w are copied into word. + In the first part of the routine len = w.length, + in the second part of the routine len = word.length. + Three indices are used: + Index(w), the index in w, + Index(word), the index in word, + Letterindex(word), the index in the letter part of word. + The following relations exist: + Index(w) = offset + i - 1 + Index(word) = i - iIgnoreAtBeginning + Letterindex(word) = Index(word) - 1 + (see first loop). + It follows that: + Index(w) - Index(word) = offset - 1 + iIgnoreAtBeginning + Index(w) = Letterindex(word) + offset + iIgnoreAtBeginning + Hyphenate word and return an array of hyphenation points. + @param w char array that contains the word + @param offset Offset to first character in word + @param len Length of word + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + Add a character class to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + + Add an exception to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} class as callback to + store the hyphenation exceptions. + @param word normalized word + @param hyphenatedword a vector of alternating strings and + {@link Hyphen hyphen} objects. + + + Add a pattern to the tree. Mainly, to be used by + {@link SimplePatternParser SimplePatternParser} class as callback to + add a pattern to the tree. + @param pattern the hyphenation pattern + @param ivalue interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + TODO: Don't use statics + + + @param lang + @param country + @param leftMin + @param rightMin + + + @param lang + @param country + @return the hyphenation tree + + + @param key + @return a hyphenation tree + + + @param lang + @param country + @param word + @param leftMin + @param rightMin + @return a hyphenation object + + + @param lang + @param country + @param word + @param offset + @param len + @param leftMin + @param rightMin + @return a hyphenation object + + + @param min + + + @param min + + + @param lang + @param country + + + @param word + @param offset + @param len + @return a hyphenation object + + + @param word + @return a hyphenation object + + + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + @param chargroup character group + + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + {@link Hyphen Hyphen} instances + + + Add hyphenation patterns. + @param pattern the pattern + @param values interletter values expressed as a string of + digit characters. + + + Parses the xml hyphenation pattern. + + @author Paulo Soares + + + Creates a new instance of PatternParser2 + + +

Ternary Search Tree

+ +

A ternary search tree is a hibrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash).

+ +

The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirenments to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe.

+ +

All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values.

+ + @author cav@uniscope.co.jp +
+ + We use 4 arrays to represent a node. I guess I should have created + a proper node class, but somehow Knuth's pascal code made me forget + we now have a portable language with memory management and + automatic garbage collection! And now is kind of late, furthermore, + if it ain't broken, don't fix it. + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + +

The character stored in this node: splitchar + Two special values are reserved:

+
  • 0x0000 as string terminator
  • +
  • 0xFFFF to indicate that the branch starting at + this node is compressed
+

This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character.

+
+ + This vector holds the trailing of the keys when the branch is compressed. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + + The actual insertion function, recursive version. + + + Compares 2 null terminated char arrays + + + Compares a string with null terminated char array + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + + Balance the tree for best search performance + + + Each node stores a character (splitchar) which is part of + some Key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + current node index + + + current key + + + TernaryTree parent + + + Node stack + + + key stack implemented with a StringBuilder + + + traverse upwards + + + traverse the tree to find next key + + + + Summary description for ICC_Profile. + + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + @author Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + @param text the Unicode string + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + @param char1 the Unicode char + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + @param b the input byte array + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Called by Chunk to hyphenate a word. + + @author Paulo Soares + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + This is the AcroForm object for the complete document. + + + This is the array containing the references to annotations + that were added to the document. + + + This is an array containg references to some delayed annotations + (that were added for a page that doesn't exist yet). + + + Checks if the AcroForm is valid. + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + Stores the PDF version information, + knows how to write a PDF Header, + and how to add the version to the catalog (if necessary). + + + Contains different strings that are part of the header. + + + Indicates if the header was already written. + + + Indicates if we are working in append mode. + + + The version that was or will be written to the header. + + + The version that will be written to the catalog. + + + The version that user can use to get the actual version of PDF document * + + + The extensions dictionary. + @since 2.1.6 + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + Sets the append mode. + + + Writes the header to the OutputStreamCounter. + @throws IOException + + + Returns the PDF version as a name. + @param version the version character. + + + Returns the version as a byte[]. + @param version the version character + + + Adds the version to the Catalog dictionary. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Stores the information concerning viewer preferences, + and contains the business logic that allows you to set viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences + + + A series of viewer preferences. + + + This value will hold the viewer preferences for the page layout and page mode. + + + This dictionary holds the viewer preferences (other than page layout and page mode). + + + The mask to decide if a ViewerPreferences dictionary is needed + + + Returns the page layout and page mode value. + + + Returns the viewer preferences. + + + Sets the viewer preferences as the sum of several constants. + + @param preferences + the viewer preferences + @see PdfWriter#setViewerPreferences + + + Given a key for a viewer preference (a PdfName object), + this method returns the index in the VIEWER_PREFERENCES array. + @param key a PdfName referring to a viewer preference + @return an index in the VIEWER_PREFERENCES array + + + Checks if some value is valid for a certain key. + + + Sets the viewer preferences for printing. + + + Adds the viewer preferences defined in the preferences parameter to a + PdfDictionary (more specifically the root or catalog of a PDF file). + + @param catalog + + + The value indicating if the PDF has to be in conformance with PDF/X. + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#setPDFXConformance(int) + + + @see com.itextpdf.text.pdf.interfaces.PdfIsoConformance#isPdfIso() + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if the PDF has to be in conformance with PDF/X-1a:2001 + @return true of the PDF has to be in conformance with PDF/X-1a:2001 + + + Checks if the PDF has to be in conformance with PDF/X-3:2002 + @return true of the PDF has to be in conformance with PDF/X-3:2002 + + + Business logic that checks if a certain object is in conformance with PDF/X. + @param writer the writer that is supposed to write the PDF/X file + @param key the type of PDF ISO conformance that has to be checked + @param obj1 the object that is checked for conformance + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + The interface common to all layer types. + + @author Paulo Soares + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Gets the object representing the layer. + @return the object representing the layer + + + Allows a class to catch several document events. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + Called when a page is initialized. +

+ Note that if even if a page is not written this method is still + called. It is preferable to use onEndPage to avoid + infinite loops. +

+

+ Note that this method isn't called for the first page. You should apply modifications for the first + page either before opening the document or by using the onOpenDocument() method. +

+ + @param writer the PdfWriter for this document + @param document the document +
+ + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + + Summary description for IPdfPCellEvent. + + + + + An interface that can be used to retrieve the position of cells in PdfPTable. + + @author Paulo Soares + + + + Implementation of the IndicLigaturizer for Gujarati. + + + Constructor for the IndicLigaturizer for Gujarati. + + + Hebrew is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Interface that needs to be implemented by classes that process bytes + representing text in specific languages. Processing involves changing + order to Right to Left and/or applying ligatures. + + + Processes a String + @param s the original String + @return the processed String + + + Indicates if the rundirection is right-to-left. + @return true if text needs to be rendered from right to left. + + + Superclass for processors that can convert a String of bytes in an Indic + language to a String in the same language of which the bytes are reordered + for rendering using a font that contains the necessary glyphs. + + + The table mapping specific character indexes to the characters in a + specific language. + + + Reorders the bytes in a String making Indic ligatures + + @param s + the original String + @return the ligaturized String + + + Indic languages are written from right to left. + + @return false + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Checks if a character is vowel letter. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel letter + + + Checks if a character is vowel sign. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel sign + + + Checks if a character is consonant letter. + + @param ch + the character that needs to be checked + @return true if the chracter is a consonant letter + + + Swaps two characters in a StringBuilder object + + @param s + the StringBuilder + @param i + the index of one character + @param j + the index of the other character + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newstring to the end of oldstring. + + + Represents a Bezier curve. + + @since 5.5.6 + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + Constructs new bezier curve. + @param controlPoints Curve's control points. + + + {@inheritDoc} + + + You can adjust precision of the approximation by varying the following + parameters: {@link #curveCollinearityEpsilon}, {@link #distanceToleranceSquare}, + {@link #distanceToleranceManhattan} + + @return {@link java.util.List} containing points of piecewise linear approximation + for this bezier curve. + @since 5.5.6 + + + @author kevin + @since 5.0.1 + + + Gets the content bytes from a content object, which may be a reference + a stream or an array. + @param contentObject the object to read bytes from + @return the content bytes + @throws IOException + + + Gets the content bytes of a page from a reader + @param reader the reader to get content bytes from + @param pageNum the page number of page you want get the content stream from + @return a byte array with the effective content stream of a page + @throws IOException + @since 5.0.1 + + + Simply extends the {@link com.itextpdf.text.pdf.parser.RenderListener} interface to provide + additional methods. + + {@inheritDoc} + + @since 5.5.6 + + + Called when the current path is being modified. E.g. new segment is being added, + new subpath is being started etc. + + @param renderInfo Contains information about the path segment being added to the current path. + + + Called when the current path should be rendered. + + @param renderInfo Contains information about the current path which should be rendered. + @return The path which can be used as a new clipping path. + + + Called when the current path should be set as a new clipping path. + + @param rule Either {@link PathPaintingRenderInfo#EVEN_ODD_RULE} or {@link PathPaintingRenderInfo#NONZERO_WINDING_RULE} + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + The filters to be applied + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + Applies filters, then delegates to the deleg if all filters pass + @param renderInfo contains info to render text + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + Applies filters, then delegates to the deleg if all filters pass + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.TextExtractionStrategy#getResultantText() + + + Keeps all the parameters of the graphics state. + @since 2.1.4 + + + The current transformation matrix. + + + The current character spacing. + + + The current word spacing. + + + The current horizontal scaling + + + The current leading. + + + The active font. + + + The current font size. + + + The current render mode. + + + The current text rise + + + The current knockout value. + + + The current color space for stroke. + + + The current color space for stroke. + + + The current fill color. + + + The current stroke color. + + + The line width for stroking operations + + + The line cap style. For possible values + see {@link PdfContentByte} + + + The line join style. For possible values + see {@link PdfContentByte} + + + The mitir limit value + + + The line dash pattern + + + Constructs a new Graphics State object with the default values. + + + Copy constructor. + @param source another GraphicsState object + + + Getter for the current transformation matrix + @return the ctm + @since iText 5.0.1 + + + Getter for the character spacing. + @return the character spacing + @since iText 5.0.1 + + + Getter for the word spacing + @return the word spacing + @since iText 5.0.1 + + + Getter for the horizontal scaling + @return the horizontal scaling + @since iText 5.0.1 + + + Getter for the leading + @return the leading + @since iText 5.0.1 + + + Getter for the font + @return the font + @since iText 5.0.1 + + + Getter for the font size + @return the font size + @since iText 5.0.1 + + + Getter for the render mode + @return the renderMode + @since iText 5.0.1 + + + Getter for text rise + @return the text rise + @since iText 5.0.1 + + + Getter for knockout + @return the knockout + @since iText 5.0.1 + + + Gets the current color space for fill operations + + + Gets the current color space for stroke operations + + + Gets the current fill color + @return a BaseColor + + + Gets the current stroke color + @return a BaseColor + + + Getter and setter for the line width. + @return The line width + @since 5.5.6 + + + Getter and setter for the line cap style. + For possible values see {@link PdfContentByte} + @return The line cap style. + @since 5.5.6 + + + Getter and setter for the line join style. + For possible values see {@link PdfContentByte} + @return The line join style. + @since 5.5.6 + + + Getter and setter for the miter limit value. + @return The miter limit. + @since 5.5.6 + + + Getter for the line dash pattern. + @return The line dash pattern. + @since 5.5.6 + + + Setter for the line dash pattern. + @param lineDashPattern New line dash pattern. + @since 5.5.6 + + + Interface implemented by a series of content operators + @since 2.1.4 + + + Invokes a content operator. + @param processor the processor that is dealing with the PDF content + @param operator the literal PDF syntax of the operator + @param operands the operands that come with the operator + @throws Exception any exception can be thrown - it will be re-packaged into a runtime exception and re-thrown by the {@link PdfContentStreamProcessor} + + + Represents image data from a PDF + @since 5.0.1 + + + The graphics state that was in effect when the image was rendered + + + A reference to the image XObject + + + A reference to an inline image + + + the color space associated with the image + + + the image object to be rendered, if it has been parsed already. Null otherwise. + + + Array containing marked content info for the text. + @since 5.5.11 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on inline image data. This is nowhere near completely thought through + and really just acts as a placeholder. + @param ctm the coordinate transformation matrix at the time the image is rendered + @param imageObject the image object representing the inline image + @return the ImageRenderInfo representing the rendered embedded image + @since 5.0.1 + + + Gets an object containing the image dictionary and bytes. + @return an object containing the image dictionary and byte[] + @since 5.0.2 + + + @return a vector in User space representing the start point of the xobject + + + @return The coordinate transformation matrix active when this image was rendered. Coordinates are in User space. + @since 5.0.3 + + + @return the size of the image, in User space units + + + @return an indirect reference to the image + @since 5.0.2 + + + @return the current fill color from the graphics state at the time this render operation occured + @since 5.5.7 + + + Checks if the image belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.5.11 + + + * Checks if the image belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.5.11 + + + @return the marked content associated with the ImageRenderInfo instance. + + + + Called when a new text block is beginning (i.e. BT) + @since iText 5.0.1 + + + Called when text should be rendered + @param renderInfo information specifying what to render + + + Called when a text block has ended (i.e. ET) + @since iText 5.0.1 + + + Called when image should be rendered + @param renderInfo information specifying what to render + @since iText 5.0.1 + + + Defines an interface for {@link RenderListener}s that can return text + @since 5.0.2 + + + Returns the result so far. + @return a String with the resulting text. + + + Represents a line. + + @since 5.5.6 + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + + + Constructs a new line based on the given coordinates. + + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash array and + a dash phase. + + @since 5.5.6 + + + Creates new {@link LineDashPattern} object. + @param dashArray The dash array. See {@link #getDashArray()} + @param dashPhase The dash phase. See {@link #getDashPhase()} + + + Getter and setter for the dash array. + + The dash array’s elements is number that specify the lengths of + alternating dashes and gaps; the numbers are nonnegative. The + elements are expressed in user space units. + + @return The dash array. + + + Getter and setter for the dash phase. + + The dash phase shall specify the distance into the dash pattern at which + to start the dash. The elements are expressed in user space units. + + @return The dash phase. + + + Calculates and returns the next element which is either gap or dash. + @return The next dash array's element. + + + Checks whether the dashed pattern is solid or not. It's solid when the + size of a dash array is even and sum of all the units off in the array + is 0.
+ For example: [3 0 4 0 5 0 6 0] (sum is 0), [3 0 4 0 5 1] (sum is 1). +
+ + Resets the dash array so that the {@link #next()} method will start + from the beginning of the dash array. + + + Represents a line segment in a particular coordinate system. This class is immutable. + @since 5.0.2 + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + @param startPoint the start point of a line segment. + @param endPoint the end point of a line segment. + + + @return the start point + + + @return the end point + + + @return the length of this line segment + @since 5.0.2 + + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + @return the bounding rectangle + @since 5.0.2 + + + Transforms the segment by the specified matrix + @param m the matrix for the transformation + @return the transformed segment + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + @param strat the custom strategy + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @param str + @return true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + @param str + @return true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + Filters the provided list with the provided filter + @param textChunks a list of all TextChunks that this strategy found during processing + @param filter the filter to apply. If null, filtering will be skipped. + @return the filtered list + @since 5.3.3 + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + @param chunk the new chunk being evaluated + @param previousChunk the chunk that appeared immediately before the current chunk + @return true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + Gets text that meets the specified filter + If multiple text extractions will be performed for the same page (i.e. for different physical regions of the page), + filtering at this level is more efficient than filtering using {@link FilteredRenderListener} - but not nearly as powerful + because most of the RenderInfo state is not captured in {@link TextChunk} + @param chunkFilter the filter to to apply + @return the text results so far, filtered using the specified filter + + + Returns the result so far. + @return a String with the resulting text. + + + Used for debugging only + + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + the starting location of the chunk + + + the ending location of the chunk + + + the orientation as a scalar for quick sorting + + + perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system) + we round to the nearest integer to handle the fuzziness of comparing floats + + + distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + the width of a single space character in the font of the chunk + + + @param comparedLine the location to compare to + @return true is this location is on the the same line as the other + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + unit vector in the orientation of the chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + @return the start location of the text + + + @return the end location of the text + + + @return the width of a single space character as rendered by this chunk + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @param as the location to compare to + @return true is this location is on the the same line as the other + + + + @param int1 + @param int2 + @return comparison of the two integers + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + Specifies a filter for filtering {@link TextChunk} objects during text extraction + @see LocationTextExtractionStrategy#getResultantText(TextChunkFilter) + @since 5.3.3 + + + @param textChunk the chunk to check + @return true if the chunk should be allowed + + + Represents a Marked Content block in a PDF + @since 5.0.2 + + + Get the tag of this marked content + @return the tag of this marked content + + + Determine if an MCID is available + @return true if the MCID is available, false otherwise + + + Gets the MCID value If the Marked Content contains + an MCID entry, returns that value. Otherwise, a {@link NullPointerException} is thrown. + @return the MCID value + @throws NullPointerException if there is no MCID (see {@link MarkedContentInfo#hasMcid()}) + + + A {@link RenderFilter} that only allows text within a specified marked content sequence. + @since 5.0.2 + + + The MCID to match. + + + Constructs a filter + @param mcid the MCID to match + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Keeps all the values of a 3 by 3 matrix + and allows you to do some math with matrices. + @since 2.1.4 + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + the values inside the matrix (the identity matrix by default). + default initialization is performed in the default constructor. + + + constructs a new Matrix with identity. + !shall be called from any other constructor! + + + Constructs a matrix that represents translation + @param tx + @param ty + + + Creates a Matrix with 6 specified entries + @param a + @param b + @param c + @param d + @param e + @param f + + + Gets a specific value inside the matrix. + @param index an array index corresponding with a value inside the matrix + @return the value at that specific position. + + + multiplies this matrix by 'b' and returns the result + See http://en.wikipedia.org/wiki/Matrix_multiplication + @param by The matrix to multiply by + @return the resulting matrix + + + Subtracts a matrix from this matrix and returns the results + @param arg the matrix to subtract from this matrix + @return a Matrix object + + + Computes the determinant of the matrix. + @return the determinant of the matrix + + + Checks equality of matrices. + @param obj the other Matrix that needs to be compared with this matrix. + @return true if both matrices are equal + @see java.lang.Object#equals(java.lang.Object) + + + Generates a hash code for this object. + @return the hash code of this object + @see java.lang.Object#hashCode() + + + Generates a String representation of the matrix. + @return the values, delimited with tabs and newlines. + @see java.lang.Object#toString() + + + Attaches a {@link RenderListener} for the corresponding filter set. + @param delegate RenderListener instance to be attached. + @param filterSet filter set to be attached. The delegate will be invoked if all the filters pass. + + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + @since 5.5.6 + + + @return A {@link java.util.List} of subpaths forming this path. + + + Adds the subpath to this path. + + @param subpath The subpath to be added to this path. + + + Adds the subpaths to this path. + + @param subpaths {@link java.util.List} of subpaths to be added to this path. + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + @return The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + + + Appends a straight line segment from the current point to the point (x, y). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the current + point represents two control points. + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the (x3, y3) + point represents two control points. + + + Appends a rectangle to the current path as a complete subpath. + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + @returns Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + + + Contains information relating to construction the current path. + + @since 5.5.6 + + + See {@link com.itextpdf.text.pdf.parser.Path#moveTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#lineTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveFromTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#closeSubpath()} + + + See {@link com.itextpdf.text.pdf.parser.Path#rectangle(float, float, float, float)} + + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains data of a new segment being added to the current path. + E.g. x, y, w, h for rectangle; x, y for line etc. + @param ctm Current transformation matrix. + + + See {@link #PathConstructionRenderInfo(int, java.util.List, Matrix)} + + + @return construction operation should be performed on the current path. + + + @return {@link java.util.List} containing data of a new segment (E.g. x, y, w, h for rectangle; + x, y for line etc.) if the specified operation relates to adding the segment to the + current path, null otherwise. + + + @return Current transformation matrix. + + + Contains information relating to painting current path. + + @since 5.5.6 + + + The nonzero winding number rule determines whether a given point is inside a path by + conceptually drawing a ray from that point to infinity in any direction and then examining + the places where a segment of the path crosses the ray. Starting with a count of 0, the rule + adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a + segment crosses from right to left. After counting all the crossings, if the result is 0, the + point is outside the path; otherwise, it is inside. + + For more details see PDF spec. + + + The even-odd rule determines whether a point is inside a path by drawing a ray from that point in + any direction and simply counting the number of path segments that cross the ray, regardless of + direction. If this number is odd, the point is inside; if even, the point is outside. + + For more details see PDF spec. + + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + @param operation One of the possible combinations of {@link #STROKE} and {@link #FILL} values or {@link #NO_OP} + @param rule Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + @param gs The graphics state. + + + If the operation is {@link #NO_OP} then the rule is ignored, + otherwise {@link #NONZERO_WINDING_RULE} is used by default. + + See {@link #PathPaintingRenderInfo(int, int, GraphicsState)} + + + @return int value which is either {@link #NO_OP} or one of possible + combinations of {@link #STROKE} and {@link #FILL} + + + @return Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + + + @return Current transformation matrix. + + + Tool that parses the content of a PDF document. + @since 2.1.4 + + + Shows the detail of a dictionary. + This is similar to the PdfLister functionality. + @param dic the dictionary of which you want the detail + @return a String representation of the dictionary + + + Shows the detail of a dictionary. + @param dic the dictionary of which you want the detail + @param depth the depth of the current dictionary (for nested dictionaries) + @return a String representation of the dictionary + + + Displays a summary of the entries in the XObject dictionary for the stream + @param resourceDic the resource dictionary for the stream + @return a string with the summary of the entries + @throws IOException + @since 5.0.2 + + + Writes information about a specific page from PdfReader to the specified output stream. + @since 2.1.5 + @param reader the PdfReader to read the page content from + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param out the output stream to send the content to + @throws IOException + + + Writes information about the specified page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified file, or System.out. + @param args + + + Processor for a PDF content Stream. + @since 2.1.4 + + + Default oper + @since 5.0.1 + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + + Stack keeping track of the graphics state. + + + Text matrix. + + + Text line matrix. + + + Listener that will be notified of render events + + + A map with all supported XObject handlers + + + The font cache. + @since 5.0.6 + + + + A stack containing marked content info. + @since 5.0.2 + + + Creates a new PDF Content Stream Processor that will send it's output to the + designated render listener. + + @param renderListener the {@link RenderListener} that will receive rendering notifications + + + + Gets the font pointed to by the indirect reference. The font may have been cached. + @param ind the indirect reference ponting to the font + @return the font + @since 5.0.6 + + + Loads all the supported graphics and text state operators in a map. + + + + @return {@link java.util.Collection} containing all the registered operators strings + @since 5.5.6 + + + Resets the graphics state stack, matrices and resources. + + + Returns the current graphics state. + @return the graphics state + + + Invokes an oper. + @param oper the PDF Syntax of the oper + @param operands a list with operands + + + Add to the marked content stack + @param tag the tag of the marked content + @param dict the PdfDictionary associated with the marked content + @since 5.0.2 + + + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + @since 5.0.2 + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + Displays text. + @param string the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + @param xobjectName the name of the XObject to retrieve from the resource dictionary + + + Displays the current path. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any int value. + @param close Indicates whether the path should be closed or not. + @since 5.5.6 + + + Modifies the current path. + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains x, y components of points of a new segment being added to the current path. + E.g. x1 y1 x2 y2 x3 y3 etc. It's ignored for "close subpath" operarion (h). + + + Adjusts the text matrix for the specified adjustment value (see TJ oper in the PDF spec for information) + @param tj the text adjustment + + + Processes PDF syntax. + Note: If you re-use a given {@link PdfContentStreamProcessor}, you must call {@link PdfContentStreamProcessor#reset()} + @param contentBytes the bytes of a content stream + @param resources the resources that come with the content stream + + + Callback when an inline image is found. This requires special handling because inline images don't follow the standard operator syntax + @param info the inline image + @param colorSpaceDic the color space for the inline immage + + + Property for the RenderListener object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + @return the renderListener + + + A resource dictionary that allows stack-like behavior to support resource dictionary inheritance + + + A content oper implementation (unregistered). + + + A content oper implementation (TJ). + + + A content oper implementation ("). + + + A content oper implementation ('). + + + A content oper implementation (Tj). + + + A content oper implementation (T*). + + + A content oper implementation (Tm). + + + A content oper implementation (TD). + + + A content oper implementation (Td). + + + A content oper implementation (Tf). + + + A content oper implementation (Tr). + + + A content oper implementation (Ts). + + + A content oper implementation (TL). + + + A content oper implementation (Tz). + + + A content oper implementation (Tc). + + + A content oper implementation (Tw). + + + A content oper implementation (gs). + + + A content oper implementation (q). + + + A content oper implementation (cm). + + + Gets a color based on a list of operands. + + + Gets a color based on a list of operands. + + + A content operator implementation (g). + + + A content operator implementation (G). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (cs). + + + A content operator implementation (CS). + + + A content operator implementation (sc / scn). + + + A content operator implementation (SC / SCN). + + + A content oper implementation (Q). + + + A content oper implementation (BT). + + + A content oper implementation (ET). + + + A content oper implementation (BMC). + @since 5.0.2 + + + A content oper implementation (BDC). + @since 5.0.2 + + + A content oper implementation (EMC). + @since 5.0.2 + + + A content oper implementation (Do). + + + A content operator implementation (w). + + + A content operator implementation (J). + + + A content operator implementation (j). + + + A content operator implementation (M). + + + A content operator implementation (d). + + + A content operator implementation (m). + + @since 5.5.6 + + + A content operator implementation (l). + + @since 5.5.6 + + + A content operator implementation (c). + + @since 5.5.6 + + + A content operator implementation (v). + + @since 5.5.6 + + + A content operator implementation (y). + + @since 5.5.6 + + + A content operator implementation (h). + + @since 5.5.6 + + + A content operator implementation (re). + + @since 5.5.6 + + + A content operator implementation (S, s, f, F, f*, B, B*, b, b*). + + @since 5.5.6 + + + Constructs PainPath object. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any value. + @param close Indicates whether the path should be closed or not. + + + A content operator implementation (n). + + @since 5.5.6 + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + An object that contains an image dictionary and image bytes. + @since 5.0.2 + + + Different types of data that can be stored in the bytes of a {@link PdfImageObject} + @since 5.0.4 + + + the recommended file extension for streams of this type + + + @param fileExtension the recommended file extension for use with data of this type (for example, if the bytes were just saved to a file, what extension should the file have) + + + @return the file extension registered when this type was created + + + A filter that does nothing, but keeps track of the filter type that was used + @since 5.0.4 + + + The image dictionary. + + + The decoded image bytes (after applying filters), or the raw image bytes if unable to decode + + + Tracks the type of data that is actually stored in the streamBytes member + + + @return the type of image data that is returned by getImageBytes() + + + Creates a PdfImage object. + @param stream a PRStream + @throws IOException + + + Creates a PdfImage object. + @param stream a PRStream + @param colorSpaceDic a color space dictionary + @throws IOException + + + Creats a PdfImage object using an explicitly provided dictionary and image bytes + @param dictionary the dictionary for the image + @param samples the samples + @since 5.0.3 + + + Returns an entry from the image dictionary. + @param key a key + @return the value + + + Returns the image dictionary. + @return the dictionary + + + Sets state of this object according to the color space + @param colorspace the colorspace to use + @param allowIndexed whether indexed color spaces will be resolved (used for recursive call) + @throws IOException if there is a problem with reading from the underlying stream + + + decodes the bytes currently captured in the streamBytes and replaces it with an image representation of the bytes + (this will either be a png or a tiff, depending on the color depth of the image) + @throws IOException + + + @return the bytes of the image (the format will be as specified in {@link PdfImageObject#getImageBytesType()} + @throws IOException + @since 5.0.4 + + + A utility class that makes it cleaner to process content from pages of a PdfReader + through a specified RenderListener. + @since 5.0.2 + + + the reader this parser will process + + + + + Extracts text from a PDF file. + @since 2.1.4 + + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom ContentOperators + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @param additionalContentOperators an optional dictionary of custom IContentOperators for rendering instructions + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + + + Extract text from a specified page using an extraction strategy. + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + @since 5.0.2 + + + + A {@link RenderFilter} that only allows text within a specified rectangular region + @since 5.0.1 + + + the region to allow text from + + + Constructs a filter + @param filterRect the rectangle to filter text against. Note that this is a java.awt.Rectangle ! + + + Constructs a filter + @param filterRect the rectangle to filter text against. + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Interface for defining filters for use with {@link FilteredRenderListener} + @since 5.0.1 + + + @param renderInfo + @return true if the text render operation should be performed + + + + @param renderInfo + @return true if the image render operation should be performed + + + Represents segment from a PDF path. + + @since 5.5.6 + + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + @return Ordered list consisting of shape's base points. + + + A simple text extraction renderer. + + This renderer keeps track of the current Y position of each string. If it detects + that the y position has changed, it inserts a line break into the output. If the + PDF renders text in a non-top-to-bottom fashion, this will result in the text not + being a true representation of how it appears in the PDF. + + This renderer also uses a simple strategy based on the font metrics to determine if + a blank space should be inserted into the output. + + @since 2.1.5 + + + used to store the resulting String. + + + Creates a new text extraction renderer. + + + @since 5.0.1 + + + @since 5.0.1 + + + Returns the result so far. + @return a String with the resulting text. + + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + @param text the text to append to the text results accumulated so far + + + Captures text using a simplified algorithm for inserting hard returns and spaces + @param renderInfo render info + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + As subpath is a part of a path comprising a sequence of connected segments. + + @since 5.5.6 + + + Copy constuctor. + @param subpath + + + Constructs a new subpath starting at the given point. + + + Constructs a new subpath starting at the given point. + + + Sets the start point of the subpath. + @param startPoint + + + Sets the start point of the subpath. + @param x + @param y + + + @return The point this subpath starts at. + + + @return The last point of the subpath. + + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + @param segment new segment. + + + @return {@link java.util.List} comprising all the segments + the subpath made on. + + + Checks whether subpath is empty or not. + @return true if the subpath is empty, false otherwise. + + + @return true if this subpath contains only one point and it is not closed, + false otherwise + + + Returns or sets a bool value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + @return bool value indicating whether the path must be closed or not. + @since 5.5.6 + + + Returns a bool indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + @return bool value indicating whether the path is degenerate or not. + @since 5.5.6 + + + @return {@link java.util.List} containing points of piecewise linear approximation + for this subpath. + @since 5.5.6 + + + Converts a tagged PDF document into an XML file. + + @since 5.0.2 + + + The reader obj from which the content streams are read. + + + The writer obj to which the XML will be written + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + @param charset + the charset to encode the data + @since 5.0.5 + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + + + Inspects a child of a structured element. This can be an array or a + dictionary. + + @param k + the child to inspect + @throws IOException + + + If the child of a structured element is an array, we need to loop over + the elements. + + @param k + the child array to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + Searches for a tag in a page. + + @param tag + the name of the tag + @param obj + an identifier to find the marked content + @param page + a page dictionary + @throws IOException + + + Allows you to find the rectangle that contains all the text in a page. + @since 5.0.2 + + + Method invokes by the PdfContentStreamProcessor. + Passes a TextRenderInfo for every text chunk that is encountered. + We'll use this object to obtain coordinates. + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Getter for the left margin. + @return the X position of the left margin + + + Getter for the bottom margin. + @return the Y position of the bottom margin + + + Getter for the right margin. + @return the X position of the right margin + + + Getter for the top margin. + @return the Y position of the top margin + + + Gets the width of the text block. + @return a width + + + Gets the height of the text block. + @return a height + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + + + + ! .NET SPECIFIC ! + is used for caching "UTF-16BE" encoding to improve performance + + + Array containing marked content info for the text. + @since 5.0.2 + + + Creates a new TextRenderInfo object + @param string the PDF string that should be displayed + @param gs the graphics state (note: at this time, this is not immutable, so don't cache it) + @param textMatrix the text matrix at the time of the render operation + @param markedContentInfo the marked content sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character + @param parent the parent TextRenderInfo + @param string the content of a TextRenderInfo + @param horizontalOffset the unscaled horizontal offset of the character that this TextRenderInfo represents + @since 5.3.3 + + + @return the text to render + + + @return original PDF string + + + Checks if the text belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.0.2 + + + * Checks if the text belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.3.5 + + + @return the marked content associated with the TextRenderInfo instance. + + + @return the unscaled (i.e. in Text space) width of the text + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the baseline line segment + @since 5.0.2 + + + Gets the ascentline for the text (i.e. the line that represents the topmost extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the ascentline line segment + @since 5.0.2 + + + Gets the descentline for the text (i.e. the line that represents the bottom most extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the descentline line segment + @since 5.0.2 + + + Getter for the font + @return the font + @since iText 5.0.2 + + + The rise represents how far above the nominal baseline the text should be rendered. The {@link #getBaseline()}, {@link #getAscentLine()} and {@link #getDescentLine()} methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + @return The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + @since 5.3.3 + + + + @param width the width, in text space + @return the width in user space + @since 5.3.3 + + + + @param height the height, in text space + @return the height in user space + @since 5.3.3 + + + @return The width, in user space units, of a single space character in the current font + + + @return the text render mode that should be used for the text. From the + PDF specification, this means: +
    +
  • 0 = Fill text
  • +
  • 1 = Stroke text
  • +
  • 2 = Fill, then stroke text
  • +
  • 3 = Invisible
  • +
  • 4 = Fill text and add to path for clipping
  • +
  • 5 = Stroke text and add to path for clipping
  • +
  • 6 = Fill, then stroke text and add to path for clipping
  • +
  • 7 = Add text to padd for clipping
  • +
+ @since iText 5.0.1 +
+ + @return the current fill color. + + + @return the current stroke color. + + + Calculates the width of a space character. If the font does not define + a width for a standard space character \u0020, we also attempt to use + the width of \u00A0 (a non-breaking space in many fonts) + @return the width of a single space character in text space units + + + Gets the width of a String in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Gets the width of a PDF string in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + @return A list of {@link TextRenderInfo} objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + @since 5.3.3 + + + Calculates width and word spacing of a single character PDF string. + @param string a character to calculate width. + @param singleCharString true if PDF string represents single character, false otherwise. + @return array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + Converts a single character string to char code. + + @param string single character string to convert to. + @return char code. + + + Split PDF string into array of single character PDF strings. + @param string PDF string to be splitted. + @return splitted PDF string. + + + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + @param x the X coordinate + @param y the Y coordinate + @param z the Z coordinate + + + Gets the value from a coordinate of the vector + @param index the index of the value to get (I1, I2 or I3) + @return a coordinate value + + + Computes the cross product of this vector and the specified matrix + @param by the matrix to cross this vector with + @return the result of the cross product + + + Computes the difference between this vector and the specified vector + @param v the vector to subtract from this one + @return the results of the subtraction + + + Computes the cross product of this vector and the specified vector + @param with the vector to cross this vector with + @return the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + @return the unit vector + @since 5.0.1 + + + Multiplies the vector by a scalar + @param by the scalar to multiply by + @return the result of the scalar multiplication + @since 5.0.1 + + + Computes the dot product of this vector with the specified vector + @param with the vector to dot product this vector with + @return the dot product + + + + + @see java.lang.Object#toString() + + + @since 5.0.1 + @see java.lang.Object#equals(java.lang.Object) + + + @author Kevin Day + @since iText 5.0.1 + + + Represents an inline image from a PDF + @since 5.1.4 + + + @return the image dictionary associated with this inline image + + + @return the raw samples associated with this inline image + + + Utility methods to help with processing of inline images + @since 5.0.4 + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + @since 5.0.4 + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + @param ps the content parser to use for reading the image. + @return the parsed image + @throws IOException if anything goes wring with the parsing + @throws InlineImageParseException if parsing of the inline image failed due to issues specific to inline image processing + + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the EI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + @param ps the parser to extract the embedded image information from + @return the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + @throws IOException if the parse fails + + + Transforms value abbreviations into their corresponding real value + @param key the key that the value is for + @param value the value that might be an abbreviation + @return if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + @param colorSpaceName the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + @return the components per pixel for the specified color space + + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + @param imageDictionary the dictionary of the inline image + @return the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Represents a pattern. Can be used in high-level constructs (Paragraph, Cell, etc.). + + + The actual pattern. + + + Creates a color representing a pattern. + @param painter the actual pattern + + + Gets the pattern. + @return the pattern + + + Each PDF document can contain maximum 1 AcroForm. + + + This is a map containing FieldTemplates. + + + This is an array containing DocumentFields. + + + This is an array containing the calculationorder of the fields. + + + Contains the signature flags. + + + Creates new PdfAcroForm + + + Adds fieldTemplates. + + + Adds documentFields. + + + Closes the AcroForm. + + + Adds an object to the calculationOrder. + + + Sets the signature flags. + + + Adds a formfield to the AcroForm. + + + @param field + @param name + @param llx + @param lly + @param urx + @param ury + + + @param field + @param llx + @param lly + @param urx + @param ury + + + A PdfAction defines an action that can be triggered from a PDF file. + + @see PdfDictionary + + + A named action to go to the first page. + + + A named action to go to the previous page. + + + A named action to go to the next page. + + + A named action to go to the last page. + + + A named action to open a print dialog. + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + Create an empty action. + + + Constructs a new PdfAction of Subtype URI. + + @param url the Url to go to + + + Constructs a new PdfAction of Subtype URI. + + @param url the url to go to + + + Constructs a new PdfAction of Subtype GoTo. + @param destination the destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param name the named destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param page the page destination to go to + + + Implements name actions. The action can be FIRSTPAGE, LASTPAGE, + NEXTPAGE and PREVPAGE. + @param named the named action + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + @return a Launch action + + + Creates a Rendition action + @param file + @param fs + @param mimeType + @param ref + @return a Media Clip action + @throws IOException + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be placed as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + @return the JavaScript action + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be place as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @return the JavaScript action + + + Add a chained action. + @param na the next action + + + Creates a GoTo action to an internal page. + @param page the page to go. First page is 1 + @param dest the destination for the page + @param writer the writer for this action + @return a GoTo action + + + Creates a GoTo action to a named destination. + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToR action + + + Creates a GoToR action to a named destination. + @param filename the file name to go to + @param dest the destination name + @param isName if true sets the destination as a name, if false sets it as a String + @param newWindow open the document in a new window if true, if false the current document is replaced by the new document. + @return a GoToR action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToE action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param target a path to the target document of this action + @param dest the destination inside the target document, can be of type PdfDestination, PdfName, or PdfString + @param newWindow if true, the destination document should be opened in a new window + @return a GoToE action + + + + A PdfAnnotation is a note that is associated with a page. + + @see PdfDictionary + + + flagvalue PDF 1.7 + + + attributevalue + + + Holds value of property used. + + + Holds value of property placeInPage. + + + Constructs a new PdfAnnotation of subtype text. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates a screen PdfAnnotation + @param writer + @param rect + @param clipTitle + @param fs + @param mimeType + @param playOnDisplay + @return a screen PdfAnnotation + @throws IOException + + + Creates a file attachment annotation. + @param writer the PdfWriter + @param rect the dimensions in the page of the annotation + @param contents the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + @return the annotation + + + Creates a file attachment annotation + @param writer + @param rect + @param contents + @param fs + @return the annotation + @throws IOException + + + Creates a polygon or -line annotation + @param writer the PdfWriter + @param rect the annotation position + @param contents the textual content of the annotation + @param polygon if true, the we're creating a polygon annotation, if false, a polyline + @param vertices an array with the vertices of the polygon or -line + @since 5.0.2 + + + Sets the annotation's highlighting mode. The values can be + HIGHLIGHT_NONE, HIGHLIGHT_INVERT, + HIGHLIGHT_OUTLINE and HIGHLIGHT_PUSH; + @param highlight the annotation's highlighting mode + + + Getter for property form. + @return Value of property form. + + + Getter for property annotation. + @return Value of property annotation. + + + Getter for property placeInPage. + @return Value of property placeInPage. + + + Sets the layer this annotation belongs to. + @param layer the layer this annotation belongs to + + + Sets the name of the annotation. + With this name the annotation can be identified among + all the annotations on a page (it has to be unique). + + + This class processes links from imported pages so that they may be active. The following example code reads a group + of files and places them all on the output PDF, four pages in a single page, keeping the links active. +
+            String[] files = new String[] {"input1.pdf", "input2.pdf"};
+            String outputFile = "output.pdf";
+            int firstPage=1;
+            Document document = new Document();
+            PdfWriter writer = PdfWriter.GetInstance(document, new FileOutputStream(outputFile));
+            document.SetPageSize(PageSize.A4);
+            float W = PageSize.A4.GetWidth() / 2;
+            float H = PageSize.A4.GetHeight() / 2;
+            document.Open();
+            PdfContentByte cb = writer.GetDirectContent();
+            for (int i = 0; i < files.length; i++) {
+               PdfReader currentReader = new PdfReader(files[i]);
+               currentReader.ConsolidateNamedDestinations();
+               for (int page = 1; page <= currentReader.GetNumberOfPages(); page++) {
+                   PdfImportedPage importedPage = writer.GetImportedPage(currentReader, page);
+                   float a = 0.5f;
+                   float e = (page % 2 == 0) ? W : 0;
+                   float f = (page % 4 == 1 || page % 4 == 2) ? H : 0;
+                   ArrayList links = currentReader.GetLinks(page);
+                   cb.AddTemplate(importedPage, a, 0, 0, a, e, f);
+                   for (int j = 0; j < links.Size(); j++) {
+                       PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.Get(j);
+                       if (link.IsInternal()) {
+                           int dPage = link.GetDestinationPage();
+                           int newDestPage = (dPage-1)/4 + firstPage;
+                           float ee = (dPage % 2 == 0) ? W : 0;
+                           float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0;
+                           link.SetDestinationPage(newDestPage);
+                           link.TransformDestination(a, 0, 0, a, ee, ff);
+                       }
+                       link.TransformRect(a, 0, 0, a, e, f);
+                       writer.AddAnnotation(link.CreateAnnotation(writer));
+                   }
+                   if (page % 4 == 0)
+                   document.NewPage();
+               }
+               if (i < files.length - 1)
+               document.NewPage();
+               firstPage += (currentReader.GetNumberOfPages()+3)/4;
+            }
+            document.Close();
+            
+
+ + Returns a String representation of the link. + @return a String representation of the imported link + @since 2.1.6 + + + Implements the appearance stream to be used with form fields.. + + + Creates a PdfAppearance. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + + this is the actual array of PdfObjects + + + Constructs an empty PdfArray-object. + + + Constructs an PdfArray-object, containing 1 PdfObject. + + @param object a PdfObject that has to be added to the array + + + Constructs a PdfArray with the elements of an ArrayList. + Throws a ClassCastException if the ArrayList contains something + that isn't a PdfObject. + @param l an ArrayList with PdfObjects + @since 2.1.3 + + + Constructs an PdfArray-object, containing all the PdfObjects in a given PdfArray. + + @param array a PdfArray that has to be added to the array + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + Overwrites a specified location of the array. + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Returns the PdfObject with the specified index. + + A possible indirect references is not resolved, so the returned + PdfObject may be either a direct object or an indirect + reference, depending on how the object is stored in the + PdfArray. + + @param idx The index of the PdfObject to be returned + @return A PdfObject + + + Overwrites a specified location of the array, returning the previous + value + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Remove the element at the specified position from the array. + + Shifts any subsequent elements to the left (subtracts one from their + indices). + + @param idx The index of the element to be removed. + @throws IndexOutOfBoundsException the specified position doesn't exist + @since 2.1.5 + + + Returns an ArrayList containing PdfObjects. + + @return an ArrayList + + + Returns the number of entries in the array. + + @return the size of the ArrayList + + + Returns true if the array is empty. + + @return true if the array is empty + @since 2.1.5 + + + Adds a PdfObject to the PdfArray. + + @param object PdfObject to add + @return true + + + Inserts the specified element at the specified position. + + Shifts the element currently at that position (if any) and + any subsequent elements to the right (adds one to their indices). + + @param index The index at which the specified element is to be inserted + @param element The element to be inserted + @throws IndexOutOfBoundsException if the specified index is larger than the + last position currently set, plus 1. + @since 2.1.5 + + + Inserts a PdfObject at the beginning of the + PdfArray. + + The PdfObject will be the first element, any other elements + will be shifted to the right (adds one to their indices). + + @param object The PdfObject to add + + + Checks if the PdfArray already contains a certain PdfObject. + + @param object PdfObject to check + @return true + + + + @return this PdfArray's values as a long[] + @since 5.3.5 + + + + @return this PdfArray's values as a double[] + @since 5.5.6 + + + + A possible value of PdfBoolean + + + A possible value of PdfBoolean + + + the bool value of this object + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject, represented as a string + + @throws BadPdfFormatException thrown if the value isn't 'true' or 'false' + + + Returns the primitive value of the PdfBoolean-object. + + @return the actual value of the object. + + + A PdfBorderArray defines the border of a PdfAnnotation. + + @see PdfArray + + + Constructs a new PdfBorderArray. + + + Constructs a new PdfBorderArray. + + + A PdfBorderDictionary define the appearance of a Border (Annotations). + + @see PdfDictionary + + + Constructs a PdfBorderDictionary. + + + + The allowed attributes in variable attributes. + + + The allowed attributes in variable noStroke. + + + The value of this object. + + + The encoding. + + + The font for this PdfChunk. + + + + + true if the chunk split was cause by a newline. + + + The image in this PdfChunk, if it has one + + + The offset in the x direction for the image + + + The offset in the y direction for the image + + + Indicates if the height and offset of the Image has to be taken into account + + + The leading that can overrule the existing leading. + + + Constructs a PdfChunk-object. + + @param string the content of the PdfChunk-object + @param font the PdfFont + @param attributes the metrics attributes + @param noStroke the non metric attributes + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + @param tabSettings the Phrase tab settings + + + + + + Returns the font of this Chunk. + + @return a PdfFont + + + Returns the color of this Chunk. + + @return a BaseColor + + + Returns the width of this PdfChunk. + + @return a width + + + Checks if the PdfChunk split was caused by a newline. + @return true if the PdfChunk split was caused by a newline. + + + Gets the width of the PdfChunk taking into account the + extra character and word spacing. + @param charSpacing the extra character spacing + @param wordSpacing the extra word spacing + @return the calculated width + + + Gets the text displacement relatiev to the baseline. + @return a displacement in points + + + Trims the last space. + @return the width of the space trimmed, otherwise 0 + + + Gets an attribute. The search is made in attributes + and noStroke. + @param name the attribute key + @return the attribute value or null if not found + + + Checks if the attribute exists. + @param name the attribute key + @return true if the attribute exists + + + Checks if this PdfChunk needs some special metrics handling. + @return true if this PdfChunk needs some special metrics handling. + + + Checks if this PdfChunk is a Separator Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Checks if this PdfChunk is a horizontal Separator Chunk. + @return true if this chunk is a horizontal separator. + @since 2.1.2 + + + Checks if this PdfChunk is a tab Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Correction for the tab position based on the left starting position. + @param newValue the new value for the left X. + @since 2.1.2 + + + Checks if there is an image in the PdfChunk. + @return true if an image is present + + + Gets the image in the PdfChunk. + @return the image or null + + + Returns a scalePercentage in case the image needs to be scaled. + Sets a scale percentage in case the image needs to be scaled. + + + Gets the image offset in the x direction + @return the image offset in the x direction + + + Gets the image offset in the y direction + @return Gets the image offset in the y direction + + + sets the value. + + + Tells you if this string is in Chinese, Japanese, Korean or Identity-H. + + + Gets the encoding of this string. + + @return a string + + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + Constructs a new PdfColor. + + @param red a value between 0 and 255 + @param green a value between 0 and 255 + @param blue a value between 0 and 255 + + + PdfContentByte is an object containing the user positioned + text and graphic contents of a page. It knows how to apply the proper + font encoding. + + + This class keeps the graphic state of the current page + + + This is the font in use + + + This is the color in use + + + This is the font size in use + + + The x position of the text line matrix. + + + The y position of the text line matrix. + + + The current text leading. + + + The current horizontal scaling + + + The current character spacing + + + The current word spacing + + + The alignement is center + + + The alignement is left + + + The alignement is right + + + A possible line cap value + + + A possible line cap value + + + A possible line cap value + + + A possible line join value + + + A possible line join value + + + A possible line join value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + This is the actual content + + + This is the writer + + + This is the PdfDocument + + + This is the GraphicState in use + + + The list were we save/restore the layer depth + + + The list were we save/restore the state + + + The separator between commands. + + + Constructs a new PdfContentByte-object. + + @param wr the writer associated to this content + + + Returns the string representation of this PdfContentByte-object. + + @return a string + + + [SUP-1395] If set, prevents iText from marking content and creating structure tags for items added to this content stream. + (By default, iText automatically marks content using BDC/EMC operators, and adds a structure tag for the new content + at the end of the page.) + + + Checks if the content needs to be tagged. + @return false if no tags need to be added + + + Gets the internal buffer. + @return the internal buffer + + + Returns the PDF representation of this PdfContentByte-object. + + @param writer the PdfWriter + @return a byte array with the representation + + + Adds the content of another PdfContent-object to this object. + + @param other another PdfByteContent-object + + + Gets the x position of the text line matrix. + + @return the x position of the text line matrix + + + Gets the y position of the text line matrix. + + @return the y position of the text line matrix + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current word spacing. + + @return the current word spacing + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current text leading. + + @return the current text leading + + + + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + + + + + + + + + + + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding number rule to determine which regions lie inside the clipping + path. + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + + Changes the currentgray tint for filling paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for filling paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for filling paths to black. + + + Changes the currentgray tint for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for stroking paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for stroking paths to black. + + + Helper to validate and write the RGB color components + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (minimum intensity) and + 1 (maximum intensity).

+ + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + Changes the current color for stroking paths to black. + + + + Helper to validate and write the CMYK color components. + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink).

+ + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + + Changes the current color for stroking paths to black. + + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a variable width border to the current path. + Only use if {@link com.lowagie.text.Rectangle#isUseVariableBorders() Rectangle.isUseVariableBorders} + = true. + @param rect a Rectangle + + + Adds a border (complete or partially) to the current path.. + + @param rectangle a Rectangle + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + + Ends the path without filling or stroking it. + + + Strokes the path. + + + Closes the path and strokes it. + + + Fills the path, using the non-zero winding number rule to determine the region to fill. + + + Fills the path, using the even-odd rule to determine the region to fill. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + + Adds an Image to the page. The Image must have + absolute positioning. + @param image the Image object + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The Image must have + absolute positioning. The image can be placed inline. + @param image the Image object + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @param isMCBlockOpened true not to open MCBlock, false otherwise + @throws DocumentException on error + + + Makes this PdfContentByte empty. + Calls reset( true ) + + + Makes this PdfContentByte empty. + @param validateContent will call sanityCheck() if true. + @since 2.1.6 + + + Starts the writing of text. + @param restoreTM indicates if to restore text matrix of the previous text block. + + + Starts the writing of text. + + + Ends the writing of text and makes the current font invalid. + + + Saves the graphic state. saveState and + restoreState must be balanced. + + + Restores the graphic state. saveState and + restoreState must be balanced. + + + Sets the character spacing parameter. + + @param charSpace a parameter + + + Sets the word spacing parameter. + + @param wordSpace a parameter + + + Sets the horizontal scaling parameter. + + @param scale a parameter + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + Sets the text rendering parameter. + + @param rendering a parameter + + + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + A helper to insert into the content stream the text + converted to bytes according to the font's encoding. + + @param text the text to write + + + Shows the text. + + @param text the text to write + + + Constructs a kern array for a text in a certain font + @param text the text + @param font the font + @return a PdfTextArray + + + Shows the text kerned. + + @param text the text to write + + + Moves to the next line and shows text. + + @param text the text to write + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + @param wordSpacing a parameter + @param charSpacing a parameter + @param text the text to write + + + Changes the text matrix. +

+ Remark: this operation also initializes the current point position.

+ + @param a operand 1,1 in the matrix + @param b operand 1,2 in the matrix + @param c operand 2,1 in the matrix + @param d operand 2,2 in the matrix + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + + + Changes the text matrix. The first four parameters are {1,0,0,1}. +

+ Remark: this operation also initializes the current point position.

+ + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + Moves to the start of the next line, offset from the start of the current line. + + @param x x-coordinate of the new current point + @param y y-coordinate of the new current point + + + Moves to the start of the next line, offset from the start of the current line. +

+ As a side effect, this sets the leading parameter in the text state.

+ + @param x offset of the new current point + @param y y-coordinate of the new current point +
+ + Moves to the start of the next line. + + + Gets the size of this content. + + @return the size of the content + + + Adds a named outline to the document. + + @param outline the outline + @param name the name for the local destination + + + Gets the root outline. + + @return the root outline + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The additional spacing is not computed for the last character + of the string. + @param text the string to get width of + @param kerned the kerning option + @return the width + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The spacing for the last character is also computed. + It also takes into account kerning that can be specified within TJ operator (e.g. [(Hello) 123 (World)] TJ) + @param text the string to get width of + @param kerned the kerning option + @param kerning the kerning option from TJ array + @return the width + + + Shows text right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + Shows text kerned right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + @since 5.0.1 + + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Create a new colored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @return the PdfPatternPainter where the pattern will be created + + + Create a new colored tiling pattern. Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Adds a PostScript XObject to this content. + + @param psobject the object + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink). This method however accepts only ints between 0x00 and 0xFF.

+ + @param cyan the intensity of cyan + @param magenta the intensity of magenta + @param yellow the intensity of yellow + @param black the intensity of black +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param cyan the intensity of red + @param magenta the intensity of green + @param yellow the intensity of blue + @param black the intensity of black +
+ + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF.

+ + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Sets the stroke color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the stroke color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the fill color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Outputs the color values to the content. + @param color The color + @param tint the tint if it is a spot color, ignored otherwise + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Paints using a shading object. + @param shading the shading object + + + Paints using a shading pattern. + @param shading the shading pattern + + + Sets the shading fill pattern. + @param shading the shading pattern + + + Sets the shading stroke pattern + @param shading the shading pattern + + + Check if we have a valid PdfWriter. + + + + Show an array of text. + @param text array of text + + + Gets the PdfWriter in use by this object. + @return the PdfWriter in use by this object + + + Gets the PdfDocument in use by this object. + @return the PdfDocument in use by this object + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + The local destination to where a local goto with the same + name will jump. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already exists + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Outputs a string directly to the content. + @param s the string + + + Outputs a char directly to the content. + @param c the char + + + Outputs a float directly to the content. + @param n the float + + + Throws an error if it is a pattern. + @param t the object to check + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a button. + + + Draws a button. + + + Sets the graphic state + @param gstate the graphic state + + + + Ends a layer controled graphic block. It will end the most recent open block. + + + Sets the default colorspace. + @param name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB + or PdfName.DEFAULTCMYK + @param obj the colorspace. A null or PdfNull removes any colorspace with the same name + + + Concatenates a transformation to the current transformation + matrix. + @param af the transformation + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Ends a marked content sequence + + + Begins a marked content sequence. If property is null the mark will be of the type + BMC otherwise it will be BDC. + @param tag the tag + @param property the property + @param inline true to include the property in the content or false + to include the property in the resource dictionary with the possibility of reusing + + + This is just a shorthand to beginMarkedContentSequence(tag, null, false). + @param tag the tag + + + Checks for any dangling state: Mismatched save/restore state, begin/end text, + begin/end layer, or begin/end marked content sequence. + If found, this function will throw. This function is called automatically + during a Reset() (from Document.NewPage() for example), and before writing + itself out in ToPdf(). + One possible cause: not calling myPdfGraphics2D.Dispose() will leave dangling + SaveState() calls. + @since 2.1.6 + @throws IllegalPdfSyntaxException (a runtime exception) + + + Parses the page or template content. + @author Paulo Soares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + @param tokeniser the tokeniser with the content + + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + @param ls an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + @return the same ArrayList given as argument or a new one + @throws IOException on error + + + Gets the tokeniser. + @return the tokeniser. + + + Sets the tokeniser. + @param tokeniser the tokeniser + + + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + @return the dictionary + @throws IOException on error + + + Reads an array. The tokeniser must be positioned past the "[" token. + @return an array + @throws IOException on error + + + Reads a pdf object. + @return the pdf object + @throws IOException on error + + + Reads the next token skipping over the comments. + @return true if a token was read, false if the end of content was reached + @throws IOException on error + + + PdfContents is a PdfStream containing the contents (text + graphics) of a PdfPage. + + + Constructs a PdfContents-object, containing text and general graphics. + + @param under the direct content that is under all others + @param content the graphics in a page + @param text the text in a page + @param secondContent the direct content that is over all others + @throws BadPdfFormatException on error + + + Make copies of PDF documents. Documents can be edited after reading and + before writing them out. + @author Mark Thompson + + + This class holds information about indirect references, since they are + renumbered by iText. + + + Holds value of property rotateContents. + + + Constructor + @param document + @param os outputstream + + + Setting page events isn't possible with Pdf(Smart)Copy. + Use the PageStamp class if you want to add content to copied pages. + @see com.itextpdf.text.pdf.PdfWriter#setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Grabs a page from the input document + @param reader the reader of the document + @param pageNumber which page to get + @return the page + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRStream to a PdfStream. The data part copies itself. + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PR-object to a Pdf-object + + + Translate a PR-object to a Pdf-object + + + convenience method. Given an importedpage, set our "globals" + + + convenience method. Given a reader, set our "globals" + + + Add an imported page to our output + @param iPage an imported page + @throws IOException, BadPdfFormatException + + + Adds a blank page. + @param rect The page dimension + @param rotation The rotation angle in degrees + @since 2.1.5 + @throws DocumentException + + + Copy document fields to a destination document. + @param reader a document where fields are copied from. + @throws DocumentException + @throws IOException + + + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Concatenates PDF documents including form fields. The rules for the form field + concatenation are the same as in Acrobat. All the documents are kept in memory unlike + PdfCopy. + @author Paulo Soares + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + @throws IOException on error + + + Creates a new instance. + @param os the output stream + @param pdfVersion the pdf version the output will have + @throws DocumentException on error + @throws IOException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as AddDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + + @author psoares + + + Sets a reference to "visited" in the copy process. + @param ref the reference that needs to be set to "visited" + @return true if the reference was set to visited + + + Checks if a reference has already been "visited" in the copy process. + @param ref the reference that needs to be checked + @return true if the reference was already visited + + + Checks if a reference refers to a page object. + @param ref the reference that needs to be checked + @return true is the reference refers to a page object. + + + Allows you to add one (or more) existing PDF document(s) to + create a new PDF and add the form of another PDF document to + this new PDF. + @since 2.1.5 + @deprecated since 5.5.2 + + + The class with the actual implementations. + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Copies the form fields of this PDFDocument onto the PDF-Document which was added + @param reader the PDF document + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as addDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + SimpleBookmark#. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + Allows you to add one (or more) existing PDF document(s) + and add the form(s) of (an)other PDF document(s). + @since 2.1.5 + @deprecated since 5.5.2 + + + This sets up the output document + @param os The Outputstream pointing to the output document + @throws DocumentException + + + This method feeds in the source document + @param reader The PDF reader containing the source document + @throws DocumentException + + + This merge fields is slightly different from the mergeFields method + of PdfCopyFields. + + + A PdfDashPattern defines a dash pattern as described in + the PDF Reference Manual version 1.3 p 325 (section 8.4.3). + + @see PdfArray + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + + Constructs a PdfDate-object. + + @param d the date that has to be turned into a PdfDate-object + + + Constructs a PdfDate-object, representing the current day and time. + + + Adds a number of leading zeros to a given string in order to get a string + of a certain length. + + @param i a given number + @param length the length of the resulting string + @return the resulting string + + + Gives the W3C format of the PdfDate. + @return a formatted date + + + Gives the W3C format of the PdfDate. + @param d the date in the format D:YYYYMMDDHHmmSSOHH'mm' + @return a formatted date + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + Is the indirect reference to a page already added? + + + + + + + Creates a PdfDestination based on a String. + Valid Strings are for instance the values returned by SimpleNamedDestination: + "Fit", "XYZ 36 806 0",... + @param dest a String notation of a destination. + @since iText 5.0 + + + Checks if an indirect reference to a page has been added. + + @return true or false + + + Adds the indirect reference of the destination page. + + @param page an indirect reference + @return true if the page reference was added + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications (such as this one) that PDF-consuming applications use to + interpret the extensions. + @since 2.1.6 + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the baseversion. + + + Creates a PdfDeveloperExtension object. + @param prefix the prefix referring to the developer + @param baseversion the number of the base version + @param extensionLevel the extension level within the baseverion. + + + Gets the prefix name. + @return a PdfName + + + Gets the baseversion name. + @return a PdfName + + + Gets the extension level within the baseversion. + @return an integer + + + Generations the developer extension dictionary corresponding + with the prefix. + @return a PdfDictionary + + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is the type of this dictionary + + + This is the hashmap that contains all the values and keys of the dictionary + + + Constructs an empty PdfDictionary-object. + + + Constructs a PdfDictionary-object of a certain type. + + @param type a PdfName + + + Returns the PDF representation of this PdfDictionary. + + @return an array of byte + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null or PdfNull the key is deleted. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null it does nothing. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Copies all of the mappings from the specified PdfDictionary + to this PdfDictionary. + + These mappings will replace any mappings previously contained in this + PdfDictionary. + + @param dic The PdfDictionary with the mappings to be + copied over + + + Removes a PdfObject and its key from the PdfDictionary. + + @param key key of the entry (a PdfName) + + + Removes all the PdfObjects and its keys from the + PdfDictionary. + @since 5.0.2 + + + + Checks if a Dictionary is of the type FONT. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGE. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGES. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type CATALOG. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type OUTLINES. + + @return true if it is, false if it isn't. + + + Checks the type of the dictionary. + @param type the type you're looking for + @return true if the type of the dictionary corresponds with the type you're looking for + + + This function behaves the same as 'get', but will never return an indirect reference, + it will always look such references up and return the actual object. + @param key + @return null, or a non-indirect object + + + All the getAs functions will return either null, or the specified object type + This function will automatically look up indirect references. There's one obvious + exception, the one that will only return an indirect reference. All direct objects + come back as a null. + Mark A Storer (2/17/06) + @param key + @return the appropriate object in its final type, or null + + + + + Construct a PdfInfo-object. + + + Constructs a PdfInfo-object. + + @param author name of the author of the document + @param title title of the document + @param subject subject of the document + + + Adds the title of the document. + + @param title the title of the document + + + Adds the subject to the document. + + @param subject the subject of the document + + + Adds some keywords to the document. + + @param keywords the keywords of the document + + + Adds the name of the author to the document. + + @param author the name of the author + + + Adds the name of the creator to the document. + + @param creator the name of the creator + + + Adds the name of the producer to the document. + + + Adds the date of creation to the document. + + + + Constructs a PdfCatalog. + + @param pages an indirect reference to the root of the document's Pages tree. + @param writer the writer the catalog applies to + + + Adds the names of the named destinations to the catalog. + @param localDestinations the local destinations + @param documentJavaScript the javascript used in the document + @param writer the writer the catalog applies to + + + Sets the document level additional actions. + @param actions dictionary of actions + + + Constructs a new PDF document. + @throws DocumentException on error + + + The PdfWriter. + + + Adds a PdfWriter to the PdfDocument. + + @param writer the PdfWriter that writes everything + what is added to this document to an outputstream. + @throws DocumentException on error + + + This is the PdfContentByte object, containing the text. + + + This is the PdfContentByte object, containing the borders and other Graphics. + + + This represents the leading of the lines. + + + Getter for the current leading. + @return the current leading + @since 2.1.2 + + + This is the current height of the document. + + + Signals that onParagraph is valid (to avoid that a Chapter/Section title is treated as a Paragraph). + @since 2.1.2 + + + This represents the current alignment of the PDF Elements. + + + The current active PdfAction when processing an Anchor. + + + The current tab settings. + @return the current + @since 5.4.0 + + + Signals that the current leading has to be subtracted from a YMark object when positive + and save current leading + @since 2.1.2 + + + Save current @leading + + + Restore @leading from leadingStack + + + Getter and setter for the current tab stops. + @since 5.4.0 + + + Signals that an Element was added to the Document. + + @param element the element to add + @return true if the element was added, false if not. + @throws DocumentException when a document isn't open yet, or has been closed + + + + + Use this method to set the XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + @throws IOException + + + Makes a new page and sends it to the PdfWriter. + + @return true if new page was added + @throws DocumentException on error + + + Sets the pagesize. + + @param pageSize the new pagesize + @return true if the page size was set + + + margin in x direction starting from the left. Will be valid in the next page + + + margin in x direction starting from the right. Will be valid in the next page + + + margin in y direction starting from the top. Will be valid in the next page + + + margin in y direction starting from the bottom. Will be valid in the next page + + + Sets the margins. + + @param marginLeft the margin on the left + @param marginRight the margin on the right + @param marginTop the margin on the top + @param marginBottom the margin on the bottom + @return a bool + + + @see com.lowagie.text.DocListener#setMarginMirroring(bool) + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + Sets the page number. + + @param pageN the new page number + + + Sets the page number to 0. + + + Signals that OnOpenDocument should be called. + + + + The line that is currently being written. + + + The lines that are written until now. + + + Adds the current line to the list of lines and also adds an empty line. + @throws DocumentException on error + + + line.height() is usually the same as the leading + We should take leading into account if it is not the same as the line.height + + @return float combined height of the line + @since 5.5.1 + + + If the current line is not empty or null, it is added to the arraylist + of lines and a new empty line is added. + @throws DocumentException on error + + + Gets the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Holds the type of the last element, that has been added to the document. + + + Ensures that a new line has been started. + + + Writes all the lines to the text-object. + + @return the displacement that was caused + @throws DocumentException on error + + + The characters to be applied the hanging punctuation. + + + + This represents the current indentation of the PDF Elements on the left side. + + + Indentation to the left caused by a section. + + + This represents the current indentation of the PDF Elements on the left side. + + + This is the indentation caused by an image on the left. + + + This represents the current indentation of the PDF Elements on the right side. + + + Indentation to the right caused by a section. + + + This is the indentation caused by an image on the right. + + + This represents the current indentation of the PDF Elements on the top side. + + + This represents the current indentation of the PDF Elements on the bottom side. + + + Gets the indentation on the left side. + + @return a margin + + + Gets the indentation on the right side. + + @return a margin + + + Gets the indentation on the top side. + + @return a margin + + + Gets the indentation on the bottom side. + + @return a margin + + + Calls addSpacing(float, float, Font, boolean (false)). + + + Adds extra space. + + + some meta information about the Document. + + + + Gets the PdfCatalog-object. + + @param pages an indirect reference to this document pages + @return PdfCatalog + + + This is the root outline of the document. + + + This is the current PdfOutline in the hierarchy of outlines. + + + Adds a named outline to the document . + @param outline the outline to be added + @param name the name of this local destination + + + Gets the root outline. All the outlines must be created with a parent. + The first level is created with this outline. + @return the root outline + + + Contains the Viewer preferences of this PDF document. + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Stores the destinations keyed by name. Value is + Object[]{PdfAction,PdfIndirectReference,PdfDestintion}. + + + The local destination to where a local goto with the same + name will jump to. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already existed + + + Stores a list of document level JavaScript actions. + + + Sets the collection dictionary. + @param collection a dictionary of type PdfCollection + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + This is the size of the next page. + + + This is the size of the several boxes of the current Page. + + + This is the size of the several boxes that will be used in + the next page. + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + This checks if the page is empty. + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the PdfTransition object + + + This are the page resources of the current Page. + + + Holds value of property strictImageSequence. + + + Setter for property strictImageSequence. + @param strictImageSequence New value of property strictImageSequence. + + + + This is the position where the image ends. + + + Method added by Pelikan Stephan + @see com.lowagie.text.DocListener#clearTextWrap() + + + This is the image that could not be shown on a previous page. + + + Adds an image to the document. + @param image the Image to add + @throws PdfException on error + @throws DocumentException on error + + + Adds a PdfPTable to the document. + @param ptable the PdfPTable to be added to the document. + @throws DocumentException on error + + + @since 5.0.1 + + + Extends PdfStream and should be used to create Streams for Embedded Files + (file attachments). + @since 2.1.3 + + + Creates a Stream object using an InputStream and a PdfWriter object + @param in the InputStream that will be read to get the Stream object + @param writer the writer to which the stream will be added + + + Creates a Stream object using a byte array + @param fileStore the bytes for the stream + + + @see com.lowagie.text.pdf.PdfDictionary#toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream) + + + Supports fast encodings for winansi and PDFDocEncoding. + + @author Paulo Soares + + + + + Checks is text only has PdfDocEncoding characters. + @param text the String to test + @return true if only PdfDocEncoding characters are present + + + Adds an extra encoding. + @param name the name of the encoding. The encoding recognition is case insensitive + @param enc the conversion class + + + + @author Paulo Soares + + + The encryption key for a particular object/generation + + + The encryption key length for a particular object/generation + + + The global encryption key + + + Work area to prepare the object/generation bytes + + + The message digest algorithm MD5 + + + The encryption key for the owner + + + The encryption key for the user + + + The public key security handler for certificate encryption + + + The generic key length. It may be 40 or 128. + + + Indicates if the encryption is only necessary for embedded files. + @since 2.1.3 + + + Indicates if only the embedded files have to be encrypted. + @return if true only the embedded files will be encrypted + @since 2.1.3 + + + + + + ownerKey, documentID must be setuped + + + + mkey must be setuped + + + + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm (Revision 2 - 4). + + @param ownerPassword owner password of the encrypted document. + @return user password, or null if revision 5 (AES256) or greater of standard encryption handler was used. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Give you a verbose analysis of the permissions. + @param permissions the permissions value of a PDF file + @return a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + @param permissions the permissions value of a PDF file + @return true if printing is allowed + + @since 2.0.7 + + + Tells you if modifying content is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying content is allowed + + @since 2.0.7 + + + Tells you if copying is allowed. + @param permissions the permissions value of a PDF file + @return true if copying is allowed + + @since 2.0.7 + + + Tells you if modifying annotations is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying annotations is allowed + + @since 2.0.7 + + + Tells you if filling in fields is allowed. + @param permissions the permissions value of a PDF file + @return true if filling in fields is allowed + + @since 2.0.7 + + + Tells you if repurposing for screenreaders is allowed. + @param permissions the permissions value of a PDF file + @return true if repurposing for screenreaders is allowed + + @since 2.0.7 + + + Tells you if document assembly is allowed. + @param permissions the permissions value of a PDF file + @return true if document assembly is allowed + + @since 2.0.7 + + + Tells you if degraded printing is allowed. + @param permissions the permissions value of a PDF file + @return true if degraded printing is allowed + + @since 2.0.7 + + + Signals that an unspecified problem while constructing a PDF document. + + @see BadPdfFormatException + + + Specifies a file or an URL. The file can be extern or embedded. + + @author Paulo Soares + + + Creates a new instance of PdfFileSpecification. The static methods are preferred. + + + Creates a file specification of type URL. + @param writer the PdfWriter + @param url the URL + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compressionLevel the compression level to be used for compressing the file + it takes precedence over filePath + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @param compressionLevel the level of compression + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification for an external file. + @param writer the PdfWriter + @param filePath the file path + @return the file specification + + + Gets the indirect reference to this file specification. + Multiple invocations will retrieve the same value. + @throws IOException on error + @return the indirect reference + + + Sets the file name (the key /F) string as an hex representation + to support multi byte file names. The name must have the slash and + backslash escaped according to the file specification rules + @param fileName the file name as a byte array + + + Adds the unicode file name (the key /UF). This entry was introduced + in PDF 1.7. The filename must have the slash and backslash escaped + according to the file specification rules. + @param filename the filename + @param unicode if true, the filename is UTF-16BE encoded; otherwise PDFDocEncoding is used; + + + Sets a flag that indicates whether an external file referenced by the file + specification is volatile. If the value is true, applications should never + cache a copy of the file. + @param volatile_file if true, the external file should not be cached + + + Adds a description for the file that is specified here. + @param description some text + @param unicode if true, the text is added as a unicode string + + + Adds the Collection item dictionary. + + + + the font metrics. + + + the size. + + + Compares this PdfFont with another + + @param object the other PdfFont + @return a value + + + Returns the size of this font. + + @return a size + + + Returns the approximative width of 1 character of this font. + + @return a width in Text Space + + + Returns the width of a certain character of this font. + + @param character a certain character + @return a width in Text Space + + + Implements form fields. + + @author Paulo Soares + + + Allows text fields to support rich text. + @since 5.0.6 + + + Holds value of property parent. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates new PdfFormField + + + Getter for property parent. + @return Value of property parent. + + + Sets the rich value for this field. + It is suggested that the regular value of this field be set to an + equivalent value. Rich text values are only supported since PDF 1.5, + and require that the FF_RV flag be set. See PDF Reference chapter + 12.7.3.4 for details. + @param rv HTML markup for the rich value of this field + @since 5.0.6 + + + PdfFormObject is a type of XObject containing a template-object. + + + This is a PdfNumber representing 0. + + + This is a PdfNumber representing 1. + + + This is the 1 - matrix. + + + Constructs a PdfFormXObject-object. + + @param template the template + @param compressionLevel the compression level for the stream + @since 2.1.3 (Replacing the existing constructor with param compressionLevel) + + + Implements PDF functions. + + @author Paulo Soares + + + Creates new PdfFunction + + + The graphic state dictionary. + + @author Paulo Soares + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + Sets the flag whether to apply overprint for stroking. + @param ov + + + Sets the flag whether to apply overprint for non stroking painting operations. + @param ov + + + Sets the flag whether to toggle knockout behavior for overprinted objects. + @param ov - accepts 0 or 1 + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for stroking operations in the transparent + imaging model. + @param n + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for nonstroking operations in the transparent + imaging model. + @param n + + + The alpha source flag specifying whether the current soft mask + and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + @param v + + + Determines the behaviour of overlapping glyphs within a text object + in the transparent imaging model. + @param v + + + The current blend mode to be used in the transparent imaging model. + @param bm + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + A PdfICCBased defines a ColorSpace + + @see PdfStream + + + Creates an ICC stream. + @param profile an ICC profile + + + Creates an ICC stream. + + @param compressionLevel the compressionLevel + + @param profile an ICC profile + @since 2.1.3 (replacing the constructor without param compressionLevel) + + + PdfImage is a PdfStream containing an image-Dictionary and -stream. + + + This is the PdfName of the image. + + + Constructs a PdfImage-object. + + @param image the Image-object + @param name the PdfName for this image + @throws BadPdfFormatException on error + + + Returns the PdfName of the image. + + @return the name + + + Called when no resource name is provided in our constructor. This generates a + name that is required to be unique within a given resource dictionary. + @since 5.0.1 + + + Represents an imported page. + + @author Paulo Soares + + + True if the imported page has been copied to a writer. + @since iText 5.0.4 + + + Reads the content from this PdfImportedPage-object from a reader. + + @return self + + + + Always throws an error. This operation is not allowed. + @param image dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + @throws DocumentException dummy + + + Always throws an error. This operation is not allowed. + @param template dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + + + Always throws an error. This operation is not allowed. + @return dummy + + + Gets the stream representing this page. + + @param compressionLevel the compressionLevel + @return the stream representing this page + @since 2.1.3 (replacing the method without param compressionLevel) + + + Always throws an error. This operation is not allowed. + @param bf dummy + @param size dummy + + + Checks if the page has to be copied. + @return true if the page has to be copied. + @since iText 5.0.4 + + + Indicate that the resources of the imported page have been copied. + @since iText 5.0.4 + + + + The object number + + + the generation number + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param objecti the direct objecti + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param generation the generation number + @param objecti the direct objecti + + + Returns a PdfIndirectReference to this PdfIndirectObject. + + @return a PdfIndirectReference + + + Writes eficiently to a stream + + @param os the stream to write to + @throws IOException on write error + + + + the object number + + + the generation number + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + + + Returns the number of the object. + + @return a number. + + + Returns the generation of the object. + + @return a number. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. + + @author Paulo Soares + + + Holds value of property on. + + + Holds value of property onPanel. + + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + @param title the title text + @param writer the PdfWriter + @return the title layer + + + Creates a new layer. + @param name the name of the layer + @param writer the writer + + + Adds a child layer. Nested layers can only have one parent. + @param child the child layer + + + Gets the parent layer. + @return the parent layer or null if the layer has no parent + + + Gets the children layers. + @return the children layers or null if the layer has no children + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Sets the name of this layer. + @param name the name of this layer + + + Gets the dictionary representing the layer. It just returns this. + @return the dictionary representing the layer + + + Gets the initial visibility of the layer. + @return the initial visibility of the layer + + + Used by the creating application to store application-specific + data associated with this optional content group. + @param creator a text string specifying the application that created the group + @param subtype a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + Specifies the language of the content controlled by this + optional content group + @param lang a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + @param preferred used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + @param export the export state + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + @param min the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + @param max the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + Specifies that the content in this group is intended for + use in printing + @param subtype a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + @param printstate indicates that the group should be + set to that state when the document is printed from a viewer application + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + @param view the view state + + + Indicates that the group contains a pagination artifact. + @param pe one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + @since 5.0.2 + + + One of more users for whom this optional content group is primarily intended. + @param type should be "Ind" (Individual), "Ttl" (Title), or "Org" (Organization). + @param names one or more names + @since 5.0.2 + + + Gets the layer visibility in Acrobat's layer panel + @return the layer visibility in Acrobat's layer panel + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + @param onPanel the visibility of the layer in Acrobat's layer panel + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. + + @author Paulo Soares + + + Visible only if all of the entries are ON. + + + Visible if any of the entries are ON. + + + Visible if any of the entries are OFF. + + + Visible only if all of the entries are OFF. + + + Creates a new, empty, membership layer. + @param writer the writer + + + Gets the PdfIndirectReference that represents this membership layer. + @return the PdfIndirectReference that represents this layer + + + Adds a new member to the layer. + @param layer the new member to the layer + + + Gets the member layers. + @return the member layers + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are ALLON, ANYON, ANYOFF and ALLOFF. + The default value is ANYON. + @param type the visibility policy + + + Sets the visibility expression for content belonging to this + membership dictionary. + @param ve A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + @since 5.0.2 + + + Gets the dictionary representing the membership layer. It just returns this. + @return the dictionary representing the layer + + + PdfLine defines an array with PdfChunk-objects + that fit into 1 line. + + + The arraylist containing the chunks. + + + The left indentation of the line. + + + The width of the line. + + + The alignment of the line. + + + The heigth of the line. + + + true if the chunk splitting was caused by a newline. + + + The original width. + + + Constructs a new PdfLine-object. + + @param left the limit of the line at the left + @param right the limit of the line at the right + @param alignment the alignment of the line + @param height the height of the line + + + Creates a PdfLine object. + @param left the left offset + @param originalWidth the original width of the line + @param remainingWidth bigger than 0 if the line isn't completely filled + @param alignment the alignment of the line + @param newlineSplit was the line splitted (or does the paragraph end with this line) + @param line an array of PdfChunk objects + @param isRTL do you have to read the line from Right to Left? + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @param currentLeading new value for the height of the line + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Returns the number of chunks in the line. + + @return a value + + + Returns an iterator of PdfChunks. + + @return an Iterator + + + Returns the height of the line. + + @return a value + + + Returns the left indentation of the line taking the alignment of the line into account. + + @return a value + + + Checks if this line has to be justified. + + @return true if the alignment equals ALIGN_JUSTIFIED and there is some width left. + + + + Adds extra indentation to the left (for Paragraph.setFirstLineIndent). + + + Returns the width that is left, after a maximum of characters is added to the line. + + @return a value + + + Returns the number of space-characters in this line. + + @return a value + + + + Returns the listsymbol of this line. + + @return a PdfChunk if the line has a listsymbol; null otherwise + + + Return the indentation needed to show the listsymbol. + + @return a value + + + Get the string representation of what is in this line. + + @return a string + + + Checks if a newline caused the line split. + @return true if a newline caused the line split + + + Gets the index of the last PdfChunk with metric attributes + @return the last PdfChunk with metric attributes + + + Gets a PdfChunk by index. + @param idx the index + @return the PdfChunk or null if beyond the array + + + Gets the original width of the line. + @return the original width of the line + + + Gets the difference between the "normal" leading and the maximum + size (for instance when there are images in the chunk and the leading + has to be taken into account). + @return an extra leading for images + @since 2.1.5 + + + Gets the number of separators in the line. + Returns -1 if there's a tab in the line. + @return the number of separators in the line + @since 2.1.2 + + + Gets the maximum size of the ascender for all the fonts used + in this line. + @return maximum size of all the ascenders used in this line + + + Gets the biggest descender for all the fonts used + in this line. Note that this is a negative number. + @return maximum size of all the ascenders used in this line + + + a Literal + + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from ABSOLUTECALORIMETRIC + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + a name used in PDF structure + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 5.0.3 + + + A name + + + A name + + + A name + + + Use ALT to specify alternate texts in Tagged PDF. + For alternate ICC profiles, use {@link #ALTERNATE} + + + Use ALTERNATE only in ICC profiles. It specifies an alternative color + space, in case the primary one is not supported, for legacy purposes. + For various types of alternate texts in Tagged PDF, use {@link #ALT} + + + A name + @since 5.5.8 + + + A name + @since 5.4.5 + + + A name + @since 5.4.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.0.7 + + + A name + + + A name + + + A name + + + A name + @since 5.3.2 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 renamed from DEFAULTCRYPTFILER + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + @since 5.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 2.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + @since 5.4.0 + + + A name of an attribute. + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.5 + + + A name + @since 2.1.5 + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.4 + + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use {@link #LANGUAGE} + + + A dictionary type, strictly for use in the content usage dictionary. For + dictionary entries in Tagged Pdf, use {@link #LANG} + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.2 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + @since 2.1.6 + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 renamed from MAX + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 renamed from MIN + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name used with Document Structure + @since 2.1.5 + + + a name used with Document Structure + @since 2.1.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name used in defining Document Structure. + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.0.2 + + + A name + @since 5.0.2 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from RELATIVECALORIMETRIC + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + @since 5.4.4 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.3 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + T is very commonly used for various dictionary entries, including title + entries in a Tagged PDF element dictionary, and target dictionaries. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + @since 5.4.3 + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.4 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + Use Title for the document's top level title (optional), and for document + outline dictionaries, which can store bookmarks. + For all other uses of a title entry, including Tagged PDF, use {@link #T} + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.2.1 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.0.2 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an encoding + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name of an encoding + + + A name + @since 5.4.3 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name + + + map strings to all known static names + @since 2.1.6 + + + Use reflection to cache all the static public readonly names so + future PdfName additions don't have to be "added twice". + A bit less efficient (around 50ms spent here on a 2.2ghz machine), + but Much Less error prone. + @since 2.1.6 + + + Constructs a new PdfName. The name length will be checked. + @param name the new name + + + Constructs a new PdfName. + @param name the new name + @param lengthCheck if true check the lenght validity, if false the name can + have any length + + + + Indicates whether some other object is "equal to" this one. + + @param obj the reference object with which to compare. + @return true if this object is the same as the obj + argument; false otherwise. + + + Returns a hash code value for the object. This method is + supported for the benefit of hashtables such as those provided by + java.util.Hashtable. + + @return a hash code value for this object. + + + Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD". + + @param name the name to encode + @return the encoded name + @since 2.1.5 + + + Decodes an escaped name in the form "/AB#20CD" into "AB CD". + @param name the name to decode + @return the decoded name + + + Creates a name tree. + @author Paulo Soares + + + Creates a name tree. + @param items the item of the name tree. The key is a String + and the value is a PdfObject. Note that although the + keys are strings only the lower byte is used and no check is made for chars + with the same lower byte and different upper byte. This will generate a wrong + tree name. + @param writer the writer + @throws IOException on error + @return the dictionary with the name tree. This dictionary is the one + generally pointed to by the key /Dests, for example + + + + This is an instance of the PdfNull-object. + + + + + actual value of this PdfNumber, represented as a double + + + Constructs a PdfNumber-object. + + @param content value of the new PdfNumber-object + + + Constructs a new int PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new long PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Returns the primitive int value of this object. + + @return a value + + + Returns the primitive long value of this object. + + @return a value + + + Returns the primitive double value of this object. + + @return a value + + + Increments the value of the PdfNumber-object with 1. + + + Creates a number tree. + @author Paulo Soares + + + Creates a number tree. + @param items the item of the number tree. The key is an Integer + and the value is a PdfObject. + @param writer the writer + @throws IOException on error + @return the dictionary with the number tree. + + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + This is an empty string used for the PdfNull-object and for an empty PdfString-object. + + + This is the default encoding to be used for converting strings into bytes and vice versa. + The default encoding is PdfDocEcoding. + + + This is the encoding to be used to output text in Unicode. + + + the content of this PdfObject + + + the type of this PdfObject + + + Holds value of property indRef. + + + Hash code of the PdfObject instance. + Unfortunately, default C# behavior does not generate unique hash code. + + + Used for generating hash code. + + + Making hash code generation thread safe. + + + Constructs a PdfObject of a certain type without any content. + + @param type type of the new PdfObject + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param content content of the new PdfObject as a String. + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param bytes content of the new PdfObject as an array of byte. + + + Writes the PDF representation of this PdfObject as an array of bytes to the writer. + @param writer for backwards compatibility + @param os the outputstream to write the bytes to. + @throws IOException + + + Gets the presentation of this object in a byte array + @return a byte array + + + Can this object be in an object stream? + @return true if this object can be in an object stream. + + + Returns the String-representation of this PdfObject. + + @return a String + + + Returns the length of the actual content of the PdfObject. +

+ In some cases, namely for PdfString and PdfStream, + this method differs from the method pdfLength because pdfLength + returns the length of the PDF representation of the object, not of the actual content + as does the method length.

+

+ Remark: the actual content of an object is in some cases identical to its representation. + The following statement is always true: Length() >= PdfLength().

+ + @return a length +
+ + Changes the content of this PdfObject. + + @param content the new content of this PdfObject + + + Returns the type of this PdfObject. + + @return a type + + + Checks if this PdfObject is of the type PdfNull. + + @return true or false + + + Checks if this PdfObject is of the type PdfBoolean. + + @return true or false + + + Checks if this PdfObject is of the type PdfNumber. + + @return true or false + + + Checks if this PdfObject is of the type PdfString. + + @return true or false + + + Checks if this PdfObject is of the type PdfName. + + @return true or false + + + Checks if this PdfObject is of the type PdfArray. + + @return true or false + + + Checks if this PdfObject is of the type PdfDictionary. + + @return true or false + + + Checks if this PdfObject is of the type PdfStream. + + @return true or false + + + Checks if this is an indirect object. + @return true if this is an indirect object + + + + the PdfIndirectReference of this object + + + value of the Count-key + + + value of the Parent-key + + + value of the Destination-key + + + The PdfAction for this outline. + + + Holds value of property tag. + + + Holds value of property open. + + + Holds value of property color. + + + Holds value of property style. + + + + + + + + + + + + + + + + Helper for the constructors. + @param parent the parent outline + @param title the title for this outline + @param open true if the children are visible + + + Gets the indirect reference of this PdfOutline. + + @return the PdfIndirectReference to this outline. + + + Gets the parent of this PdfOutline. + + @return the PdfOutline that is the parent of this outline. + + + Set the page of the PdfDestination-object. + + @param pageReference indirect reference to the page + @return true if this page was set as the PdfDestination-page. + + + Gets the destination for this outline. + @return the destination + + + returns the level of this outline. + + @return a level + + + Returns the PDF representation of this PdfOutline. + + @param writer the encryption information + @param os + @throws IOException + + + Getter for property tag. + @return Value of property tag. + + + Setter for property open. + @param open New value of property open. + + + + value of the Rotate key for a page in PORTRAIT + + + value of the Rotate key for a page in LANDSCAPE + + + value of the Rotate key for a page in INVERTEDPORTRAIT + + + value of the Rotate key for a page in SEASCAPE + + + value of the MediaBox key + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @param rotate a value for the Rotate key + @throws DocumentException + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @throws DocumentException + + + + Adds an indirect reference pointing to a PdfContents-object. + + @param contents an indirect reference to a PdfContents-object + + + Rotates the mediabox, but not the text in it. + + @return a PdfRectangle + + + Returns the MediaBox of this Page. + + @return a PdfRectangle + + + Helps the use of PdfPageEvent by implementing all the interface methods. + A class can extend PdfPageEventHelper and only implement the + needed methods. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + Page labels are used to identify each + page visually on the screen or in print. + @author Paulo Soares + + + Logical pages will have the form 1,2,3,... + + + Logical pages will have the form I,II,III,IV,... + + + Logical pages will have the form i,ii,iii,iv,... + + + Logical pages will have the form of uppercase letters + (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on) + + + Logical pages will have the form of uppercase letters + (a to z for the first 26 pages, aa to zz for the next 26, and so on) + + + No logical page numbers are generated but fixed text may + still exist + + + Dictionary values to set the logical page styles + + + The sequence of logical pages. Will contain at least a value for page 1 + + + Creates a new PdfPageLabel with a default logical page 1 + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + @param includeFirstPage If true, the page label will be added to the first page if it is page 1. + If the first page is not page 1 or this value is false, the value will not be added to the dictionary. + + + Adds or replaces a page label. The first logical page has the default + of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + + + Adds or replaces a page label. There is no text prefix and the first + logical page has the default of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + + + Adds or replaces a page label. + + + Removes a page label. The first page lagel can not be removed, only changed. + @param page the real page to remove + + + Gets the page label dictionary to insert into the document. + @return the page label dictionary + + + Retrieves the page labels from a PDF as an array of String objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a String array or null if no page labels are present + + + Retrieves the page labels from a PDF as an array of {@link PdfPageLabelFormat} objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a PdfPageLabelEntry array, containing an entry for each format change + or null if no page labels are present + + + Creates a page label format. + @param physicalPage the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param prefix the text to prefix the number. Can be null or empty + @param logicalPage the first logical page number + + + + Constructs a PdfPages-object. + + + A PdfPattern defines a ColorSpace + + @see PdfStream + + + Creates a PdfPattern object. + @param painter a pattern painter instance + + + Creates a PdfPattern object. + @param painter a pattern painter instance + @param compressionLevel the compressionLevel for the stream + @since 2.1.3 + + + Implements the pattern. + + + Creates a PdfPattern. + + + Creates new PdfPattern + + @param wr the PdfWriter + + + Gets the stream representing this pattern + @return the stream representing this pattern + + + Gets the stream representing this pattern + @param compressionLevel the compression level of the stream + @return the stream representing this pattern + @since 2.1.3 + + + Gets a duplicate of this PdfPatternPainter. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPatternPainter + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayFill(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayStroke(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFillF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStrokeF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFillF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStrokeF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#addImage(com.lowagie.text.Image, float, float, float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStroke(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStroke(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter) + + + A cell in a PdfPTable. + + + Holds value of property verticalAlignment. + + + Holds value of property paddingLeft. + + + Holds value of property paddingLeft. + + + Holds value of property paddingTop. + + + Holds value of property paddingBottom. + + + Holds value of property fixedHeight. + + + Fixed height of the cell. + + + Holds value of property noWrap. + + + Holds value of property table. + + + Holds value of property minimumHeight. + + + This field is used to cache the height which is calculated on getMaxHeight() method call; + this helps to avoid unnecessary recalculations on table drawing. + + + Holds value of property colspan. + + + Holds value of property rowspan. + @since 2.1.6 + + + Holds value of property image. + + + Holds value of property cellEvent. + + + Holds value of property useDescender. + + + Increases padding to include border if true + + + The text in the cell. + + + The rotation of the cell. Possible values are + 0, 90, 180 and 270. + + + Constructs an empty PdfPCell. + The default padding is 2. + + + Constructs a PdfPCell with a Phrase. + The default padding is 2. + @param phrase the text + + + Constructs a PdfPCell with an Image. + The default padding is 0. + @param image the Image + + + Constructs a PdfPCell with an Image. + The default padding is 0.25 for a border width of 0.5. + @param image the Image + @param fit true to fit the image to the cell + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + The default padding is 0. + @param table The PdfPTable + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + + @param table The PdfPTable + @param style The style to apply to the cell (you could use getDefaultCell()) + @since 2.1.0 + + + Constructs a deep copy of a PdfPCell. + @param cell the PdfPCell to duplicate + + + Adds an iText element to the cell. + @param element + + + Gets the Phrase from this cell. + @return the Phrase + + + Gets the horizontal alignment for the cell. + @return the horizontal alignment for the cell + + + Gets the vertical alignment for the cell. + @return the vertical alignment for the cell + + + Gets the effective left padding. This will include + the left border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingLeft. + + + @return Value of property paddingLeft. + + + Gets the effective right padding. This will include + the right border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingRight. + + + Getter for property paddingRight. + @return Value of property paddingRight. + + + Gets the effective top padding. This will include + the top border width if {@link #isUseBorderPadding()} is true. + @return effective value of property paddingTop. + + + Getter for property paddingTop. + @return Value of property paddingTop. + + + /** Gets the effective bottom padding. This will include + * the bottom border width if {@link #UseBorderPadding} is true. + * @return effective value of property paddingBottom. + + + Getter for property paddingBottom. + @return Value of property paddingBottom. + + + Sets the padding of the contents in the cell (space between content and border). + @param padding + + + Adjusts effective padding to include border widths. + @param use adjust effective padding if true + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the first paragraph line indent. + @return the indent + + + Gets the extra space between paragraphs. + @return the extra space between paragraphs + + + Getter for property fixedHeight. + @return Value of property fixedHeight. + + + Tells you whether the cell has a fixed height. + + @return true is a fixed height was set. + @since 2.1.5 + + + Gets the height which was calculated on last call of getMaxHeight(). + If cell's bBox and content wasn't changed this value is actual maxHeight of the cell. + @return max height which was calculated on last call of getMaxHeight(); if getMaxHeight() wasn't called the return value is 0 + + + Setter for property noWrap. + @param noWrap New value of property noWrap. + + + Getter for property table. + @return Value of property table. + + + Getter for property minimumHeight. + @return Value of property minimumHeight. + + + Tells you whether the cell has a minimum height. + + @return true if a minimum height was set. + @since 2.1.5 + + + Getter for property colspan. + @return Value of property colspan. + + + Getter for property rowspan. + @return Value of property rowspan. + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction of the text content in the cell + @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL. + + + Getter for property image. + @return Value of property image. + + + + Gets the cell event for this cell. + @return the cell event + + + + Gets the arabic shaping options. + @return the arabic shaping options + + + Gets state of first line height based on max ascender + @return true if an ascender is to be used. + + + Getter for property useDescender. + @return Value of property useDescender. + + + + Gets the ColumnText with the content of the cell. + @return a columntext object + + + Returns the list of composite elements of the column. + @return a List object. + @since 2.1.1 + + + Sets the rotation of the cell. Possible values are + 0, 90, 180 and 270. + @param rotation the rotation of the cell + + + Returns the height of the cell. + @return the height of the cell + @since 3.0.0 + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + A row in a PdfPTable. + + @author Paulo Soares + + + True if the table may not break after this row. + + + the bottom limit (bottom right y) + + + the right limit + @since 2.1.5 + + + extra heights that needs to be added to a cell because of rowspans. + @since 2.1.6 + + + Constructs a new PdfPRow with the cells in the array that was passed + as a parameter. + + @param cells + + + Makes a copy of an existing row. + + @param row + + + Sets the widths of the columns in the row. + + @param widths + @return true if everything went right + + + Initializes the extra heights array. + @since 2.1.6 + + + Sets an extra height for a cell. + @param cell the index of the cell that needs an extra height + @param height the extra height + @since 2.1.6 + + + Calculates the heights of each cell in the row. + + @return the maximum height of the row. + + + Writes the border and background of one cell in the row. + + @param xPos The x-coordinate where the table starts on the canvas + @param yPos The y-coordinate where the table starts on the canvas + @param currentMaxHeight The height of the cell to be drawn. + @param cell + @param canvases + @since 2.1.6 extra parameter currentMaxHeight + + + @since 2.1.6 private is now protected + + + @since 2.1.6 private is now protected + + + @since 3.0.0 protected is now public static + + + * Writes a number of cells (not necessarily all cells). + * + * @param colStart The first column to be written. + * Remember that the column index starts with 0. + * @param colEnd The last column to be written. + * Remember that the column index starts with 0. + * If -1, all the columns to the end are written. + * @param xPos The x-coordinate where the table starts on the canvas + * @param yPos The y-coordinate where the table starts on the canvas + * @param reusable if set to false, the content in the cells is "consumed"; + * if true, you can reuse the cells, the row, the parent table as many times you want. + * @since 5.1.0 added the reusable parameter + + + Checks if the dimensions of the columns were calculated. + + @return true if the dimensions of the columns were calculated + + + Gets the maximum height of the row (i.e. of the 'highest' cell). + @return the maximum height of the row + + + Copies the content of a specific row in a table to this row. + Don't do this if the rows have a different number of cells. + @param table the table from which you want to copy a row + @param idx the index of the row that needs to be copied + @since 5.1.0 + + + Splits a row to newHeight. + The returned row is the remainder. It will return null if the newHeight + was so small that only an empty row would result. + + @param new_height the new height + @return the remainder row or null if the newHeight was so small that only + an empty row would result + + + Split rowspan of cells with rowspan on next page by inserting copies with the remaining rowspan + and reducing the previous rowspan appropriately, i.e. if a cell with rowspan 7 gets split after 3 rows + of that rowspan have been laid out, its column on the next page should start with an empty cell + having the same attributes and rowspan 7 - 3 = 4. + + @since iText 5.4.3 + + + Returns the array of cells in the row. + Please be extremely careful with this method. + Use the cells as read only objects. + + @return an array of cells + @since 2.1.1 + + + Checks if a cell in the row has a rowspan greater than 1. + @since 5.1.0 + + + Implements the PostScript XObject. + + + Creates a new instance of PdfPSXObject + + + Constructs a PSXObject + @param wr + + + Gets the stream representing this object. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + @throws IOException + + + Gets a duplicate of this PdfPSXObject. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPSXObject + + + This is a table that can be put at an absolute position but can also + be added to the document as the class Table. + In the last case when crossing pages the table always break at full rows; if a + row is bigger than the page it is dropped silently to avoid infinite loops. +

+ A PdfPTableEvent can be associated to the table to do custom drawing + when the table is rendered. + @author Paulo Soares + + + The index of the original PdfcontentByte. + + + The index of the duplicate PdfContentByte where the background will be drawn. + + + The index of the duplicate PdfContentByte where the border lines will be drawn. + + + The index of the duplicate PdfContentByte where the text will be drawn. + + + The current column index. + + @since 5.1.0 renamed from currentColIdx + + + Holds value of property headerRows. + + + Holds value of property widthPercentage. + + + Holds value of property horizontalAlignment. + + + Holds value of property skipFirstHeader. + + + Holds value of property skipLastFooter. + + @since 2.1.6 + + + Holds value of property lockedWidth. + + + Holds value of property splitRows. + + + The spacing before the table. + + + The spacing after the table. + + + Holds value of property extendLastRow. + + + Holds value of property headersInEvent. + + + Holds value of property splitLate. + + + Defines if the table should be kept + on one page if possible + + + Indicates if the PdfPTable is complete once added to the document. + @since iText 2.0.8 + + + Keeps track of the completeness of the current row. + + @since 2.1.6 + + + Constructs a PdfPTable with the relative column widths. + @param relativeWidths the relative column widths + + + Constructs a PdfPTable with numColumns columns. + @param numColumns the number of columns + + + Constructs a copy of a PdfPTable. + @param table the PdfPTable to be copied + + + Makes a shallow copy of a table (format without content). + @param table + @return a shallow copy of the table + + + Copies the format of the sourceTable without copying the content. + @param sourceTable + @since 2.1.6 private is now protected + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + @since 2.1.6 private is now protected + + + Sets the full width of the table from the absolute column width. + @param columnWidth the absolute width of each column + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the percentage width of the table from the absolute column width. Warning: Don't use this with setLockedWidth(true). These two settings don't mix. + @param columnWidth the absolute width of each column + @param pageSize the page size + @throws DocumentException + + + Gets the full width of the table. + @return the full width of the table + + + Calculates the heights of the table. + + @return the total height of the table. Note that it will be 0 if you didn't + specify the width of the table with SetTotalWidth(). + and made it public + + + Changes the number of columns. Any existing rows will be deleted. + + @param the new number of columns + + + Gets the default PdfPCell that will be used as + reference for all the addCell methods except + addCell(PdfPCell). + @return default PdfPCell + + + Adds a cell element. + + @param cell the cell element + + + When updating the row index, cells with rowspan should be taken into account. + This is what happens in this method. + + @since 2.1.6 + + + Added by timmo3. This will return the correct cell taking it's cellspan into account + + @param row the row index + @param col the column index + @return PdfPCell at the given row and position or null otherwise + + + Checks if there are rows above belonging to a rowspan. + @param currRow the current row to check + @param currCol the current column to check + @return true if there's a cell above that belongs to a rowspan + @since 2.1.6 + + + Adds a cell element. + @param text the text for the cell + + + Adds a nested table. + @param table the table to be added to the cell + + + Adds an Image as Cell. + @param image the Image to add to the table. + This image will fit in the cell + + + Adds a cell element. + @param phrase the Phrase to be added to the cell + + + + + Writes the selected rows and columns to the document. + This method does not clip the columns; this is only important + if there are columns with colspan at boundaries. + canvases is obtained from beginWritingRows(). + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvases an array of 4 PdfContentByte obtained from + beginWritingRows() + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @return the y coordinate position of the bottom of the last row + @see #beginWritingRows(com.itextpdf.text.pdf.PdfContentByte) + @since 5.1.0 added the reusable parameter + + + Writes the selected rows to the document. + + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coodinate + @param yPos the y write coodinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + + + + Writes the selected rows and columns to the document. + This method clips the columns; this is only important + if there are columns with colspan at boundaries. + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @since 5.1.0 added the reusable parameter + + + + Finishes writing the table. + @param canvases the array returned by beginWritingRows() + + + Gets the number of rows in this table. + @return the number of rows in this table + + + Gets the total height of the table. + @return the total height of the table + + + Gets the height of a particular row. + @param idx the row index (starts at 0) + @return the height of a particular row + + + Gets the height of a particular row. + + @param idx the row index (starts at 0) + @param firsttime is this the first time the row heigh is calculated? + @return the height of a particular row + @since 5.0.0 + + + Gets the maximum height of a cell in a particular row (will only be different + from getRowHeight is one of the cells in the row has a rowspan > 1). + + @param rowIndex the row index + @param cellIndex the cell index + @return the height of a particular row including rowspan + @since 2.1.6 + + + Checks if a cell in a row has a rowspan greater than 1. + + @since 5.1.0 + + + Makes sure the footers value is lower than the headers value. + + @since 5.0.1 + + + Gets the height of the rows that constitute the header as defined by + setHeaderRows(). + @return the height of the rows that constitute the header and footer + + + Gets the height of the rows that constitute the header as defined by + setFooterRows(). + @return the height of the rows that constitute the footer + @since 2.1.1 + + + Deletes a row from the table. + @param rowNumber the row to be deleted + @return true if the row was deleted + + + Deletes the last row in the table. + @return true if the last row was deleted + + + Removes all of the rows except headers + + + Returns the number of columns. + @return the number of columns. + @since 2.1.1 + + + Gets all the chunks in this element. + + @return an List + + + Gets the type of the text element. + + @return a type + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isContent() + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isNestable() + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets a row with a given index. + + @param idx + @return the row at position idx + + + Returns the index of the last completed row. + + @return the index of a row + + + Defines where the table may be broken (if necessary). + + @param breakPoints int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines which rows should not allow a page break (if possible). + + @param rows int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows that should not allow a page break (if possible). + + @param start int + @param end int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows (from the parameter to the last row) that should not allow a page break (if possible). + The equivalent of calling {@link #keepRowsTogether(int,int) keepRowsTogether(start, rows.size()}. + + @param start int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Gets an arraylist with all the rows in the table. + @return an arraylist + + + Gets an arraylist with a selection of rows. + @param start the first row in the selection + @param end the first row that isn't part of the selection + @return a selection of rows + @since 2.1.6 + + + Calculates the extra height needed in a row because of rowspans. + @param start the index of the start row (the one to adjust) + @param end the index of the end row on the page + @since 2.1.6 + + + Sets the table event for this table. + + @param event the table event for this table + + + Gets the absolute sizes of each column width. + @return he absolute sizes of each column width + + + Tells you if the last footer needs to be skipped + (for instance if the footer says "continued on the next page") + + @return Value of property skipLastFooter. + @since 2.1.6 + + + When set the last row on every page will be extended to fill + all the remaining space to the bottom boundary; except maybe the + row. + + @param extendLastRows true to extend the last row on each page; false otherwise + @param extendFinalRow false if you don't want to extend the row of the complete table + @since iText 5.0.0 + + + * Gets the value of the last row extension, taking into account + * if the row is reached or not. + * + * @return true if the last row will extend; + * false otherwise + * @since iText 5.0.0 + + + If true the table will be kept on one page if it fits, by forcing a + new page if it doesn't fit on the current page. The default is to + split the table over multiple pages. + + @param p_KeepTogether whether to try to keep the table on one page + + + Completes the current row with the default cell. An incomplete row will be dropped + but calling this method will make sure that it will be present in the table. + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Gets row index where cell overlapping (rowIdx, colIdx) starts + @param rowIdx + @param colIdx + @return row index + @since iText 5.4.3 + + + + @since iText 5.4.3 + + + Correct chosen last fitting row so that the content of all cells with open rowspans will fit on the page, + i.e. the cell content won't be split. + (Only to be used with splitLate == true) + + + + @since iText 5.4.3 + + + Determine which rows fit on the page, respecting isSplitLate(). + Note: sets max heights of the inspected rows as a side effect, + just like PdfPTable.getRowHeight(int, boolean) does. + Respect row.getMaxHeights() if it has been previously set (which might be independent of the height of + individual cells). + The last row written on the page will be chosen by the caller who might choose not + the calculated one but an earlier one (due to mayNotBreak settings on the rows). + The height of the chosen last row has to be corrected if splitLate == true + by calling FittingRows.correctLastRowChosen() by the caller to avoid splitting the content of + cells with open rowspans. + + @since iText 5.4.3 + + + + @author Aiken Sam (aikensam@ieee.org) + + + Reads a PDF document. + @author Paulo Soares + @author Kazuya Ujihara + + + The iText developers are not responsible if you decide to change the + value of this static parameter. + @since 5.0.2 + + + Handler which will be used for decompression of pdf streams. + + + Holds value of property appendable. + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param partialRead if true, the reader is opened in partial mode (PDF is parsed on demand), if false, the entire PDF is parsed into memory as the reader opens + @param ownerPassword the password or null if no password is required + @param certificate the certificate or null if no certificate is required + @param certificateKey the key or null if no certificate key is required + @param certificateKeyProvider the name of the key provider, or null if no key is required + @param closeSourceOnConstructorError if true, the byteSource will be closed if there is an error during construction of this reader + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param properties the properties which will be used to create the reader + + + Reads and parses a PDF document. + @param filename the file name of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param properties the properties which will be used to create the reader + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param certificate the certificate to read the document + @param certificateKey the private key of the certificate + @param certificateKeyProvider the security provider for certificateKey + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param properties the properties which will be used to create the reader + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a PDF document. + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a pdf document. Contrary to the other constructors only the xref is read + into memory. The reader is said to be working in "partial" mode as only parts of the pdf + are read as needed. + @param raf the document location + @param ownerPassword the password or null for no password + @throws IOException on error + + + Reads and parses a pdf document. + @param raf the document location + @param ownerPassword the password or null for no password + @param partial indicates if the reader needs to read the document only partially. See {@link PdfReader#PdfReader(RandomAccessFileOrArray, byte[])} + @throws IOException on error + + + Creates an independent duplicate. + @param reader the PdfReader to duplicate + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + @param byteSource the source to check + @return a tokeniser that is guaranteed to start at the PDF header + @throws IOException if there is a problem reading the byte source + + + Gets a new file instance of the original PDF + document. + @return a new file instance of the original PDF document + + + Gets the number of pages in the document. + @return the number of pages in the document + + + Returns the document's catalog. This dictionary is not a copy, + any changes will be reflected in the catalog. + @return the document's catalog + + + Returns the document's acroform, if it has one. + @return the document's acroform + + + Gets the page rotation. This value can be 0, 90, 180 or 270. + @param index the page number. The first page is 1 + @return the page rotation + + + Gets the page size, taking rotation into account. This + is a Rectangle with the value of the /MediaBox and the /Rotate key. + @param index the page number. The first page is 1 + @return a Rectangle + + + Gets the rotated page from a page dictionary. + @param page the page dictionary + @return the rotated page + + + Gets the page size without taking rotation into account. This + is the value of the /MediaBox key. + @param index the page number. The first page is 1 + @return the page size + + + Gets the page from a page dictionary + @param page the page dictionary + @return the page + + + Gets the crop box without taking rotation into account. This + is the value of the /CropBox key. The crop box is the part + of the document to be displayed or printed. It usually is the same + as the media box but may be smaller. If the page doesn't have a crop + box the page size will be returned. + @param index the page number. The first page is 1 + @return the crop box + + + Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media". + @param index the page number. The first page is 1 + @param boxName the box name + @return the box rectangle or null + + + Returns the content of the document information dictionary as a Hashtable + of String. + @return content of the document information dictionary + + + Normalizes a Rectangle so that llx and lly are smaller than urx and ury. + @param box the original rectangle + @return a normalized Rectangle + + + Checks if the PDF is a tagged PDF. + + + Parses the entire PDF + + + @throws IOException + + + @param obj + @return a PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. + @param obj the PdfObject to read + @return the resolved PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. If the reader was opened in partial mode the object will be released + to save memory. + @param obj the PdfObject to read + @param parent + @return a PdfObject + + + @param obj + @param parent + @return a PdfObject + + + @param idx + @return a PdfObject + + + @param idx + @return aPdfObject + + + + + + + + + @param obj + + + @param obj + @return an indirect reference + + + @return the percentage of the cross reference table that has been read + + + Eliminates the reference to the object freeing the memory used by it and clearing + the xref entry. + @param obj the object. If it's an indirect reference it will be eliminated + @return the object or the already erased dereferenced object + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + @param in + @param dicPar + @return a byte array + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + @param in the input data + @return the decoded data + + + Checks if the document had errors and was rebuilt. + @return true if rebuilt. + + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a Dictionary object + + + @param pageNum + + + + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @param file the location of the PDF document + @throws IOException on error + @return the content + + + Gets the content from the page dictionary. + @param page the page dictionary + @throws IOException on error + @return the content + @since 5.0.6 + + + Retrieve the given page's resource dictionary + @param pageNum 1-based page number from which to retrieve the resource dictionary + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Retrieve the given page's resource dictionary + @param pageDict the given page + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @throws IOException on error + @return the content + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @throws IOException on error + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @since 2.1.3 (the method already existed without param compressionLevel) + + + Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @param filterHandlers the map used to look up a handler for each type of filter + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Get the content from a stream applying the required filters. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream applying the required filters. + @param stream the stream + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @throws IOException on error + @return the stream content + + + Eliminates shared streams if they exist. + + + Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper. + @param tampered the tampered state + + + Gets the XML metadata. + @throws IOException on error + @return the XML metadata + + + Gets the byte address of the last xref table. + @return the byte address of the last xref table + + + Gets the number of xref objects. + @return the number of xref objects + + + Gets the byte address of the %%EOF marker. + @return the byte address of the %%EOF marker + + + Gets the PDF version. Only the last version char is returned. For example + version 1.4 is returned as '4'. + @return the PDF version + + + Returns true if the PDF is encrypted. + @return true if the PDF is encrypted + + + Gets the encryption permissions. It can be used directly in + PdfWriter.SetEncryption(). + @return the encryption permissions + + + Returns true if the PDF has a 128 bit key encryption. + @return true if the PDF has a 128 bit key encryption + + + Gets the trailer dictionary + @return the trailer dictionary + + + Finds all the font subsets and changes the prefixes to some + random values. + @return the number of font subsets altered + + + Finds all the fonts not subset but embedded and marks them as subset. + @return the number of fonts altered + + + Gets all the named destinations as an Hashtable. The key is the name + and the value is the destinations array. + @return gets all the named destinations + + + Gets all the named destinations as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets all the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Dests key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Names key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Removes all the fields from the document. + + + Removes all the annotations and fields from the document. + + + Replaces remote named links with local destinations that have the same name. + @since 5.0 + + + Converts a remote named destination GoToR with a local named destination + if there's a corresponding name. + @param obj an annotation that needs to be screened for links to external named destinations. + @param names a map with names of local named destinations + @since iText 5.0 + + + Replaces all the local named links with the actual destinations. + + + Closes the reader, and any underlying stream or data source used to create the reader + + + Removes all the unreachable objects. + @return the number of indirect objects removed + + + Gets a read-only version of AcroFields. + @return a read-only version of AcroFields + + + Gets the global document JavaScript. + @param file the document file + @throws IOException on error + @return the global document JavaScript + + + Gets the global document JavaScript. + @throws IOException on error + @return the global document JavaScript + + + Selects the pages to keep in the document. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param ranges the comma separated ranges as described in {@link SequenceList} + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + @param removeUnused indicate if to remove unsed objects. @see removeUnusedObjects + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param key a key for a viewer preference + @param value a value for the viewer preference + @see PdfViewerPreferences#addViewerPreference + + + Returns a bitset representing the PageMode and PageLayout viewer preferences. + Doesn't return any information about the ViewerPreferences dictionary. + @return an int that contains the Viewer Preferences. + + + Getter for property newXrefType. + @return Value of property newXrefType. + + + Getter for property fileLength. + @return Value of property fileLength. + + + Getter for property hybridXref. + @return Value of property hybridXref. + + + Keeps track of all pages nodes to avoid circular references. + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a dictionary object + + + @param pageNum + @return an indirect reference + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + @param pageNum + + + + + + Checks if this PDF has usage rights enabled. + + @return true if usage rights are present; false otherwise + + + Removes any usage rights that this PDF may have. Only Adobe can grant usage rights + and any PDF modification with iText will invalidate them. Invalidated usage rights may + confuse Acrobat and it's advisabe to remove them altogether. + + + Gets the certification level for this document. The return values can be PdfSignatureAppearance.NOT_CERTIFIED, + PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, + PdfSignatureAppearance.CERTIFIED_FORM_FILLING and + PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS. +

+ No signature validation is made, use the methods availabe for that in AcroFields. +

+ @return gets the certification level for this document +
+ + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return true. + @return true if the document was opened with the owner password or if it's not encrypted, + false if the document was opened with the user password + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + @return user password, or null if not a standard encryption handler was used, + if standard encryption handler was used with AES256 encryption algorithm, + or if ownerPasswordUsed wasn't use to open the document. + + + Instance of PdfReader in each output document. + + @author Paulo Soares + + + Gets the content stream of a page as a PdfStream object. + @param pageNumber the page of which you want the stream + @param compressionLevel the compression level you want to apply to the stream + @return a PdfStream object + @since 2.1.3 (the method already existed without param compressionLevel) + + + + lower left x + + + lower left y + + + upper right x + + + upper right y + + + Constructs a PdfRectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + + @since rugPdf0.10 + + + Constructs a PdfRectangle-object starting from the origin (0, 0). + + @param urx upper right x + @param ury upper right y + + + Constructs a PdfRectangle-object with a Rectangle-object. + + @param rectangle a Rectangle + + + Returns the high level version of this PdfRectangle + @return this PdfRectangle translated to class Rectangle + + + Overrides the add-method in PdfArray in order to prevent the adding of extra object to the array. + + @param object PdfObject to add (will not be added here) + @return false + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param object Ignored. + @since 2.1.5 + + + Returns the lower left x-coordinate. + + @return the lower left x-coordinaat + + + Returns the upper right x-coordinate. + + @return the upper right x-coordinate + + + Returns the upper right y-coordinate. + + @return the upper right y-coordinate + + + Returns the lower left y-coordinate. + + @return the lower left y-coordinate + + + Returns the lower left x-coordinate, considering a given margin. + + @param margin a margin + @return the lower left x-coordinate + + + Returns the upper right x-coordinate, considering a given margin. + + @param margin a margin + @return the upper right x-coordinate + + + Returns the upper right y-coordinate, considering a given margin. + + @param margin a margin + @return the upper right y-coordinate + + + Returns the lower left y-coordinate, considering a given margin. + + @param margin a margin + @return the lower left y-coordinate + + + Returns the width of the rectangle. + + @return a width + + + Returns the height of the rectangle. + + @return a height + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + @return a PdfRectangle + + + A Rendition dictionary (pdf spec 1.5) + + + + Constructs a PDF ResourcesDictionary. + + + Implements the shading dictionary (or stream). + + @author Paulo Soares + + + Holds value of property bBox. + + + Holds value of property antiAlias. + + + Creates new PdfShading + + + Implements the shading pattern dictionary. + + @author Paulo Soares + + + Creates new PdfShadingPattern + + + Implements the signature dictionary. + + @author Paulo Soares + + + Creates new PdfSignature + + + Sets the signature creator name in the + {@link PdfSignatureBuildProperties} dictionary. + + @param name + + + Gets the {@link PdfSignatureBuildProperties} instance if it exists, if + not it adds a new one and returns this. + + @return {@link PdfSignatureBuildProperties} + + + Class that takes care of the cryptographic options + and appearances that form a signature. + + + Constructs a PdfSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Approval signature + + + Author signature, no changes allowed + + + Author signature, form filling allowed + + + Author signature, form filling and annotations allowed + + + The certification level + + + Sets the document type to certified instead of simply signed. + @param certificationLevel the values can be: NOT_CERTIFIED, CERTIFIED_NO_CHANGES_ALLOWED, + CERTIFIED_FORM_FILLING and CERTIFIED_FORM_FILLING_AND_ANNOTATIONS + + + The caption for the reason for signing. + + + The caption for the location of signing. + + + The reason for signing. + + + Holds value of property location. + + + Holds value of property signDate. + + + Gets and setsthe signing reason. + @return the signing reason + + + Sets the caption for signing reason. + @param reasonCaption the signing reason caption + + + Gets and sets the signing location. + @return the signing location + + + Sets the caption for the signing location. + @param locationCaption the signing location caption + + + Holds value of the application that creates the signature + + + Gets the signature creator. + @return the signature creator + + Sets the name of the application used to create the signature. + @param signatureCreator the name of the signature creating application + + + The contact name of the signer. + + + Gets the signing contact. + @return the signing contact + + + Gets the signature date. + @return the signature date + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null) + + + Array containing the byte positions of the bytes that need to be hashed. + + + + @return the underlying source + @throws IOException + + + The signing certificate + + + Adds the appropriate developer extension. + + + The crypto dictionary + + + Gets the user made signature dictionary. This is the dictionary at the /V key. + @return the user made signature dictionary + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + @param sig the signature dictionary + + + Holds value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + @param signatureEvent the signature event + + + The name of the field + + + Gets the field name. + @return the field name + + + Gets a new signature field name that + doesn't clash with any existing name. + @return a new signature field name + + + The page where the signature will appear. + + + Gets the page number of the field. + @return the page number of the field + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + Gets the rectangle representing the signature dimensions. + @return the rectangle representing the signature dimensions. It may be null + or have zero width or height for invisible signatures + + + rectangle that represent the position and dimension of the signature in the page. + + + Gets the rectangle that represent the position and dimension of the signature in the page. + @return the rectangle that represent the position and dimension of the signature in the page + + + Gets the visibility status of the signature. + @return the visibility status of the signature + + + Sets the signature to be visible. It creates a new visible signature field. + @param pageRect the position and dimension of the field in the page + @param page the page to place the field. The fist page is 1 + @param fieldName the field name or null to generate automatically a new field name + + + Sets the signature to be visible. An empty signature field with the same name must already exist. + @param fieldName the existing empty signature field name + + + Signature rendering modes + @since 5.0.1 + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + The rendering mode chosen for visible signatures + + + Gets the rendering mode for this signature. + @return the rendering mode for this signature + @since 5.0.1 + + + The image that needs to be used for a visible signature + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC + or RenderingMode.GRAPHIC_AND_DESCRIPTION. + @param signatureGraphic image rendered. If null the mode is defaulted + to RenderingMode.DESCRIPTION + + + Appearance compliant with the recommendations introduced in Acrobat 6? + + + Acrobat 6.0 and higher recommends that only layer n0 and n2 be present. + Use this method with value false if you want to ignore this recommendation. + @param acro6Layers if true only the layers n0 and n2 will be present + @deprecated Adobe no longer supports Adobe Acrobat / Reader versions older than 9 + + + Layers for a visible signature. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Indicates that the existing appearances needs to be reused as layer 0. + + + An appearance that can be used for layer 1 (if acro6Layers is false). + + + A background image for the text in layer 2. + + + Gets the background image for the layer 2. + @return the background image for the layer 2 + + + the scaling to be applied to the background image.t + + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + @param imageScale the scaling to be applied to the background image + + + The text that goes in Layer 2 of the signature appearance. + + + Sets the signature text identifying the signer. + @param text the signature text identifying the signer. If null or not set + a standard description will be used + + + Font for the text in Layer 2. + + + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + @param layer2Font the n2 and n4 font + + + Run direction for the text in layers 2 and 4. + + + Sets the run direction in the n2 and n4 layer. + @param runDirection the run direction + + + The text that goes in Layer 4 of the appearance. + + + Sets the text identifying the signature status. Will be ignored if acro6Layers is true. + @param text the text identifying the signature status. If null or not set + the description "Signature Not Verified" will be used + + + Template containing all layers drawn on top of each other. + + + + extra space at the top. + + + margin for the content inside the signature rectangle. + + + + The PdfStamper that creates the signed PDF. + + + Gets the PdfStamper associated with this instance. + @return the PdfStamper associated with this instance + + + Sets the PdfStamper + @param stamper PdfStamper + + + The PdfStamperImp object corresponding with the stamper. + + + A byte buffer containing the bytes of the Stamper. + + + Getter for the byte buffer. + + + OutputStream for the bytes of the stamper. + + + Temporary file in case you don't want to sign in memory. + + + Gets the temporary file. + @return the temporary file or null is the document is created in memory + + + Name and content of keys that can only be added in the close() method. + + + Length of the output. + + + Indicates if the stamper has already been pre-closed. + + + + Signature field lock dictionary. + + + + + Signature field lock dictionary. + + + If a signature is created on an existing signature field, then its /Lock dictionary + takes the precedence (if it exists). + + + + Checks if the document is in the process of closing. + @return true if the document is in the process of closing, + false otherwise + + + + Adds keys to the signature dictionary that define + the certification level and the permissions. + This method is only used for Certifying signatures. + @param crypto the signature dictionary + + + Adds keys to the signature dictionary that define + the field permissions. + This method is only used for signatures that lock fields. + @param crypto the signature dictionary + + + + PdfSmartCopy has the same functionality as PdfCopy, + but when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. + + + the cache with the streams and references. + + + Creates a PdfSmartCopy instance. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file if it wasn't available + in the cache yet. If it's in the cache, the reference to + the already used stream is returned. + + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + A PdfSpotColor defines a ColorSpace + + @see PdfDictionary + + + Constructs a new PdfSpotColor. + + @param name a string value + @param tint a tint value between 0 and 1 + @param altcs a altnative colorspace value + + + + The writer + + + + + + Gets the optional String map to add or change values in + the info dictionary. + @return the map or null + + An optional String map to add or change values in + the info dictionary. Entries with null + values delete the key in the original info dictionary + @param moreInfo additional entries to the info dictionary + + + + Replaces a page from this document with a page from other document. Only the content + is replaced not the fields and annotations. This method must be called before + getOverContent() or getUndercontent() are called for the same page. + @param r the PdfReader from where the new page will be imported + @param pageImported the page number of the imported page + @param pageReplaced the page to replace in this document + + + Inserts a blank page. All the pages above and including pageNumber will + be shifted up. If pageNumber is bigger than the total number of pages + the new page will be the last one. + @param pageNumber the page number position where the new page will be inserted + @param mediabox the size of the new page + + + Gets the signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + Gets the xml signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + + Gets a PdfContentByte to write under the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write under the page of + the original document + + + Gets a PdfContentByte to write over the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write over the page of + the original document + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the encryption was set too late + + + Gets a page from other PDF document. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the underlying PdfReader. + @return the underlying PdfReader + + + Gets the AcroFields object that allows to get and set field values + and to merge FDF forms. + @return the AcroFields object + + + Determines if the fields are flattened on close. The fields added with + {@link #addAnnotation(PdfAnnotation,int)} will never be flattened. + @param flat true to flatten the fields, false + to keep the fields + + + Determines if the FreeText annotations are flattened on close. + @param flat true to flatten the FreeText annotations, false + (the default) to keep the FreeText annotations as active content. + + + Flatten annotations with an appearance stream on close(). + + @param flat boolean to indicate whether iText should flatten annotations or not. + + + Adds an annotation of form field in a specific page. This page number + can be overridden with {@link PdfAnnotation#setPlaceInPage(int)}. + @param annot the annotation + @param page the page + + + Adds an empty signature. + @param name the name of the signature + @param page the page number + @param llx lower left x coordinate of the signature's position + @param lly lower left y coordinate of the signature's position + @param urx upper right x coordinate of the signature's position + @param ury upper right y coordinate of the signature's position + @return a signature form field + @since 2.1.4 + + + Adds the comments present in an FDF file. + @param fdf the FDF file + @throws IOException on error + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Sets the thumbnail image for a page. + @param image the image + @param page the page + @throws PdfException on error + @throws DocumentException on error + + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param js the JavaScript code + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param name the name for the JavaScript snippet in the name tree + @param js the JavaScript code + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fs the file specification + + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Sets the XMP metadata. + @param xmp + @see PdfWriter#setXmpMetadata(byte[]) + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. Be attentive!!! If you want set full compression , you should set immediately after creating PdfStamper, + before editing the document.It can be set once and it can't be unset. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + Integer(page number) -> PageStamp + + + Holds value of property rotateContents. + + + Creates new PdfStamperImp. + @param reader the read PDF + @param os the output destination + @param pdfVersion the new pdf version or '\0' to keep the same version as the original + document + @param append + @throws DocumentException on error + @throws IOException + + + @param reader + @param openFile + @throws IOException + + + @param reader + + + @param fdf + @throws IOException + + + If true, annotations with an appearance stream will be flattened. + + @since 5.5.3 + @param flatAnnotations boolean + + + @see com.lowagie.text.pdf.PdfWriter#getPageReference(int) + + + @see com.lowagie.text.pdf.PdfWriter#addAnnotation(com.lowagie.text.pdf.PdfAnnotation) + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfWriter#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + Always throws an UnsupportedOperationException. + @param actionType ignore + @param action ignore + @throws PdfException ignore + @see PdfStamper#setPageAction(PdfName, PdfAction, int) + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Always throws an UnsupportedOperationException. + @param seconds ignore + + + Always throws an UnsupportedOperationException. + @param transition ignore + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + Getter for property append. + @return Value of property append. + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(com.lowagie.text.pdf.PdfAction) + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(java.lang.String) + + + @see com.lowagie.text.pdf.PdfWriter#setThumbnail(com.lowagie.text.Image) + + + Reads the OCProperties dictionary from the catalog of the existing document + and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. + Note that the original OCProperties of the existing document can contain more information. + @since 2.1.2 + + + Recursive method to reconstruct the documentOCGorder variable in the writer. + @param parent a parent PdfLayer (can be null) + @param arr an array possibly containing children for the parent PdfLayer + @param ocgmap a Hashtable with indirect reference Strings as keys and PdfLayer objects as values. + @since 2.1.2 + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + is the stream compressed? + + + The level of compression. + @since 2.1.3 + + + Constructs a PdfStream-object. + + @param bytes content of the new PdfObject as an array of byte. + + + Creates an efficient stream. No temporary array is ever created. The InputStream + is totally consumed but is not closed. The general usage is: +
+            InputStream in = ...;
+            PdfStream stream = new PdfStream(in, writer);
+            stream.FlateCompress();
+            writer.AddToBody(stream);
+            stream.WriteLength();
+            in.Close();
+            
+ @param inputStream the data to write to this stream + @param writer the PdfWriter for this stream +
+ + Constructs a PdfStream-object. + + + Writes the stream length to the PdfWriter. +

+ This method must be called and can only be called if the contructor {@link #PdfStream(InputStream,PdfWriter)} + is used to create the stream. +

+ @throws IOException on error + @see #PdfStream(InputStream,PdfWriter) +
+ + Compresses the stream. + + + Compresses the stream. + @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) + @since 2.1.3 + + + Writes the data content to an Stream. + @param os the destination to write to + @throws IOException on error + + + @see com.lowagie.text.pdf.PdfObject#toString() + + + + The value of this object. + + + The encoding. + + + Constructs an empty PdfString-object. + + + Constructs a PdfString-object. + + @param value the content of the string + + + Constructs a PdfString-object. + + @param value the content of the string + @param encoding an encoding + + + Constructs a PdfString-object. + + @param bytes an array of byte + + + Returns the PDF representation of this PdfString. + + @return an array of bytes + + + Returns the string value of the PdfString-object. + + @return a string + + + Gets the encoding of this string. + + @return a string + + + This is a node in a document logical structure. It may contain a mark point or it may contain + other nodes. + @author Paulo Soares + + + Holds value of property kids. + + + Holds value of property reference. + + + Creates a new instance of PdfStructureElement. + @param parent the parent of this node + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Creates a new instance of PdfStructureElement. + @param root the structure tree root + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Gets the parent of this node. + @return the parent of this node + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + The structure tree root corresponds to the highest hierarchy level in a tagged PDF. + @author Paulo Soares + + + Holds value of property writer. + + + Creates a new instance of PdfStructureTreeRoot + + + Maps the user tags to the standard tags. The mapping will allow a standard application to make some sense of the tagged + document whatever the user tags may be. + @param used the user tag + @param standard the standard tag + + + Gets the writer. + @return the writer + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + Implements the form XObject. + + + The indirect reference to this template + + + The resources used by this template + + + The bounding box of this template + + + A dictionary with additional information + @since 5.1.0 + + + Creates a PdfTemplate. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + + Gets the bounding width of this template. + + @return width the bounding width + + + Gets the bounding heigth of this template. + + @return heigth the bounding height + + + Gets the layer this template belongs to. + @return the layer this template belongs to or null for no layer defined + + + Gets the indirect reference to this template. + + @return the indirect reference to this template + + + Constructs the resources used by this template. + + @return the resources used by this template + + + Gets the stream representing this template. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + + + Gets a duplicate of this PdfTemplate. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfTemplate + + + Sets/gets a dictionary with extra entries, for instance /Measure. + + @param additional + a PdfDictionary with additional information. + @since 5.1.0 + + + + Adds a PdfNumber to the PdfArray. + + @param number displacement of the string + + + Out Vertical Split + + + Out Horizontal Split + + + In Vertical Split + + + IN Horizontal Split + + + Vertical Blinds + + + Vertical Blinds + + + Inward Box + + + Outward Box + + + Left-Right Wipe + + + Right-Left Wipe + + + Bottom-Top Wipe + + + Top-Bottom Wipe + + + Dissolve + + + Left-Right Glitter + + + Top-Bottom Glitter + + + Diagonal Glitter + + + duration of the transition effect + + + type of the transition effect + + + Constructs a Transition. + + + + Constructs a Transition. + + @param type type of the transition effect + + + Constructs a Transition. + + @param type type of the transition effect + @param duration duration of the transition effect + + + The transparency group dictionary. + + @author Paulo Soares + + + Constructs a transparencyGroup. + + + Determining the initial backdrop against which its stack is composited. + @param isolated + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + @param knockout + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + @since 5.0.2 + + + A boolean operator. + + + A boolean operator. + + + A boolean operator. + + + Creates a visibility expression. + @param type should be AND, OR, or NOT + + + @see com.itextpdf.text.pdf.PdfArray#add(int, com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#addFirst(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(float[]) + + + @see com.itextpdf.text.pdf.PdfArray#add(int[]) + + + A DocWriter class for PDF. +

+ When this PdfWriter is added + to a certain PdfDocument, the PDF representation of every Element + added to this Document will be written to the outputstream.

+
+ + The highest generation number possible. + @since iText 2.1.6 + + + + PdfCrossReference is an entry in the PDF Cross-Reference table. + + + Byte offset in the PDF file. + + + generation of the object. + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + @param generation generationnumber of the object + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + + + Returns the PDF representation of this PdfObject. + @param os + @throws IOException + + + Writes PDF syntax to the Stream + @param midSize + @param os + @throws IOException + + + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @see java.lang.Object#equals(java.lang.Object) + + + array containing the cross-reference table of the normal objects. + + + the current byteposition in the body. + + + Constructs a new PdfBody. + @param writer + + + + Gets a PdfIndirectReference for an object that will be created in the future. + @return a PdfIndirectReference + + + + Returns the offset of the Cross-Reference table. + + @return an offset + + + Returns the total number of objects contained in the CrossReferenceTable of this Body. + + @return a number of objects + + + Returns the CrossReferenceTable of the Body. + @param os + @param root + @param info + @param encryption + @param fileID + @param prevxref + @throws IOException + + + + Constructs a PDF-Trailer. + + @param size the number of entries in the PdfCrossReferenceTable + @param offset offset of the PdfCrossReferenceTable + @param root an indirect reference to the root of the PDF document + @param info an indirect reference to the info object of the PDF document + @param encryption + @param fileID + @param prevxref + + + Returns the PDF representation of this PdfObject. + @param writer + @param os + @throws IOException + + + Constructs a PdfWriter. + + + + Use this method to get an instance of the PdfWriter. + + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @return a new PdfWriter + + @throws DocumentException on error + + + Use this method to get an instance of the PdfWriter. + + @return a new PdfWriter + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @param listener A DocListener to pass to the PdfDocument. + @throws DocumentException on error + + + the pdfdocument object. + + + Gets the PdfDocument associated with this writer. + @return the PdfDocument + + + Use this method to get the info dictionary if you want to + change it directly (add keys and values to the info dictionary). + @return the info dictionary + + + Use this method to get the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Sets the initial leading for the PDF document. + This has to be done before the document is opened. + @param leading the initial leading + @since 2.1.6 + @throws DocumentException if you try setting the leading after the document was opened. + + + The direct content in this document. + + + The direct content under in this document. + + + Use this method to get the direct content for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Use this method to get the direct content under for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Resets all the direct contents to empty. + This happens when a new page is started. + + + body of the PDF document + + + Adds the local destinations to the body of the document. + @param dest the Hashtable containing the destinations + @throws IOException on error + + + Adds an object to the PDF body. + @param object + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Use this method for caching objects. + @param iobj @see PdfIndirectObject + + + Gets a PdfIndirectReference for an object that + will be created in the future. + @return the PdfIndirectReference + + + Returns the outputStreamCounter. + @return the outputStreamCounter + + + Holds value of property extraCatalog. + + + Sets extra keys to the catalog. + @return the catalog to change + + + The root of the page tree. + + + The PdfIndirectReference to the pages. + + + The current page number. + + + The value of the Tabs entry in the page dictionary. + @since 2.1.5 + + + Additional page dictionary entries. + @since 5.1.0 + + + Adds an additional entry for the page dictionary. + @since 5.1.0 + + + Gets the additional pageDictEntries. + @since 5.1.0 + + + Resets the additional pageDictEntries. + @since 5.1.0 + + + Use this method to make sure the page tree has a lineair structure + (every leave is attached directly to the root). + Use this method to allow page reordering with method reorderPages. + + + Use this method to reorder the pages in the document. + A null argument value only returns the number of pages to process. + It is advisable to issue a Document.NewPage() before using this method. + @return the total number of pages + @param order an array with the new page sequence. It must have the + same size as the number of pages. + @throws DocumentException if all the pages are not present in the array + + + Use this method to get a reference to a page existing or not. + If the page does not exist yet the reference will be created + in advance. If on closing the document, a page number greater + than the total number of pages was requested, an exception + is thrown. + @param page the page number. The first page is 1 + @return the reference to the page + + + Gets the pagenumber of this document. + This number can be different from the real pagenumber, + if you have (re)set the page number previously. + @return a page number + + + Sets the Viewport for the next page. + @param viewport an array consisting of Viewport dictionaries. + @since 5.1.0 + + + Sets the value for the Tabs entry in the page tree. + @param tabs Can be PdfName.R, PdfName.C or PdfName.S. + Since the Adobe Extensions Level 3, it can also be PdfName.A + or PdfName.W + @since 2.1.5 + + + + The PdfPageEvent for this document. + + + Gets the PdfPageEvent for this document or null + if none is set. + @return the PdfPageEvent for this document or null + if none is set + + + A number refering to the previous Cross-Reference Table. + + + The original file ID (if present). + + + + + Use this method to get the root outline + and construct bookmarks. + @return the root outline + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + Stores the version information for the header and the catalog. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Returns the version information. + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Use this method to add page labels + @param pageLabels the page labels + + + Adds named destinations in bulk. + Valid keys and values of the map can be found in the map + that is created by SimpleNamedDestination. + @param map a map with strings as keys for the names, + and structured strings as values for the destinations + @param page_offset number of pages that has to be added to + the page numbers in the destinations (useful if you + use this method in combination with PdfCopy). + @since iText 5.0 + + + Adds one named destination. + @param name the name for the destination + @param page the page number where you want to jump to + @param dest an explicit destination + @since iText 5.0 + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param js The JavaScript action + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param js The JavaScript action + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Use this method to adds a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + + + Adds a file attachment at the document level. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. + @param description the file description + @param fs the file specification + + + Adds a file attachment at the document level. + @param fs the file specification + + + action value + + + action value + + + action value + + + action value + + + action value + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + Sets the Collection dictionary. + @param collection a dictionary of type PdfCollection + + + signature value + + + signature value + + + Gets the AcroForm object. + @return the PdfAcroForm + + + Adds a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Adds the PdfAnnotation to the calculation order + array. + @param annot the PdfAnnotation to be added + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + XMP Metadata for the document. + + + Sets XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to set the XMP Metadata for each page. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to creates XMP Metadata based + on the metadata in the PdfDocument. + @since 5.4.4 just creates XmpWriter instance which will be serialized in close. + + + PDF/X level + + + PDF/X level + + + PDF/X level + + + Stores the PDF ISO conformance. + + + Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It + must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#isPdfX() + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + @param outputConditionIdentifier a value + @param outputCondition a value + @param registryName a value + @param info a value + @param destOutputProfile a value + @throws IOException on error + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + + Prefer the ICC_Profile-based version of this method. + @param outputConditionIdentifier a value + @param outputCondition a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance. + @param registryName a value + @param info a value + @param destOutputProfile a value + @since 1.x + + @throws IOException + + + Copies the output intent dictionary from other document to this one. + @param reader the other document + @param checkExistence true to just check for the existence of a valid output intent + dictionary, false to insert the dictionary if it exists + @throws IOException on error + @return true if the output intent dictionary exists, false + otherwise + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Mask to separate the encryption type from the encryption mode. + + + Add this to the mode to keep the metadata in clear text + + + Add this to the mode to keep encrypt only the embedded files. + @since 2.1.3 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_CONTENTS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_COPY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_ANNOTATIONS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_FILL_IN} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_SCREENREADERS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_ASSEMBLY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_DEGRADED_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_40} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_128} instead. Scheduled for removal at or after 2.2.0 + + + Contains the business logic for cryptography. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Holds value of property fullCompression. + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + The compression level of the content streams. + @since 2.1.3 + + + Sets the compression level to be used for streams written by this writer. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + The fonts of this document + + + The font number counter for the fonts in the document. + + + Adds a BaseFont to the document but not to the page resources. + It is used for templates. + @param bf the BaseFont to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The form XObjects in this document. The key is the xref and the value + is Object[]{PdfName, template}. + + + The name counter for the form XObjects name. + + + Adds a template to the document but not to the page resources. + @param template the template to add + @param forcedName the template name, rather than a generated one. Can be null + @return the PdfName for this template + + + Releases the memory used by a template by writing it to the output. The template + can still be added to any content but changes to the template itself won't have + any effect. + @param tp the template to release + @throws IOException on error + + + Gets a page from other PDF document. The page can be used as + any other PdfTemplate. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Returns the PdfReaderInstance associated with the specified reader. + Multiple calls with the same reader object will return the same + PdfReaderInstance. + @param reader the PDF reader that you want an instance for + @return the instance for the provided reader + @since 5.0.3 + + + Writes the reader to the document and frees the memory used by it. + The main use is when concatenating multiple documents to keep the + memory usage restricted to the current appending document. + @param reader the PdfReader to free + @throws IOException on error + + + Gets the current document size. This size only includes + the data already writen to the output stream, it does not + include templates or fonts. It is usefull if used with + freeReader() when concatenating many documents + and an idea of the current size is needed. + @return the approximate size without fonts or templates + + + The colors of this document + + + The color number counter for the colors in the document. + + + Adds a SpotColor to the document but not to the page resources. + @param spc the SpotColor to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The patterns of this document + + + The patten number counter for the colors in the document. + + + Mark this document for tagging. It must be called before open. + + + Check if the document is marked for tagging. + @return true if the document is marked for tagging + + + Fix structure of tagged document: remove unused objects, remove unused items from class map, + fix xref table due to removed objects. + + + Flushes merged AcroFields to document (if any). + + + Gets the structure tree root. If the document is not marked for tagging it will return null. + @return the structure tree root + + + Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer + state. It's advisable to only call this method right before close and do any modifications + at that time. + @return the Optional Content Properties Dictionary + + + Sets a collection of optional content groups whose states are intended to follow + a "radio button" paradigm. That is, the state of at most one optional + content group in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + @param group the radio group + + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + @param layer the layer that needs to be added to the array of locked OCGs + @since 2.1.2 + + + Gives the size of the media box. + @return a Rectangle + + + Sets the crop box. The crop box should not be rotated even if the + page is rotated. This change only takes effect in the next + page. + @param crop the crop box + + + Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed". + @param boxName the box size + @param size the size + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + Returns the intersection between the crop, trim art or bleed box and the parameter intersectingRectangle. + This method returns null when + - there is no intersection + - any of the above boxes are not defined + - the parameter intersectingRectangle is null + + @param boxName crop, trim, art, bleed + @param intersectingRectangle the rectangle that intersects the rectangle associated to the boxName + @return the intersection of the two rectangles + + + Use this method to make sure a page is added, + even if it's empty. If you use SetPageEmpty(false), + invoking NewPage() after a blank page will add a newPage. + SetPageEmpty(true) won't have any effect. + @param pageEmpty the state + + + action value + + + action value + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the the thumbnail image for the current page. + @param image the image + @throws PdfException on error + @throws DocumentException or error + + + A group attributes dictionary specifying the attributes + of the page�s page group for use in the transparent + imaging model + + + The default space-char ratio. + + + Disable the inter-character spacing. + + + The ratio between the extra word spacing and the extra character spacing. + Extra word spacing will grow ratio times more than extra character spacing. + + + Sets the ratio between the extra word spacing and the extra character spacing + when the text is fully justified. + Extra word spacing will grow spaceCharRatio times more than extra character spacing. + If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing + will be zero. + @param spaceCharRatio the ratio between the extra word spacing and the extra character spacing + + + Use the default run direction. + + + Do not use bidirectional reordering. + + + Use bidirectional reordering with left-to-right + preferential run direction. + + + Use bidirectional reordering with right-to-left + preferential run direction. + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + A UserUnit is a value that defines the default user space unit. + The minimum UserUnit is 1 (1 unit = 1/72 inch). + The maximum UserUnit is 75,000. + Remark that this userunit only works starting with PDF1.6! + + + Gets the default colorspaces. + @return the default colorspaces + + + + Sets the image sequence to follow the text in strict order. + @param strictImageSequence new value of property strictImageSequence + + + + Clears text wrapping around images (if applicable). + Method suggested by Pelikan Stephan + @throws DocumentException + + + Dictionary, containing all the images of the PDF document + + + This is the list with all the images in the document. + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @param fixedRef the reference to used. It may be null, + a PdfIndirectReference or a PRIndirectReference. + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Writes a PdfImage to the outputstream. + + @param pdfImage the image to be added + @return a PdfIndirectReference to the encapsulated image + @throws PdfException when a document isn't open yet, or has been closed + + + return the PdfIndirectReference to the image with a given name. + + @param name the name of the image + @return a PdfIndirectReference + + + A Hashtable with Stream objects containing JBIG2 Globals + @since 2.1.5 + + + Gets an indirect reference to a JBIG2 Globals stream. + Adds the stream if it hasn't already been added to the writer. + @param content a byte array that may already been added to the writer inside a stream object. + @since 2.1.5 + + + A flag indicating the presence of structure elements that contain user properties attributes. + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + @param userProperties the user properties flag + + + Holds value of property RGBTranparency. + + + Sets the transparency blending colorspace to RGB. The default blending colorspace is + CMYK and will result in faded colors in the screen and in printing. Calling this method + will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages + until other value is set. + Note that this is a generic solution that may not work in all cases. + @param rgbTransparencyBlending true to set the transparency blending colorspace to RGB, false + to use the default blending colorspace + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param rect + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param title + @param content + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param action + @param subtype + @return + + + Gets the list of the standard structure element names (roles). + @return + + + + @author psoares + + + Creates a new instance of PdfXConformanceException. + + + Creates a new instance of PdfXConformanceException. + @param s + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + @param inp the PFM file + @param outp the AFM file + @throws IOException on error + + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + Character class. This is a minor attempt to overcome the problem that + in the pfm file, all unused characters are given the width of space. + Note that this array isn't used in iText. + + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + This class captures an AcroForm on input. Basically, it extends Dictionary + by indexing the fields of an AcroForm + @author Mark Thompson + + + This class holds the information for a single field + + + Returns the name of the widget annotation (the /NM entry). + @return a String or null (if there's no /NM key) + + + Constructor + @param reader reader of the input file + + + Number of fields found + @return size + + + Given the title (/T) of a reference, return the associated reference + @param name a string containing the path + @return a reference to the field, or null + + + Read, and comprehend the acroform + @param root the docment root + + + After reading, we index all of the fields. Recursive. + @param fieldlist An array of fields + @param fieldDict the last field dictionary we encountered (recursively) + @param parentPath the pathname of the field, up to this point or null + + + merge field attributes from two dictionaries + @param parent one dictionary + @param child the other dictionary + @return a merged dictionary + + + stack a level of dictionary. Merge in a dictionary from this level + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + + + Creates a new PDF stream object that will replace a stream + in a existing PDF file. + @param reader the reader that holds the existing PDF + @param conts the new content + @param compressionLevel the compression level for the content + @since 2.1.3 (replacing the existing constructor without param compressionLevel) + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @since iText 2.1.1 + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @param compressionLevel a value between -1 and 9 (ignored if compress == false) + @since iText 2.1.3 + + + Sets the data associated with the stream, as-is. This method will not + remove or change any existing filter: the data has to match an existing + filter or an appropriate filter has to be set. + + @param data data, possibly encrypted and/or compressed + @since 5.5.0 + + + Sets the data associated with the stream + @param data raw data, decrypted and uncompressed. + + + + @author Paulo Soares + + + Creates a PRTokeniser for the specified {@link RandomAccessSource}. + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + @param file the source + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
The same as calling {@link #isWhitespace(int, boolean) isWhiteSpace(ch, true)}. + @param ch int + @return boolean + @since 5.5.1 +
+ + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + @param ch int + @param isWhitespace boolean + @return boolean + @since 5.5.1 + + + Gets current reference number. If parsing was failed with NumberFormatException -1 will be return. + + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. +
The same as calling {@link #readLineSegment(byte[], boolean) readLineSegment(input, true)}. + + @param input byte[] + @return boolean + @throws IOException + @since 5.5.1 +
+ + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. + + @param input byte[] + @param isNullWhitespace boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method {@link #readLineSegment(byte[]) readLineSegment(input)} + @return boolean + @throws IOException + @since 5.5.1 + + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + Holds value of property layout. + + + Holds value of property image. + + + Holds value of property template. + + + Holds value of property scaleIcon. + + + Holds value of property proportionalIcon. + + + Holds value of property iconVerticalAdjustment. + + + Holds value of property iconHorizontalAdjustment. + + + Holds value of property iconFitToBounds. + + + Creates a new instance of PushbuttonField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, + LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, + LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, + LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. + The default is LAYOUT_LABEL_ONLY. + @param layout New value of property layout. + + + Sets the icon as an image. + @param image the image + + + Sets the icon as a template. + @param template the template + + + Sets the way the icon will be scaled. Possible values are + SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, + SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. + The default is SCALE_ICON_ALWAYS. + @param scaleIcon the way the icon will be scaled + + + Sets the way the icon is scaled. If true the icon is scaled proportionally, + if false the scaling is done anamorphicaly. + @param proportionalIcon the way the icon is scaled + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. + A value of 0 positions the icon at the bottom of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconVerticalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. + A value of 0 positions the icon at the left of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconHorizontalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon + + + Gets the button appearance. + @throws IOException on error + @throws DocumentException on error + @return the button appearance + + + Gets the pushbutton field. + @throws IOException on error + @throws DocumentException on error + @return the pushbutton field + + + If true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account. The default + is false. + @param iconFitToBounds if true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account + + + Holds value of property iconReference. + + + Sets the reference to an existing icon. + @param iconReference the reference to an existing icon + + +

A simple, fast array of bits, represented compactly by an array of ints internally.

+ + @author Sean Owen +
+ + @param i bit to get + @return true iff bit i is set + + + Sets bit i. + + @param i bit to set + + + Flips bit i. + + @param i bit to set + + + Sets a block of 32 bits, starting at bit i. + + @param i first bit to set + @param newBits the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + @param start start of range, inclusive. + @param end end of range, exclusive + @param value if true, checks that bits in range are set, otherwise checks that they are not set + @return true iff all bits are set or not set in range, according to value argument + @throws IllegalArgumentException if end is less than or equal to start + + + @return underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + Reverses all bits in the array. + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+ +

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+ +

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+ + @author Sean Owen + @author dswitkin@google.com (Daniel Switkin) +
+ +

Gets the requested bit, where true means black.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) + @return value of given bit in matrix +
+ +

Sets the given bit to true.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ +

Flips the given bit.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ + @param left The horizontal position to begin at (inclusive) + @param top The vertical position to begin at (inclusive) + @param width The width of the region + @param height The height of the region +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + @param y The row to retrieve + @param row An optional caller-allocated BitArray, will be allocated if null or too small + @return The resulting BitArray - this reference should always be used even when passing + your own row + + + @return The width of the matrix + + + @return The height of the matrix + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + @return row/column dimension of this matrix + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This class implements an array of unsigned bytes. + + @author dswitkin@google.com (Daniel Switkin) + + + Access an unsigned byte at location index. + @param index The index in the array to access. + @return The unsigned value of the byte as an int. + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + @author Sean Owen + + + @param name character set ECI encoding name + @return {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal + but unsupported + + + These are a set of hints that you may pass to Writers to specify their behavior. + + @author dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by ChooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + + @return the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + Append mode info. On success, store the result in "bits". + + + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + +

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard.

+ + @author Sean Owen +
+ + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + @param bits int containing the two bits encoding a QR Code's error correction level + @return {@link ErrorCorrectionLevel} representing the encoded error correction level + + +

Encapsulates a QR Code's format information, including the data mask used and + error correction level.

+ + @author Sean Owen + @see ErrorCorrectionLevel +
+ + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + @param maskedFormatInfo1 format info indicator, with mask still applied + @param maskedFormatInfo2 second copy of same info; both are checked at the same time + to establish best match + @return information about the format it specifies, or null + if doesn't seem to match any known pattern + + +

This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations.

+ +

Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used.

+ + @author Sean Owen +
+ + Create a representation of GF(256) using the given primitive polynomial. + + @param primitive irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + @return the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + + @return sum/difference of a and b + + + @return 2 to the power of a in GF(256) + + + @return base 2 log of a in GF(256) + + + @return multiplicative inverse of a + + + @param a + @param b + @return product of a and b in GF(256) + + +

Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable.

+ +

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+ + @author Sean Owen +
+ + @param field the {@link GF256} instance representing the field to use + to perform computations + @param coefficients coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + @throws IllegalArgumentException if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + @return degree of this polynomial + + + @return true iff this polynomial is the monomial "0" + + + @return coefficient of x^degree term in this polynomial + + + @return evaluation of this polynomial at a given point + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + +

See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard.

+ + @author Sean Owen +
+ + @param bits four bits encoding a QR Code data mode + @return {@link Mode} encoded by these bits + @throws IllegalArgumentException if bits do not correspond to a known mode + + + @param version version in question + @return number of bits used, in this QR Code symbol {@link Version}, to encode the + count of characters that will follow encoded in this {@link Mode} + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + + @author dswitkin@google.com (Daniel Switkin) + + +

Implements Reed-Solomon enbcoding, as the name implies.

+ + @author Sean Owen + @author William Rucklidge +
+ +

Thrown when an exception occurs during Reed-Solomon decoding, such as when + there are too many errors to correct.

+ + @author Sean Owen +
+ + See ISO 18004:2006 Annex D + + @author Sean Owen + + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + +

Deduces version information purely from QR Code dimensions.

+ + @param dimension dimension in modules + @return {@link Version} for a QR Code of that dimension + @throws FormatException if dimension is not 1 mod 4 +
+ + See ISO 18004:2006 Annex E + + +

Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version.

+
+ +

Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format.

+
+ + See ISO 18004:2006 6.5.1 Table 9 + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + @author dswitkin@google.com (Daniel Switkin) + + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Holds value of property checkType. + + + Holds value of property onValue. + + + Holds value of property checked. + + + Creates a new instance of RadioCheckField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. It must not be null + @param onValue the value when the field is checked + + + Sets the checked symbol. It can be + TYPE_CHECK, + TYPE_CIRCLE, + TYPE_CROSS, + TYPE_DIAMOND, + TYPE_SQUARE and + TYPE_STAR. + @param checkType the checked symbol + + + Sets the value when the field is checked. + @param onValue the value when the field is checked + + + Sets the state of the field to checked or unchecked. + @param checked the state of the field, true for checked + and false for unchecked + + + Gets the field appearance. + @param isRadio true for a radio field and false + for a check field + @param on true for the checked state, false + otherwise + @throws IOException on error + @throws DocumentException on error + @return the appearance + + + Gets the special field appearance for the radio circle. + @param on true for the checked state, false + otherwise + @return the appearance + + + Gets a radio group. It's composed of the field specific keys, without the widget + ones. This field is to be used as a field aggregator with {@link PdfFormField#addKid(PdfFormField) AddKid()}. + @param noToggleToOff if true, exactly one radio button must be selected at all + times; clicking the currently selected button has no effect. + If false, clicking + the selected button deselects it, leaving no button selected. + @param radiosInUnison if true, a group of radio buttons within a radio button field that + use the same value for the on state will turn on and off in unison; that is if + one is checked, they are all checked. If false, the buttons are mutually exclusive + (the same behavior as HTML radio buttons) + @return the radio group + + + Gets the radio field. It's only composed of the widget keys and must be used + with {@link #getRadioGroup(bool,bool)}. + @return the radio field + @throws IOException on error + @throws DocumentException on error + + + Gets the check field. + @return the check field + @throws IOException on error + @throws DocumentException on error + + + Gets a radio or check field. + @param isRadio true to get a radio field, false to get + a check field + @throws IOException on error + @throws DocumentException on error + @return the field + + + Intended to be layered on top of a low level RandomAccessSource object. Provides + functionality useful during parsing: +
    +
  • tracks current position in the file
  • +
  • allows single byte pushback
  • +
  • allows reading of multi-byte data structures (int, long, String) for both Big and Little Endian representations
  • +
  • allows creation of independent 'views' of the underlying data source
  • +
+ + @author Paulo Soares, Kevin Day +
+ + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + @deprecated use {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + @param filename + @throws IOException + + + Creates an independent view of the specified source. Closing the new object will not close the source. + Closing the source will have adverse effect on the behavior of the new view. + @deprecated use {@link RandomAccessFileOrArray#createView()} instead + @param source the source for the new independent view + + + Creates an independent view of this object (with it's own file pointer and pushback queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + @return the new view + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + @param byteSource the byte source to wrap + + + Constructs a new RandomAccessFileOrArrayObject + @param filename the file to open (can be a file system file or one of the following url strings: file://, http://, https://, jar:, wsjar:, vfszip: + @param forceRead if true, the entire file will be read into memory + @param plainRandomAccess if true, a regular RandomAccessFile is used to access the file contents. If false, a memory mapped file will be used, unless the file cannot be mapped into memory, in which case regular RandomAccessFile will be used + @throws IOException if there is a failure opening or reading the file + @deprecated use {@link RandomAccessSourceFactory#createBestSource(String)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param url + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(URL)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param is + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(InputStream)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param arrayIn + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(byte[])} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + @param b the byte to push + + + Reads a single byte + @return the byte, or -1 if EOF is reached + @throws IOException + + + + + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + Interface to sign a document. The signing is fully done externally, including the container composition. + @author Paulo Soares + + + Produces the container with the signature. + @param data the data to sign + @return a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + @throws GeneralSecurityException + + + Modifies the signature dictionary to suit the container. At least the keys PdfName.FILTER and + PdfName.SUBFILTER will have to be set. + @param signDic the signature dictionary + + + Helps to locate xml stream + + + Constructor for XPath2 expression + + + Get XPath2 expression + + + Get XmlNamespaceManager to resolve namespace conflicts + + + Class that signs your XML. + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param keyInfo KeyInfo for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param includeSignaturePolicy if true SignaturePolicyIdentifier will be included (XAdES-EPES) + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param publicKey PublicKey for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates new PdfSignatureAppDictionary + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary + + @param name + + + Dictionary that stores signature build properties. + @author Kwinten Pisman + + + Creates new PdfSignatureBuildProperties + + + Sets the signatureCreator property in the underlying + {@link PdfSignatureAppDictionary} dictionary. + + @param name + + + Gets the {@link PdfSignatureAppDictionary} from this dictionary. If it + does not exist, it adds a new {@link PdfSignatureAppDictionary} and + returns this instance. + + @return {@link PdfSignatureAppDictionary} + + + Class that encapsulates the signature policy information + @author J. Arturo + + Sample: + + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + a class that holds an X509 name + + + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + + email address in Verisign certificates + + + object identifier + + + LDAP User id. + + + A Hashtable with default symbols + + + A Hashtable with values + + + Constructs an X509 name + @param seq an Asn1 Sequence + + + Constructs an X509 name + @param dirName a directory name + + + gets a field array from the values Hashmap + @param name + @return an ArrayList + + + getter for values + @return a Hashtable with the fields of the X509 name + + + @see java.lang.Object#toString() + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + Get the issuer fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in + @param enc a TBSCertificate in a byte array + @return a DERObject + + + Get the subject fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "subject" from the TBSCertificate bytes that are passed in + @param enc A TBSCertificate in a byte array + @return a DERObject + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + Gets the URL of the Certificate Revocation List for a Certificate + @param certificate the Certificate + @return the String where you can check if the certificate was revoked + @throws CertificateParsingException + @throws IOException + + + Retrieves the OCSP URL from the given certificate. + @param certificate the certificate + @return the URL or null + @throws IOException + + + Gets the URL of the TSA if it's available on the certificate + @param certificate a certificate + @return a TSA URL + @throws IOException + + + @param certificate the certificate from which we need the ExtensionValue + @param oid the Object Identifier value for the extension. + @return the extension value as an ASN1Primitive object + @throws IOException + + + Gets a String from an ASN1Primitive + @param names the ASN1Primitive + @return a human-readable String + @throws IOException + + + This class consists of some methods that allow you to verify certificates. + + + Verifies a single certificate. + @param cert the certificate to verify + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return a String with the error description or null + if no error + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies an OCSP response against a KeyStore. + @param ocsp the OCSP response + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + Verifies a time stamp against a KeyStore. + @param ts the time stamp + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the CertificateVerifier in a chain of verifiers. + @param verifier the previous verifier in the chain + + + Decide whether or not online checking is allowed. + @param onlineCheckingAllowed + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @param signDate the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + @author Paulo Soares + + + The CRL as a byte array. + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + @param crlEncoded the CRL bytes + + + Returns the CRL bytes (the parameters are ignored). + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + @author Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + Creates a CrlClientOnline instance using one or more URLs. + + + Creates a CrlClientOnline instance using a certificate chain. + + + Adds an URL to the list of CRL URLs + @param url an URL in the form of a String + + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + @param verifier the next verifier in the chain + @param crls a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single CRL. + @param crl the Certificate Revocation List + @param signCert a certificate that needs to be verified + @param issuerCert its issuer + @param signDate the sign date + @return true if the verification succeeded + @throws GeneralSecurityException + + + Fetches a CRL for a specific certificate online (without further checking). + @param signCert the certificate + @param issuerCert its issuer + @return an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + @param crl the CRL + @param crlIssuer the trusted anchor + @return true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3 + + + Algorithm available for signatures since PDF 1.6 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps the name of a digest algorithm with its ID. + + + Creates a MessageDigest object that can be used to create a hash. + @param hashAlgorithm the algorithm you want to use to create a hash + @param provider the provider you want to use to create the hash + @return a MessageDigest object + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws GeneralSecurityException + + + Creates a hash using a specific digest algorithm and a provider. + @param data the message of which you want to create a hash + @param hashAlgorithm the algorithm used to create the hash + @param provider the provider used to create the hash + @return the hash + @throws GeneralSecurityException + @throws IOException + + + Gets the digest name for a certain id + @param oid an id (for instance "1.2.840.113549.2.5") + @return a digest name (for instance "MD5") + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + @param name the name of the digest algorithm + @return an oid + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + @param oid an id (for instance "1.2.840.113549.1.1.1") + @return an algorithm name (for instance "RSA") + @since 2.1.6 + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists into your PDF. + @author Paulo Soares + + + Gets a collection of byte array each representing a crl. + @param checkCert the certificate from which a CRL URL can be obtained + @param url a CRL url if you don't want to obtain it from the certificate + @return a collection of byte array each representing a crl. It may return null or an empty collection + + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + @author Paulo Soares + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + + + Signs it using the encryption algorithm in combination with + the digest algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @throws GeneralSecurityException + + + Interface for the OCSP Client. + @since 2.1.6 + + + * Gets an encoded byte array with OCSP validation. The method should not throw an exception. + * @param checkCert to certificate to check + * @param rootCert the parent certificate + * @param url the url to get the verification. It it's null it will be taken + * from the check cert or from other implementation specific source + * @return a byte array with the validation or null if the validation could not be obtained + + + + Get the time stamp token size estimate. + Implementation must return value large enough to accomodate the entire token + returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call. + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint byte[] - data imprint to be time-stamped + @return byte[] - encoded, TSA signed data of the timeStampToken + @throws Exception - TSA request failed + + + PAdES-LTV Timestamp + @author Pulo Soares + + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. + @param sap the signature appearance + @param tsa the timestamp generator + @param signatureName the signature name or null to have a name generated + automatically + @throws Exception + + + Add verification according to PAdES-LTV (part 4) + @author psoares + + + What type of verification to include + + + Include only OCSP + + + Include only CRL + + + Include both OCSP and CRL + + + Include CRL only if OCSP can't be read + + + Options for how many certificates to include + + + Include verification just for the signing certificate + + + Include verification for the whole chain of certificates + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys + + + Include certificates in the DSS and VRI dictionaries + + + Do not include certificates in the DSS and VRI dictionaries + + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + @param stp the PdfStamper to apply the validation to + + + Add verification for a particular signature + @param signatureName the signature to validate (it may be a timestamp) + @param ocsp the interface to get the OCSP + @param crl the interface to get the CRL + @param certOption + @param level the validation options to include + @param certInclude + @return true if a validation was generated, false otherwise + @throws Exception + + + Returns the issuing certificate for a child certificate. + @param cert the certificate for which we search the parent + @param certs an array with certificates that contains the parent + @return the partent certificate + + + Alternative addVerification. + I assume that inputs are deduplicated. + + @throws IOException + @throws GeneralSecurityException + + + + Merges the validation with any validation already in the document or creates + a new one. + @throws IOException + + + The Logger instance + + + Do we need to check all certificate, or only the signing certificate? + + + Verify root. + + + A reader object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + Creates a VerificationData object for a PdfReader + @param reader a reader for the document we want to verify. + @throws GeneralSecurityException + + + Sets an extra verifier. + @param verifier the verifier to set + + + Sets the certificate option. + @param option Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + @return a PdfPKCS7 object + @throws GeneralSecurityException + + + Verifies all the document-level timestamps and all the signatures in the document. + @throws IOException + @throws GeneralSecurityException + + + Verifies a document level timestamp. + @throws GeneralSecurityException + @throws IOException + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + @param chain + @throws GeneralSecurityException + + + Verifies certificates against a list of CRLs and OCSP responses. + @param signingCert + @param issuerCert + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate) + + + Switches to the previous revision. + @throws IOException + @throws GeneralSecurityException + + + Gets a list of X509CRL objects from a Document Security Store. + @return a list of CRLs + @throws GeneralSecurityException + @throws IOException + + + Gets OCSP responses from the Document Security Store. + @return a list of BasicOCSPResp objects + @throws IOException + @throws GeneralSecurityException + + + Class that signs your PDF. + @author Paulo Soares + + + The Logger instance. + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Processes a CRL list. + @param cert a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + @param crlList a list of CrlClient implementations + @return a collection of CRL bytes that can be embedded in a PDF. + + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. + @param sap the PdfSignatureAppearance + @param externalSignatureContainer the interface providing the actual signing + @param estimatedSize the reserved size for the signature + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs a PDF where space was already reserved. + @param reader the original PDF + @param fieldName the field to sign. It must be the last field + @param outs the output PDF + @param externalSignatureContainer the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + + + OcspClient implementation using BouncyCastle. + @author Paulo Soares + + + Create default implemention of {@code OcspClient}. + Note, if you use this constructor, OCSP response will not be verified. + + + Create {@code OcspClient} + @param verifier will be used for response verification. {@see OCSPVerifier}. + + + Gets OCSP response. If {@see OCSPVerifier} was set, the response will be checked. + + + Gets an encoded byte array with OCSP validation. The method should not throw an exception. + + @param checkCert to certificate to check + @param rootCert the parent certificate + @param url to get the verification. It it's null it will be taken + from the check cert or from other implementation specific source + @return a byte array with the validation or null if the validation could not be obtained + + + Generates an OCSP request using BouncyCastle. + @param issuerCert certificate of the issues + @param serialNumber serial number + @return an OCSP request + @throws OCSPException + @throws IOException + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + @param verifier the next verifier in the chain + @param ocsps a list of OCSP responses + + + Verifies if a a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single OCSP response + @param ocspResp the OCSP response + @param signCert the certificate that needs to be checked + @param issuerCert the certificate of CA + @param signDate sign date + @return {@code true}, in case successful check, otherwise false. + @throws GeneralSecurityException + @throws IOException + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + @param ocspResp the OCSP response + @param issuerCert the issuer certificate + @throws GeneralSecurityException + @throws IOException + + + Verifies if the response is valid. + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + NOTE. Use {@code isValidResponse()} instead. + @param ocspResp the response object + @param issuerCert the issuer certificate + @return true if the response can be trusted + + + Checks if an OCSP response is genuine + @param ocspResp the OCSP response + @param responderCert the responder certificate + @return true if the OCSP response verifies against the responder certificate + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking). + @param signCert the signing certificate + @param issuerCert the issuer certificate + @return an OCSP response + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + Assembles all the elements needed to create a signature, except for the data. + @param privKey the private key + @param certChain the certificate chain + @param interfaceDigest the interface digest + @param hashAlgorithm the hash algorithm + @param provider the provider or null for the default provider + @param hasRSAdata true if the sub-filter is adbe.pkcs7.sha1 + @throws InvalidKeyException on error + @throws NoSuchProviderException on error + @throws NoSuchAlgorithmException on error + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + @param contentsKey the /Contents key + @param certsKey the /Cert key + + + Use this constructor if you want to verify a signature. + @param contentsKey the /Contents key + @param filterSubtype the filtersubtype + @param provider the provider or null for the default provider + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Getter/setter for property sigName. + @return Value of property sigName. + + + Getter for property reason. + @return Value of property reason. + + + Getter for property location. + @return Value of property location. + + + Getter for property signDate. + @return Value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + @return the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + @return the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1" + + + Returns the name of the digest algorithm, e.g. "SHA256". + @return the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + @return the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + @param digest the digest. This is the actual signature + @param RSAdata the extra data that goes into the data tag in PKCS#7 + @param digestEncryptionAlgorithm the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + This method is used both for signing and verifying + @param buf the data buffer + @param off the offset in the data buffer + @param len the data length + @throws SignatureException on error + + + Gets the bytes for the PKCS#1 object. + @return a byte array + + + Gets the bytes for the PKCS7SignedData object. + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + @param secondDigest the digest in the authenticatedAttributes + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, OR a time-stamp-authority client + may be provided. + @param secondDigest the digest in the authenticatedAttributes + @param tsaClient TSAClient - null or an optional time stamp authority client + @return byte[] the bytes for the PKCS7SignedData object + @since 2.1.6 + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + @param timeStampToken byte[] - time stamp token, DER encoded signedData + @return ASN1EncodableVector + @throws IOException + + + + This method provides that encoding and the parameters must be + exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. + + @param secondDigest the content digest + @return the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + Verify the digest. + @throws SignatureException on error + @return true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + @throws java.security.NoSuchAlgorithmException on error + @return true if it checks false otherwise + @since 2.1.6 + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + @return the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + @return the X.509 certificates associated with this PKCS#7 object + @since 2.1.6 + + + Get the X.509 certificate actually used to sign the digest. + @return the X.509 certificate actually used to sign the digest + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + @return the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + @return the OCSP basic response or null + @since 2.1.6 + + + Checks if OCSP revocation refers to the document signing certificate. + @return true if it checks, false otherwise + @since 2.1.6 + + + Helper method that creates the BasicOCSPResp object. + @param seq + @throws IOException + + + True if there's a PAdES LTV time stamp. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + @return true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + @return the timestamp token or null + @since 2.1.6 + + + Gets the timestamp date + @return a date + @since 2.1.6 + + + Returns the filter subtype. + + + Returns the encryption algorithm + @return the name of an encryption algorithm + + + Implementation of the ExternalSignature interface that can be used + when you have a PrivateKey object. + @author Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Creates an ExternalSignature instance + @param pk a PrivateKey object + @param hashAlgorithm the hash algorithm (e.g. "SHA-1", "SHA-256",...) + @param provider the security provider (e.g. "BC") + + + Creates a message digest using the hash algorithm + and signs it using the encryption algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @see com.itextpdf.text.pdf.security.ExternalSignature#sign(byte[]) + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + The Logger instance + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + + @param verifier + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + + @param keyStore + a root store + + + Verifies a single certificate against a key store (if present). + + @param signCert + the certificate to verify + @param issuerCert + the issuer certificate + @param signDate + the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + A list of IDs that are used by the security classes + + + Class that contains a field lock action and + an array of the fields that are involved. + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance + + + Getter for the field lock action. + + + Getter for the fields involved in the lock action. + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + + Getter to find out if the signature is a certification signature. + @return true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + @return true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + @return true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + @return an Array with field names + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. +

+ Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. +

+ @since 2.1.6 +
+ + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + The default value for the hash algorithm + + + Estimate of the received time stamp token + + + The default value for the hash algorithm + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + @param tokSzEstimate int - estimated size of received time stamp token (DER encoded) + + + @param tsaInfo the tsaInfo to set + + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint data imprint to be time-stamped + @return encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + @return - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + @param info a TimeStampTokenInfo object + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + @param certificate the certificate that was successfully verified + @param verifierClass the class that was used for verification + @param message the reason why the certificate could be verified + + + A single String explaining which certificate was verified, how and why. + @see java.lang.Object#toString() + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + + + + The certificate with the private key + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + The certificate with the private key + The hash algorithm for the signature. As the Windows CAPI is used + to do the signature the only hash guaranteed to exist is SHA-1 + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + + Generates a list of numbers from a string. + @param ranges the comma separated ranges + @param maxNumber the maximum number in the range + @return a list with the numbers as Integer + + + Implements a shading pattern as a Color. + + @author Paulo Soares + + + + Creates a new instance of SimpleBookmark + + + Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. + (Contributed by Kazuya Ujihara) + @param indirect + 2004-06-13 + + + Gets a List with the bookmarks. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @return a List with the bookmarks or null if the + document doesn't have any + + + Gets a List with the bookmarks that are children of outline. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @param outline the outline dictionary to get bookmarks from + @param includeRoot indicates if to include outline parameter itself into returned list of bookmarks + @return a List with the bookmarks or null if the + document doesn't have any + + + Removes the bookmark entries for a number of page ranges. The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageRange the page ranges, always in pairs. + + + For the pages in range add the pageShift to the page number. + The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageShift the number to add to the pages in range + @param pageRange the page ranges, always in pairs. It can be null + to include all the pages + + + Exports the bookmarks to XML. Only of use if the generation is to be include in + some other XML document. + @param list the bookmarks + @param out the export destination. The writer is not closed + @param indent the indentation level. Pretty printing significant only. Use -1 for no indents. + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + + Exports the bookmarks to XML. + @param list the bookmarks + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the bookmarks from XML. + @param in the XML source. The stream is not closed + @throws IOException on error + @return the bookmarks + + + Import the bookmarks from XML. + @param in the XML source. The reader is not closed + @throws IOException on error + @return the bookmarks + + + + @author Paulo Soares + + + + Exports the bookmarks to XML. + @param names the names + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the names from XML. + @param inp the XML source. The stream is not closed + @throws IOException on error + @return the names + + + Import the names from XML. + @param inp the XML source. The reader is not closed + @throws IOException on error + @return the names + + + + @author psoares + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + @return an escaped byte array + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + + + Converts an array of unsigned 16bit numbers to an array of bytes. + The input values are presented as chars for convenience. + + @param chars the array of 16bit numbers that should be converted + @return the resulting byte array, twice as large as the input + + + Supports text, combo and list fields generating the correct appearances. + All the option in the Acrobat GUI are supported in an easy to use API. + @author Paulo Soares + + + Holds value of property defaultText. + + + Holds value of property choices. + + + Holds value of property choiceExports. + + + Holds value of property choiceSelection. + + + Represents the /TI value + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Obfuscates a password String. + Every character is replaced by an asterisk (*). + + @param text + @return String + @since 2.1.5 + + + Get the PdfAppearance of a text or combo field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Get the PdfAppearance of a list field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Gets a new text field. + @throws IOException on error + @throws DocumentException on error + @return a new text field + + + Gets a new combo field. + @throws IOException on error + @throws DocumentException on error + @return a new combo field + + + Gets a new list field. + @throws IOException on error + @throws DocumentException on error + @return a new list field + + + Sets the default text. It is only meaningful for text fields. + @param defaultText the default text + + + Sets the choices to be presented to the user in list/combo + fields. + @param choices the choices to be presented to the user + + + Sets the export values in list/combo fields. If this array + is null then the choice values will also be used + as the export values. + @param choiceExports the export values in list/combo fields + + + Sets the zero based index of the selected item. + @param choiceSelection the zero based index of the selected item + + + Sets the top visible choice for lists; + + @since 5.5.3 + @param visibleTopChoice index of the first visible item (zero-based array) + Returns the index of the top visible choice of a list. Default is -1. + @return the index of the top visible choice + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Holds value of property substitutionFonts. + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Holds value of property extensionFont. + + + Sets the extensionFont. This font will be searched before the + substitution fonts. It may be null. + @param extensionFont New value of property extensionFont. + + + Reads a Truetype font + + @author Paulo Soares + + + The code pages possible for a True Type font. + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + The file in use. + + + The file name. + + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + The index for the TTC font. It is an empty string for a + TTF file. + + + The style modifier + + + The content of table 'head'. + + + The content of table 'hhea'. + + + The content of table 'OS/2'. + + + The width of the glyphs. This is essentially the content of table + 'hmtx' normalized to 1000 units. + + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an int[2] where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 + units. + + + + + By James for unicode Ext.B + + + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + The font name. + This name is usually extracted from the table 'name' with + the 'Name ID' 6. + + + The font subfamily + This subFamily name is usually extracted from the table 'name' with + the 'Name ID' 2 or 'Name ID' 17. + + + The full name of the font 'Name ID' 1 or 'Name ID' 16 + + + All the names auf the Names-Table + + + The family name of the font + + + + true if all the glyphs have the same width. + + + The components of table 'head'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'hhea'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'OS/2'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + This constructor is present to allow extending the class. + + + Creates a new TrueType font. + @param ttFile the location of the font on file. The file must end in '.ttf' or + '.ttc' but can have modifiers after the name + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + @param name the full name + @return the simple file name + + + Reads the tables 'head', 'hhea', 'OS/2', 'post' and 'maxp' filling several variables. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the Postscript font name. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + @return the Postscript font name + + + Extracts the names of the font in all the languages available. + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Extracts all the names of the names-Table + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Reads the font data. + @param ttfAfm the font as a byte array, possibly null + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Reads a Unicode string from the font file. Each character is + represented by two bytes. + @param length the length of bytes to read. The string will have length/2 + characters + @return the string read + @throws IOException the font file could not be read + + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets a glyph width. + @param glyph the glyph to get the width of + @return the width of the glyph in normalized 1000 units + + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + Reads the kerning information from the 'kern' table. + @throws IOException the font file could not be read + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Gets the width from the font according to the unicode char c. + If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Generates the font descriptor for this font. + @return the PdfDictionary containing the font descriptor or null + @param subsetPrefix the subset prefix + @param fontStream the indirect reference to a PdfStream containing the font or null + @throws DocumentException if there is an error + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param subsetPrefix the subset prefx + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + @throws DocumentException if there is an error + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + @return a byte array + @since 2.1.3 + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Gets the postscript font name. + @return the postscript font name + + + Gets the code pages supported by the font. + @return the code pages supported by the font + + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Checks whether this font may be used with winansi encoding. + + @return true if the font can be correctly used with winansi encodings + + + Subsets a True Type font by removing the unneeded glyphs from + the font. + + @author Paulo Soares + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[3] where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + @param directoryOffset The offset from the start of the file to the table directory + @param fileName the file name of the font + @param glyphsUsed the glyphs used + @param includeCmap true if the table cmap is to be included in the generated font + + + Does the actual work of subsetting the font. + @throws IOException on error + @throws DocumentException on error + @return the subset font + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Represents a True Type font with Unicode encoding. All the character + in the font can be used directly by using the encoding Identity-H or + Identity-V. This is the only way to represent some character sets such + as Thai. + @author Paulo Soares + + + Creates a new TrueType font addressed by Unicode characters. The font + will always be embedded. + @param ttFile the location of the font on file. The file must end in '.ttf'. + The modifiers after the name are ignored. + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + @param metrics metrics[0] contains the glyph index and metrics[2] + contains the Unicode code + @throws DocumentException on error + @return the stream representing this CMap or null + + + Gets an hex string in the format "<HHHH>". + @param n the number + @return the hex string + + + Generates the CIDFontTyte2 dictionary. + @param fontDescriptor the indirect reference to the font descriptor + @param subsetPrefix the subset prefix + @param metrics the horizontal width metrics + @return a stream + + + Generates the font dictionary. + @param descendant the descendant dictionary + @param subsetPrefix the subset prefix + @param toUnicode the ToUnicode stream + @return the stream + + + The method used to sort the metrics array. + @param o1 the first element + @param o2 the second element + @return the comparisation + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + A forbidden operation. Will throw a null pointer exception. + @param text the text + @return always null + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Reads a Type1 font + + @author Paulo Soares + + + The PFB file if the input was made with a byte array. + + + The Postscript font name. + + + The full name of the font. + + + The family name of the font. + + + The weight of the font: normal, bold, etc. + + + The italic angle of the font, usually 0.0 or negative. + + + true if all the characters have the same + width. + + + The character set of the font. + + + The llx of the FontBox. + + + The lly of the FontBox. + + + The lurx of the FontBox. + + + The ury of the FontBox. + + + The underline position. + + + The underline thickness. + + + The font's encoding name. This encoding is 'StandardEncoding' or + 'AdobeStandardEncoding' for a font that can be totally encoded + according to the characters names. For all other names the + font is treated as symbolic. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + Represents the section CharMetrics in the AFM file. Each + value of this array contains a Object[4] with an + Integer, Integer, String and int[]. This is the code, width, name and char bbox. + The key is the name of the char and also an Integer with the char number. + + + Represents the section KernPairs in the AFM file. The key is + the name of the first character and the value is a Object[] + with 2 elements for each kern pair. Position 0 is the name of + the second character and position 1 is the kerning distance. This is + repeated for all the pairs. + + + The file in use. + + + true if this font is one of the 14 built in fonts. + + + Types of records in a PFB file. ASCII is 1 and BINARY is 2. + They have to appear in the PFB file in this sequence. + + + Creates a new Type1 font. + @param ttfAfm the AFM file if the input is made with a byte array + @param pfb the PFB file if the input is made with a byte array + @param afmFile the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + Gets the width from the font according to the name or, + if the name is null, meaning it is a symbolic font, + the char c. + @param c the char if the font is symbolic + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode characters. The characters + are converted to names and this names are used to find the kerning + pairs in the Hashtable KernPairs. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Reads the font metrics + @param rf the AFM file + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + If the embedded flag is false or if the font is + one of the 14 built in types, it returns null, + otherwise the font is read and output in a PdfStream object. + @return the PdfStream containing the font or null + @throws DocumentException if there is an error reading the font + + + Generates the font descriptor for this font or null if it is + one of the 14 built in fonts. + @param fontStream the indirect reference to a PdfStream containing the font or null + @return the PdfDictionary containing the font descriptor or null + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the postscript font name. + @return the postscript font name + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + A class to support Type3 fonts. + + + Creates a Type3 font. + @param writer the writer + @param chars an array of chars corresponding to the glyphs used (not used, prisent for compability only) + @param colorized if true the font may specify color, if false no color commands are allowed + and only images as masks can be used + + + + Defines a glyph. If the character was already defined it will return the same content + @param c the character to match this glyph. + @param wx the advance this character will have + @param llx the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param lly the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param urx the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param ury the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @return a content where the glyph can be defined + + + Always returns null, because you can't get the FontStream of a Type3 font. + @return null + @since 2.1.3 + + + The content where Type3 glyphs are written to. + + + Writes text vertically. Note that the naming is done according + to horizontal text although it referrs to vertical text. + A line with the alignment Element.LEFT_ALIGN will actually + be top aligned. + + + Signals that there are no more text available. + + + Signals that there is no more column. + + + The chunks that form the text. + + + The PdfContent where the text will be written to. + + + The column Element. Default is left Element. + + + Marks the chunks to be eliminated when the line is written. + + + The chunk created by the splitting. + + + The chunk created by the splitting. + + + The leading + + + The X coordinate. + + + The Y coordinate. + + + The maximum number of vertical lines. + + + The height of the text. + + + Creates new VerticalText + @param text the place where the text will be written to. Can + be a template. + + + Adds a Phrase to the current text array. + @param phrase the text + + + Adds a Chunk to the current text array. + @param chunk the text + + + Sets the layout. + @param startX the top right X line position + @param startY the top right Y line position + @param height the height of the lines + @param maxLines the maximum number of lines + @param leading the separation between the lines + + + Gets the separation between the vertical lines. + @return the vertical line separation + + + Creates a line from the chunk array. + @param width the width of the line + @return the line or null if no more chunks + + + Normalizes the list of chunks when the line is accepted. + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Sets the new text origin. + @param startX the X coordinate + @param startY the Y coordinate + + + Gets the X coordinate where the next line will be writen. This value will change + after each call to go(). + @return the X coordinate + + + Gets the Y coordinate where the next line will be writen. + @return the Y coordinate + + + Gets the maximum number of available lines. This value will change + after each call to go(). + @return Value of property maxLines. + + + Gets the height of the line + @return the height + + + Gets the Element. + @return the alignment + + + Processes XFA forms. + @author Paulo Soares + + + An empty constructor to build on. + + + Return the XFA Object, could be an array, could be a Stream. + Returns null f no XFA Object is present. + @param reader a PdfReader instance + @return the XFA object + @since 2.1.3 + + + A constructor from a PdfReader. It basically does everything + from finding the XFA stream to the XML parsing. + @param reader the reader + @throws java.io.IOException on error + @throws javax.xml.parsers.ParserConfigurationException on error + @throws org.xml.sax.SAXException on error + + + Extracts the nodes from the domDocument. + @since 2.1.5 + + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + Sets the XFA key from a byte array. The old XFA is erased. + @param form the data + @param reader the reader + @param writer the writer + @throws java.io.IOException on error + + + Sets the XFA key from the instance data. The old XFA is erased. + @param writer the writer + @throws java.io.IOException on error + + + Serializes a XML document to a byte array. + @param n the XML document + @throws java.io.IOException on error + @return the serialized XML document + + + Returns true if it is a XFA form. + @return true if it is a XFA form + + + Gets the top level DOM document. + @return the top level DOM document + + + Finds the complete field name contained in the "classic" forms from a partial + name. + @param name the complete or partial name + @param af the fields + @return the complete name or null if not found + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the complete name or null if not found + + + Finds the Node contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + @param n the Node + @return the text found or "" if no text was found + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param n the Node to add the text to + @param text the text to add + + + Sets the PdfReader to be used by this instance. + @param reader the PdfReader to be used by this instance + + + Checks if this XFA form was changed. + @return true if this XFA form was changed + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchie. + + + Gets the full name by traversing the hiearchie using only the + index 0. + @return the full name + + + Search the current node for a similar name. A similar name starts + with the same name but has a differnt index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + @param name the name to search + @return true if a similitude was found + + + Another stack implementation. The main use is to facilitate + the porting to other languages. + + + Looks at the object at the top of this stack without removing it from the stack. + @return the object at the top of this stack + + + Removes the object at the top of this stack and returns that object as the value of this function. + @return the object at the top of this stack + + + Pushes an item onto the top of this stack. + @param item the item to be pushed onto this stack + @return the item argument + + + Tests if this stack is empty. + @return true if and only if this stack contains no items; false otherwise + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchie. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + @param s the unescaped string + @return the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + @param s the escaped string + @return the unescaped string + + + Outputs the stack as the sequence of elements separated + by '.'. + @return the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + @param s the long name + @return the short name + + + Adds a SOM name to the search node chain. + @param unstack the SOM name + + + Adds a SOM name to the search node chain. + @param inverseSearch the start point + @param stack the stack with the separeted SOM parts + @param unstack the full name + + + Searchs the SOM hiearchie from the bottom. + @param parts the SOM parts + @return the full name or null if not found + + + Splits a SOM name in the individual parts. + @param name the full SOM name + @return the split name + + + Gets the order the names appear in the XML, depth first. + @return the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + @return the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchie. + @return the data to do a search from the bottom hierarchie + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + @param n the datasets node + + + Inserts a new Node that will match the short name. + @param n the datasets top Node + @param shortName the short name + @return the new Node of the inserted name + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + @param items the Collection + + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + @return the mapping from short names to long names + + + Processes the template section in the XFA form. + + + Creates a new instance from the datasets node. + @param n the template node + + + Gets the field type as described in the template section of the XFA. + @param s the exact template name + @return the field type or null if not found + + + true if it's a dynamic form; false + if it's a static form. + @return true if it's a dynamic form; false + if it's a static form + + + Gets the class that contains the template processing section of the XFA. + @return the class that contains the template processing section of the XFA + + + Gets the class that contains the datasets processing section of the XFA. + @return the class that contains the datasets processing section of the XFA + + + Gets the class that contains the "classic" fields processing. + @return the class that contains the "classic" fields processing + + + Gets the Node that corresponds to the datasets part. + @return the Node that corresponds to the datasets part + + + Replaces the data under datasets/data. + @since iText 5.0.0 + + + Helps to locate xml stream inside PDF document with Xfa form. + + + Gets Document to sign + + + Save document as single XML stream in AcroForm. + @param document signed document + @throws IOException + @throws DocumentException + + + Constructor for xpath expression for signing XfaForm + + + Possible xdp packages to sign + + + Empty constructor, no transform. + + + Construct for Xpath expression. Depends from selected xdp package. + @param xdpPackage + + + Get XPath expression + + + Reads a XFDF. + @author Leonard Rosenthol (leonardr@pdfsages.com) + + + Storage for field values if there's more than one value for a field. + @since 2.1.4 + + + Reads an XFDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an XFDF form. + @param xfdfIn the byte array with the form + @throws IOException on error + + + Reads an XFDF form. + @param is an InputStream to read the form + @throws IOException on error + @since 5.0.1 + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field value. + @param name the fully qualified field name + @return the field's value + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the field values for a list or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field values or null + @since 2.1.4 + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + Constructs XmlSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Holds value of property xades:SigningTime. + + + Holds value of property xades:Description. + + + Holds value of property xades:MimeType. + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + Gets the signature date. + @return the signature date + + + Sets the signature date. + @param signDate the signature date + + + Helps to locate xml stream + @return XmlLocator, cannot be null. + + + Constructor for xpath expression in case signing only part of XML document. + @return XpathConstructor, can be null + + + Close PdfStamper + @throws IOException + @throws DocumentException + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static GetDefaultFilterHandlers() method, then obtain the desired {@link IFilterHandler} + via a lookup. + @since 5.0.4 + + + The main interface for creating a new {@link IFilterHandler} + + + The default {@link IFilterHandler}s used by iText + + + @return the default {@link IFilterHandler}s used by iText + + + Creates a {@link MemoryLimitsAwareOutputStream} which will be used for decompression of the passed pdf stream. + + @param streamDictionary the pdf stream which is going to be decompressed. + @return the {@link ByteArrayOutputStream} which will be used for decompression of the passed pdf stream + + + Handles FLATEDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles LZWDECODE filter + + + Handles CCITTFAXDECODE filter + + + A filter that doesn't modify the stream at all + + + Handles RUNLENGTHDECODE filter + + + A PdfArray object consisting of nothing but PdfNumber objects + @since 5.1.0 + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers float values + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers a List containing PdfNumber objects + + + Signals that a table will continue in the next page. + + @since 5.0.6 + + + This method is called to indicate that table is being split. It's called + before the tableLayout method and before the table is drawn. + + @param table the PdfPTable in use + + + Wrapper class for PdfCopy and PdfSmartCopy. + Allows you to concatenate existing PDF documents with much less code. + + + The Document object for PdfCopy. + + + The actual PdfWriter + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + @param smart do we want PdfCopy to detect redundant content? + + + Adds the pages from an existing PDF document. + @param reader the reader for the existing PDF document + @return the number of pages that were added + @throws DocumentException + @throws IOException + + + Gets the PdfCopy instance so that you can add bookmarks or change preferences before you close PdfConcatenate. + + + Opens the document (if it isn't open already). + Opening the document is done implicitly. + + + We've finished writing the concatenated document. + + + The spacing before the table. + + + The spacing after the table. + + + Defines if the div should be kept on one page if possible + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual height the div would require to layout it's content + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual width the div would require to layout it's content + + + Image will be scaled to fit in the div occupied area. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Gets the type of the text element. + + @return a type + + + @see com.itextpdf.text.Element#isContent() + @since iText 2.0.8 + + + @see com.itextpdf.text.Element#isNestable() + @since iText 2.0.8 + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Serial version UID + + + Creates a new instance of PdfIsoConformanceException. + + + Creates a new instance of PdfIsoConformanceException. + @param s + + + A signature field lock dictionary. + + + Enumerates the different actions of a signature lock. + Indicates the set of fields that should be locked: + all the fields in the document, + all the fields specified in the /Fields array + all the fields except those specified in the /Fields array + + + Enumerates the different levels of permissions. + + + Creates a signature lock valid for all fields in the document. + + + Creates a signature lock for all fields in the document, + setting specific permissions. + + + Creates a signature lock for specific fields in the document. + + + Creates a signature lock for specific fields in the document. + + + Add kid to structureTreeRoot from structTreeRoot + + + + An Anchor can be a reference or a destination of a reference. + + + An Anchor is a special kind of . + It is constructed in the same way. + + + + + + + This is the name of the Anchor. + + + + + This is the reference of the Anchor. + + + + + Constructs an Anchor without specifying a leading. + + + Has nine overloads. + + + + + Constructs an Anchor with a certain leading. + + the leading + + + + Constructs an Anchor with a certain Chunk. + + a Chunk + + + + Constructs an Anchor with a certain string. + + a string + + + + Constructs an Anchor with a certain string + and a certain Font. + + a string + a Font + + + + Constructs an Anchor with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs an Anchor with a certain leading + and a certain string. + + the leading + a string + + + + Constructs an Anchor with a certain leading, + a certain string and a certain Font. + + the leading + a string + a Font + + + Constructs an Anchor with a certain Phrase. + + @param phrase a Phrase + + + + Processes the element by adding it (or the different parts) to an + + + an IElementListener + true if the element was processed successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + Applies the properties of the Anchor to a Chunk. + @param chunk the Chunk (part of the Anchor) + @param notGotoOK if true, this chunk will determine the local destination + @param localDestination true if the chunk is a local goto and the reference a local destination + @return the value of notGotoOK or false, if a previous Chunk was used to determine the local destination + + + + Gets the type of the text element. + + a type + + + + Name of this Anchor. + + + + + reference of this Anchor. + + + + + reference of this Anchor. + + an Uri + + + + An Annotation is a little note that can be added to a page + on a document. + + + + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is the type of annotation. + + + This is the title of the Annotation. + + + This is the lower left x-value + + + This is the lower left y-value + + + This is the upper right x-value + + + This is the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + the destination in this file + + + + Creates a Screen anotation to embed media clips + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + path to the media clip file + mime type of the media + if true play on display of the page + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + a page number in this file + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + a named destination in this file + + Has nine overloads. + + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external application + parameters to pass to this application + the operation to pass to this application + the default directory to run this application in + + + + Gets the type of the text element + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was process successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + + Sets the dimensions of this annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Returns the lower left x-value. + + a value + + + + Returns the lower left y-value. + + a value + + + + Returns the uppper right x-value. + + a value + + + + Returns the uppper right y-value. + + a value + + + + Returns the lower left x-value. + + the default value + a value + + + + Returns the lower left y-value. + + the default value + a value + + + + Returns the upper right x-value. + + the default value + a value + + + + Returns the upper right y-value. + + the default value + a value + + + + Returns the type of this Annotation. + + a type + + + + Returns the title of this Annotation. + + a name + + + + Gets the content of this Annotation. + + a reference + + + + Gets the content of this Annotation. + + a reference + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Signals an attempt to create an Element that hasn't got the right form. + + + + + + + Base class for Color, serves as wrapper class for + to allow extension. + + + + Construct a new BaseColor. + @param red the value for the red gamma + @param green the value for the green gamma + @param blue the value for the blue gamma + @param alpha the value for the alpha gamma + + + @param red + @param green + @param blue + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + @param alpha + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + + + Construct a BaseColor by setting the combined value. + @param argb + + + Construct a BaseColor by System.Drawing.Color. + @param color + + + @return the combined color value + + + + @return the value for red + + + + @return the value for green + + + + @return the value for blue + + + + @return the value for the alpha channel + + + Make this BaseColor brighter. Factor used is 0.7. + @return the new BaseColor + + + Make this color darker. Factor used is 0.7 + @return the new BaseColor + + + + A Chapter is a special Section. + + + A chapter number has to be created using a Paragraph as title + and an int as chapter number. The chapter number is shown be + default. If you don't want to see the chapter number, you have to set the + numberdepth to 0. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + chapter2.SetNumberDepth(0); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new BaseColor(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + + + + + Constructs a new Chapter. + @param number the Chapter number + + + + Constructs a new Chapter. + + the Chapter title (as a Paragraph) + the Chapter number + + Has three overloads. + + + + + Constructs a new Chapter. + + the Chapter title (as a string) + the Chapter number + + Has three overloads. + + + + + Gets the type of the text element. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Chapter with auto numbering. + + @author Michael Niedermair + + + Is the chapter number already set? + @since 2.1.4 + + + Create a new object. + + @param para the Chapter title (as a Paragraph) + + + Create a new objet. + + @param title the Chapter title (as a String) + + + Create a new section for this chapter and ad it. + + @param title the Section title (as a String) + @return Returns the new section. + + + Create a new section for this chapter and add it. + + @param title the Section title (as a Paragraph) + @return Returns the new section. + + + Changes the Chapter number. + @param number the new chapter number + @since 2.1.4 + + + + This is the smallest significant part of text that can be added to a document. + + + Most elements can be divided in one or more Chunks. + A chunk is a string with a certain Font. + all other layoutparameters should be defined in the object to which + this chunk of text is added. + + + + Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, Font.ITALIC, new BaseColor(255, 0, 0))); + document.Add(chunk); + + + + + The character stand in for an image or a separator. + + + This is a Chunk containing a newline. + + + This is a Chunk containing a newpage. + + + This is the content of this chunk of text. + + + This is the Font of this chunk of text. + + + Contains some of the attributes for this Chunk. + + + + Empty constructor. + + + Has six overloads. + + + + A Chunk copy constructor. + @param ck the Chunk to be copied + + + + Constructs a chunk of text with a certain content and a certain Font. + + the content + the font + + + + Constructs a chunk of text with a certain content, without specifying a Font. + + the content + + + Constructs a chunk of text with a char and a certain Font. + + @param c the content + @param font the font + + + Constructs a chunk of text with a char, without specifying a Font. + + @param c the content + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + + + Key for drawInterface of the Separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @param vertical true if this is a vertical separator + @since 2.1.2 + + + Key for drawInterface of the tab. + @since 2.1.2 + + + Key for tab stops of the tab. + @since 5.4.1 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @since 2.1.2 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @param newline if true, a newline will be added if the tabPosition has already been reached. + @since 2.1.2 + + + Creates a tab Chunk. + + @param tabInterval an interval that will be used if tab stops are omitted. + @param isWhitespace if true, the current tab is treated as white space. + @since 5.4.1 + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + true if the leading has to be adapted to the image + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + appends some text to this Chunk. + + a string + a StringBuilder + + + + Get/set the font of this Chunk. + + a Font + + + + Returns the content of this Chunk. + + a string + + + + Checks is this Chunk is empty. + + false if the Chunk contains other characters than space. + + + Gets the width of the Chunk in points. + @return a width in points + + + + Checks the attributes of this Chunk. + + false if there aren't any. + + + Checks the accessible attributes of this Chunk. + + @return false if there aren't any. + + + + Sets/Gets the attributes for this Chunk. + + + It may be null. + + a Hashtable + + + + Sets an arbitrary attribute. + + the key for the attribute + the value of the attribute + this Chunk + + + Key for text horizontal scaling. + + + Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f + shrinks the text to half it's width. + @param scale the horizontal scaling factor + @return this Chunk + + + Gets the horizontal scaling. + @return a percentage in float + + + Key for underline. + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param thickness the absolute thickness of the line + @param yPosition the absolute y position relative to the baseline + @return this Chunk + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param color the color of the line or null to follow + the text color + @param thickness the absolute thickness of the line + @param thicknessMul the thickness multiplication factor with the font size + @param yPosition the absolute y position relative to the baseline + @param yPositionMul the position multiplication factor with the font size + @param cap the end line cap. Allowed values are + PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and + PdfContentByte.LINE_CAP_PROJECTING_SQUARE + @return this Chunk + + + Key for sub/basescript. + + + + Sets the text displacement relative to the baseline. Positive values rise the text, + negative values lower the text. + + + It can be used to implement sub/basescript. + + the displacement in points + this Chunk + + + Key for text skewing. + + + Skews the text to simulate italic and other effects. + Try alpha=0 and beta=12. + @param alpha the first angle in degrees + @param beta the second angle in degrees + @return this Chunk + + + Key for background. + + + + Sets the color of the background Chunk. + + the color of the background + this Chunk + + + Sets the color and the size of the background Chunk. + @param color the color of the background + @param extraLeft increase the size of the rectangle in the left + @param extraBottom increase the size of the rectangle in the bottom + @param extraRight increase the size of the rectangle in the right + @param extraTop increase the size of the rectangle in the top + @return this Chunk + + + Key for text rendering mode. + + + Sets the text rendering mode. It can outline text, simulate bold and make + text invisible. + @param mode the text rendering mode. It can be PdfContentByte.TEXT_RENDER_MODE_FILL, + PdfContentByte.TEXT_RENDER_MODE_STROKE, PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE + and PdfContentByte.TEXT_RENDER_MODE_INVISIBLE. + @param strokeWidth the stroke line width for the modes PdfContentByte.TEXT_RENDER_MODE_STROKE and + PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE. + @param strokeColor the stroke color or null to follow the text color + @return this Chunk + + + Key for split character. + + + + Sets the split characters. + + the SplitCharacter interface + this Chunk + + + Key for hyphenation. + + + + sets the hyphenation engine to this Chunk. + + the hyphenation engine + this Chunk + + + Key for remote goto. + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the name of the destination to go to + this Chunk + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the page of the destination to go to. First page is 1 + this Chunk + + + Key for local goto. + + + + Sets a local goto for this Chunk. + + + There must be a local destination matching the name. + + the name of the destination to go to + this Chunk + + + Key for local destination. + + + + Sets a local destination for this Chunk. + + the name for this destination + this Chunk + + + Key for generic tag. + + + + Sets the generic tag Chunk. + + + The text for this tag can be retrieved with PdfPageEvent. + + the text for the tag + this Chunk + + + Key for line-height (alternative for leading in Phrase). + + + Sets a line height tag. + + @return this Chunk + + + Key for image. + + + + Returns the image. + + an Image + + + Key for Action. + + + + Sets an action for this Chunk. + + the action + this Chunk + + + + Sets an anchor for this Chunk. + + the Uri to link to + this Chunk + + + + Sets an anchor for this Chunk. + + the url to link to + this Chunk + + + Key for newpage. + + + + Sets a new page tag. + + this Chunk + + + Key for annotation. + + + + Sets a generic annotation to this Chunk. + + the annotation + this Chunk + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Returns the hyphenation (if present). + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Key for color. + + + Key for encoding. + + + Key for character spacing. + + + Sets the character spacing. + + @param charSpace the character spacing value + @return this Chunk + + + Gets the character spacing. + + @return a value in float + + + Key for word spacing. + + + Sets the word spacing. + + @param wordSpace the word spacing value + @return this Chunk + + + Gets the word spacing. + + @return a value in float + + + Sets the textual expansion of the abbreviation or acronym. + It is highly recommend to set textuual expansion when generating PDF/UA documents. + @param value + + + + A generic Document class. + + + All kinds of Text-elements can be added to a HTMLDocument. + The Document signals all the listeners when an element + has been added.

+

    +
  1. Once a document is created you can add some meta information. +
  2. You can also set the headers/footers. +
  3. You have to open the document before you can write content. +
  4. You can only write content (no more meta-formation!) once a document is opened. +
  5. When you change the header/footer on a certain page, this will be effective starting on the next page. +
  6. Ater closing the document, every listener (as well as its OutputStream) is closed too. +
+
+ + + // creation of the document with a certain size and certain margins + Document document = new Document(PageSize.A4, 50, 50, 50, 50); + try { + // creation of the different writers + HtmlWriter.GetInstance(document, System.out); + PdfWriter.GetInstance(document, new FileOutputStream("text.pdf")); + // we add some meta information to the document + document.AddAuthor("Bruno Lowagie"); + document.AddSubject("This is the result of a Test."); + + // we define a header and a footer + HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false); + HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase(".")); + footer.SetAlignment(Element.ALIGN_CENTER); + document.SetHeader(header); + document.SetFooter(footer); + // we open the document for writing + document.Open(); + document.Add(new Paragraph("Hello world")); + } + catch (DocumentException de) { + Console.Error.WriteLine(de.Message); + } + document.Close(); + + +
+ + Allows the pdf documents to be produced without compression for debugging purposes. + + + Scales the WMF font size. The default value is 0.86. + + + The IDocListener. + + + Is the document open or not? + + + Has the document already been closed? + + + The size of the page. + + + margin in x direction starting from the left + + + margin in x direction starting from the right + + + margin in y direction starting from the top + + + margin in y direction starting from the bottom + + + mirroring of the top/bottom margins + @since 2.1.6 + + + Content of JavaScript onLoad function + + + Content of JavaScript onUnLoad function + + + Style class in HTML body tag + + + Current pagenumber + + + This is a chapter number in case ChapterAutoNumber is used. + + + + Constructs a new Document-object. + + + Has three overloads. + + + + + Constructs a new Document-object. + + the pageSize + + + + Constructs a new Document-object. + + the pageSize + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Adds a IDocListener to the Document. + + the new IDocListener + + + + Removes a IDocListener from the Document. + + the IDocListener that has to be removed. + + + + Adds an Element to the Document. + + the Element to add + true if the element was added, false if not + + + + Opens the document. + + + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Opens the document. + + + Version for languages that are not case-dependant. + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Sets the pagesize. + + the new pagesize + a bool + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + + + Sets the page number. + + an int + + + + Returns the current page number. + + an int + + + + Closes the document. + + + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Closes the document. + + + Version for languages that are not case-dependant. + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Adds a user defined header to the document. + + the name of the header + the content of the header + true if successful, false otherwise + + + + Adds the title to a Document. + + the title + true if successful, false otherwise + + + + Adds the subject to a Document. + + the subject + true if successful, false otherwise + + + + Adds the keywords to a Document. + + keywords to add + true if successful, false otherwise + + + + Adds the author to a Document. + + the name of the author + true if successful, false otherwise + + + + Adds the creator to a Document. + + the name of the creator + true if successful, false otherwise + + + + Adds the producer to a Document. + + true if successful, false otherwise + + + Adds a language to th document. Required for PDF/UA compatible documents. + @param language + @return true if successfull, false otherwise + + + + Adds the current date and time to a Document. + + true if successful, false otherwise + + + + Returns the left margin. + + the left margin + + + + Return the right margin. + + the right margin + + + + Returns the top margin. + + the top margin + + + + Returns the bottom margin. + + the bottom margin + + + + Returns the lower left x-coordinate. + + the lower left x-coordinate + + + + Returns the upper right x-coordinate. + + the upper right x-coordinate. + + + + Returns the upper right y-coordinate. + + the upper right y-coordinate. + + + + Returns the lower left y-coordinate. + + the lower left y-coordinate. + + + + Returns the lower left x-coordinate considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Gets the pagesize. + + the page size + + + + Checks if the document is open. + + true if the document is open + + + + Gets the JavaScript onLoad command. + + the JavaScript onLoad command. + + + + Gets the JavaScript onUnLoad command. + + the JavaScript onUnLoad command + + + + Gets the style class of the HTML body tag + + the style class of the HTML body tag + + + + + Gets the margin mirroring flag. + + @return the margin mirroring flag + + + + Signals that an error has occurred in a Document. + + + + + + + + + Constructs a new DocumentException + + + Has two overloads. + + + + + Construct a new DocumentException + + error message + + + + Constructs a DocumentException with a message and a Exception. + + a message describing the exception + an exception that has to be turned into a DocumentException + + + + An abstract Writer class for documents. + + + DocWriter is the abstract class of several writers such + as PdfWriter and HtmlWriter. + A DocWriter can be added as a DocListener + to a certain Document by getting an instance (see method + GetInstance() in the specific writer-classes). + Every Element added to the original Document + will be written to the stream of the listening + DocWriter. + + + + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + The pageSize. + + + This is the document that has to be written. + + + The stream of this writer. + + + Is the writer open for writing? + + + Do we have to pause all writing actions? + + + Closes the stream on document close + + + + Constructs a DocWriter. + + The Document that has to be written + The Stream the writer has to write to. + + + + Signals that an Element was added to the Document. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class. + + + false + + + + Signals that the Document was opened. + + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + + This does nothing. Has to be overridden if needed. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + + This does nothing. Has to be overridden if needed. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Sets the page number. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + + + Converts a string into a Byte array + according to the ISO-8859-1 codepage. + + the text to be converted + the conversion result + + + + Let the writer know that all writing has to be paused. + + + + Checks if writing is paused. + + @return true if writing temporarely has to be paused, false otherwise. + + + + Let the writer know that writing may be resumed. + + + + + Flushes the Stream. + + + + + Writes a string to the stream. + + the string to write + + + + Writes a number of tabs. + + the number of tabs to add + + + + Writes a key-value pair to the stream. + + the name of an attribute + the value of an attribute + + + + Writes a starttag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + + + + Writes the markup attributes of the specified MarkupAttributes + object to the stream. + + the MarkupAttributes to write. + + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.5 + + + This is a possible type of Element. + @since 5.3.0 + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.2 + + + This is an element thats not an element. + @see WritableDirectElement + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the center + and extra whitespace should be placed equally on + the left and right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the right + indent and extra whitespace should be placed on + the left. + + + + + A possible value for paragraph Element. This + specifies that extra whitespace should be spread + out through the rows of the paragraph with the + text lined up with the left and right indent + except on the last line which should be aligned + to the left. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + Does the same as ALIGN_JUSTIFIED but the last line is also spread out. + + + + + Pure two-dimensional encoding (Group 4) + + + + + Pure one-dimensional encoding (Group 3, 1-D) + + + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows + parameter. The use of this flag will set the key /EndOfBlock to false. + + + + Localizes error messages. The messages are located in the package + com.lowagie.text.error_messages in the form language_country.lng. + The internal file encoding is UTF-8 without any escape chars, it's not a + normal property file. See en.lng for more information on the internal format. + @author Paulo Soares (psoares@glintt.com) + + + Get a message without parameters. + @param key the key to the message + @return the message + + + Get a message with parameters. The parameters will replace the strings + "{1}", "{2}", ..., "{n}" found in the message. + @param key the key to the message + @param p the variable parameter + @return the message + + + Sets the language to be used globally for the error messages. The language + is a two letter lowercase country designation like "en" or "pt". The country + is an optional two letter uppercase code like "US" or "PT". + @param language the language + @param country the country + @return true if the language was found, false otherwise + @throws IOException on error + + + Sets the error messages directly from a Reader. + @param r the Reader + @throws IOException on error + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 It was written for iText 2.0.8, but moved to another package + + + Creates an exception saying the user password was incorrect. + + + Typed exception used when creating PDF syntax that isn't valid. + @since 2.1.6 + + + Creates an exception saying the PDF syntax isn't correct. + @param message some extra info about the exception + + + RuntimeException to indicate that the provided Image is invalid/corrupted. + Should only be thrown/not caught when ignoring invalid images. + @since 5.4.2 + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 + + + Creates an instance of with a message and no cause + @param message the reason why the document isn't a PDF document according to iText. + + + Creates an exception with a message and a cause + @param message the reason why the document isn't a PDF document according to iText. + @param cause the cause of the exception, if any + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document according to iText, + but it's different from the InvalidPdfException in the sense that it may + be an iText limitation (most of the times it isn't but you might have + bumped into something that has been added to the PDF specs, but that isn't + supported in iText yet). + @since 2.1.5 + + + Creates an instance of an UnsupportedPdfException. + @param message the reason why the document isn't a PDF document according to iText. + + + This class can produce String combinations representing a number built with + Greek letters (from alpha to omega, then alpha alpha, alpha beta, alpha gamma). + We are aware of the fact that the original Greek numbering is different; + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a upper case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a Greek letter combination. + @param index the original number + @return the letter combination + + + This class can produce String combinations representing a number. + "a" to "z" represent 1 to 26, "AA" represents 27, "AB" represents 28, + and so on; "ZZ" is followed by "AAA". + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'A' to 'Z'; + 1 = A, 2 = B, ..., 26 = Z, 27 = AA, 28 = AB,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z' + (a = 1, b = 2, ..., z = 26, aa = 27, ab = 28,...). + + + This class can produce String combinations representing a roman number. + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + @param digit the roman digit + @param value the value + @param pre can it be used as a prefix + + + Array with Roman digits. + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into an upper case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a roman number. + @param index the original number + @return the roman number (lower case) + + + + Contains all the specifications of a font: fontfamily, size, style and color. + + + + Paragraph p = new Paragraph("This is a paragraph", + new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + the value of an undefined attribute. + + + the value of the default size. + + + the value of the fontfamily. + + + the value of the fontsize. + + + the value of the style. + + + the value of the color. + + + the external font + + + Copy constructor of a Font + @param other the font that has to be copied + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + + + + Constructs a Font. + + the external font + the size of this font + + + + Constructs a Font. + + the external font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + + + + Constructs a Font. + + the family to which this font belongs + + + + Constructs a Font. + + + Has nine overloads. + + + + + Compares this Font with another + + the other Font + a value + + + + Gets the family of this font. + + the value of the family + + + + Gets the familyname as a string. + + the familyname + + + + Sets the family using a String ("Courier", + "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats"). + + A String representing a certain font-family. + + + + Translates a string-value of a certain family + into the index that is used for this family in this class. + + A string representing a certain font-family + the corresponding index + + + + Get/set the size of this font. + + the size of this font + + + Gets the size that can be used with the calculated BaseFont. + @return the size that can be used with the calculated BaseFont + + + Gets the leading that can be used with this font. + + @param multipliedLeading + a certain multipliedLeading + @return the height of a line + + + + Gets the style of this font. + + the style of this font + + + Gets the style that can be used with the calculated BaseFont. + @return the style that can be used with the calculated BaseFont + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is underlined. + + a boolean + + + + checks if the style of this font is STRIKETHRU. + + a boolean + + + + Sets the style using a String containing one of + more of the following values: normal, bold, italic, underline, strike. + + A String representing a certain style. + + + Sets the style. + @param style the style. + + + + Translates a string-value of a certain style + into the index value is used for this style in this class. + + a string + the corresponding value + + + + Get/set the color of this font. + + the color of this font + + + + Sets the color. + + the red-value of the new color + the green-value of the new color + the blue-value of the new color + + + + Gets the BaseFont inside this object. + + the BaseFont + + + Gets the BaseFont this class represents. + For the built-in fonts a BaseFont is calculated. + @param specialEncoding true to use the special encoding for Symbol and ZapfDingbats, + false to always use Cp1252 + @return the BaseFont this class represents + + + + Checks if the properties of this font are undefined or null. +

+ If so, the standard should be used. +

+ a boolean +
+ + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this static class first and then create fonts in your code using one of the static getFont-method + without having to enter a path as parameter. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks whether the given font is contained within the object + + the name of the font + true if font is contained within the object + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + + This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file. + + + This is a map of fontfamilies. + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in windows + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + A special-version of LIST whitch use greek-letters. + + @see com.lowagie.text.List + + + Initialization + + @param symbolIndent indent + + + Initialisierung + + @param symbolIndent indent + + + Initialisierung + @param greeklower greek-char in lowercase + @param symbolIndent indent + + + change the font to SYMBOL + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + This is an Element that contains + some userdefined meta information about the document. + + + + Header header = new Header("inspired by", "William Shakespeare"); + + + + + This is the content of this chunk of text. + + + + Constructs a Header. + + the name of the meta-information + the content + + + + Returns the name of the meta information. + + a string + + + + List with the HTML translation of all the characters. + + + Set containing tags that trigger a new line. + @since iText 5.0.6 + + + Converts a String to the HTML-format of this String. + + @param string The String to convert + @return a String + + + Converts a BaseColor into a HTML representation of this BaseColor. + + @param color the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + Translates the alignment value. + + @param alignment the alignment value + @return the translated value + + + Returns true if the tag causes a new line like p, br etc. + @since iText 5.0.6 + + + Static final values of supported HTML tags and attributes. + @since 5.0.6 + @deprecated since 5.5.2 + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + The possible value of an alignment attribute. + @since 5.0.6 + + + The possible value of an alignment attribute. + @since 5.0.6 + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + This is used for inline css style information + + + Attribute for specifying externally defined CSS class. + @since 5.0.6 + + + the CSS tag for text color + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + the CSS tag for text decorations + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + Stores the hierarchy of tags along with the attributes of each tag. + @since 5.0.6 renamed from ChainedProperties + @deprecated since 5.5.2 + + + Class that stores the info about one tag in the chain. + + + A possible tag + + + The styles corresponding with the tag + + + Constructs a chained property. + @param tag an XML/HTML tag + @param attrs the tag's attributes + + + A list of chained properties representing the tag hierarchy. + + + Creates a new instance of ChainedProperties + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns a value as soon as a match + is found or null if the key can't be found. + @param key the key of the property + @return the value of the property + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns true as soon as a match is + found or false if the key can't be found. + @param key the key of the property + @return true if the key is found + + + Adds a tag and its corresponding properties to the chain. + @param tag the tags that needs to be added to the chain + @param props the tag's attributes + + + If the properties contain a font size, the size may need to + be adjusted based on font sizes higher in the hierarchy. + @param attrs the attributes that may have to be updated + @since 5.0.6 (renamed) + + + Old iText class that allows you to convert HTML to PDF. + We've completely rewritten HTML to PDF conversion and we made it a separate project named XML Worker. + @deprecated since 5.5.2; please switch to XML Worker instead (this is a separate project) + + + DocListener that will listen to the Elements + produced by parsing the HTML. + This can be a com.lowagie.text.Document adding + the elements to a Document directly, or an + HTMLWorker instance strong the objects in a List + + + The map with all the supported tags. + @since 5.0.6 + + + The object defining all the styles. + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + @param tags A map containing the supported tags + @param style A StyleSheet + @since 5.0.6 + + + Sets the map with supported tags. + @param tags + @since 5.0.6 + + + Setter for the StyleSheet + @param style the StyleSheet + + + Parses content read from a java.io.Reader object. + @param reader the content + @throws IOException + + + Stack with the Elements that already have been processed. + @since iText 5.0.6 (private => protected) + + + Keeps the content of the current paragraph + @since iText 5.0.6 (private => protected) + + + The current hierarchy chain of tags. + @since 5.0.6 + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Dictionary) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + Adds a new line to the currentParagraph. + @since 5.0.6 + + + Flushes the current paragraph, indicating that we're starting + a new block. + If the stack is empty, the paragraph is added to the document. + Otherwise the Paragraph is added to the stack. + @since 5.0.6 + + + Stacks the current paragraph, indicating that we're starting + a new span. + @since 5.0.6 + + + Pushes an element to the Stack. + @param element + @since 5.0.6 + + + Updates the chain with a new tag and new attributes. + @param tag the new tag + @param attrs the corresponding attributes + @since 5.0.6 + + + Updates the chain by removing a tag. + @param tag the new tag + @since 5.0.6 + + + Key used to store the image provider in the providers map. + @since 5.0.6 + + + Key used to store the image processor in the providers map. + @since 5.0.6 + + + Key used to store the image store in the providers map. + @since 5.0.6 + + + Key used to store the image baseurl provider in the providers map. + @since 5.0.6 + + + Key used to store the font provider in the providers map. + @since 5.0.6 + + + Key used to store the link provider in the providers map. + @since 5.0.6 + + + IDictionary containing providers such as a FontProvider or ImageProvider. + @since 5.0.6 (renamed from interfaceProps) + + + Setter for the providers. + If a FontProvider is added, the ElementFactory is updated. + @param providers a IDictionary with different providers + @since 5.0.6 + + + Factory that is able to create iText Element objects. + @since 5.0.6 + + + Creates a Chunk using the factory. + @param content the content of the chunk + @return a Chunk with content + @since 5.0.6 + + + Creates a Paragraph using the factory. + @return a Paragraph without any content + @since 5.0.6 + + + Creates a List object. + @param tag should be "ol" or "ul" + @return a List object + @since 5.0.6 + + + Creates a ListItem object. + @return a ListItem object + @since 5.0.6 + + + Creates a LineSeparator object. + @param attrs properties of the LineSeparator + @return a LineSeparator object + @since 5.0.6 + + + Creates an Image object. + @param attrs properties of the Image + @return an Image object (or null if the Image couldn't be found) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Creates a Cell. + @param tag the tag + @return a CellWrapper object + @since 5.0.6 + + + Adds a link to the current paragraph. + @since 5.0.6 + + + Fetches the List from the Stack and adds it to + the TextElementArray on top of the Stack, + or to the Document if the Stack is empty. + @throws DocumentException + @since 5.0.6 + + + Looks for the List object on the Stack, + and adds the ListItem to the List. + @throws DocumentException + @since 5.0.6 + + + Processes an Image. + @param img + @param attrs + @throws DocumentException + @since 5.0.6 + + + Processes the Table. + @throws DocumentException + @since 5.0.6 + + + Gets the TableWrapper from the Stack and adds a new row. + @since 5.0.6 + + + Stack to keep track of table tags. + + + Boolean to keep track of TR tags. + + + Boolean to keep track of TD and TH tags + + + Boolean to keep track of LI tags + + + Boolean to keep track of PRE tags + @since 5.0.6 renamed from isPRE + + + Indicates if text needs to be skipped. + @since iText 5.0.6 (private => protected) + + + Pushes the values of pendingTR and pendingTD + to a state stack. + @since 5.0.6 + + + Pops the values of pendingTR and pendingTD + from a state stack. + @since 5.0.6 + + + @return the pendingTR + @since 5.0.6 + + + @param pendingTR the pendingTR to set + @since 5.0.6 + + + @return the pendingTD + @since 5.0.6 + + + @param pendingTD the pendingTD to set + @since 5.0.6 + + + @return the pendingLI + @since 5.0.6 + + + @param pendingLI the pendingLI to set + @since 5.0.6 + + + @return the insidePRE + @since 5.0.6 + + + @param insidePRE the insidePRE to set + @since 5.0.6 + + + @return the skipText + @since 5.0.6 + + + @param skipText the skipText to set + @since 5.0.6 + + + The resulting list of elements. + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param tags a map containing supported tags and their processors + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + @since 5.0.6 + + + @see com.itextpdf.text.ElementListener#add(com.itextpdf.text.Element) + + + @see com.itextpdf.text.DocListener#close() + + + @see com.itextpdf.text.DocListener#newPage() + + + @see com.itextpdf.text.DocListener#open() + + + @see com.itextpdf.text.DocListener#resetPageCount() + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + @since 2.1.6 + + + @see com.itextpdf.text.DocListener#setMargins(float, float, float, float) + + + @see com.itextpdf.text.DocListener#setPageCount(int) + + + @see com.itextpdf.text.DocListener#setPageSize(com.itextpdf.text.Rectangle) + + + Sets the providers. + @deprecated use SetProviders() instead + + + Gets the providers + @deprecated use GetProviders() instead + + + @deprecated since 5.5.2 + + + Old class to define styles for HTMLWorker. + We've completely rewritten HTML to PDF functionality; see project XML Worker. + XML Worker is able to parse CSS files and "style" attribute values. + @deprecated since 5.5.2 + + + IDictionary storing tags and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + IDictionary storing possible names of the "class" attribute + and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + Creates a new instance of StyleSheet + + + Associates a IDictionary containing styles with a tag. + @param tag the name of the HTML/XML tag + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param tag the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Associates a IDictionary containing styles with a class name. + @param className the value of the class attribute + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param className the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Resolves the styles based on the tag name and the value + of the class attribute. + @param tag the tag that needs to be resolved + @param attrs existing style map that will be updated + + + Method contributed by Lubos Strapko + @param h + @param chain + @since 2.1.3 + + + We use a CellWrapper because we need some extra info + that isn't available in PdfPCell. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The cell that is wrapped in this stub. + + + The width of the cell. + @since iText 5.0.6 + + + Indicates if the width is a percentage. + @since iText 5.0.6 + + + Creates a new instance of IncCell. + @param tag the cell that is wrapped in this object. + @param chain properties such as width + @since 5.0.6 + + + Creates a PdfPCell element based on a tag and its properties. + @param tag a cell tag + @param chain the hierarchy chain + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Factory that produces iText Element objects, + based on tags and their properties. + @author blowagie + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The font provider that will be used to fetch fonts. + @since iText 5.0 This used to be a FontFactoryImp + + + Creates a new instance of FactoryProperties. + + + Setter for the font provider + @param provider + @since 5.0.6 renamed from setFontImp + + + Creates a Font object based on a chain of properties. + @param chain chain of properties + @return an iText Font object + + + Creates an iText Chunk + @param content the content of the Chunk + @param chain the hierarchy chain + @return a Chunk + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a Paragraph without any content + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a ListItem without any content + + + Method that does the actual Element creating for + the createParagraph and createListItem method. + @param paragraph + @param chain + + + Sets the leading of a Paragraph object. + @param paragraph the Paragraph for which we set the leading + @param leading the String value of the leading + + + Gets a HyphenationEvent based on the hyphenation entry in + the hierarchy chain. + @param chain the hierarchy chain + @return a HyphenationEvent + @since 2.1.2 + + + Creates a LineSeparator. + @since 5.0.6 + + + This class maps tags such as div and span to their corresponding + TagProcessor classes. + @deprecated since 5.5.2 + + + Creates a Map containing supported tags. + + + Object that processes the following tags: + i, em, b, strong, s, strike, u, sup, sub + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Maps em to i, strong to b, and strike to s. + This is a convention: the style parser expects i, b and s. + @param tag the original tag + @return the mapped tag + + + Object that processes the a tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Object that processes the br tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Interface that needs to be implemented by every tag that is supported by HTMLWorker. + @deprecated since 5.5.2 + + + Implement this class to tell the HTMLWorker what to do + when an open tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @param attrs the current attributes of the tag + @throws DocumentException + @throws IOException + + + Implement this class to tell the HTMLWorker what to do + when an close tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @throws DocumentException + + + Implement this interface to process images and + to indicate if the image needs to be added or + skipped. + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Allows you to (pre)process the image before (or instead of) + adding it to the DocListener with HTMLWorker. + @param img the Image object + @param attrs attributes of the image + @param chain hierarchy of attributes + @param doc the DocListener to which the Image needs to be added + @return false if you still want HTMLWorker to add the Image + + + Allows you to do additional processing on a Paragraph that contains a link. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Does additional processing on a link paragraph + @param current the Paragraph that has the link + @param attrs the attributes + @return false if the Paragraph no longer needs processing + + + @since 5.0.6 + @deprecated since 5.5.2 + + + We use a TableWrapper because PdfPTable is rather complex + to put on the HTMLWorker stack. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The styles that need to be applied to the table + @since 5.0.6 renamed from props + + + Nested list containing the PdfPCell elements that are part of this table. + + + Array containing the widths of the columns. + @since iText 5.0.6 + + + Creates a new instance of IncTable. + @param attrs a Map containing attributes + + + Adds a new row to the table. + @param row a list of PdfPCell elements + + + Setter for the column widths + @since iText 5.0.6 + + + Creates a new PdfPTable based on the info assembled + in the table stub. + @return a PdfPTable + + + This class is a HashMap that contains the names of colors as a key and the + corresponding Color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + @author blowagie + @deprecated since 5.5.2 + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + @param colStr + A non-null, lower case string that might describe an RGB color + in hex. + @return Is this a web color hex string without the leading #? + @since 5.0.6 + + + Gives you a BaseColor based on a name. + + @param name + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + @return the corresponding BaseColor object. Never returns null. + @throws IllegalArgumentException + if the String isn't a know representation of a color. + + + A class that contains some utilities to parse HTML attributes and content. + @since 5.0.6 (some of these methods used to be in the Markup class) + @deprecated since 5.5.2 + + + a default value for font-size + @since 2.1.3 + + + Parses a length. + + @param str + a length in the form of an optional + or -, followed by a + number and a unit. + @return a float + + + New method contributed by: Lubos Strapko + + @since 2.1.3 + + + Converts a BaseColor into a HTML representation of this + BaseColor. + + @param s + the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + This method parses a String with attributes and returns a Properties + object. + + @param str + a String of this form: 'key1="value1"; key2="value2";... + keyN="valueN" ' + @return a Properties object + + + Removes the comments sections of a String. + + @param str + the original String + @param startComment + the String that marks the start of a Comment section + @param endComment + the String that marks the end of a Comment section. + @return the String stripped of its comment section + + + Helper class that reduces the white space in a String + @param content content containing whitespace + @return the content without all unnecessary whitespace + + + A series of predefined font sizes. + @since 5.0.6 (renamed) + + + Picks a font size from a series of predefined font sizes. + @param value the new value of a font, expressed as an index + @param previous the previous value of the font size + @return a new font size. + + + Translates a String value to an alignment value. + (written by Norman Richards, integrated into iText by Bruno) + @param alignment a String (one of the ALIGN_ constants of this class) + @return an alignment value (one of the ALIGN_ constants of the Element interface) + + + + A class that implements DocListener will perform some + actions when some actions are performed on a Document. + + + + + + + + Signals that the Document has been opened and that + Elements can be added. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + The output stream of every writer implementing IDocListener will be closed. + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Parameter that allows you to do margin mirroring (odd/even pages) + @param marginMirroring + @return true if succesfull + + + Parameter that allows you to do top/bottom margin mirroring (odd/even pages) + @param marginMirroringTopBottom + @return true if successful + @since 2.1.6 + + + + Sets the page number. + + the new page number + + + + Sets the page number to 0. + + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + Checks if this element is a content object. + If not, it's a metadata object. + @since iText 2.0.8 + @return true if this is a 'content' element; false if this is a 'medadata' element + + + Checks if this element is nestable. + @since iText 2.0.8 + @return true if this element can be nested inside other elements. + + + + Gets all the chunks in this element. + + an ArrayList + + + + Gets the content of the text element. + + the content of the text element + + + + A class that implements ElementListener will perform some + actions when an Element is added. + + + + + Signals that an Element was added to the Document. + + Element added + true if the element was added, false if not. + + + These two methods are used by FactoryProperties (for HTMLWorker). + It's implemented by FontFactoryImp. + @since iText 5.0 + + + Checks if a certain font is registered. + + @param fontname the name of the font that has to be checked. + @return true if the font is found + + + Constructs a Font-object. + + @param fontname the name of the font + @param encoding the encoding of the font + @param embedded true if the font is to be embedded in the PDF + @param size the size of this font + @param style the style of this font + @param color the BaseColor of this font. + @return the Font constructed based on the parameters + + + Interface implemented by Element objects that can potentially consume + a lot of memory. Objects implementing the LargeElement interface can + be added to a Document more than once. If you have invoked setCompleted(false), + they will be added partially and the content that was added will be + removed until you've invoked setCompleted(true); + @since iText 2.0.8 + + + If you invoke setCompleted(false), you indicate that the content + of the object isn't complete yet; it can be added to the document + partially, but more will follow. If you invoke setCompleted(true), + you indicate that you won't add any more data to the object. + @since iText 2.0.8 + @param complete false if you'll be adding more data after + adding the object to the document. + + + Flushes the content that has been added. + + + + An Image is the representation of a graphic element (JPEG, PNG or GIF) + that has to be inserted into the document + + + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The imagetype. + + + The URL of the image. + + + The raw data of the image. + + + The template to be treated as an image. + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + if the annotation is not null the image will be clickable. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalType. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + + Constructs an Image-object, using an url. + + the URL where the image can be found. + + + + Constructs an Image object duplicate. + + another Image object. + + + + Gets an instance of an Image. + + an Image + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + a byte array + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image from a System.Drwaing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + + Gets an instance of an Image from a System.Drawing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + an object of type ImgRaw + + + + Gets an instance of an Image. + + a filename + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + an object of type ImgRaw + + + Creates a JBIG2 Image. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + @since 2.1.5 + + + Reuses an existing image. + @param ref the reference to the image dictionary + @throws BadElementException on error + @return the image + + + + Gets an instance of an Image in raw mode. + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + + + + + + + + + + + + + + + + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + + transparency information in the Mask format of the + image dictionary + + an object of type ImgRaw + + + + Sets the absolute position of the Image. + + + + + + + Scale the image to the dimensions of the rectangle + + dimensions to scale the Image + + + + Scale the image to an absolute width and an absolute height. + + the new width + the new height + + + + Scale the image to an absolute width. + + the new width + + + + Scale the image to an absolute height. + + the new height + + + + Scale the image to a certain percentage. + + the scaling percentage + + + + Scale the width and height of an image to a certain percentage. + + the scaling percentage of the width + the scaling percentage of the height + + + + Scales the images to the dimensions of the rectangle. + + the dimensions to fit + + + + Scales the image so that it fits a certain width and height. + + the width to fit + the height to fit + + + Gets the current image rotation in radians. + @return the current image rotation in radians + + + + Sets the rotation of the image in radians. + + rotation in radians + + + + Sets the rotation of the image in degrees. + + rotation in degrees + + + + Get/set the annotation. + + the Annotation + + + + Gets the bpc for the image. + + + this only makes sense for Images of the type RawImage. + + a bpc value + + + + Gets the raw data for the image. + + + this only makes sense for Images of the type RawImage. + + the raw data + + + + Get/set the template to be used as an image. + + + this only makes sense for Images of the type ImgTemplate. + + the template + + + + Checks if the Images has to be added at an absolute position. + + a bool + + + + Checks if the Images has to be added at an absolute X position. + + a bool + + + + Returns the absolute X position. + + a position + + + + Returns the absolute Y position. + + a position + + + + Returns the type. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Returns true if the image is a Jpeg-object. + + a bool + + + + Returns true if the image is a ImgRaw-object. + + a bool + + + + Returns true if the image is an ImgTemplate-object. + + a bool + + + + Gets the string-representation of the reference to the image. + + a string + + + + Get/set the alignment for the image. + + a value + + + + Get/set the alternative text for the image. + + a string + + + + Gets the scaled width of the image. + + a value + + + + Gets the scaled height of the image. + + a value + + + + Gets the colorspace for the image. + + + this only makes sense for Images of the type Jpeg. + + a colorspace value + + + + Returns the transformation matrix of the image. + + an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + Returns the transformation matrix of the image. + + @return an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + + Returns the transparency. + + the transparency + + + + Gets the plain width of the image. + + a value + + + + Gets the plain height of the image. + + a value + + + + generates new serial id + + + + + returns serial id for this object + + + + + Gets the dots-per-inch in the X direction. Returns 0 if not available. + + the dots-per-inch in the X direction + + + + Gets the dots-per-inch in the Y direction. Returns 0 if not available. + + the dots-per-inch in the Y direction + + + Sets the dots per inch value + + @param dpiX + dpi for x coordinates + @param dpiY + dpi for y coordinates + + + + Returns true if this Image has the + requisites to be a mask. + + true if this Image can be a mask + + + + Make this Image a mask. + + + + + Get/set the explicit masking. + + the explicit masking + + + + Returns true if this Image is a mask. + + true if this Image is a mask + + + + Inverts the meaning of the bits of a mask. + + true to invert the meaning of the bits of a mask + + + + Sets the image interpolation. Image interpolation attempts to + produce a smooth transition between adjacent sample values. + + New value of property interpolation. + + + Tags this image with an ICC profile. + @param profile the profile + + + Checks is the image has an ICC profile. + @return the ICC profile or null + + + Indicates if the image should be scaled to fit the line + when the image exceeds the available width. + @since iText 5.0.6 + + + Indicates if the image should be scaled to fit + when the image exceeds the available height. + @since iText 5.4.2 + + + Gets and sets the value of scaleToFitHeight. + @return true if the image size has to scale to the available height + @since iText 5.4.2 + + + Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray. + + + Some image formats, like TIFF may present the images rotated that have + to be compensated. + + + Sets the compression level to be used if the image is written as a compressed stream. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + CCITT Image data that has to be inserted into the document + + @see Element + @see Image + + @author Paulo Soares + + CCITT Image data that has to be inserted into the document + + + + + + + Creats an Image in CCITT mode. + + the exact width of the image + the exact height of the image + + reverses the bits in data. + Bit 0 is swapped with bit 7 and so on + + + the type of compression in data. It can be + CCITTG4, CCITTG31D, CCITTG32D + + + parameters associated with this stream. Possible values are + CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a + combination of them + + the image data + + + Support for JBIG2 images. + @since 2.1.5 + + + JBIG2 globals + + + A unique hash + + + Copy contstructor. + @param image another Image + + + Empty constructor. + + + Actual constructor for ImgJBIG2 images. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + + + Getter for the JBIG2 global data. + @return an array of bytes + + + Getter for the unique hash. + @return an array of bytes + + + + Raw Image data that has to be inserted into the document + + + + + + + Creats an Image in raw mode. + + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + data the image data + + + + PdfTemplate that has to be inserted into the document + + + + + + + Creats an Image from a PdfTemplate. + + the Image + + + + Creats an Image from a PdfTemplate. + + the PdfTemplate + + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + @see Element + @see Image + @see Gif + @see Png + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + + + + Constructs an ImgWMF-object + + a Image + + + + Constructs an ImgWMF-object, using an url. + + the URL where the image can be found + + + + Constructs an ImgWMF-object, using a filename. + + a string-representation of the file that contains the image. + + + + Constructs an ImgWMF-object from memory. + + the memory image + + + + This method checks if the image is a valid WMF and processes some parameters. + + + + + Reads the WMF into a template. + + the template to read to + + + A RandomAccessSource that is based on an underlying byte array + @since 5.3.5 + + + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + A RandomAccessSource that is based on a set of underlying sources, treating the sources as if they were a contiguous block of data. + @since 5.3.5 + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + Constructs a new {@link GroupedRandomAccessSource} based on the specified set of sources + @param sources the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently (for example {@link FileChannelRandomAccessSource} takes advantage of fixed size page buffers to compute the index) + @param offset the offset + @return the index of the input source that contains the specified offset, or 0 if unknown + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup when the source is no longer the active source + @param offset the offset of the byte to look for + @return the SourceEntry that contains the byte at the specified offset + @throws IOException if there is a problem with IO (usually the result of the sourceReleased() call) + + + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + @param source the source that is no longer the active source + @throws IOException if there are any problems + + + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + @param source the source that is about to become the active source + @throws IOException if there are any problems + + + {@inheritDoc} + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Closes all of the underlying sources + + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + @param index the index + @param source the source + @param offset the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + @param absoluteOffset the offset in the parent GroupedRandomAccessSource + @return the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSouce but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + @since 5.3.5 + + + Gets a byte at the specified position + @param position + @return the byte, or -1 if EOF is reached + + + Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be + read will be placed in bytes and the number actually read will be returned. + @param position the position in the RandomAccessSource to read from + @param bytes output buffer + @param off offset into the output buffer where results will be placed + @param len the number of bytes to read + @return the number of bytes actually read, or -1 if the file is at EOF + + + @return the length of this source + + + Closes this source. The underlying data structure or source (if any) will also be closed + @throws IOException + + + + A RandomAccessSource that uses a {@link RandomAccessFile} as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + The source + + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of IOExceptions when reading the length. + + + Creates this object + @param raf the source for this RandomAccessSource + @throws IOException if the RAF can't be read + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Note: the length is determined when the {@link RAFRandomAccessSource} is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + Closes the underlying RandomAccessFile + + + Factory to create {@link RandomAccessSource} objects based on various types of sources + @since 5.3.5 + + + + whether the full content of the source should be read into memory at construction + + + Whether {@link RandomAccessFile} should be used instead of a {@link FileChannel}, where applicable + + + Whether the underlying file should have a RW lock on it or just an R lock + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + Determines whether the full content of the source will be read into memory + @param forceRead true if the full content will be read, false otherwise + @return this object (this allows chaining of method calls) + + + Creates a {@link RandomAccessSource} based on a byte array + @param data the byte array + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a URL. The data available at the URL is read into memory and used + as the source for the {@link RandomAccessSource} + @param url the url to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on an {@link InputStream}. The full content of the InputStream is read into memory and used + as the source for the {@link RandomAccessSource} + @param is the stream to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if forceRead is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened using {@link RandomAccessFile} access (if usePlainRandomAccess is true) + This call will automatically failover to using {@link RandomAccessFile} if the memory map operation fails + @param filename the name of the file or resource to create the {@link RandomAccessSource} for + @return the newly created {@link RandomAccessSource} + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + An input stream that uses a RandomAccessSource as it's underlying source + @since 5.3.5 + + + The source + + + The current position in the source + + + Creates an input stream based on the source + @param source the source + + + Utility class with commonly used stream operations + @since 5.3.5 + + + + Reads the full content of a stream and returns them in a byte array + @param is the stream to read + @return a byte array containing all of the bytes from the stream + @throws IOException if there is a problem reading from the input stream + + + Gets the font resources. + @param key the name of the resource + @return the Stream to get the resource or + null if not found + + + A RandomAccessSource that wraps another RandomAccessSouce and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + @since 5.3.5 + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + @param source the source + @param offset the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + @param source the source + @param offset the amount of the offset to use + @param length the number of bytes to be included in this RAS + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the length will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + + + The RTF jar depends on the iText jar, but the iText jar may not + depend on the RTF jar. This interface offers a temporary solution + until we find a more elegant way to solve this. + + + + Interface for customizing the split character. + + + + + + Interface for a text element to which other objects can be added. + + + + + + + + + + + + Adds an object to the TextElementArray. + + an object that has to be added + true if the addition succeeded; false otherwise + + + + An Jpeg is the representation of a graphic element (JPEG) + that has to be inserted into the document + + + + + + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Construct a Jpeg-object, using a Image + + a Image + + + + Constructs a Jpeg-object, using an Uri. + + + Deprecated, use Image.GetInstance(...) to create an Image + + the Uri where the image can be found + + + + Constructs a Jpeg-object from memory. + + the memory image + + + + Constructs a Jpeg-object from memory. + + the memory image. + the width you want the image to have + the height you want the image to have + + + + Reads a short from the Stream. + + the Stream + an int + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Returns a type of marker. + + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + + This method checks if the image is a valid JPEG and processes some parameters. + + + + An Jpeg2000 is the representation of a graphic element (JPEG) + that has to be inserted into the document + + @see Element + @see Image + + + Constructs a Jpeg2000-object, using an url. + + @param url the URL where the image can be found + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image. + @param width the width you want the image to have + @param height the height you want the image to have + @throws BadElementException + @throws IOException + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + A List contains several ListItems. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + +
+ + a possible value for the numbered parameter + + + a possible value for the numbered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + This is the ArrayList containing the different ListItems. + + + Indicates if the list has to be numbered. + + + Indicates if the listsymbols are numerical or alphabetical. + + + Indicates if the listsymbols are lowercase or uppercase. + + + Indicates if the indentation has to be set automatically. + + + Indicates if the indentation of all the items has to be aligned. + + + This variable indicates the first number of a numbered list. + + + This is the listsymbol of a list that is not numbered. + + + In case you are using numbered/lettered lists, this String is added before the number/letter. + @since iText 2.1.1 + + + In case you are using numbered/lettered lists, this String is added after the number/letter. + @since iText 2.1.1 + + + The indentation of this list on the left side. + + + The indentation of this list on the right side. + + + The indentation of the listitems. + + + Constructs a List. + + + Constructs a List with a specific symbol indentation. + @param symbolIndent the symbol indentation + @since iText 2.0.8 + + + Constructs a List. + + @param numbered a bool + + + Constructs a List. + + @param numbered a bool + @param lettered has the list to be 'numbered' with letters + + + + Constructs a List. + + + the parameter symbolIndent is important for instance when + generating PDF-documents; it indicates the indentation of the listsymbol. + + a bool + the indentation that has to be used for the listsymbol + + + + Constructs a List. + + a bool + a bool + the indentation that has to be used for the listsymbol + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + Adds an Object to the List. + + the object to add + true is successful + + + Makes sure all the items in the list have the same indentation. + + + + Alias for VB.NET compatibility. + + + + + Get/set the first number + + an int + + + + Sets the symbol + + a Chunk + + + + Sets the listsymbol. + + + This is a shortcut for SetListSymbol(Chunk symbol). + + a string + + + + Get/set the indentation of this paragraph on the left side. + + the indentation + + + + Get/set the indentation of this paragraph on the right side. + + the indentation + + + + Gets the symbol indentation. + + the symbol indentation + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Gets all the items in the list. + + an ArrayList containing ListItems + + + + Gets the size of the list. + + a size + + + Returns true if the list is empty. + + @return true if the list is empty + + + + Gets the leading of the first listitem. + + a leading + + + + Get/set the symbol indentation. + + a Chunk + + + Returns the String that is after a number or letter in the list symbol. + @return the String that is after a number or letter in the list symbol + @since iText 2.1.1 + + + Sets the String that has to be added after a number or letter in the list symbol. + @since iText 2.1.1 + @param postSymbol the String that has to be added after a number or letter in the list symbol. + + + Sets the String that has to be added before a number or letter in the list symbol. + @since iText 2.1.1 + @param preSymbol the String that has to be added before a number or letter in the list symbol. + + + + A ListItem is a Paragraph + that can be added to a List. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + + +
+ + this is the symbol that wil proceed the listitem. + + + + Constructs a ListItem. + + + + + Constructs a ListItem with a certain leading. + + the leading + + + + Constructs a ListItem with a certain Chunk. + + a Chunk + + + + Constructs a ListItem with a certain string. + + a string + + + + Constructs a ListItem with a certain string + and a certain Font. + + a string + a string + + + + Constructs a ListItem with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a ListItem with a certain string + and a certain leading. + + the leading + a string + + + Constructs a ListItem with a certain leading, string + and Font. + + @param leading the leading + @param string a string + @param font a Font + + Constructs a ListItem with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a ListItem with a certain Phrase. + + a Phrase + + + + Gets the type of the text element. + + a type + + + + Get/set the listsymbol. + + a Chunk + + + Sets the indentation of this paragraph on the left side. + + @param indentation the new indentation + + + Changes the font of the list symbol to the font of the first chunk + in the list item. + @since 5.0.6 + + + Factory that creates a counter for every reader or writer class. + You can implement your own counter and declare it like this: + CounterFactory.getInstance().setCounter(new SysoCounter()); + SysoCounter is just an example of a Counter implementation. + It writes info about files being read and written to the System.out. + + This functionality can be used to create metrics in a SaaS context. + + + The singleton instance. + + + The current counter implementation. + + + The empty constructor. + + + Returns the singleton instance of the factory. + + + Returns a counter factory. + + + Getter for the counter. + + + Setter for the counter. + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass + @return this Counter implementation + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Interface that can be implemented if you want to count the number of documents + that are being processed by iText. + + Implementers may use this method to record actual system usage for licensing purposes + (e.g. count the number of documents or the volumne in bytes in the context of a SaaS license). + + + Gets a Counter instance for a specific class. + + + This method gets triggered if a file is read. + @param l the length of the file that was written + + + This method gets triggered if a file is written. + @param l the length of the file that was written + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass The Class asking for the Counter + @return the Counter instance + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + The name of the class for which the Counter was created + (or iText if no name is available) + + + Empty SysoCounter constructor. + + + Constructs a SysoCounter for a specific class. + @param klass + + + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Logger interface + {@link LoggerFactory#setLogger(Logger)}. + + @author redlab_b + + + + @param klass + @return the logger for the given klass + + + @param level + @return true if there should be logged for the given level + + + Log a warning message. + @param message + + + Log a trace message. + @param message + + + Log a debug message. + @param message + + + Log an info message. + @param message + + + Log an error message. + @param message + + + Log an error message and exception. + @param message + @param e + + + The different log levels. + @author redlab_b + + + + LoggerFactory can be used to set a logger. The logger should be created by + implementing {@link Logger}. In the implementation users can choose how they + log received messages. Added for developers. For some cases it can be handy + to receive logging statements while developing applications with iText + + @author redlab_b + + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param klass + @return the logger. + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param name + @return the logger. + + + Returns the LoggerFactory + @return singleton instance of this LoggerFactory + + + Set the global logger to process logging statements with. + + @param logger the logger + + + Get the logger. + + @return the logger + + + The no-operation logger, it does nothing with the received logging + statements. And returns false by default for {@link NoOpLogger#isLogging(Level)} + + @author redlab_b + + + + A Simple System.out logger. + @author redlab_be + + + + Defaults packageReduce to 1. + + + Amount of characters each package name should be reduced with. + @param packageReduce + + + + @param klass + @param shorten + + + @param name2 + @return + + + Wrapper that allows to add properties to 'basic building block' objects. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + The element that is wrapped in a MarkedObject. + + + Contains extra markupAttributes + + + This constructor is for internal use only. + + + Creates a MarkedObject. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets the type of the text element. + + @return a type + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + @return the markupAttributes + + + Wrapper that allows to add properties to a Chapter/Section object. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + This is the title of this section. + + + Creates a MarkedObject with a Section or Chapter object. + @param section the marked section + + + Adds a Paragraph, List or Table + to this Section. + + @param index index at which the specified element is to be inserted + @param o an object of type Paragraph, List or Table= + @throws ClassCastException if the object is not a Paragraph, List or Table + + + Adds a Paragraph, List, Table or another Section + to this Section. + + @param o an object of type Paragraph, List, Table or another Section + @return a bool + @throws ClassCastException if the object is not a Paragraph, List, Table or Section + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Adds a collection of Elements + to this Section. + + @param collection a collection of Paragraphs, Lists and/or Tables + @return true if the action succeeded, false if not. + @throws ClassCastException if one of the objects isn't a Paragraph, List, Table + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @return a new Section object + + + Creates a Section, add it to this Section and returns it. + + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @return a new Section object + + + Sets the title of this section. + + @param title the new title + + + + Sets the indentation of this Section on the left side. + + @param indentation the indentation + + + Sets the indentation of this Section on the right side. + + @param indentation the indentation + + + Sets the indentation of the content of this Section. + + @param indentation the indentation + + + Setter for property bookmarkOpen. + @param bookmarkOpen false if the bookmark children are not + visible. + + + Setter for property triggerNewPage. + @param triggerNewPage true if a new page has to be triggered. + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Adds a new page to the section. + @since 2.1.1 + + + + This is an Element that contains + some meta information about the document. + + + An object of type Meta can not be constructed by the user. + Userdefined meta information should be placed in a Header-object. + Meta is reserved for: Subject, Keywords, Author, Title, Producer + and Creationdate information. + + + + + + This is the type of Meta-information this object contains. + + + This is the content of the Meta-information. + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + + Constructs a Meta. + + the type of meta-information + the content + + + + Constructs a Meta. + + the tagname of the meta-information + the content + + + + Processes the element by adding it (or the different parts) to a + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + appends some text to this Meta. + + a string + a StringBuilder + + + + Returns the content of the meta information. + + a string + + + + Returns the name of the meta information. + + a string + + + + Returns the name of the meta information. + + name to match + a string + + + + The PageSize-object contains a number of read only rectangles representing the most common paper sizes. + + + + + This is the letter format + + + This is the note format + + + This is the legal format + + + This is the tabloid format + + + This is the executive format + + + This is the postcard format + + + This is the a0 format + + + This is the a1 format + + + This is the a2 format + + + This is the a3 format + + + This is the a4 format + + + This is the a5 format + + + This is the a6 format + + + This is the a7 format + + + This is the a8 format + + + This is the a9 format + + + This is the a10 format + + + This is the b0 format + + + This is the b1 format + + + This is the b2 format + + + This is the b3 format + + + This is the b4 format + + + This is the b5 format + + + This is the b6 format + + + This is the b7 format + + + This is the b8 format + + + This is the b9 format + + + This is the b10 format + + + This is the archE format + + + This is the archD format + + + This is the archC format + + + This is the archB format + + + This is the archA format + + + This is the American Foolscap format + + + This is the European Foolscap format + + + This is the halfletter format + + + This is the 11x17 format + + + This is the ISO 7810 ID-1 format (85.60 x 53.98 mm or 3.370 x 2.125 inch) + + + This is the ISO 7810 ID-2 format (A7 rotated) + + + This is the ISO 7810 ID-3 format (B7 rotated) + + + This is the ledger format + + + This is the Crown Quarto format + + + This is the Large Crown Quarto format + + + This is the Demy Quarto format. + + + This is the Royal Quarto format. + + + This is the Crown Octavo format + + + This is the Large Crown Octavo format + + + This is the Demy Octavo format + + + This is the Royal Octavo format. + + + This is the small paperback format. + + + This is the Pengiun small paperback format. + + + This is the Penguin large paparback format. + + + This is the letter format + @since iText 5.0.6 + + + This is the legal format + @since iText 5.0.6 + + + This is the a4 format + @since iText 5.0.6 + + + This method returns a Rectangle based on a String. + Possible values are the the names of a constant in this class + (for instance "A4", "LETTER",...) or a value like "595 842" + + + + A Paragraph is a series of Chunks and/or Phrases. + + + A Paragraph has the same qualities of a Phrase, but also + some additional layout-parameters: +
    +
  • the indentation +
  • the alignment of the text +
+
+ + + Paragraph p = new Paragraph("This is a paragraph", + FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + +
+ + The alignment of the text. + + + The indentation of this paragraph on the left side. + + + The indentation of this paragraph on the right side. + + + Holds value of property firstLineIndent. + + + The spacing before the paragraph. + + + The spacing after the paragraph. + + + Holds value of property extraParagraphSpace. + + + Does the paragraph has to be kept together on 1 page. + + + + Constructs a Paragraph. + + + + + Constructs a Paragraph with a certain leading. + + the leading + + + + Constructs a Paragraph with a certain Chunk. + + a Chunk + + + + Constructs a Paragraph with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a Paragraph with a certain string. + + a string + + + + Constructs a Paragraph with a certain string + and a certain Font. + + a string + a Font + + + + Constructs a Paragraph with a certain string + and a certain leading. + + the leading + a string + + + + Constructs a Paragraph with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a Paragraph with a certain Phrase. + + a Phrase + + + Creates a shallow clone of the Paragraph. + @return + + + Creates a shallow clone of the Paragraph. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + + Gets the type of the text element. + + a type + + + + Adds an Object to the Paragraph. + + the object to add + a bool + + + + Get/set the alignment of this paragraph. + + a integer + + + + Get/set the indentation of this paragraph on the left side. + + a float + + + + Get/set the indentation of this paragraph on the right side. + + a float + + + + Set/get if this paragraph has to be kept together on one page. + + a bool + + + + A Phrase is a series of Chunks. + + + A Phrase has a main Font, but some chunks + within the phrase can have a Font that differs from the + main Font. All the Chunks in a Phrase + have the same leading. + + + + // When no parameters are passed, the default leading = 16 + Phrase phrase0 = new Phrase(); + Phrase phrase1 = new Phrase("this is a phrase"); + // In this example the leading is passed as a parameter + Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16"); + // When a Font is passed (explicitely or embedded in a chunk), the default leading = 1.5 * size of the font + Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.GetFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0))); + Phrase phrase4 = new Phrase(new Chunk("this is a phrase")); + Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + + + + + This is the leading of this phrase. + + + The text leading that is multiplied by the biggest font size in the line. + + + This is the font of this phrase. + + + Null, unless the Phrase has to be hyphenated. + @since 2.1.2 + + + Predefined tab position and properties(alignment, leader and etc.); + @since 5.4.1 + + + + Constructs a Phrase without specifying a leading. + + + Has nine overloads. + + + + Copy constructor for Phrase. + + + + Constructs a Phrase with a certain leading. + + the leading + + + + Constructs a Phrase with a certain Chunk. + + a Chunk + + + + Constructs a Phrase with a certain Chunk and a certain leading. + + the leading + a Chunk + + + + Constructs a Phrase with a certain string. + + a string + + + + Constructs a Phrase with a certain string and a certain Font. + + a string + a Font + + + + Constructs a Phrase with a certain leading and a certain string. + + the leading + a string + + + + Processes the element by adding it (or the different parts) to an + . + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Chunk, an Anchor or another Phrase + to this Phrase. + + index at which the specified element is to be inserted + an object of type Chunk, Anchor, or Phrase + + + Adds a String to this Phrase. + + @param s a string + @return a boolean + @since 5.0.1 + + + + Adds a Chunk, Anchor or another Phrase + to this Phrase. + + an object of type Chunk, Anchor or Phrase + a bool + + + + Adds a collection of Chunks + to this Phrase. + + a collection of Chunks, Anchors and Phrases. + true if the action succeeded, false if not. + + + + Adds a Chunk. + + + This method is a hack to solve a problem I had with phrases that were split between chunks + in the wrong place. + + a Chunk + a bool + + + + Adds a Object to the Paragraph. + + the object to add. + + + + Checks is this Phrase contains no or 1 empty Chunk. + + + false if the Phrase + contains more than one or more non-emptyChunks. + + + + + + + Gets/sets the leading of this phrase. + + the linespacing + + + Gets the total leading. + This method is based on the assumption that the + font of the Paragraph is the font of all the elements + that make part of the paragraph. This isn't necessarily + true. + @return the total leading (fixed and multiplied) + + + + Gets the font of the first Chunk that appears in this Phrase. + + a Font + + + Returns the content as a String object. + This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase. + + + Setter/getter for the hyphenation. + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Setter/getter for the tabSettings. + @param tabSettings a TabSettings instance + @since 5.4.1 + + + Constructs a Phrase that can be used in the static GetInstance() method. + @param dummy a dummy parameter + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @param font + @return a newly constructed Phrase + + + + A Rectangle is the representation of a geometric figure. + + + + + + + + This is the value that will be used as undefined. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents a rectangle without borders. + + + This represents a type of border. + + + the lower left x-coordinate. + + + the lower left y-coordinate. + + + the upper right x-coordinate. + + + the upper right y-coordinate. + + + This represents the status of the 4 sides of the rectangle. + + + This is the width of the border around this rectangle. + + + This is the color of the border of this rectangle. + + + The color of the left border of this rectangle. + + + The color of the right border of this rectangle. + + + The color of the top border of this rectangle. + + + The color of the bottom border of this rectangle. + + + The width of the left border of this rectangle. + + + The width of the right border of this rectangle. + + + The width of the top border of this rectangle. + + + The width of the bottom border of this rectangle. + + + Whether variable width borders are used. + + + This is the color of the background of this rectangle. + + + This is the rotation value of this rectangle. + + + + Constructs a Rectangle-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a Rectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation (0, 90, 180, or 270) + @since iText 5.0.6 + + + + Constructs a Rectangle-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a Rectangle-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the rectangle + @since iText 5.0.6 + + + + Constructs a Rectangle-object. + + another Rectangle + + + Constructs a Rectangle-object based on a com.itextpdf.awt.geom.Rectangle object + @param rect com.itextpdf.awt.geom.Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Switches lowerleft with upperright + + + + Gets a Rectangle that is altered to fit on the page. + + the top position + the bottom position + a Rectangle + + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + a Rectangle + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Returns the lower left x-coordinate, considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Returns the width of the rectangle. + + a width + + + + Returns the height of the rectangle. + + a height + + + + Indicates if the table has borders. + + a bool + + + + Indicates if the table has a some type of border. + + the type of border + a bool + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Updates the border flag for a side based on the specified width. A width + of 0 will disable the border on that side. Any other width enables it. + + @param width + width of border + @param side + border side constant + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A RectangleReadOnly is the representation of a geometric figure. + It's the same as a Rectangle but immutable. + + + + + + + + + Constructs a RectangleReadOnly-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a RectangleReadOnly -object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the Rectangle (0, 90, 180, 270) + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a RectangleReadOnly-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object. + + another Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Switches lowerleft with upperright + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A special-version of LIST which use roman-letters. + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + Initialization + + + Initialization + + @param symbolIndent indent + + + Initialization + @param romanlower roman-char in lowercase + @param symbolIndent indent + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A Section is a part of a Document containing + other Sections, Paragraphs, List + and/or Tables. + + + You can not construct a Section yourself. + You will have to ask an instance of Section to the + Chapter or Section to which you want to + add the new Section. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0))); + Section section11 = section1.AddSection(40, title211, 2); + section11.Add(someSectionText);strong> + + + + + A possible number style. The default number style: "1.2.3." + @since iText 2.0.8 + + + A possible number style. For instance: "1.2.3" + @since iText 2.0.8 + + + This is the title of this section. + + + This is the number of sectionnumbers that has to be shown before the section title. + + + The style for sectionnumbers. + @since iText 2.0.8 + + + The indentation of this section on the left side. + + + The indentation of this section on the right side. + + + The additional indentation of the content of this section. + + + This is the number of subsections. + + + This is the complete list of sectionnumbers of this section and the parents of this section. + + + Indicates if the Section will be complete once added to the document. + @since iText 2.0.8 + + + Indicates if the Section was added completely to the document. + @since iText 2.0.8 + + + Indicates if this is the first time the section was added. + @since iText 2.0.8 + + + false if the bookmark children are not visible + + + true if the section has to trigger a new page + + + The bookmark title if different from the content title + + + + Constructs a new Section. + + + Has 2 overloads. + + + + + Constructs a new Section. + + a Paragraph + the numberDepth + + + + Sets the number of this section. + + the number of this section + an ArrayList, containing the numbers of the Parent + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Paragraph, List or Table + to this Section. + + index at which the specified element is to be inserted + an object of type Paragraph, List or Table + + + + Adds a Paragraph, List, Table or another Section + to this Section. + + an object of type Paragraph, List, Table or another Section + a bool + + + + Adds a collection of Elements + to this Section. + + a collection of Paragraphs, Lists and/or Tables + true if the action succeeded, false if not. + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Creates a Section, add it to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a marked section. For use in class MarkedSection only! + + + + Creates a Section, adds it to this Section and returns it. + + the title of the new section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param indentation the indentation of the new section + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the title of the new section + the newly added Section + + + + Get/set the title of this section + + a Paragraph + + + Sets the style for numbering sections. + Possible values are NUMBERSTYLE_DOTTED: 1.2.3. (the default) + or NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT: 1.2.3 + @since iText 2.0.8 + + + Constructs a Paragraph that will be used as title for a Section or Chapter. + @param title the title of the section + @param numbers a list of sectionnumbers + @param numberDepth how many numbers have to be shown + @param numberStyle the numbering style + @return a Paragraph object + @since iText 2.0.8 + + + + Checks if this object is a Chapter. + + + true if it is a Chapter, + false if it is a Section + + + + + Checks if this object is a Section. + + + true if it is a Section, + false if it is a Chapter. + + + + + Get/set the numberdepth of this Section. + + a int + + + + Get/set the indentation of this Section on the left side. + + the indentation + + + + Get/set the indentation of this Section on the right side. + + the indentation + + + + Get/set the indentation of the content of this Section. + + the indentation + + + + Returns the depth of this section. + + the depth + + + + Get/set the bookmark + + a bool + + + Gets the bookmark title. + @return the bookmark title + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Changes the Chapter number. + + + Indicates if this is the first time the section is added. + @since iText2.0.8 + @return true if the section wasn't added yet + + + @see com.lowagie.text.LargeElement#isAddedCompletely() + @since iText 2.0.8 + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Adds a new page to the section. + @since 2.1.1 + + + Returns the first occurrence of a special symbol in a String. + + @param string a String + @return an index of -1 if no special symbol was found + + + Gets a chunk with a symbol character. + @param c a character that has to be changed into a symbol + @param font Font if there is no SYMBOL character corresponding with c + @return a SYMBOL version of a character + + + Looks for the corresponding symbol in the font Symbol. + + @param c the original ASCII-char + @return the corresponding symbol in font Symbol + + + A collection of convenience methods that were present in many different iText + classes. + + + + + + + + + + Utility method to extend an array. + @param original the original array or null + @param item the item to be added to the array + @return a new array with the item appended + + + Checks for a true/false value of a key in a Properties object. + @param attributes + @param key + @return + + + + This method makes a valid URL from a given filename. + + + + + a given filename + a valid URL + + + Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value. + @param src the url to unescape + @return the eunescaped value + + + + This method is an alternative for the Stream.Skip()-method + that doesn't seem to work properly for big values of size. + + the stream + the number of bytes to skip + + + Measurement conversion from millimeters to points. + @param value a value in millimeters + @return a value in points + @since 2.1.2 + + + Measurement conversion from millimeters to inches. + @param value a value in millimeters + @return a value in inches + @since 2.1.2 + + + Measurement conversion from points to millimeters. + @param value a value in points + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from points to inches. + @param value a value in points + @return a value in inches + @since 2.1.2 + + + Measurement conversion from inches to millimeters. + @param value a value in inches + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from inches to points. + @param value a value in inches + @return a value in points + @since 2.1.2 + + + Reads the contents of a file to a String. + @param path the path to the file + @return a String with the contents of the file + @since iText 5.0.0 + + + Converts an array of bytes to a String of hexadecimal values + @param bytes a byte array + @return the same bytes expressed as hexadecimal values + + + + The ParserBase-class provides XML document parsing. + + + + + Begins the process of processing an XML document + + the XML document to parse + + + + This method gets called when a start tag is encountered. + + + + the name of the tag that is encountered + the list of attributes + + + + This method gets called when an end tag is encountered. + + + + the name of the tag that ends + + + + This method gets called when characters are encountered. + + an array of characters + the start position in the array + the number of characters to read from the array + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains all possible id values of the entity tag + that can be translated to a character in font Symbol. + + + Gets a chunk with a symbol character. + @param e a symbol value (see Entities class: alfa is greek alfa,...) + @param font the font if the symbol isn't found (otherwise Font.SYMBOL) + @return a Chunk + + + Looks for the corresponding symbol in the font Symbol. + + @param name the name of the entity + @return the corresponding character in font Symbol + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains the names of entities and their unicode value. + + + Translates an entity to a unicode character. + + @param name the name of the entity + @return the corresponding unicode character + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a comment is found. + @param text the comment text + + + + possible states + + + the state stack + + + The current character. + + + The previous character. + + + the line we are currently reading + + + the column where the current character occurs + + + was the last character equivalent to a newline? + + + A boolean indicating if the next character should be taken into account + if it's a space character. When nospace is false, the previous character + wasn't whitespace. + @since 2.1.5 + + + the current state + + + Are we parsing HTML? + + + current text (whatever is encountered between tags) + + + + current tagname + + + current attributes + + + The handler to which we are going to forward document content + + + The handler to which we are going to forward comments. + + + Keeps track of the number of tags that are open. + + + the quote character that was used to open the quote. + + + the attribute key. + + + the attribute value. + + + Creates a Simple XML parser object. + Call Go(BufferedReader) immediately after creation. + + + Does the actual parsing. Perform this immediately + after creating the parser object. + + + Gets a state from the stack + @return the previous state + + + Adds a state to the stack. + @param s a state to add to the stack + + + Flushes the text that is currently in the buffer. + The text can be ignored, added to the document + as content or as comment,... depending on the current state. + + + Initialized the tag name and attributes. + + + Sets the name of the tag. + + + processes the tag. + @param start if true we are dealing with a tag that has just been opened; if false we are closing a tag. + + + Throws an exception + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param r the document. The encoding is already resolved. The reader is not closed + @throws IOException on error + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param in the document. The encoding is deduced from the stream. The stream is not closed + @throws IOException on error + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + + + This {@link NewLineHandler} returns true on the tags p, + blockqouteand br + + @author Balder + + + + Default constructor + + @since 5.0.6 + + + Always returns false. + @author Balder + @since 5.0.6 + + + + A NewLineHandler determines if an encountered tag should result in a new line + in a document. + + @author Balder + @since 5.0.6 + + + @param tag the tag to check if after this one a new line should be in a document + @return true in case a new line should be added. + @since 5.0.6 + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + @param shorthand + @throws IOException + + + Adds a title. + @param title + + + Adds a title. + @param title + + + Adds a description. + @param desc + + + Adds a description. + @param desc + + + Adds a subject. + @param subject + + + Adds a subject. + @param subject array of subjects + + + Adds a single author. + @param author + + + Adds an array of authors. + @param author + + + Adds a single publisher. + @param publisher + + + Adds an array of publishers. + @param publisher + + + + A wrapper for an Encoding to suppress the preamble. + + + + Key for the default language. + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Add a language. + + + Process a property. + + + Creates a String that can be used in an XmpSchema. + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + @throws IOException + + + Adds keywords. + @param keywords + + + Adds the producer. + @param producer + + + Adds the version. + @param version + + + StringBuilder to construct an XMP array. + + + An array that is unordered. + + + An array that is ordered. + + + An array with alternatives. + + + the type of array. + + + Creates an XmpArray. + @param type the type of array: UNORDERED, ORDERED or ALTERNATIVE. + + + Returns the String representation of the XmpArray. + @return a String representation + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History�s softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + @param shorthand + @throws IOException + + + Adds the creatortool. + @param creator + + + Adds the creation date. + @param date + + + Adds the modification date. + @param date + + + Adds the meta data date. + @param date + + + Adds the identifier. + @param id + + + Adds the nickname. + @param name + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + @throws IOException + + + Reads an XMP stream into an org.w3c.dom.Document objects. + Allows you to replace the contents of a specific tag. + @since 2.1.3 + + + String used to fill the extra space. + + + Processing Instruction required at the start of an XMP stream + @since iText 2.1.6 + + + Processing Instruction required at the end of an XMP stream for XMP streams that can be updated + @since iText 2.1.6 + + + Constructs an XMP reader + @param bytes the XMP content + @throws ExceptionConverter + @throws IOException + @throws SAXException + + + Replaces the content of a tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 2.1.6 the return type has changed from void to boolean + + + Replaces the content of an attribute in the description tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 5.0.0 the return type has changed from void to boolean + + + Adds a tag. + @param namespaceURI the URI of the namespace + @param parent the tag name of the parent + @param localName the name of the tag to add + @param value the new content for the tag + @return true if the content was successfully added + @since 2.1.6 + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param domDocument the Document that contains the node + @param n the Node to add the text to + @param value the text to add + + + Writes the document to a byte array. + + + Abstract superclass of the XmpSchemas supported by iText. + + + the namesspace + + + Constructs an XMP schema. + @param xmlns + + + The String representation of the contents. + @return a String representation. + + + Processes a property + @param buf + @param p + + + @return Returns the xmlns. + + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @see java.util.Properties#setProperty(java.lang.String, java.lang.String) + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @param content + @return + + + With this class you can create an Xmp Stream that can be used for adding + Metadata to a PDF Dictionary. Remark that this class doesn't cover the + complete XMP specification. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + Creates an XmpWriter. + @param os + @param utfEncoding + @param extraSpace + @throws IOException + + + Creates an XmpWriter. + @param os + @throws IOException + + + @param os + @param info + @throws IOException + + + @param os + @param info + @throws IOException + @since 5.0.1 (generic type in signature) + + + Sets the XMP to read-only + + + @param about The about to set. + + + Adds an rdf:Description. + @param xmlns + @param content + @throws IOException + + + Adds an rdf:Description. + @param s + @throws IOException + + + @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + @param propName The name of the property. + Has the same usage as in getProperty(). + @param value the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + @throws XMPException Wraps all errors and exceptions that may occur. +
+ + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an ordered array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an alternate array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Flushes and closes the XmpWriter. + @throws IOException + + + Flushes and closes the XmpWriter. + @throws IOException + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + Adds a title. + + @param xmpMeta + @param title + + + Sets a title. + + @param xmpMeta + @param title + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a description. + + @param xmpMeta + @param desc + + + Sets a description. + + @param xmpMeta + @param desc + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a subject. + + @param xmpMeta + @param subject + + + Sets a subject. + + @param xmpMeta + @param subject array of subjects + + + Adds a single author. + + @param xmpMeta + @param author + + + Sets an array of authors. + + @param xmpMeta + @param author + + + Adds a single publisher. + + @param xmpMeta + @param publisher + + + Sets an array of publishers. + + @param xmpMeta + @param publisher + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + Adds keywords. + + @param xmpMeta + @param keywords + + + Adds the producer. + + @param xmpMeta + @param producer + + + Adds the version. + + @param xmpMeta + @param version + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + Adds the creatortool. + + @param xmpMeta + @param creator + + + Adds the creation date. + + @param xmpMeta + @param date + + + Adds the modification date. + + @param xmpMeta + @param date + + + Adds the meta data date. + + @param xmpMeta + @param date + + + Sets the identifier. + + @param xmpMeta + @param id + + + Adds the nickname. + + @param xmpMeta + @param name + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + + @author psoares + + + Print writer. + + + Canonical output. + + + Processing XML 1.1 document. + + + Default constructor. + + + Sets whether output is canonical. + + + Sets the output stream for printing. + + + Sets the output writer. + + + Writes the specified node, recursively. + + + Returns a sorted list of attributes. + + + Normalizes and prints the given string. + + + Normalizes and print the given character. + + + This class converts XML into plain text stripping all tags. + + + Buffer that stores all content that is encountered. + + + Static method that parses an XML Stream. + @param is the XML input that needs to be parsed + @return a String obtained by removing all tags from the XML + + + Creates an instance of XML to TXT. + + + @return the String after parsing. + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Map) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + Contains utility methods for XML. + @author Balder + @since 5.0.6 + + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + @since 5.0.6 + + + + Unescapes 'lt', 'gt', 'apos', 'quote' and 'amp' to the + corresponding character values. + @param s a string representing a character + @return a character value + + + Checks if a character value should be escaped/unescaped. + @param s the String representation of an integer + @return true if it's OK to escape or unescape this value + + + Checks if a character value should be escaped/unescaped. + @param c a character value + @return true if it's OK to escape or unescape this value + + + Looks for a character in a character array, starting from a certain position + @param needle the character you're looking for + @param haystack the character array + @param start the start position + @return the position where the character was found, or -1 if it wasn't found. + + + Returns the IANA encoding name that is auto-detected from + the bytes specified, with the endian-ness of that encoding where appropriate. + (method found in org.apache.xerces.impl.XMLEntityManager, originally published + by the Apache Software Foundation under the Apache Software License; now being + used in iText under the MPL) + @param b4 The first four bytes of the input. + @return an IANA-encoding string + @since 5.0.6 + + + + A special-version of LIST whitch use zapfdingbats-letters. + + @see com.lowagie.text.List + @author Michael Niedermair and Bruno Lowagie + + + char-number in zapfdingbats + + + Creates a ZapfDingbatsList + + @param zn a char-number + + + Creates a ZapfDingbatsList + + @param zn a char-number + @param symbolIndent indent + + + Sets the dingbat's color. + + @param zapfDingbatColor color for the ZapfDingbat + + + set the char-number + @param zn a char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A special-version of LIST whitch use zapfdingbats-numbers (1..10). + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + which type + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + get the type + + @return char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + Objects implementing Indentable allow to set indentation left and right. + + + Sets the indentation on the left side. + + @param indentation the new indentation + + + Sets the indentation on the right side. + + @param indentation the new indentation + + + Objects implementing Spaceable allow setting spacing before and after. + + + Sets the spacing before. + + @param spacing the new spacing + + + Sets the spacing after. + + @param spacing the new spacing + + + @author itextpdf.com + + + + Receive a writer and the document to do certain operations on them. + @param writer the PdfWriter + @param doc the document + @throws DocumentException + + + This class contains version information about iText. + DO NOT CHANGE THE VERSION INFORMATION WITHOUT PERMISSION OF THE COPYRIGHT HOLDERS OF ITEXT. + Changing the version makes it extremely difficult to debug an application. + Also, the nature of open source software is that you honor the copyright of the original creators of the software. + + + String that will indicate if the AGPL version is used. + + + The iText version instance. + + + This String contains the name of the product. + iText is a registered trademark by iText Group NV. + Please don't change this constant. + + + This String contains the version number of this iText release. + For debugging purposes, we request you NOT to change this constant. + + + This String contains the iText version as shown in the producer line. + iText is a product developed by iText Group NV. + iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + The license key. + + + Gets an instance of the iText version that is currently used. + Note that iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + * Gets the product name. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the product name + + + * Gets the release number. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the release number + + + * Returns the iText version as shown in the producer line. + * iText is a product developed by iText Group NV. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return iText version + + + Returns a license key if one was provided, or null if not. + @return a license key. + + + Checks if the AGPL version is used. + @return returns true if the AGPL version is used. + + + An element that is not an element, it holds {@link Element#WRITABLE_DIRECT} + as Element type. It implements WriterOperation to do operations on the + {@link PdfWriter} and the {@link Document} that must be done at the time of + the writing. Much like a {@link VerticalPositionMark} but little different. + + @author itextpdf.com + + + + @return {@link Element#WRITABLE_DIRECT} + + + The TYPE_UNKNOWN is an initial type value + + + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Multiply matrix of two AffineTransform objects + @param t1 - the AffineTransform object is a multiplicand + @param t2 - the AffineTransform object is a multiplier + @return an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + @version $Revision: 1.4 $ + + + + + marker for invalid bytes + + + + marker for accepted whitespace bytes + + + + marker for an equal symbol + + + + Encode the given byte[]. + + the source string. + the base64-encoded data. + + + + Encode the given byte[]. + + the source string. + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + the base64-encoded data. + + + + Encode the given string. + the source string. + the base64-encoded string. + + + + Decode the given byte[]. + + + the base64-encoded data. + the decoded data. + + + + Decode the given string. + + the base64-encoded string. + the decoded string. + + + + Byte buffer container including length of valid data. + + @since 11.10.2006 + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + + Loads the stream into a buffer. + + an InputStream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + + Appends a byte to the buffer. + a byte + + + + Appends a byte array or part of to the buffer. + + a byte array + an offset with + + + + + Append a byte array to the buffer + a byte array + + + + Append another buffer to this buffer. + another ByteBuffer + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + Reads a single character. + + @exception IOException If an I/O error occurs + + + Reads characters into a portion of an array. + + @exception IOException If an I/O error occurs + + + ** + + + + @since 22.08.2006 + + + + + the result of the escaping sequence + + + + count the digits of the sequence + + + + the state of the automaton + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + @since 16.02.2006 + + + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + + + @since 22.08.2006 + + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + + Skips the next char. + + + + Returns the current position. + + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + + @since 12.10.2006 + + + + + Private constructor + + + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + + @since 11.08.2006 + + + + + private constructor + + + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + + Asserts that a specific language is set. + a specific lang + Specific language is null or empty + + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + + Asserts that any string parameter is set. + any string parameter + Thrown if the parameter is null or has length 0. + + + + Asserts that the xmp object is of this implemention + (). + the XMP object + A wrong implentaion is used. + + + + Parser for "normal" XML serialisation of RDF. + + @since 14.07.2006 + + + + + Start of coreSyntaxTerms. + + + + End of coreSyntaxTerms + + + + Start of additions for syntax Terms. + + + + End of of additions for syntaxTerms. + + + + Start of oldTerms. + + + + End of oldTerms. + + + + ! Yes, the syntax terms include the core terms. + + + + this prefix is used for default namespaces + + + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + thown on parsing errors + + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* )* + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.14 propertyElt + + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + Add a leaf node with the text value and qualifiers for the attributes. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thown on parsing errors + + + + + Adds a child node. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thown on parsing errors + + + + Adds a qualifier node. + + the parent xmp node + the name of the qualifier which has to be + QName including the default prefix + the value of the qualifier + Returns the newly created child node. + thown on parsing errors + + + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thown on parsing errors + + + + Checks if the node is a white space. + an XML-node + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + If an I/O error occurs + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + If an I/O error occurs + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + If the pushback buffer is full, + or if some other I/O error occurs + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + If an I/O error occurs + + + + @since 09.11.2006 + + + + + XML localname + + + + XML namespace prefix + + + + Splits a qname into prefix and localname. + a QName + + + + Constructor that initializes the fields + the prefix + the name + + + the localName + + + the prefix + + + Returns whether the QName has a prefix. + + + + Utility functions for the XMPToolkit implementation. + + @since 06.06.2006 + + + + + segments of a UUID + + + + length of a UUID + + + + + + init char tables + + + + Private constructor + + + + + + + + a schema namespace + + an XMP Property + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + Check some requirements for an UUID: +
    +
  • Length of the UUID is 32
  • +
  • The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23)
  • +
+ +
+ uuid to test + true - this is a well formed UUID, false - UUID has not the expected format +
+ + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + + + Replaces the ASCII control chars with a space. + + + a node value + Returns the cleaned up value + + + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + @since 16.02.2006 + + + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Use NO time zone as default + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZone. + + a date describing an absolute point in time + a TimeZone how to interpret the date + + + + Creates an XMPDateTime-instance from an ISO 8601 string. + + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + @since 29.06.2006 + + + + + the node iterator doing the work + + + + stores the iterator options + + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + + flag to indicate that skipSiblings() has been called. + + + + Constructor with optionsl initial values. If propName is provided, + schemaNs has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNs + advanced iteration options, see + If the node defined by the paramters is not existing. + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + + + + + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + @since 29.06.2006 + + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + + Implementation for . + + @since 17.02.2006 + + + + + Property values are Strings by default + + + + root of the metadata tree + + + + the xpacket processing instructions content + + + + Constructor for an empty metadata object. + + + + + Constructor for a cloned metadata tree. + + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + Returns the root node of the XMP tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for SetProperty() and related calls, used after the node is + found or created. + + + the newly created node + + the node value, can be null + + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + + an int indicating the value type + + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + @since 01.02.2006 + + + + + Hidden constructor, initialises the SAX parser handler. + + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + the parse options + Returns the resulting XMP metadata object + Thrown if parsing or normalisation fails. + + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + Possible improvements: + + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + @since 21.02.2006 + + + + + flag if the node is an alias + + + + list of child nodes, lazy initialized + + + + flag if the node has aliases + + + + flag if the node has an "rdf:value" child node. + + + + flag if the node is implicitly created + + + + name of the node, contains different information depending of the node kind + + + + options describing the kind of the node + + + + link to the parent node + + + + list of qualifier of the node, lazy initialized + + + + value of the node, contains different information depending of the node kind + + + + Creates an XMPNode with initial values. + + the name of the node + the value of the node + the options of the node + + + + Constructor for the node without value. + + the name of the node + the options of the node + + + Returns the parent node. + + + Returns the number of children without neccessarily creating a list. + + + Returns the number of qualifier without neccessarily creating a list. + + + Returns the name. + + + Returns the value. + + + Returns the options. + + + Returns the implicit flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + Returns if the node contains aliases (applies only to schema nodes) + + + the hasValueChild + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + + + Resets the node. + + + + an index [1..size] + Returns the child with the requested index. + + + + Adds a node as child to this node. + an XMPNode + + + + + Adds a node as child to this node. + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + an XMPNode + + + + + Replaces a node with another one. + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + the replacement XMPNode + + + + Removes a child at the requested index. + the index to remove [1..size] + + + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + + Removes all children from the node. + + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + + Removes all qualifiers from the node and sets the options appropriate. + + + + qualifier node name to look for + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + Returns whether the node has children. + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + Returns whether the node has qualifier attached. + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + + Renders this node and the tree unter this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + + Utilities for XMPNode. + + @since Aug 28, 2006 + + + + + Private Constructor + + + + + Find or create a schema node if createNodes is false and + + the root of the xmp tree. + a namespace + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + + the parent node + + the node name to find + + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + + Follow an expanded path expression to find or create a node. + + the node to begin the search. + the complete xpath + flag if nodes shall be created + (when called by setProperty()) + the options for the created leaf nodes (only when + createNodes == true). + Returns the node if found or created or null. + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + the top-most node to delete. + + + + This is setting the value of a leaf node. + + an XMPNode + a value + + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + + the node value to set + Returns the String representation of the node value. + + + + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XmpPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + Returns the index of th + + + + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + + an alt text array node + + + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + + the array node to check if its an alt-text array + + + + Appends a language item to an alt text array. + + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + Looks for the appropriate language item in a text alternative array.item + + + an array node + + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + + @since Aug 18, 2006 + + + + + caches the correct dc-property array forms + + + + init char tables + + + + Hidden constructor + + + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + + Visit all schemas to do general fixes and handle special cases. + + the metadata object implementation + Thrown if the normalisation fails. + + + + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + the property node of the array to repair. + Forwards unexpected exceptions. + + + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + Forwards XMP errors + + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + +
+            1. If there is no dc:rights array, or an empty array -
+               Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
+            
+            2. If there is a dc:rights array but it has no x-default item -
+               Create an x-default item as a copy of the first item then apply rule #3.
+            
+            3. If there is a dc:rights array with an x-default item, 
+               Look for a double linefeed in the value.
+                A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
+                    A1. If they match then leave the x-default value alone.
+                    A2. Otherwise, append a double linefeed and 
+                        the xmpDM:copyright value to the x-default value.
+                B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
+                    B1. If they match then leave the x-default value alone.
+                    B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
+            
+            4. In all cases, delete the xmpDM:copyright property.
+            
+
+ the metadata object + the "dm:copyright"-property +
+ + + Initializes the map that contains the known arrays, that are fixed by + . + + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + @since 27.01.2006 + + + + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + + a map from a namespace URI to its registered prefix + + + + a map from a prefix to the associated namespace URI + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + If the registrations of at least one alias fails. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + @since 11.07.2006 + + + + + Static method to Serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to Serialize to + serialization options, can be null for default. + + + + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see + ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + @since 11.07.2006 + + + + + default padding + + + + The w/r is missing inbetween + + + + a set of all rdf attribute qualifier + + + + the stored serialization options + + + + the output stream to Serialize to + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + this writer is used to do the actual serialization + + + + the metadata object to be serialized. + + + + The actual serialization. + + the metadata object to be serialized + outputStream the output stream to Serialize to + the serialization options + + If case of wrong options or any other serialization error. + + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + +
+ +
+             	<ns:UnqualifiedStructProperty-1
+             		... The fields as attributes, if all are simple and unqualified
+             	/>
+             
+             	<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
+             		... The fields as elements, if none are simple and unqualified
+             	</ns:UnqualifiedStructProperty-2>
+             
+             	<ns:UnqualifiedStructProperty-3>
+             		<rdf:Description
+             			... The simple and unqualified fields as attributes
+             		>
+             			... The compound or qualified fields as elements
+             		</rdf:Description>
+             	</ns:UnqualifiedStructProperty-3>
+             
+             	<ns:UnqualifiedArrayProperty>
+             		<rdf:Bag> or Seq or Alt
+             			... Array items as rdf:li elements, same forms as top level properties
+             		</rdf:Bag>
+             	</ns:UnqualifiedArrayProperty>
+             
+             	<ns:QualifiedProperty rdf:parseType="Resource">
+             		<rdf:value> ... Property "value" 
+             			following the unqualified forms ... </rdf:value>
+             		... Qualifiers looking like named struct fields
+             	</ns:QualifiedProperty>
+            
+ +
+ + *** Consider numbered array items, but has compatibility problems. *** + Consider qualified form with rdf:Description and attributes. +
+ the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. +
+ + + Serializes a simple property. + + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + + Serializes an array property. + + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes a struct property. + + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + +
+ +
+            	<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
+            
+            	<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
+            		<rdf:Description>
+            			... Fields, same forms as top level properties
+            		</rdf:Description>
+            	</ns:UnqualifiedStructProperty>
+            
+            	<ns:ResourceStructProperty rdf:resource="URI"
+            		... Fields as attributes
+            	>
+            
+            	<ns:UnqualifiedArrayProperty>
+            		<rdf:Bag> or Seq or Alt
+            			... Array items as rdf:li elements, same forms as top level properties
+            		</rdf:Bag>
+            	</ns:UnqualifiedArrayProperty>
+            
+            	<ns:QualifiedProperty>
+            		<rdf:Description>
+            			<rdf:value> ... Property "value" following the unqualified 
+            				forms ... </rdf:value>
+            			... Qualifiers looking like named struct fields
+            		</rdf:Description>
+            	</ns:QualifiedProperty>
+            
+ +
+
+ the property node + property shall be rendered as attribute rather than tag + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. +
+ + + Writes the array start and end tags. + + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + + Writes indents and automatically includes the baseindend from the options. + number of indents to write + forwards exception + + + + Writes a char to the output. + a char + forwards writer exceptions + + + + Writes a String to the output. + a String + forwards writer exceptions + + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + + Writes a newline according to the options. + Forwards exception + + + + @since 11.08.2006 + + + + + + + + + + Private constructor, as + + + + + + see {@link XMPUtils#separateArrayItems(XMPMeta, String, String, String, + PropertyOptions, boolean)} + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + + Option flags to control the separation. + + Flag if commas shall be preserved + + + Forwards the Exceptions from the metadata processing + + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + + a schema node + + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + + opened and closing quote in a string + + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + + a char + Return the character kind. + + + + the open quote char + Returns the matching closing quote for an open quote. + + + + Add quotes to the item. + + + the array item + + the open quote character + + the closing quote character + + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + Representates an XMP XmpPath with segment accessor methods. + + @since 28.02.2006 + + + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + + Marks an array index step + + + + stores the segments of an XmpPath + + + + Append a path segment + + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + + Parser for XMP XPaths. + + @since 01.03.2006 + + + Private constructor + + + + @param path + @param pos + @throws XmpException + + + Parses a struct segment + @param pos the current position in the path + @return Retusn the segment or an errror + @throws XmpException If the sement is empty + + + Parses an array index segment. + + @param pos the xmp path + @return Returns the segment or an error + @throws XmpException thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + @param schemaNs the root namespace + @param pos the parsing position helper + @param expandedXPath the path to contribute to + @throws XmpException If the path is not valid. + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + @param qualName + a qualifier name + @throws XmpException + If the name is not conformant + + + Verify if an XML name is conformant. + + @param name + an XML name + @throws XmpException + When the name is not XML conformant + + + + This objects contains all needed char positions to parse. + + + the complete path + the end of a segment name + + + the begin of a step + + + the end of a step + + + + A segment of a parsed XmpPath. + + @since 23.06.2006 + + + + + flag if segment is an alias + + + + alias form if applicable + + + + kind of the path segment + + + + name of the path segment + + + + Constructor with initial values. + + the name of the segment + + + + Constructor with initial values. + + the name of the segment + the kind of the segment + + + Returns the kind. + + + Returns the name. + + + the flag to set + + + Returns the aliasForm if this segment has been created by an alias. + + + + + Returns the year, can be negative. + + + Returns The month in the range 1..12. + + + Returns the day of the month in the range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + Returns the time zone. + + + + Returns the ISO 8601 string representation of the date and time. + + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and Serialize the metadata + to a String, byte-array or OutputStream. + + @since 20.01.2006 + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last existing array + item. + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + Wraps all errors and exceptions that may occur. + + + + Returns the number of items in the array. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + + + + + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use to find + out the length of the array. + the new value of the array item. Has the same usage as propValue in + SetProperty(). + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XmpConst.ARRAY_LAST_ITEM to append items. + the new value of the array item. Has the same usage as + propValue in SetProperty(). + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + + + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + the value of thefield, if the field has a value. + Has the same usage as propValue in GetProperty. + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in GetProperty. + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. Has the same usage as in GetProperty. + + + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns true if the property exists. + + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + GetProperty(). + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + Returns true if the array exists, false otherwise. + + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + Returns true if the field exists. + + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty(). + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + Returns true if the qualifier exists. + + + + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + GetProperty(). + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + + These are very similar to GetProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Boolean value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns an Integer value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Long value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Double value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a XMPDateTime-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Java Calendar-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + Note: There is no SetPropertyString(), + because SetProperty() sets a string value. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a String value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as Java Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + Option flags to control the iteration. See for + details. + Returns an XMPIterator for this XMPMeta-object + considering the given options. + Wraps all errors and exceptions that may occur. + + + + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + + Determines if a name is an alias, and what it is aliased to. + + + The namespace URI of the alias. Must not be null or the empty + string. + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + + Searches for registered aliases. + + + an XML conform qname + Returns if an alias definition for the given qname to another + schema and property is registered. + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + Options for XMPSchemaRegistryImpl#registerAlias. + + @since 20.02.2006 + + + + + This is a direct mapping. The actual data type does not matter. + + + + The actual is an unordered array, the alias is to the first element of the array. + + + + The actual is an ordered array, the alias is to the first element of the array. + + + + The actual is an alternate array, the alias is to the first element of the array. + + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + + returns a s object + If the options are not consistant. + + + + + Options for XMPIterator construction. + + @since 24.01.2006 + + + + + Just do the immediate children of the root, default is subtree. + + + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + + Return just the leaf part of the path, default is the full path. + + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + + + + Options for . + + @since 24.01.2006 + + + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + + Do not reconcile alias differences, throw an exception instead. + + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + + Sets the options to the default values. + + + + Returns the requireXMPMeta. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the option "omit normalization". + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + @since 03.07.2006 + + + + + may be used in the future + + + + Updated by iText. Indicates if the property should be writted as a separate node + + + + + Default constructor + + + + + Intialization constructor + + the initialization options + If the options are not valid + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + the value to set + Returns this to enable cascaded options. + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns true if only array options are set. + + + + + Compares two options set for array compatibility. + + other options + Returns true if the array options of the sets are equal. + + + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + other options + If illegal options are provided + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + @since 24.01.2006 + + + + + Omit the XML packet wrapper. + + + + Mark packet as read-only. Default is a writeable packet. + + + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To Serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + + Use the canonical form of RDF if set. By default the compact form is used + + + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + + + Sort the struct properties and qualifier before serializing + + + + Bit indicating little endian encoding, unset is big endian + + + + Bit indication UTF16 encoding. + + + + UTF8 encoding; this is the default + + + + UTF16BE encoding + + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + + Default constructor. + + + + + Constructor using inital options + the inital options + Thrown if options are not consistant. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the baseIndent. + + + Returns the indent. + + + Returns the newline. + + + Returns the padding. + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + Returns the encoding as Java encoding String. + + + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + @since 24.01.2006 + + + + + a map containing the bit names + + + + the internal int containing all options + + + + The default constructor. + + + + + Constructor with the options bit mask. + + the options bit mask + If the options are not correct + + + + Is friendly to access it during the tests. + Returns the options. + + + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + Returns a String listing all options that are set to true by their name, + like "option1 | option4". + + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + + Resets the options. + + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + + + Returns the options as hex bitmask. + + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional -method is called. + + the options to check + Thrown if the options are invalid. + + + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + This interface is used to return info about an alias. + + @since 27.01.2006 + + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + + @since 23.01.2006 + + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + Returns the language of the alt-text item. + + + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + @since 06.07.2006 + + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + Common constants for the XMP Toolkit. + + @since 20.01.2006 + + + + + The XML namespace for XML. + + + + The XML namespace for RDF. + + + + The XML namespace for the Dublin Core schema. + + + + The XML namespace for the IPTC Core schema. + + + + The XML namespace for the IPTC Extension schema. + + + + The XML namespace for the DICOM medical schema. + + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + + The XML namespace Adobe XMP Metadata. + + + + The XML namespace for the XMP "basic" schema. + + + + The XML namespace for the XMP copyright schema. + + + + The XML namespace for the XMP digital asset management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the Photoshop custom schema. + + + + The XML namespace for the Photoshop Album schema. + + + + The XML namespace for Adobe's EXIF schema. + + + + NS for the CIPA XMP for Exif document v1.1 + + + + The XML namespace for Adobe's TIFF schema. + + + + BExt Schema + + + + RIFF Info Schema + + + + Transform XMP + + + + Adobe Flash SWF + + + + legacy Dublin Core NS, will be converted to NS_DC + + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + + The XML namespace for fields of the Dimensions type. + + + + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + + The XML namespace for fields of the ResourceEvent type. + + + + The XML namespace for fields of the ResourceRef type. + + + + The XML namespace for fields of the Version type. + + + + The XML namespace for fields of the JobRef type. + + + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + + Index that has the meaning to be always the last item in an array. + + + + Node name of an array item. + + + + The x-default string for localized properties + + + + xml:lang qualfifier + + + + rdf:type qualfifier + + + + Processing Instruction (PI) for xmp packet + + + + XMP meta tag version new + + + + XMP meta tag version old + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + @since 16.02.2006 + + + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + + + + Creates an XMPDateTime from an ISO 8601 string. + + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + When the ISO 8601 string is non-conform + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + Returns an updated XMPDateTime-object. + + + + @since 21.09.2006 + + + + + Note: This is an error code introduced by Java. + + + + This exception wraps all errors that occur in the XMP Toolkit. + + @since 16.02.2006 + + + + + the errorCode of the XMP toolkit + + + + Constructs an exception with a message and an error code. + the message + the error code + + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Creates XMPMeta-instances from an InputStream + + @since 30.01.2006 + + + + + The singleton instance of the XMPSchemaRegistry. + + + + + cache for version info + + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + + + + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into an OutputStream. + + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + + Resets the _schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNs and + "i" is the decimal representation of itemIndex. + Throws exeption if index zero is used. + + + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + The name of the field. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNs and "fNS" is the prefix for fieldNs. + Thrown if the path to create is not valid. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNs and "qNS" is the prefix for qualNs. + Thrown if the path to create is not valid. + + + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNs. + + + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + @since 21.02.2006 + + + + + Private constructor + + + + Create a single edit string from an array of strings. + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + Separate a single edit string into an array of strings. + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Forwards the Exceptions from the metadata processing + + + + + + Convert from boolean to string. + + + a boolean value + The XMP string representation of the boolean. The values used are + given by the constnts and + . + + + + Converts a string value to an int. + + + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + + + an int value + The string representation of the int. + + + + Converts a string value to a long. + + + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to a double. + + + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to an XMPDateTime. + + + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + + + an XMPDateTime + The string representation of the long. + + + + Convert from a byte array to a base64 encoded string. + + + the byte array to be converted + Returns the base64 string. + + + + Decode from Base64 encoded string to raw data. + + + a base64 encoded string + Returns a byte array containg the decoded string. + Thrown if the given string is not property base64 encoded + + + + Implementation of the IndicLigaturizer for Devanagari. + + Warning: this is an incomplete and experimental implementation of Devanagari. This implementation should not be used in production. + + + Constructor for the IndicLigaturizer for Devanagari. + + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + @author Paulo Soares + + + + Add + args: ByVal key As IComparable, ByVal data As Object + key is object that implements IComparable interface + performance tip: change to use use int type (such as the hashcode) + + + + + RestoreAfterInsert + Additions to red-black trees usually destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + RotateLeft + Rebalance the tree by rotating the nodes to the left + + + + + RotateRight + Rebalance the tree by rotating the nodes to the right + + + + + + + + + + + + + + + + + RestoreAfterDelete + Deletions from red-black trees may destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + + + + Key + + + + + Data + + + + + Determine order, walk the tree and push the nodes onto the stack + + + + + HasMoreElements + + + + + NextElement + + + + + MoveNext + For .NET compatibility + + + + + Key + + + + + Data + + + + + Color + + + + + Left + + + + + Right + + + + + Provides the base class for a generic read-only dictionary. + + + The type of keys in the dictionary. + + + The type of values in the dictionary. + + + + An instance of the ReadOnlyDictionary generic class is + always read-only. A dictionary that is read-only is simply a + dictionary with a wrapper that prevents modifying the + dictionary; therefore, if changes are made to the underlying + dictionary, the read-only dictionary reflects those changes. + See for a modifiable version of + this class. + + + Notes to Implementers This base class is provided to + make it easier for implementers to create a generic read-only + custom dictionary. Implementers are encouraged to extend this + base class instead of creating their own. + + + + + + Initializes a new instance of the + class that wraps + the supplied . + + The + that will be wrapped. + + Thrown when the dictionary is null. + + + + + Gets the number of key/value pairs contained in the + . + + The number of key/value pairs. + The number of key/value pairs contained in the + . + + + Gets a collection containing the keys in the + . + A + containing the keys. + A + + containing the keys in the + . + + + + + Gets a collection containing the values of the + . + + The collection of values. + + + Gets a value indicating whether the dictionary is read-only. + This value will always be true. + + + + Gets a value indicating whether access to the dictionary + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to dictionary. + + + + + Gets or sets the value associated with the specified key. + + + The value associated with the specified key. If the specified key + is not found, a get operation throws a + , + and a set operation creates a new element with the specified key. + + The key of the value to get or set. + + Thrown when the key is null. + + + The property is retrieved and key does not exist in the collection. + + + + This method is not supported by the + . + + The object to use as the key of the element to add. + + The object to use as the value of the element to add. + + + Determines whether the + contains the specified key. + + True if the contains + an element with the specified key; otherwise, false. + + The key to locate in the + . + + Thrown when the key is null. + + + + + This method is not supported by the . + + The key of the element to remove. + + True if the element is successfully removed; otherwise, false. + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value + associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. + This parameter is passed uninitialized. + + true if the contains + an element with the specified key; otherwise, false. + + + + This method is not supported by the + . + + The object to add to the . + + + + This method is not supported by the + . + + + + Determines whether the contains a + specific value. + + + The object to locate in the . + + + true if item is found in the ICollection; + otherwise, false. + + + + + Copies the elements of the ICollection to an Array, starting at a + particular Array index. + + The one-dimensional Array that is the + destination of the elements copied from ICollection. + The Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + This method is not supported by the + . + + The object to remove from the ICollection. + + Will never return a value. + + + + Returns an enumerator that iterates through the collection. + + + A IEnumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + For a description of this member, see . + + + The one-dimensional Array that is the destination of the elements copied from + ICollection. The Array must have zero-based indexing. + + + The zero-based index in Array at which copying begins. + + + + + Summary description for ListIterator. + + + + + Summary description for Properties. + + + + + Summary description for Util. + + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.config b/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.config new file mode 100644 index 0000000..c294af8 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.config @@ -0,0 +1,65 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.dll new file mode 100644 index 0000000..8646b6f Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.dll differ diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.xml b/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.xml new file mode 100644 index 0000000..dee43d6 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/调度器/Debug/log4net.xml @@ -0,0 +1,32450 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Prepare entire database command object to be executed. + + The command to prepare. + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Ansi code to reset terminal + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Defaults to %logger + + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. + For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Syslog port 514 + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Send the email message + + the body text to include in the mail + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + trims leading and trailing commas or semicolons + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + The logger that this object is wrapping + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + returns a stack frame item from a stack frame. This + + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + The global context properties instance + + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Initializes a new instance of the class. + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + + + + + + + + + + + + + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + Total number of bytes written. + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + The singleton instance of the . + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + See + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Format + + + + + Args + + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + diff --git a/采集器3.5框架封装包2023-10-26/调度器/Debug/x86/SQLite.Interop.dll b/采集器3.5框架封装包2023-10-26/调度器/Debug/x86/SQLite.Interop.dll new file mode 100644 index 0000000..1395272 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/调度器/Debug/x86/SQLite.Interop.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/BouncyCastle.Crypto.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/BouncyCastle.Crypto.dll new file mode 100644 index 0000000..9059e64 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/BouncyCastle.Crypto.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.dll new file mode 100644 index 0000000..de94175 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.dll.config b/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.dll.config new file mode 100644 index 0000000..d5d0df3 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.dll.config @@ -0,0 +1,14 @@ + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.pdb new file mode 100644 index 0000000..10469f0 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/CollectorFramework.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.dll new file mode 100644 index 0000000..6b0519c Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.dll.config b/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.dll.config new file mode 100644 index 0000000..a388a5b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.dll.config @@ -0,0 +1,12 @@ + + + +
+ + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.pdb new file mode 100644 index 0000000..35b39f6 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/CommonUtils.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.dll new file mode 100644 index 0000000..a6560bb Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.dll.config b/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.dll.config new file mode 100644 index 0000000..497a120 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.dll.config @@ -0,0 +1,19 @@ + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.pdb new file mode 100644 index 0000000..eeeea5a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/DataBridge.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Emgu.CV.World.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/Emgu.CV.World.dll new file mode 100644 index 0000000..9c75eb3 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/Emgu.CV.World.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Emgu.CV.World.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/Emgu.CV.World.xml new file mode 100644 index 0000000..3f6f817 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/Emgu.CV.World.xml @@ -0,0 +1,36189 @@ + + + + Emgu.CV.World + + + + + Wrapped CvArr + + The type of elements in this CvArray + + + + The size of the elements in the CvArray, it is the cached value of Marshal.SizeOf(typeof(TDepth)). + + + + + The pinned GCHandle to _array; + + + + + Get or set the Compression Ratio for serialization. A number between 0 - 9. + 0 means no compression at all, while 9 means best compression + + + + + Get the size of element in bytes + + + + The pointer to the internal structure + + + + Get the size of the array + + + + + Get the width (Cols) of the cvArray. + If ROI is set, the width of the ROI + + + + + Get the height (Rows) of the cvArray. + If ROI is set, the height of the ROI + + + + + Get the number of channels of the array + + + + + The number of rows for this array + + + + + The number of cols for this array + + + + + Get or Set an Array of bytes that represent the data in this array + + Should only be used for serialization & deserialization + + + + Get the underneath managed array + + + + + Allocate data for the array + + The number of rows + The number of columns + The number of channels of this cvArray + + + + Sum of diagonal elements of the matrix + + + + + The norm of this Array + + + + + Calculates and returns the Euclidean dot product of two arrays. + src1 dot src2 = sumI(src1(I)*src2(I)) + + In case of multiple channel arrays the results for all channels are accumulated. In particular, cvDotProduct(a,a), where a is a complex vector, will return ||a||^2. The function can process multi-dimensional arrays, row by row, layer by layer and so on. + The other Array to apply dot product with + src1 dot src2 + + + + Check that every array element is neither NaN nor +- inf. The functions also check that each value + is between and . in the case of multi-channel arrays each channel is processed + independently. If some values are out of range, position of the first outlier is stored in pos, + and then the functions return false. + + The inclusive lower boundary of valid values range + The exclusive upper boundary of valid values range + This will be filled with the position of the first outlier + True if all values are in range + + + + Reduces matrix to a vector by treating the matrix rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained. + + + The function can be used to compute horizontal and vertical projections of an raster image. + In case of CV_REDUCE_SUM and CV_REDUCE_AVG the output may have a larger element bit-depth to preserve accuracy. + And multi-channel arrays are also supported in these two reduction modes + + The destination single-row/single-column vector that accumulates somehow all the matrix rows/columns + The dimension index along which the matrix is reduce. + The reduction operation type + The type of depth of the reduced array + + + + Copy the current array to + + The destination Array + + + + Set the element of the Array to , using the specific + + The value to be set + The mask for the operation + + + + Set the element of the Array to , using the specific + + The value to be set + The mask for the operation + + + + Inplace fills Array with uniformly distributed random numbers + + the inclusive lower boundary of random numbers range + the exclusive upper boundary of random numbers range + + + + Inplace fills Array with normally distributed random numbers + + The mean value of random numbers + The standard deviation of random numbers + + + + Initializes scaled identity matrix + + The value on the diagonal + + + + Set the values to zero + + + + + Initialize the identity matrix + + + + + Inplace multiply elements of the Array by + + The scale to be multiplyed + + + + Inplace elementwise multiply the current Array with + + The other array to be elementwise multiplied with + + + + Free the _dataHandle if it is set + + + + + Inplace compute the elementwise minimum value + + The value to compare with + + + + Inplace elementwise minimize the current Array with + + The other array to be elementwise minimized with this array + + + + Inplace compute the elementwise maximum value with + + The value to be compare with + + + + Inplace elementwise maximize the current Array with + + The other array to be elementwise maximized with this array + + + + Inplace And operation with + + The other array to perform AND operation + + + + Inplace Or operation with + + The other array to perform OR operation + + + + Inplace compute the complement for all array elements + + + + + Save the CvArray as image + + The name of the image to save + + + + Get the xml schema + + The xml schema + + + + Function to call when deserializing this object from XML + + The xml reader + + + + Function to call when serializing this object to XML + + The xml writer + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + The Mat header that represent this CvArr + + + + + Get the Mat header that represent this CvArr + + + + + The unmanaged pointer to the input array. + + The input array + + + + The unmanaged pointer to the output array. + + The output array + + + + The unmanaged pointer to the input output array. + + The input output array + + + + Get the umat representation of this mat + + The UMat + + + + Wrapper for cv::String. This class support UTF-8 chars. + + + + + Create a CvString from System.String + + The System.String object to be converted to CvString + + + + Create an empty CvString + + + + + Get the string representation of the CvString + + The string representation of the CvString + + + + Gets the length of the string + + + The length of the string + + + + + Release all the unmanaged resource associated with this object. + + + + + Class that provide access to native OpenCV functions + + + + + Release the InputArray + + Pointer to the input array + + + + Release the input / output array + + Pointer to the input output array + + + + Release the input / output array + + Pointer to the input / output array + + + + Returns list of all builtin backends + + + + + Returns list of available backends which works via cv::VideoCapture(int index) + + + + + Returns list of available backends which works via cv::VideoCapture(filename) + + + + + Returns list of available backends which works via cv::VideoWriter() + + + + + Creates video writer structure. + + Name of the output video file. + 4-character code of codec used to compress the frames. For example, CV_FOURCC('P','I','M','1') is MPEG-1 codec, CV_FOURCC('M','J','P','G') is motion-jpeg codec etc. + Framerate of the created video stream. + Size of video frames. + If != 0, the encoder will expect and encode color frames, otherwise it will work with grayscale frames + The video writer + + + + Finishes writing to video file and releases the structure. + + pointer to video file writer structure + + + + Writes/appends one frame to video file. + + video writer structure. + the written frame + True on success, false otherwise + + + + Check to make sure all the unmanaged libraries are loaded + + True if library loaded + + + + string marshaling type + + + + + Represent a bool value in C++ + + + + + Represent a int value in C++ + + + + + Opencv's calling convention + + + + + Attempts to load opencv modules from the specific location + + The directory where the unmanaged modules will be loaded. If it is null, the default location will be used. + The names of opencv modules. e.g. "opencv_cxcore.dll" on windows. + True if all the modules has been loaded successfully + If is null, the default location on windows is the dll's path appended by either "x64" or "x86", depends on the applications current mode. + + + + Get the module format string. + + On Windows, "{0}".dll will be returned; On Linux, "lib{0}.so" will be returned; Otherwise {0} is returned. + + + + Attempts to load opencv modules from the specific location + + The names of opencv modules. e.g. "opencv_cxcore.dll" on windows. + True if all the modules has been loaded successfully + + + + Static Constructor to setup opencv environment + + + + + Get the corresponding depth type + + The opencv depth type + The equivalent depth type + + + + Get the corresponding opencv depth type + + The element type + The equivalent opencv depth type + + + + This function performs the same as MakeType macro + + The type of depth + The number of channels + An interger tha represent a mat type + + + + Check if the size of the C structures match those of C# + + True if the size matches + + + + Finds perspective transformation H=||h_ij|| between the source and the destination planes + + Point coordinates in the original plane + Point coordinates in the destination plane + FindHomography method + + The maximum allowed reprojection error to treat a point pair as an inlier. + The parameter is only used in RANSAC-based homography estimation. + E.g. if dst_points coordinates are measured in pixels with pixel-accurate precision, it makes sense to set this parameter somewhere in the range ~1..3 + + Optional output mask set by a robust method ( CV_RANSAC or CV_LMEDS ). Note that the input mask values are ignored. + The 3x3 homography matrix if found. Null if not found. + + + + Finds perspective transformation H=||hij|| between the source and the destination planes + + Point coordinates in the original plane, 2xN, Nx2, 3xN or Nx3 array (the latter two are for representation in homogeneous coordinates), where N is the number of points. + Point coordinates in the destination plane, 2xN, Nx2, 3xN or Nx3 array (the latter two are for representation in homogeneous coordinates) + The type of the method + The maximum allowed re-projection error to treat a point pair as an inlier. The parameter is only used in RANSAC-based homography estimation. E.g. if dst_points coordinates are measured in pixels with pixel-accurate precision, it makes sense to set this parameter somewhere in the range ~1..3 + The optional output mask set by a robust method (RANSAC or LMEDS). + Output 3x3 homography matrix. Homography matrix is determined up to a scale, thus it is normalized to make h33=1 + + + + Converts a rotation vector to rotation matrix or vice versa. Rotation vector is a compact representation of rotation matrix. Direction of the rotation vector is the rotation axis and the length of the vector is the rotation angle around the axis. + + The input rotation vector (3x1 or 1x3) or rotation matrix (3x3). + The output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively + Optional output Jacobian matrix, 3x9 or 9x3 - partial derivatives of the output array components w.r.t the input array components + + + + Calculates an essential matrix from the corresponding points in two images. + + Array of N (N >= 5) 2D points from the first image. The point coordinates should be floating-point (single or double precision). + Array of the second image points of the same size and format as points1 + Camera matrix K=[[fx 0 cx][0 fy cy][0 0 1]]. Note that this function assumes that points1 and points2 are feature points from cameras with the same camera matrix. + Method for computing a fundamental matrix. RANSAC for the RANSAC algorithm. LMEDS for the LMedS algorithm + Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of confidence (probability) that the estimated matrix is correct. + Parameter used for RANSAC. It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise. + Output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. The array is computed only in the RANSAC and LMedS methods. + The essential mat + + + + Calculates fundamental matrix using one of four methods listed above and returns the number of fundamental matrices found (1 or 3) and 0, if no matrix is found. + + Array of N points from the first image. The point coordinates should be floating-point (single or double precision). + Array of the second image points of the same size and format as points1 + Method for computing the fundamental matrix + Parameter used for RANSAC. It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise. + Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of confidence (probability) that the estimated matrix is correct. + The optional pointer to output array of N elements, every element of which is set to 0 for outliers and to 1 for the "inliers", i.e. points that comply well with the estimated epipolar geometry. The array is computed only in RANSAC and LMedS methods. For other methods it is set to all 1. + The calculated fundamental matrix + + + + For every point in one of the two images of stereo-pair the function cvComputeCorrespondEpilines finds equation of a line that contains the corresponding point (i.e. projection of the same 3D point) in the other image. Each line is encoded by a vector of 3 elements l=[a,b,c]^T, so that: + l^T*[x, y, 1]^T=0, or + a*x + b*y + c = 0 + From the fundamental matrix definition (see cvFindFundamentalMatrix discussion), line l2 for a point p1 in the first image (which_image=1) can be computed as: + l2=F*p1 and the line l1 for a point p2 in the second image (which_image=1) can be computed as: + l1=F^T*p2Line coefficients are defined up to a scale. They are normalized (a2+b2=1) are stored into correspondent_lines + + The input points. 2xN, Nx2, 3xN or Nx3 array (where N number of points). Multi-channel 1xN or Nx1 array is also acceptable. + Index of the image (1 or 2) that contains the points + Fundamental matrix + Computed epilines, 3xN or Nx3 array + + + + Converts points from Euclidean to homogeneous space. + + Input vector of N-dimensional points. + Output vector of N+1-dimensional points. + + + + Converts points from homogeneous to Euclidean space. + + Input vector of N-dimensional points. + Output vector of N-1-dimensional points. + + + + Transforms 1-channel disparity map to 3-channel image, a 3D surface. + + Disparity map + 3-channel, 16-bit integer or 32-bit floating-point image - the output map of 3D points + The reprojection 4x4 matrix, can be arbitrary, e.g. the one, computed by cvStereoRectify + Indicates, whether the function should handle missing values (i.e. points where the disparity was not computed). + If handleMissingValues=true, then pixels with the minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) + are transformed to 3D points with a very large Z value (currently set to 10000). + The optional output array depth. If it is -1, the output image will have CV_32F depth. ddepth can also be set to CV_16S, CV_32S or CV_32F. + + + + Returns the new camera matrix based on the free scaling parameter. + + Input camera matrix. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,?x,?y]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Original image size. + Free scaling parameter between 0 (when all the pixels in the undistorted image are valid) and 1 (when all the source image pixels are retained in the undistorted image). + Image size after rectification. By default,it is set to imageSize . + output rectangle that outlines all-good-pixels region in the undistorted image. + indicates whether in the new camera matrix the principal point should be at the image center or not. By default, the principal point is chosen to best fit a subset of the source image (determined by alpha) to the corrected image. + The new camera matrix based on the free scaling parameter. + + + + Finds an initial camera matrix from 3D-2D point correspondences. + + Vector of vectors of the calibration pattern points in the calibration pattern coordinate space. + Vector of vectors of the projections of the calibration pattern points. + Image size in pixels used to initialize the principal point. + If it is zero or negative, both fx and fy are estimated independently. Otherwise, fx=fy*aspectRatio. + An initial camera matrix for the camera calibration process. + Currently, the function only supports planar calibration patterns, which are patterns where each object point has z-coordinate =0. + + + + Computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. + Optionally, the function computes jacobians - matrices of partial derivatives of image points as functions of all the input parameters w.r.t. the particular parameters, intrinsic and/or extrinsic. + The jacobians are used during the global optimization in cvCalibrateCamera2 and cvFindExtrinsicCameraParams2. + The function itself is also used to compute back-projection error for with current intrinsic and extrinsic parameters. + + Note, that with intrinsic and/or extrinsic parameters set to special values, the function can be used to compute just extrinsic transformation or just intrinsic transformation (i.e. distortion of a sparse set of points) + The array of object points. + The rotation vector, 1x3 or 3x1 + The translation vector, 1x3 or 3x1 + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's + The output array of image points, 2xN or Nx2, where N is the total number of points in the view + Aspect ratio + Optional output 2Nx(10+<numDistCoeffs>) jacobian matrix of derivatives of image points with respect to components of the rotation vector, translation vector, focal lengths, coordinates of the principal point and the distortion coefficients. In the old interface different components of the jacobian are returned via different output parameters. + The array of image points which is the projection of + + + + Computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. Optionally, the function computes jacobians - matrices of partial derivatives of image points as functions of all the input parameters w.r.t. the particular parameters, intrinsic and/or extrinsic. The jacobians are used during the global optimization in cvCalibrateCamera2 and cvFindExtrinsicCameraParams2. The function itself is also used to compute back-projection error for with current intrinsic and extrinsic parameters. + Note, that with intrinsic and/or extrinsic parameters set to special values, the function can be used to compute just extrinsic transformation or just intrinsic transformation (i.e. distortion of a sparse set of points). + + The array of object points, 3xN or Nx3, where N is the number of points in the view + The rotation vector, 1x3 or 3x1 + The translation vector, 1x3 or 3x1 + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's + The output array of image points, 2xN or Nx2, where N is the total number of points in the view + Aspect ratio + Optional output 2Nx(10+<numDistCoeffs>) jacobian matrix of derivatives of image points with respect to components of the rotation vector, translation vector, focal lengths, coordinates of the principal point and the distortion coefficients. In the old interface different components of the jacobian are returned via different output parameters. + + + + Estimates intrinsic camera parameters and extrinsic parameters for each of the views + + The 3D location of the object points. The first index is the index of image, second index is the index of the point + The 2D image location of the points. The first index is the index of the image, second index is the index of the point + The size of the image, used only to initialize intrinsic camera matrix + The output 3xM or Mx3 array of rotation vectors (compact representation of rotation matrices, see cvRodrigues2). + The output 3xM or Mx3 array of translation vectors/// cCalibration type + The termination criteria + The output camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS and/or CV_CALIB_FIX_ASPECT_RATION are specified, some or all of fx, fy, cx, cy must be initialized + The output 4x1 or 1x4 vector of distortion coefficients [k1, k2, p1, p2] + The final reprojection error + + + + Estimates intrinsic camera parameters and extrinsic parameters for each of the views + + The joint matrix of object points, 3xN or Nx3, where N is the total number of points in all views + The joint matrix of corresponding image points, 2xN or Nx2, where N is the total number of points in all views + Size of the image, used only to initialize intrinsic camera matrix + The output camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS and/or CV_CALIB_FIX_ASPECT_RATION are specified, some or all of fx, fy, cx, cy must be initialized + The output 4x1 or 1x4 vector of distortion coefficients [k1, k2, p1, p2] + The output 3xM or Mx3 array of rotation vectors (compact representation of rotation matrices, see cvRodrigues2). + The output 3xM or Mx3 array of translation vectors + Different flags + The termination criteria + The final reprojection error + + + + Computes various useful camera (sensor/lens) characteristics using the computed camera calibration matrix, image frame resolution in pixels and the physical aperture size + + The matrix of intrinsic parameters + Image size in pixels + Aperture width in real-world units (optional input parameter). Set it to 0 if not used + Aperture width in real-world units (optional input parameter). Set it to 0 if not used + Field of view angle in x direction in degrees + Field of view angle in y direction in degrees + Focal length in real-world units + The principal point in real-world units + The pixel aspect ratio ~ fy/f + + + + Estimates extrinsic camera parameters using known intrinsic parameters and extrinsic parameters for each view. The coordinates of 3D object points and their correspondent 2D projections must be specified. This function also minimizes back-projection error. + + The array of object points + The array of corresponding image points + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's. + The output 3x1 or 1x3 rotation vector (compact representation of a rotation matrix, see cvRodrigues2). + The output 3x1 or 1x3 translation vector + Use the input rotation and translation parameters as a guess + Method for solving a PnP problem + True if successful + + + + Estimates extrinsic camera parameters using known intrinsic parameters and extrinsic parameters for each view. The coordinates of 3D object points and their correspondent 2D projections must be specified. This function also minimizes back-projection error + + The array of object points, 3xN or Nx3, where N is the number of points in the view + The array of corresponding image points, 2xN or Nx2, where N is the number of points in the view + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. If it is IntPtr.Zero, all distortion coefficients are considered 0's. + The output 3x1 or 1x3 rotation vector (compact representation of a rotation matrix, see cvRodrigues2). + The output 3x1 or 1x3 translation vector + Use the input rotation and translation parameters as a guess + Method for solving a PnP problem + True if successful + + + + Finds an object pose from 3D-2D point correspondences using the RANSAC scheme. + + Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3D32f can be also passed here. + Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPointF can be also passed here. + Input camera matrix + Input vector of distortion coefficients of 4, 5, 8 or 12 elements. If the vector is null/empty, the zero distortion coefficients are assumed. + Output rotation vector + Output translation vector. + If true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them. + Number of iterations. + Inlier threshold value used by the RANSAC procedure. The parameter value is the maximum allowed distance between the observed and computed point projections to consider it an inlier. + The probability that the algorithm produces a useful result. + Output vector that contains indices of inliers in objectPoints and imagePoints . + Method for solving a PnP problem + True if successful + + + + Finds an object pose from 3 3D-2D point correspondences. + + Array of object points in the object coordinate space, 3x3 1-channel or 1x3/3x1 3-channel. VectorOfPoint3f can be also passed here. + Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel. VectorOfPoint2f can be also passed here. + Input camera matrix A=[[fx 0 0] [0 fy 0] [cx cy 1]] . + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Output rotation vectors (see Rodrigues ) that, together with tvecs , brings points from the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions. + Output translation vectors. + Method for solving a P3P problem: either P3P or AP3P + Number of solutions + + + + Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution + + Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3f can also be passed here. + Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPoint2f can also be passed here. + Input camera matrix A=[[fx,0,0],[0,fy,0][cx,cy,1]]. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Input/Output rotation vector (see Rodrigues ) that, together with tvec, brings points from the model coordinate system to the camera coordinate system. Input values are used as an initial solution. + Input/Output translation vector. Input values are used as an initial solution. + Criteria when to stop the Levenberg-Marquard iterative algorithm. + + + + Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution. + + Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3f can also be passed here. + Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPoint2f can also be passed here. + Input camera matrix A=[[fx,0,0],[0,fy,0][cx,cy,1]]. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Input/Output rotation vector (see Rodrigues ) that, together with tvec, brings points from the model coordinate system to the camera coordinate system. Input values are used as an initial solution. + Input/Output translation vector. Input values are used as an initial solution. + Criteria when to stop the Levenberg-Marquard iterative algorithm. + Gain for the virtual visual servoing control law, equivalent to the α gain in the Damped Gauss-Newton formulation. + + + + Finds an object pose from 3D-2D point correspondences. + + Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. VectorOfPoint3f can also be passed here. + Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. VectorOfPoint2f can also be passed here. + Input camera matrix A=[[fx,0,0],[0,fy,0][cx,cy,1]]. + Input vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6[,s1,s2,s3,s4[,τx,τy]]]]) of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. + Vector of output rotation vectors (see Rodrigues ) that, together with tvecs, brings points from the model coordinate system to the camera coordinate system. + Vector of output translation vectors. + Parameter used for SOLVEPNP_ITERATIVE. If true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them. + Method for solving a PnP problem + Rotation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE and useExtrinsicGuess is set to true. + Translation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE and useExtrinsicGuess is set to true. + Optional vector of reprojection error, that is the RMS error between the input image points and the 3D object points projected with the estimated pose. + + + + + Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the first camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2) - we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that: + R2=R*R1, + T2=R*T1 + T + + The 3D location of the object points. The first index is the index of image, second index is the index of the point + The 2D image location of the points for camera 1. The first index is the index of the image, second index is the index of the point + The 2D image location of the points for camera 2. The first index is the index of the image, second index is the index of the point + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + Size of the image, used only to initialize intrinsic camera matrix + The rotation matrix between the 1st and the 2nd cameras' coordinate systems + The translation vector between the cameras' coordinate systems + The optional output essential matrix + The optional output fundamental matrix + Termination criteria for the iterative optimization algorithm + The calibration flags + The final value of the re-projection error. + + + + Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the fist camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2) - we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that: + R2=R*R1, + T2=R*T1 + T + + The joint matrix of object points, 3xN or Nx3, where N is the total number of points in all views + The joint matrix of corresponding image points in the views from the 1st camera, 2xN or Nx2, where N is the total number of points in all views + The joint matrix of corresponding image points in the views from the 2nd camera, 2xN or Nx2, where N is the total number of points in all views + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + The input/output camera matrices [fxk 0 cxk; 0 fyk cyk; 0 0 1]. If CV_CALIB_USE_INTRINSIC_GUESS or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of the elements of the matrices must be initialized + The input/output vectors of distortion coefficients for each camera, 4x1, 1x4, 5x1 or 1x5 + Size of the image, used only to initialize intrinsic camera matrix + The rotation matrix between the 1st and the 2nd cameras' coordinate systems + The translation vector between the cameras' coordinate systems + The optional output essential matrix + The optional output fundamental matrix + Termination criteria for the iterative optimization algorithm + The calibration flags + The final value of the re-projection error. + + + + Computes the rectification transformations without knowing intrinsic parameters of the cameras and their relative position in space, hence the suffix "Uncalibrated". Another related difference from cvStereoRectify is that the function outputs not the rectification transformations in the object (3D) space, but the planar perspective transformations, encoded by the homography matrices H1 and H2. The function implements the following algorithm [Hartley99]. + + + Note that while the algorithm does not need to know the intrinsic parameters of the cameras, it heavily depends on the epipolar geometry. Therefore, if the camera lenses have significant distortion, it would better be corrected before computing the fundamental matrix and calling this function. For example, distortion coefficients can be estimated for each head of stereo camera separately by using cvCalibrateCamera2 and then the images can be corrected using cvUndistort2 + + The array of 2D points + The array of 2D points + Fundamental matrix. It can be computed using the same set of point pairs points1 and points2 using cvFindFundamentalMat + Size of the image + The rectification homography matrices for the first images + The rectification homography matrices for the second images + If the parameter is greater than zero, then all the point pairs that do not comply the epipolar geometry well enough (that is, the points for which fabs(points2[i]T*F*points1[i])>threshold) are rejected prior to computing the homographies + True if successful + + + + computes the rotation matrices for each camera that (virtually) make both camera image planes the same plane. Consequently, that makes all the epipolar lines parallel and thus simplifies the dense stereo correspondence problem. On input the function takes the matrices computed by cvStereoCalibrate and on output it gives 2 rotation matrices and also 2 projection matrices in the new coordinates. The function is normally called after cvStereoCalibrate that computes both camera matrices, the distortion coefficients, R and T + + The camera matrices [fx_k 0 cx_k; 0 fy_k cy_k; 0 0 1] + The camera matrices [fx_k 0 cx_k; 0 fy_k cy_k; 0 0 1] + The vectors of distortion coefficients for first camera, 4x1, 1x4, 5x1 or 1x5 + The vectors of distortion coefficients for second camera, 4x1, 1x4, 5x1 or 1x5 + Size of the image used for stereo calibration + The rotation matrix between the 1st and the 2nd cameras' coordinate systems + The translation vector between the cameras' coordinate systems + 3x3 Rectification transforms (rotation matrices) for the first camera + 3x3 Rectification transforms (rotation matrices) for the second camera + 3x4 Projection matrices in the new (rectified) coordinate systems + 3x4 Projection matrices in the new (rectified) coordinate systems + The optional output disparity-to-depth mapping matrix, 4x4, see cvReprojectImageTo3D. + The operation flags, use ZeroDisparity for default + Use -1 for default + Use Size.Empty for default + The valid pixel ROI for image1 + The valid pixel ROI for image2 + + + + Finds subpixel-accurate positions of the chessboard corners + + Source chessboard view; it must be 8-bit grayscale or color image + Pointer to the output array of corners(PointF) detected + region size + True if successful + + + + Attempts to determine whether the input image is a view of the chessboard pattern and locate internal chessboard corners + + Source chessboard view; it must be 8-bit grayscale or color image + The number of inner corners per chessboard row and column + Pointer to the output array of corners(PointF) detected + Various operation flags + True if all the corners have been found and they have been placed in a certain order (row by row, left to right in every row), otherwise, if the function fails to find all the corners or reorder them, it returns 0 + The coordinates detected are approximate, and to determine their position more accurately, the user may use the function cvFindCornerSubPix + + + + Filters off small noise blobs (speckles) in the disparity map. + + The input 16-bit signed disparity image + The disparity value used to paint-off the speckles + The maximum speckle size to consider it a speckle. Larger blobs are not affected by the algorithm + Maximum difference between neighbor disparity pixels to put them into the same blob. Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point disparity map, where disparity values are multiplied by 16, this scale factor should be taken into account when specifying this parameter value. + The optional temporary buffer to avoid memory allocation within the function. + + + + Finds the positions of internal corners of the chessboard using a sector based approach. + + Source chessboard view. It must be an 8-bit grayscale or color image. + Number of inner corners per a chessboard row and column ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ). + Output array of detected corners. + Various operation flags + True if chessboard corners found + + + + Draws the individual chessboard corners detected (as red circles) in case if the board was not found (pattern_was_found=0) or the colored corners connected with lines when the board was found (pattern_was_found != 0). + + The destination image; it must be 8-bit color image + The number of inner corners per chessboard row and column + The array of corners detected + Indicates whether the complete board was found (!=0) or not (=0). One may just pass the return value cvFindChessboardCorners here. + + + + Reconstructs points by triangulation. + + 3x4 projection matrix of the first camera. + 3x4 projection matrix of the second camera. + 2xN array of feature points in the first image. It can be also a vector of feature points or two-channel matrix of size 1xN or Nx1 + 2xN array of corresponding points in the second image. It can be also a vector of feature points or two-channel matrix of size 1xN or Nx1. + 4xN array of reconstructed points in homogeneous coordinates. + + + + Refines coordinates of corresponding points. + + 3x3 fundamental matrix. + 1xN array containing the first set of points. + 1xN array containing the second set of points. + The optimized points1. + The optimized points2. + + + + The default Exception callback to handle Error thrown by OpenCV + + + + + An error handler which will ignore any error and continue + + + + + A custom error handler for OpenCV + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the source where error is encountered + Arbitrary pointer that is transparently passed to the error handler. + if 0, signal the process to continue + + + + A custom error handler for OpenCV + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the source where error is encountered + Arbitrary pointer that is transparently passed to the error handler. + If 0, signal the process to continue + + + + Define an error callback that can be registered using cvRedirectError function + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the source where error is encountered + Arbitrary pointer that is transparently passed to the error handler. + + + + + Sets a new error handler that can be one of standard handlers or a custom handler that has the certain interface. The handler takes the same parameters as cvError function. If the handler returns non-zero value, the program is terminated, otherwise, it continues. The error handler may check the current error mode with cvGetErrMode to make a decision. + + The new error handler + Arbitrary pointer that is transparently passed to the error handler. + Pointer to the previously assigned user data pointer. + Pointer to the old error handler + + + + Sets a new error handler that can be one of standard handlers or a custom handler that has the certain interface. The handler takes the same parameters as cvError function. If the handler returns non-zero value, the program is terminated, otherwise, it continues. The error handler may check the current error mode with cvGetErrMode to make a decision. + + Pointer to the new error handler + Arbitrary pointer that is transparently passed to the error handler. + Pointer to the previously assigned user data pointer. + Pointer to the old error handler + + + + Sets the specified error mode. + + The error mode + The previous error mode + + + + Returns the current error mode + + The error mode + + + + Returns the current error status - the value set with the last cvSetErrStatus call. Note, that in Leaf mode the program terminates immediately after error occurred, so to always get control after the function call, one should call cvSetErrMode and set Parent or Silent error mode. + + The current error status + + + + Sets the error status to the specified value. Mostly, the function is used to reset the error status (set to it CV_StsOk) to recover after error. In other cases it is more natural to call cvError or CV_ERROR. + + The error status. + + + + Returns the textual description for the specified error status code. In case of unknown status the function returns NULL pointer. + + The error status + the textual description for the specified error status code. + + + + initializes CvMat header so that it points to the same data as the original array but has different shape - different number of channels, different number of rows or both + + Input array + Output header to be filled + New number of channels. new_cn = 0 means that number of channels remains unchanged + New number of rows. new_rows = 0 means that number of rows remains unchanged unless it needs to be changed according to new_cn value. destination array to be changed + The CvMat header + + + + Fills the destination array with source array tiled: + dst(i,j)=src(i mod rows(src), j mod cols(src))So the destination array may be as larger as well as smaller than the source array + + Source array, image or matrix + Destination array, image or matrix + Flag to specify how many times the src is repeated along the vertical axis. + Flag to specify how many times the src is repeated along the horizontal axis. + + + + This function is the opposite to cvSplit. If the destination array has N channels then if the first N input channels are not IntPtr.Zero, all they are copied to the destination array, otherwise if only a single source channel of the first N is not IntPtr.Zero, this particular channel is copied into the destination array, otherwise an error is raised. Rest of source channels (beyond the first N) must always be IntPtr.Zero. For IplImage cvCopy with COI set can be also used to insert a single channel into the image. + + Input vector of matrices to be merged; all the matrices in mv must have the same size and the same depth. + output array of the same size and the same depth as mv[0]; The number of channels will be the total number of channels in the matrix array. + + + + The function cvMixChannels is a generalized form of cvSplit and cvMerge and some forms of cvCvtColor. It can be used to change the order of the planes, add/remove alpha channel, extract or insert a single plane or multiple planes etc. + + The array of input arrays. + The array of output arrays + The array of pairs of indices of the planes copied. from_to[k*2] is the 0-based index of the input plane, and from_to[k*2+1] is the index of the output plane, where the continuous numbering of the planes over all the input and over all the output arrays is used. When from_to[k*2] is negative, the corresponding output plane is filled with 0's. + Unlike many other new-style C++ functions in OpenCV, mixChannels requires the output arrays to be pre-allocated before calling the function. + + + + Extract the specific channel from the image + + The source image + The channel + 0 based index of the channel to be extracted + + + + Insert the specific channel to the image + + The source channel + The destination image where the channel will be inserted into + 0-based index of the channel to be inserted + + + + Shuffles the matrix by swapping randomly chosen pairs of the matrix elements on each iteration (where each element may contain several components in case of multi-channel arrays) + + The input/output matrix. It is shuffled in-place. + Pointer to MCvRNG random number generator. Use 0 if not sure + The relative parameter that characterizes intensity of the shuffling performed. The number of iterations (i.e. pairs swapped) is round(iter_factor*rows(mat)*cols(mat)), so iter_factor=0 means that no shuffling is done, iter_factor=1 means that the function swaps rows(mat)*cols(mat) random pairs etc + + + + Inverses every bit of every array element: + + The source array + The destination array + The optional mask for the operation, use null to ignore + + + + Calculates per-element maximum of two arrays: + dst(I)=max(src1(I), src2(I)) + All the arrays must have a single channel, the same data type and the same size (or ROI size). + + The first source array + The second source array. + The destination array + + + + Returns the number of non-zero elements in arr: + result = sumI arr(I)!=0 + In case of IplImage both ROI and COI are supported. + + The image + the number of non-zero elements in image + + + + Find the location of the non-zero pixel + + The source array + The output array where the location of the pixels are sorted + + + + Computes PSNR image/video quality metric + + The first source image + The second source image + the quality metric + + + + Calculates per-element minimum of two arrays: + dst(I)=min(src1(I),src2(I)) + All the arrays must have a single channel, the same data type and the same size (or ROI size). + + The first source array + The second source array + The destination array + + + + Adds one array to another one: + dst(I)=src1(I)+src2(I) if mask(I)!=0All the arrays must have the same type, except the mask, and the same size (or ROI size) + + The first source array. + The second source array. + The destination array. + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed. + Optional depth type of the output array + + + + Subtracts one array from another one: + dst(I)=src1(I)-src2(I) if mask(I)!=0 + All the arrays must have the same type, except the mask, and the same size (or ROI size) + + The first source array + The second source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + Optional depth of the output array + + + + Divides one array by another: + dst(I)=scale * src1(I)/src2(I), if src1!=IntPtr.Zero; + dst(I)=scale/src2(I), if src1==IntPtr.Zero; + All the arrays must have the same type, and the same size (or ROI size) + + The first source array. If the pointer is IntPtr.Zero, the array is assumed to be all 1s. + The second source array + The destination array + Optional scale factor + Optional depth of the output array + + + + Calculates per-element product of two arrays: + dst(I)=scale*src1(I)*src2(I) + All the arrays must have the same type, and the same size (or ROI size) + + The first source array. + The second source array + The destination array + Optional scale factor + Optional depth of the output array + + + + Calculates per-element bit-wise logical conjunction of two arrays: + dst(I)=src1(I) & src2(I) if mask(I)!=0 + In the case of floating-point arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size + + The first source array + The second source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + + + + Calculates per-element bit-wise disjunction of two arrays: + dst(I)=src1(I)|src2(I) + In the case of floating-point arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size + + The first source array + The second source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + + + + Calculates per-element bit-wise logical conjunction of two arrays: + dst(I)=src1(I)^src2(I) if mask(I)!=0 + In the case of floating-point arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size + + The first source array + The second source array + The destination array + Mask, 8-bit single channel array; specifies elements of destination array to be changed. + + + + Copies selected elements from input array to output array: + dst(I)=src(I) if mask(I)!=0. + If any of the passed arrays is of IplImage type, then its ROI and COI fields are used. Both arrays must have the same type, the same number of dimensions and the same size. The function can also copy sparse arrays (mask is not supported in this case). + + The source array + The destination array + Operation mask, 8-bit single channel array; specifies elements of destination array to be changed + + + + Initializes scaled identity matrix: + arr(i,j)=value if i=j, + 0 otherwise + + The matrix to initialize (not necessarily square). + The value to assign to the diagonal elements. + + + + Initializes the matrix as following: + arr(i,j)=(end-start)*(i*cols(arr)+j)/(cols(arr)*rows(arr)) + + The matrix to initialize. It should be single-channel 32-bit, integer or floating-point + The lower inclusive boundary of the range + The upper exclusive boundary of the range + + + + Calculates the magnitude and angle of 2D vectors. + magnitude(I)=sqrt( x(I)^2+y(I)^2 ), + angle(I)=atan2( y(I)/x(I) ) + The angles are calculated with accuracy about 0.3 degrees. For the point (0,0), the angle is set to 0. + + Array of x-coordinates; this must be a single-precision or double-precision floating-point array. + Array of y-coordinates, that must have the same size and same type as x. + Output array of magnitudes of the same size and type as x. + Output array of angles that has the same size and type as x; the angles are measured in radians (from 0 to 2*Pi) or in degrees (0 to 360 degrees). + A flag, indicating whether the angles are measured in radians (which is by default), or in degrees. + + + + Calculates either x-coordinate, y-coordinate or both of every vector magnitude(I)* exp(angle(I)*j), j=sqrt(-1): + x(I)=magnitude(I)*cos(angle(I)), + y(I)=magnitude(I)*sin(angle(I)) + + Input floating-point array of magnitudes of 2D vectors; it can be an empty matrix (=Mat()), in this case, the function assumes that all the magnitudes are =1; if it is not empty, it must have the same size and type as angle + input floating-point array of angles of 2D vectors. + Output array of x-coordinates of 2D vectors; it has the same size and type as angle. + Output array of y-coordinates of 2D vectors; it has the same size and type as angle. + The flag indicating whether the angles are measured in radians or in degrees + + + + Raises every element of input array to p: + dst(I)=src(I)p, if p is integer + dst(I)=abs(src(I))p, otherwise + That is, for non-integer power exponent the absolute values of input array elements are used. However, it is possible to get true values for negative values using some extra operations, as the following sample, computing cube root of array elements, shows: + CvSize size = cvGetSize(src); + CvMat* mask = cvCreateMat( size.height, size.width, CV_8UC1 ); + cvCmpS( src, 0, mask, CV_CMP_LT ); /* find negative elements */ + cvPow( src, dst, 1./3 ); + cvSubRS( dst, cvScalarAll(0), dst, mask ); /* negate the results of negative inputs */ + cvReleaseMat( &mask ); + For some values of power, such as integer values, 0.5 and -0.5, specialized faster algorithms are used. + + The source array + The destination array, should be the same type as the source + The exponent of power + + + + Calculates exponent of every element of input array: + dst(I)=exp(src(I)) + Maximum relative error is 7e-6. Currently, the function converts denormalized values to zeros on output + + The source array + The destination array, it should have double type or the same type as the source + + + + Calculates natural logarithm of absolute value of every element of input array: + dst(I)=log(abs(src(I))), src(I)!=0 + dst(I)=C, src(I)=0 + Where C is large negative number (-700 in the current implementation) + + The source array + The destination array, it should have double type or the same type as the source + + + + finds real roots of a cubic equation: + coeffs[0]*x^3 + coeffs[1]*x^2 + coeffs[2]*x + coeffs[3] = 0 + (if coeffs is 4-element vector) + or + x^3 + coeffs[0]*x^2 + coeffs[1]*x + coeffs[2] = 0 + (if coeffs is 3-element vector) + + The equation coefficients, array of 3 or 4 elements + The output array of real roots. Should have 3 elements. Padded with zeros if there is only one root + the number of real roots found + + + + Finds all real and complex roots of any degree polynomial with real coefficients + + The (degree + 1)-length array of equation coefficients (CV_32FC1 or CV_64FC1) + The degree-length output array of real or complex roots (CV_32FC2 or CV_64FC2) + The maximum number of iterations + + + + Solves linear system (src1)*(dst) = (src2) + + The source matrix in the LHS + The source matrix in the RHS + The result + The method for solving the equation + 0 if src1 is a singular and CV_LU method is used + + + + Sorts each matrix row or each matrix column in + ascending or descending order.So you should pass two operation flags to + get desired behaviour. + + input single-channel array. + output array of the same size and type as src. + operation flags + + + + Sorts each matrix row or each matrix column in the + ascending or descending order.So you should pass two operation flags to + get desired behaviour. Instead of reordering the elements themselves, it + stores the indices of sorted elements in the output array. + + input single-channel array. + output integer array of the same size as src. + operation flags + + + + Performs forward or inverse transform of 1D or 2D floating-point array + In case of real (single-channel) data, the packed format, borrowed from IPL, is used to to represent a result of forward Fourier transform or input for inverse Fourier transform + + Source array, real or complex + Destination array of the same size and same type as the source + Transformation flags + Number of nonzero rows to in the source array (in case of forward 2d transform), or a number of rows of interest in the destination array (in case of inverse 2d transform). If the value is negative, zero, or greater than the total number of rows, it is ignored. The parameter can be used to speed up 2d convolution/correlation when computing them via DFT. See the sample below + + + + Returns the minimum number N that is greater to equal to size0, such that DFT of a vector of size N can be computed fast. In the current implementation N=2^p x 3^q x 5^r for some p, q, r. + + Vector size + The minimum number N that is greater to equal to size0, such that DFT of a vector of size N can be computed fast. In the current implementation N=2^p x 3^q x 5^r for some p, q, r. + + + + Performs per-element multiplication of the two CCS-packed or complex matrices that are results of real or complex Fourier transform. + + The first source array + The second source array + The destination array of the same type and the same size of the sources + Operation flags; currently, the only supported flag is DFT_ROWS, which indicates that each row of src1 and src2 is an independent 1D Fourier spectrum. + Optional flag that conjugates the second input array before the multiplication (true) or not (false). + + + + Performs forward or inverse transform of 1D or 2D floating-point array + + Source array, real 1D or 2D array + Destination array of the same size and same type as the source + Transformation flags + + + + Calculates a part of the line segment which is entirely in the rectangle. + + The rectangle + First ending point of the line segment. It is modified by the function + Second ending point of the line segment. It is modified by the function. + It returns false if the line segment is completely outside the rectangle and true otherwise. + + + + Calculates absolute difference between two arrays. + dst(I)c = abs(src1(I)c - src2(I)c). + All the arrays must have the same data type and the same size (or ROI size) + + The first source array + The second source array + The destination array + + + + Calculated weighted sum of two arrays as following: + dst(I)=src1(I)*alpha+src2(I)*beta+gamma + All the arrays must have the same type and the same size (or ROI size) + + The first source array. + Weight of the first array elements. + The second source array. + Weight of the second array elements. + Scalar, added to each sum. + The destination array. + Optional depth of the output array; when both input arrays have the same depth + + + + Performs range check for every element of the input array: + dst(I)=lower(I)_0 <= src(I)_0 <= upper(I)_0 + For single-channel arrays, + dst(I)=lower(I)_0 <= src(I)_0 <= upper(I)_0 && + lower(I)_1 <= src(I)_1 <= upper(I)_1 + For two-channel arrays etc. + dst(I) is set to 0xff (all '1'-bits) if src(I) is within the range and 0 otherwise. All the arrays must have the same type, except the destination, and the same size (or ROI size) + + The source image + The lower values stored in an image of same type & size as + The upper values stored in an image of same type & size as + The resulting mask + + + + Returns the calculated norm. The multiple-channel array are treated as single-channel, that is, the results for all channels are combined. + + The first source image + The second source image. If it is null, the absolute norm of arr1 is calculated, otherwise absolute or relative norm of arr1-arr2 is calculated + Type of norm + The optional operation mask + The calculated norm + + + + Returns the calculated norm. The multiple-channel array are treated as single-channel, that is, the results for all channels are combined. + + The first source image + Type of norm + The optional operation mask + The calculated norm + + + + Creates the header and allocates data. + + Image width and height. + Bit depth of image elements + + Number of channels per element(pixel). Can be 1, 2, 3 or 4. The channels are interleaved, for example the usual data layout of a color image is: + b0 g0 r0 b1 g1 r1 ... + + A pointer to IplImage + + + + Allocates, initializes, and returns the structure IplImage. + + Image width and height. + Bit depth of image elements + + Number of channels per element(pixel). Can be 1, 2, 3 or 4. The channels are interleaved, for example the usual data layout of a color image is: + b0 g0 r0 b1 g1 r1 ... + + The structure IplImage + + + + Initializes the image header structure, pointer to which is passed by the user, and returns the pointer. + + Image header to initialize. + Image width and height. + Image depth + Number of channels + IPL_ORIGIN_TL or IPL_ORIGIN_BL. + Alignment for image rows, typically 4 or 8 bytes. + Pointer to the image header + + + + Assigns user data to the array header. + + Array header. + User data. + Full row length in bytes. + + + + Releases the header. + + Pointer to the deallocated header. + + + + Initializes already allocated CvMat structure. It can be used to process raw data with OpenCV matrix functions. + + Pointer to the matrix header to be initialized. + Number of rows in the matrix. + Number of columns in the matrix. + Type of the matrix elements. + Optional data pointer assigned to the matrix header + Full row width in bytes of the data assigned. By default, the minimal possible step is used, i.e., no gaps is assumed between subsequent rows of the matrix. + Pointer to the CvMat + + + + Sets the channel of interest to a given value. Value 0 means that all channels are selected, 1 means that the first channel is selected etc. If ROI is NULL and coi != 0, ROI is allocated. + + Image header + Channel of interest starting from 1. If 0, the COI is unset. + + + + Returns channel of interest of the image (it returns 0 if all the channels are selected). + + Image header. + channel of interest of the image (it returns 0 if all the channels are selected) + + + + Releases image ROI. After that the whole image is considered selected. + + Image header + + + + Sets the image ROI to a given rectangle. If ROI is NULL and the value of the parameter rect is not equal to the whole image, ROI is allocated. + + Image header. + ROI rectangle. + + + + Returns channel of interest of the image (it returns 0 if all the channels are selected). + + Image header. + channel of interest of the image (it returns 0 if all the channels are selected) + + + + Allocates header for the new matrix and underlying data, and returns a pointer to the created matrix. Matrices are stored row by row. All the rows are aligned by 4 bytes. + + Number of rows in the matrix. + Number of columns in the matrix. + Type of the matrix elements. + A pointer to the created matrix + + + + Initializes CvMatND structure allocated by the user + + Pointer to the array header to be initialized + Number of array dimensions + Array of dimension sizes + Type of array elements + Optional data pointer assigned to the matrix header + Pointer to the array header + + + + Decrements the matrix data reference counter and releases matrix header + + Double pointer to the matrix. + + + + The function allocates a multi-dimensional sparse array. Initially the array contain no elements, that is Get or GetReal returns zero for every index + + Number of array dimensions + Array of dimension sizes + Type of array elements + Pointer to the array header + + + + The function releases the sparse array and clears the array pointer upon exit. + + Reference of the pointer to the array + + + + Assign the new value to the particular element of single-channel array + + Input array + The first zero-based component of the element index + The assigned value + + + + Assign the new value to the particular element of single-channel array + + Input array + The first zero-based component of the element index + The second zero-based component of the element index + The assigned value + + + + Assign the new value to the particular element of single-channel array + + Input array + The first zero-based component of the element index + The second zero-based component of the element index + The third zero-based component of the element index + The assigned value + + + + Assign the new value to the particular element of single-channel array + + Input array + Array of the element indices + The assigned value + + + + Clears (sets to zero) the particular element of dense array or deletes the element of sparse array. If the element does not exists, the function does nothing + + Input array + Array of the element indices + + + + Assign the new value to the particular element of array + + Input array. + The first zero-based component of the element index + The second zero-based component of the element index + The assigned value + + + + Flips the array in one of different 3 ways (row and column indices are 0-based) + + Source array. + Destination array. + Specifies how to flip the array. + + + + Rotates a 2D array in multiples of 90 degrees. + + input array. + output array of the same type as src. The size is the same with ROTATE_180, and the rows and cols are switched for ROTATE_90 and ROTATE_270. + an enum to specify how to rotate the array + + + + Returns header, corresponding to a specified rectangle of the input array. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. ROI is taken into account by the function so the sub-array of ROI is actually extracted. + + Input array + Pointer to the resultant sub-array header. + Zero-based coordinates of the rectangle of interest. + the resultant sub-array header + + + + Return the header, corresponding to a specified row span of the input array + + Input array + Pointer to the prelocated memory of resulting sub-array header + Zero-based index of the starting row (inclusive) of the span + Zero-based index of the ending row (exclusive) of the span + Index step in the row span. That is, the function extracts every delta_row-th row from start_row and up to (but not including) end_row + The header, corresponding to a specified row span of the input array + + + + Return the header, corresponding to a specified row of the input array + + Input array + Pointer to the prelocate memory of the resulting sub-array header + Zero-based index of the selected row + The header, corresponding to a specified row of the input array + + + + Return the header, corresponding to a specified col span of the input array + + Input array + Pointer to the prelocated memory of the resulting sub-array header + Zero-based index of the selected column + Zero-based index of the ending column (exclusive) of the span + The header, corresponding to a specified col span of the input array + + + + Return the header, corresponding to a specified column of the input array + + Input array + Pointer to the prelocate memory of the resulting sub-array header + Zero-based index of the selected column + The header, corresponding to a specified column of the input array + + + + returns the header, corresponding to a specified diagonal of the input array + + Input array + Pointer to the resulting sub-array header + Array diagonal. Zero corresponds to the main diagonal, -1 corresponds to the diagonal above the main etc., 1 corresponds to the diagonal below the main etc + Pointer to the resulting sub-array header + + + + Returns number of rows (CvSize::height) and number of columns (CvSize::width) of the input matrix or image. In case of image the size of ROI is returned. + + array header + number of rows (CvSize::height) and number of columns (CvSize::width) of the input matrix or image. In case of image the size of ROI is returned. + + + + Draws a simple or filled circle with given center and radius. The circle is clipped by ROI rectangle. + + Image where the circle is drawn + Center of the circle + Radius of the circle. + Color of the circle + Thickness of the circle outline if positive, otherwise indicates that a filled circle has to be drawn + Line type + Number of fractional bits in the center coordinates and radius value + + + + Divides a multi-channel array into separate single-channel arrays. Two modes are available for the operation. If the source array has N channels then if the first N destination channels are not IntPtr.Zero, all they are extracted from the source array, otherwise if only a single destination channel of the first N is not IntPtr.Zero, this particular channel is extracted, otherwise an error is raised. Rest of destination channels (beyond the first N) must always be IntPtr.Zero. For IplImage cvCopy with COI set can be also used to extract a single channel from the image + + Input multi-channel array + Output array or vector of arrays + + + + Draws a simple or thick elliptic arc or fills an ellipse sector. The arc is clipped by ROI rectangle. A piecewise-linear approximation is used for antialiased arcs and thick arcs. All the angles are given in degrees. + + Image + Center of the ellipse + Length of the ellipse axes + Rotation angle + Starting angle of the elliptic arc + Ending angle of the elliptic arc + Ellipse color + Thickness of the ellipse arc + Type of the ellipse boundary + Number of fractional bits in the center coordinates and axes' values + + + + Draws a simple or thick elliptic arc or fills an ellipse sector. The arc is clipped by ROI rectangle. A piecewise-linear approximation is used for antialiased arcs and thick arcs. All the angles are given in degrees. + + Image + The box the define the ellipse area + Ellipse color + Thickness of the ellipse arc + Type of the ellipse boundary + Number of fractional bits in the center coordinates and axes' values + + + + Fills the destination array with values from the look-up table. Indices of the entries are taken from the source array. That is, the function processes each element of src as following: + dst(I)=lut[src(I)+DELTA] + where DELTA=0 if src has depth CV_8U, and DELTA=128 if src has depth CV_8S + + Source array of 8-bit elements + Destination array of arbitrary depth and of the same number of channels as the source array + Look-up table of 256 elements; should have the same depth as the destination array. In case of multi-channel source and destination arrays, the table should either have a single-channel (in this case the same table is used for all channels), or the same number of channels as the source/destination array + + + + This function has several different purposes and thus has several synonyms. It copies one array to another with optional scaling, which is performed first, and/or optional type conversion, performed after: + dst(I)=src(I)*scale + (shift,shift,...) + All the channels of multi-channel arrays are processed independently. + The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination array element type, it is set to the nearest representable value on the real axis. + In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate cvConvert synonym. If source and destination array types have equal types, this is also a special case that can be used to scale and shift a matrix or an image and that fits to cvScale synonym. + + Source array + Destination array + Scale factor + Value added to the scaled source array elements + + + + Similar to cvCvtScale but it stores absolute values of the conversion results: + dst(I)=abs(src(I)*scale + (shift,shift,...)) + The function supports only destination arrays of 8u (8-bit unsigned integers) type, for other types the function can be emulated by combination of cvConvertScale and cvAbs functions. + + Source array + Destination array (should have 8u depth). + ScaleAbs factor + Value added to the scaled source array elements + + + + Calculates the average value M of array elements, independently for each channel: + N = sumI mask(I)!=0 + Mc = 1/N * sumI,mask(I)!=0 arr(I)c + If the array is IplImage and COI is set, the function processes the selected channel only and stores the average to the first scalar component (S0). + + The array + The optional operation mask + average (mean) of array elements + + + + The function cvAvgSdv calculates the average value and standard deviation of array elements, independently for each channel + + If the array is IplImage and COI is set, the function processes the selected channel only and stores the average and standard deviation to the first compoenents of output scalars (M0 and S0). + The array + Pointer to the mean value + Pointer to the standard deviation + The optional operation mask + + + + Calculates a mean and standard deviation of array elements. + + Input array that should have from 1 to 4 channels so that the results can be stored in MCvScalar + Calculated mean value + Calculated standard deviation + Optional operation mask + + + + Calculates sum S of array elements, independently for each channel + Sc = sumI arr(I)c + If the array is IplImage and COI is set, the function processes the selected channel only and stores the sum to the first scalar component (S0). + + The array + The sum of array elements + + + + Reduces matrix to a vector by treating the matrix rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained. + + + The function can be used to compute horizontal and vertical projections of an raster image. + In case of CV_REDUCE_SUM and CV_REDUCE_AVG the output may have a larger element bit-depth to preserve accuracy. + And multi-channel arrays are also supported in these two reduction modes + + The input matrix + The output single-row/single-column vector that accumulates somehow all the matrix rows/columns + The dimension index along which the matrix is reduce. + The reduction operation type + Optional depth type of the output array + + + + Releases the header and the image data. + + Double pointer to the header of the deallocated image + + + + Draws contours outlines or filled contours. + + Image where the contours are to be drawn. Like in any other drawing function, the contours are clipped with the ROI + All the input contours. Each contour is stored as a point vector. + Parameter indicating a contour to draw. If it is negative, all the contours are drawn. + Color of the contours + Maximal level for drawn contours. If 0, only contour is drawn. If 1, the contour and all contours after it on the same level are drawn. If 2, all contours after and all contours one level below the contours are drawn, etc. If the value is negative, the function does not draw the contours following after contour but draws child contours of contour up to abs(maxLevel)-1 level. + Thickness of lines the contours are drawn with. If it is negative the contour interiors are drawn + Type of the contour segments + Optional information about hierarchy. It is only needed if you want to draw only some of the contours + Shift all the point coordinates by the specified value. It is useful in case if the contours retrieved in some image ROI and then the ROI offset needs to be taken into account during the rendering. + + + + Fills convex polygon interior. This function is much faster than The function cvFillPoly and can fill not only the convex polygons but any monotonic polygon, i.e. a polygon whose contour intersects every horizontal line (scan line) twice at the most + + Image + Array of pointers to a single polygon + Polygon color + Type of the polygon boundaries + Number of fractional bits in the vertex coordinates + + + + Fills the area bounded by one or more polygons. + + Image. + Array of polygons where each polygon is represented as an array of points. + Polygon color + Type of the polygon boundaries. + Number of fractional bits in the vertex coordinates. + Optional offset of all points of the contours. + + + + Renders the text in the image with the specified font and color. The printed text is clipped by ROI rectangle. Symbols that do not belong to the specified font are replaced with the rectangle symbol. + + Input image + String to print + Coordinates of the bottom-left corner of the first letter + Font type. + Font scale factor that is multiplied by the font-specific base size. + Text color + Thickness of the lines used to draw a text. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Calculates the width and height of a text string. + + Input text string. + Font to use + Font scale factor that is multiplied by the font-specific base size. + Thickness of lines used to render the text. + Y-coordinate of the baseline relative to the bottom-most text point. + The size of a box that contains the specified text. + + + + Finds minimum and maximum element values and their positions. The extremums are searched over the whole array, selected ROI (in case of IplImage) or, if mask is not IntPtr.Zero, in the specified array region. If the array has more than one channel, it must be IplImage with COI set. In case if multi-dimensional arrays min_loc->x and max_loc->x will contain raw (linear) positions of the extremums + + The source array, single-channel or multi-channel with COI set + Pointer to returned minimum value + Pointer to returned maximum value + Pointer to returned minimum location + Pointer to returned maximum location + The optional mask that is used to select a subarray. Use IntPtr.Zero if not needed + + + + Copies the source 2D array into interior of destination array and makes a border of the specified type around the copied area. The function is useful when one needs to emulate border type that is different from the one embedded into a specific algorithm implementation. For example, morphological functions, as well as most of other filtering functions in OpenCV, internally use replication border type, while the user may need zero border or a border, filled with 1's or 255's + + The source image + The destination image + Type of the border to create around the copied source image rectangle + Value of the border pixels if bordertype=CONSTANT + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + Parameter specifying how many pixels in each direction from the source image rectangle to extrapolate. + + + + Return the particular array element + + Input array. Must have a single channel + The first zero-based component of the element index + the particular array element + + + + Return the particular array element + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + the particular array element + + + + Return the particular array element + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + The third zero-based component of the element index + the particular array element + + + + Return the particular element of single-channel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both single-channel and multiple-channel arrays though they are a bit slower. + + Input array. Must have a single channel + The first zero-based component of the element index + the particular element of single-channel array + + + + Return the particular element of single-channel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both single-channel and multiple-channel arrays though they are a bit slower. + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + the particular element of single-channel array + + + + Return the particular element of single-channel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both single-channel and multiple-channel arrays though they are a bit slower. + + Input array. Must have a single channel + The first zero-based component of the element index + The second zero-based component of the element index + The third zero-based component of the element index + the particular element of single-channel array + + + + Enables or disables the optimized code. + + + true if [use optimized]; otherwise, false. + + The function can be used to dynamically turn on and off optimized code (code that uses SSE2, AVX, and other instructions on the platforms that support it). It sets a global flag that is further checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only safe to call the function on the very top level in your application where you can be sure that no other OpenCV function is currently executed. + + + + Returns full configuration time cmake output. + Returned value is raw cmake output including version control system revision, compiler version, compiler flags, enabled modules and third party libraries, etc.Output format depends on target architecture. + + + + + Fills the array with normally distributed random numbers. + + Output array of random numbers; the array must be pre-allocated and have 1 to 4 channels. + Mean value (expectation) of the generated random numbers. + Standard deviation of the generated random numbers; it can be either a vector (in which case a diagonal standard deviation matrix is assumed) or a square matrix. + + + + Fills the array with normally distributed random numbers. + + Output array of random numbers; the array must be pre-allocated and have 1 to 4 channels. + Mean value (expectation) of the generated random numbers. + Standard deviation of the generated random numbers; it can be either a vector (in which case a diagonal standard deviation matrix is assumed) or a square matrix. + + + + Generates a single uniformly-distributed random number or an array of random numbers. + + Output array of random numbers; the array must be pre-allocated. + Inclusive lower boundary of the generated random numbers. + Exclusive upper boundary of the generated random numbers. + + + + Generates a single uniformly-distributed random number or an array of random numbers. + + Output array of random numbers; the array must be pre-allocated. + Inclusive lower boundary of the generated random numbers. + Exclusive upper boundary of the generated random numbers. + + + + Computes eigenvalues and eigenvectors of a symmetric matrix + + The input symmetric square matrix, modified during the processing + The output matrix of eigenvectors, stored as subsequent rows + The output vector of eigenvalues, stored in the descending order (order of eigenvalues and eigenvectors is syncronized, of course) + Currently the function is slower than cvSVD yet less accurate, so if A is known to be positivelydefined (for example, it is a covariance matrix)it is recommended to use cvSVD to find eigenvalues and eigenvectors of A, especially if eigenvectors are not required. + To calculate the largest eigenvector/-value set lowindex = highindex = 1. For legacy reasons this function always returns a square matrix the same size as the source matrix with eigenvectors and a vector the length of the source matrix with eigenvalues. The selected eigenvectors/-values are always in the first highindex - lowindex + 1 rows. + + + + normalizes the input array so that it's norm or value range takes the certain value(s). + + The input array + The output array; in-place operation is supported + The minimum/maximum value of the output array or the norm of output array + The maximum/minimum value of the output array + The normalization type + The operation mask. Makes the function consider and normalize only certain array elements + Optional depth type for the dst array + + + + Performs generalized matrix multiplication: + dst = alpha*op(src1)*op(src2) + beta*op(src3), where op(X) is X or XT + + The first source array. + The second source array. + The scalar + The third source array (shift). Can be null, if there is no shift. + The scalar + The destination array. + The Gemm operation type + + + + Performs matrix transformation of every element of array src and stores the results in dst + Both source and destination arrays should have the same depth and the same size or selected ROI size. transmat and shiftvec should be real floating-point matrices. + + The first source array + The destination array + transformation 2x2 or 2x3 floating-point matrix. + + + + Transforms every element of src in the following way: + (x, y) -> (x'/w, y'/w), + where + (x', y', w') = mat3x3 * (x, y, 1) + and w = w' if w'!=0, + inf otherwise + + The source points + 3x3 floating-point transformation matrix. + The destination points + + + + Transforms every element of src (by treating it as 2D or 3D vector) in the following way: + (x, y, z) -> (x'/w, y'/w, z'/w) or + (x, y) -> (x'/w, y'/w), + where + (x', y', z', w') = mat4x4 * (x, y, z, 1) or + (x', y', w') = mat3x3 * (x, y, 1) + and w = w' if w'!=0, + inf otherwise + + The source three-channel floating-point array + The destination three-channel floating-point array + 3x3 or 4x4 floating-point transformation matrix. + + + + Calculates the product of src and its transposition. + The function evaluates dst=scale(src-delta)*(src-delta)^T if order=0, and dst=scale(src-delta)^T*(src-delta) otherwise. + + The source matrix + The destination matrix + Order of multipliers + An optional array, subtracted from before multiplication + An optional scaling + Optional depth type of the output array + + + + Returns sum of diagonal elements of the matrix . + + the matrix + sum of diagonal elements of the matrix src1 + + + + Transposes matrix src1: + dst(i,j)=src(j,i) + Note that no complex conjugation is done in case of complex matrix. Conjugation should be done separately: look at the sample code in cvXorS for example + + The source matrix + The destination matrix + + + + Returns determinant of the square matrix mat. The direct method is used for small matrices and Gaussian elimination is used for larger matrices. For symmetric positive-determined matrices it is also possible to run SVD with U=V=NULL and then calculate determinant as a product of the diagonal elements of W + + The pointer to the matrix + determinant of the square matrix mat + + + + Finds the inverse or pseudo-inverse of a matrix. This function inverts the matrix src and stores the result in dst . When the matrix src is singular or non-square, the function calculates the pseudo-inverse matrix (the dst matrix) so that norm(src*dst - I) is minimal, where I is an identity matrix. + + The input floating-point M x N matrix. + The output matrix of N x M size and the same type as src. + Inversion method + + In case of the DECOMP_LU method, the function returns non-zero value if the inverse has been successfully calculated and 0 if src is singular. + In case of the DECOMP_SVD method, the function returns the inverse condition number of src (the ratio of the smallest singular value to the largest singular value) and 0 if src is singular. The SVD method calculates a pseudo-inverse matrix if src is singular. + Similarly to DECOMP_LU, the method DECOMP_CHOLESKY works only with non-singular square matrices that should also be symmetrical and positively defined. In this case, the function stores the inverted matrix in dst and returns non-zero. Otherwise, it returns 0. + + + + + Decomposes matrix A into a product of a diagonal matrix and two orthogonal matrices: + A=U*W*VT + Where W is diagonal matrix of singular values that can be coded as a 1D vector of singular values and U and V. All the singular values are non-negative and sorted (together with U and V columns) in descenting order. + + + SVD algorithm is numerically robust and its typical applications include: + 1. accurate eigenvalue problem solution when matrix A is square, symmetric and positively defined matrix, for example, when it is a covariation matrix. W in this case will be a vector of eigen values, and U=V is matrix of eigen vectors (thus, only one of U or V needs to be calculated if the eigen vectors are required) + 2. accurate solution of poor-conditioned linear systems + 3. least-squares solution of overdetermined linear systems. This and previous is done by cvSolve function with CV_SVD method + 4. accurate calculation of different matrix characteristics such as rank (number of non-zero singular values), condition number (ratio of the largest singular value to the smallest one), determinant (absolute value of determinant is equal to the product of singular values). All the things listed in this item do not require calculation of U and V matrices. + + Source MxN matrix + Resulting singular value matrix (MxN or NxN) or vector (Nx1). + Optional left orthogonal matrix (MxM or MxN). If CV_SVD_U_T is specified, the number of rows and columns in the sentence above should be swapped + Optional right orthogonal matrix (NxN) + Operation flags + + + + Performs a singular value back substitution. + + Singular values + Left singular vectors + Transposed matrix of right singular vectors. + Right-hand side of a linear system + Found solution of the system. + + + + Calculates the covariance matrix of a set of vectors. + + Samples stored either as separate matrices or as rows/columns of a single matrix. + Output covariance matrix of the type ctype and square size. + Input or output (depending on the flags) array as the average value of the input vectors. + Operation flags + Type of the matrix + + + + Calculates the weighted distance between two vectors and returns it + + The first 1D source vector + The second 1D source vector + The inverse covariation matrix + the Mahalanobis distance + + + + Performs Principal Component Analysis of the supplied dataset. + + Input samples stored as the matrix rows or as the matrix columns. + Optional mean value; if the matrix is empty, the mean is computed from the data. + The eigenvectors. + Maximum number of components that PCA should retain; by default, all the components are retained. + + + + Performs Principal Component Analysis of the supplied dataset. + + Input samples stored as the matrix rows or as the matrix columns. + Optional mean value; if the matrix is empty, the mean is computed from the data. + The eigenvectors. + Percentage of variance that PCA should retain. Using this parameter will let the PCA decided how many components to retain but it will always keep at least 2. + + + + Projects vector(s) to the principal component subspace. + + Input vector(s); must have the same dimensionality and the same layout as the input data used at PCA phase + The mean. + The eigenvectors. + The result. + + + + Reconstructs vectors from their PC projections. + + Coordinates of the vectors in the principal component subspace + The mean. + The eigenvectors. + The result. + + + + Fills output variables with low-level information about the array data. All output parameters are optional, so some of the pointers may be set to NULL. If the array is IplImage with ROI set, parameters of ROI are returned. + + Array header + Output pointer to the whole image origin or ROI origin if ROI is set + Output full row length in bytes + Output ROI size + + + + Returns matrix header for the input array that can be matrix - CvMat, image - IplImage or multi-dimensional dense array - CvMatND* (latter case is allowed only if allowND != 0) . In the case of matrix the function simply returns the input pointer. In the case of IplImage* or CvMatND* it initializes header structure with parameters of the current image ROI and returns pointer to this temporary structure. Because COI is not supported by CvMat, it is returned separately. + + Input array + Pointer to CvMat structure used as a temporary buffer + Optional output parameter for storing COI + If non-zero, the function accepts multi-dimensional dense arrays (CvMatND*) and returns 2D (if CvMatND has two dimensions) or 1D matrix (when CvMatND has 1 dimension or more than 2 dimensions). The array must be continuous + Returns matrix header for the input array + + + + Returns image header for the input array that can be matrix - CvMat*, or image - IplImage*. + + Input array. + Pointer to IplImage structure used as a temporary buffer. + Returns image header for the input array + + + + Checks that every array element is neither NaN nor Infinity. If CV_CHECK_RANGE is set, it also checks that every element is greater than or equal to minVal and less than maxVal. + + The array to check. + The operation flags, CHECK_NAN_INFINITY or combination of + CHECK_RANGE - if set, the function checks that every value of array is within [minVal,maxVal) range, otherwise it just checks that every element is neither NaN nor Infinity. + CHECK_QUIET - if set, the function does not raises an error if an element is invalid or out of range + + The inclusive lower boundary of valid values range. It is used only if CHECK_RANGE is set. + The exclusive upper boundary of valid values range. It is used only if CHECK_RANGE is set. + Returns nonzero if the check succeeded, i.e. all elements are valid and within the range, and zero otherwise. In the latter case if CV_CHECK_QUIET flag is not set, the function raises runtime error. + + + + Get or set the number of threads that are used by parallelized OpenCV functions + + When the argument is zero or negative, and at the beginning of the program, the number of threads is set to the number of processors in the system, as returned by the function omp_get_num_procs() from OpenMP runtime. + + + + Returns the index, from 0 to cvGetNumThreads()-1, of the thread that called the function. It is a wrapper for the function omp_get_thread_num() from OpenMP runtime. The retrieved index may be used to access local-thread data inside the parallelized code fragments. + + + + + Returns the number of logical CPUs available for the process. + + + + + Compares the corresponding elements of two arrays and fills the destination mask array: + dst(I)=src1(I) op src2(I), + dst(I) is set to 0xff (all '1'-bits) if the particular relation between the elements is true and 0 otherwise. + All the arrays must have the same type, except the destination, and the same size (or ROI size) + + The first image to compare with + The second image to compare with + dst(I) is set to 0xff (all '1'-bits) if the particular relation between the elements is true and 0 otherwise. + The comparison operator type + + + + Converts CvMat, IplImage , or CvMatND to Mat. + + Input CvMat, IplImage , or CvMatND. + When true (default value), CvMatND is converted to 2-dimensional Mat, if it is possible (see the discussion below); if it is not possible, or when the parameter is false, the function will report an error + When false (default value), no data is copied and only the new header is created, in this case, the original array should not be deallocated while the new matrix header is used; if the parameter is true, all the data is copied and you may deallocate the original array right after the conversion. + Parameter specifying how the IplImage COI (when set) is handled. If coiMode=0 and COI is set, the function reports an error. If coiMode=1 , the function never reports an error. Instead, it returns the header to the whole original image and you will have to check and process COI manually. + The Mat header + + + + Horizontally concatenate two images + + The first image + The second image + The result image + + + + Vertically concatenate two images + + The first image + The second image + The result image + + + + Swaps two matrices + + The Mat to be swapped + The Mat to be swapped + + + + Swaps two matrices + + The UMat to be swapped + The UMat to be swapped + + + + Check if we have OpenCL + + + + + Get or set if OpenCL should be used + + + + + Finishes OpenCL queue. + + + + + Get the OpenCL platform summary as a string + + An OpenCL platform summary + + + + Set the default opencl device + + The name of the opencl device + + + + Gets a value indicating whether this device have open CL compatible gpu device. + + true if have open CL compatible gpu device; otherwise, false. + + + + Implements k-means algorithm that finds centers of cluster_count clusters and groups the input samples around the clusters. On output labels(i) contains a cluster index for sample stored in the i-th row of samples matrix + + Floating-point matrix of input samples, one row per sample + Output integer vector storing cluster indices for every sample + Specifies maximum number of iterations and/or accuracy (distance the centers move by between the subsequent iterations) + The number of attempts. Use 2 if not sure + Flags, use 0 if not sure + Pointer to array of centers, use IntPtr.Zero if not sure + Number of clusters to split the set by. + The function returns the compactness measure. The best (minimum) value is chosen and the corresponding labels and the compactness value are returned by the function. + + + + The grab cut algorithm for segmentation + + The 8-bit 3-channel image to be segmented + Input/output 8-bit single-channel mask. The mask is initialized by the function + when mode is set to GC_INIT_WITH_RECT. Its elements may have one of following values: + 0 (GC_BGD) defines an obvious background pixels. + 1 (GC_FGD) defines an obvious foreground (object) pixel. + 2 (GC_PR_BGR) defines a possible background pixel. + 3 (GC_PR_FGD) defines a possible foreground pixel. + + The rectangle to initialize the segmentation + + Temporary array for the background model. Do not modify it while you are + processing the same image. + + + Temporary arrays for the foreground model. Do not modify it while you are + processing the same image. + + The number of iterations + The initialization type + + + + Calculate square root of each source array element. in the case of multichannel + arrays each channel is processed independently. The function accuracy is approximately + the same as of the built-in std::sqrt. + + The source floating-point array + The destination array; will have the same size and the same type as src + + + + Applies a GNU Octave/MATLAB equivalent colormap on a given image. + + The source image, grayscale or colored of type CV_8UC1 or CV_8UC3 + The result is the colormapped source image + The type of color map + + + + Applies a user colormap on a given image. + + The source image, grayscale or colored of type CV_8UC1 or CV_8UC3. + The result is the colormapped source image. + The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256 + + + + Check that every array element is neither NaN nor +- inf. The functions also check that each value + is between minVal and maxVal. in the case of multi-channel arrays each channel is processed + independently. If some values are out of range, position of the first outlier is stored in pos, + and then the functions either return false (when quiet=true) or throw an exception. + + The array to check + The flag indicating whether the functions quietly return false when the array elements are + out of range, or they throw an exception + This will be filled with the position of the first outlier + The inclusive lower boundary of valid values range + The exclusive upper boundary of valid values range + If quiet, return true if all values are in range + + + + Converts NaN's to the given number + + The array where NaN needs to be converted + The value to convert to + + + + Computes an optimal affine transformation between two 3D point sets. + + First input 3D point set. + Second input 3D point set. + Output 3D affine transformation matrix. + Output vector indicating which points are inliers. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + The result + + + + Computes an optimal affine transformation between two 3D point sets. + + First input 3D point set. + Second input 3D point set. + Output 3D affine transformation matrix 3 x 4 + Output vector indicating which points are inliers. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + the result + + + + Finds the global minimum and maximum in an array + + Input single-channel array. + The returned minimum value + The returned maximum value + The returned minimum location + The returned maximum location + The extremums are searched across the whole array if mask is IntPtr.Zert. Otherwise, search is performed in the specified array region. + + + + Applies arbitrary linear filter to the image. In-place operation is supported. When the aperture is partially outside the image, the function interpolates outlier pixel values from the nearest pixels that is inside the image + + The source image + The destination image + Convolution kernel, single-channel floating point matrix. If you want to apply different kernels to different channels, split the image using cvSplit into separate color planes and process them individually + The anchor of the kernel that indicates the relative position of a filtered point within the kernel. The anchor shoud lie within the kernel. The special default value (-1,-1) means that it is at the kernel center + The optional value added to the filtered pixels before storing them in dst + The pixel extrapolation method. + + + + The function applies a separable linear filter to the image. That is, first, every row of src is filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D kernel kernelY. The final result shifted by delta is stored in dst . + + Source image. + Destination image of the same size and the same number of channels as src. + Destination image depth + Coefficients for filtering each row. + Coefficients for filtering each column. + Anchor position within the kernel. The value (-1,-1) means that the anchor is at the kernel center. + Value added to the filtered results before storing them. + Pixel extrapolation method + + + + Performs linear blending of two images: + dst(i, j)=weights1(i, j) x src1(i, j) + weights2(i, j) x src2(i, j) + + It has a type of CV_8UC(n) or CV_32FC(n), where n is a positive integer. + It has the same type and size as src1. + It has a type of CV_32FC1 and the same size with src1. + It has a type of CV_32FC1 and the same size with src1. + It is created if it does not have the same size and type with src1. + + + + Contrast Limited Adaptive Histogram Equalization (CLAHE) + + The source image + Clip Limit, use 40 for default + Tile grid size, use (8, 8) for default + The destination image + + + + This function retrieve the Open CV structure sizes in unmanaged code + + The structure that will hold the Open CV structure sizes + + + + Finds centers in the grid of circles + + Source chessboard view + The number of inner circle per chessboard row and column + Various operation flags + The feature detector. Use a SimpleBlobDetector for default + The center of circles detected if the chess board pattern is found, otherwise null is returned + + + + Finds centers in the grid of circles + + Source chessboard view + The number of inner circle per chessboard row and column + Various operation flags + The feature detector. Use a SimpleBlobDetector for default + output array of detected centers. + True if grid found. + + + + The file name of the cvextern library + + + + + The file name of the cvextern library + + + + + The file name of the opencv_ffmpeg library + + + + + The List of the opencv modules + + + + + Creates a window which can be used as a placeholder for images and trackbars. Created windows are reffered by their names. + If the window with such a name already exists, the function does nothing. + + Name of the window which is used as window identifier and appears in the window caption + Flags of the window. + + + + Waits for key event infinitely (delay <= 0) or for "delay" milliseconds. + + Delay in milliseconds. + The code of the pressed key or -1 if no key were pressed until the specified timeout has elapsed + + + + Shows the image in the specified window + + Name of the window + Image to be shown + + + + Destroys the window with a given name + + Name of the window to be destroyed + + + + Destroys all of the HighGUI windows. + + + + + Selects ROI on the given image. Function creates a window and allows user to select a ROI using mouse. Controls: use space or enter to finish selection, use key c to cancel selection (function will return the zero cv::Rect). + + Name of the window where selection process will be shown. + Image to select a ROI. + If true crosshair of selection rectangle will be shown. + If true center of selection will match initial mouse position. In opposite case a corner of selection rectangle will correspont to the initial mouse position. + Selected ROI or empty rect if selection canceled. + + + + Selects ROIs on the given image. Function creates a window and allows user to select a ROIs using mouse. Controls: use space or enter to finish current selection and start a new one, use esc to terminate multiple ROI selection process. + + Name of the window where selection process will be shown. + Image to select a ROI. + If true crosshair of selection rectangle will be shown. + If true center of selection will match initial mouse position. In opposite case a corner of selection rectangle will correspont to the initial mouse position. + Selected ROIs. + + + + Loads an image from the specified file and returns the pointer to the loaded image. Currently the following file formats are supported: + Windows bitmaps - BMP, DIB; + JPEG files - JPEG, JPG, JPE; + Portable Network Graphics - PNG; + Portable image format - PBM, PGM, PPM; + Sun rasters - SR, RAS; + TIFF files - TIFF, TIF; + OpenEXR HDR images - EXR; + JPEG 2000 images - jp2. + + The name of the file to be loaded + The image loading type + The loaded image + + + + The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects. + + Name of file to be loaded. + Read flags + Null if the reading fails, otherwise, an array of Mat from the file + + + + Saves the image to the specified file. The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format + + The name of the file to be saved to + The image to be saved + The parameters + true if success + + + + Decode image stored in the buffer + + The buffer + The image loading type + The output placeholder for the decoded matrix. + + + + Decode image stored in the buffer + + The buffer + The image loading type + The output placeholder for the decoded matrix. + + + + encode image and store the result as a byte vector. + + The image format + The image + Output buffer resized to fit the compressed image. + The pointer to the array of integers, which contains the parameter for encoding, use IntPtr.Zero for default + + + + Extracts pixels from src: + dst(x, y) = src(x + center.x - (width(dst)-1)*0.5, y + center.y - (height(dst)-1)*0.5) + where the values of pixels at non-integer coordinates are retrieved using bilinear interpolation. Every channel of multiple-channel images is processed independently. Whereas the rectangle center must be inside the image, the whole rectangle may be partially occluded. In this case, the replication border mode is used to get pixel values beyond the image boundaries. + + Source image + Size of the extracted patch. + Extracted rectangle + Depth of the extracted pixels. By default, they have the same depth as . + Floating point coordinates of the extracted rectangle center within the source image. The center must be inside the image. + + + + Resizes the image src down to or up to the specified size + + Source image. + Destination image + Output image size; if it equals zero, it is computed as: dsize=Size(round(fx*src.cols), round(fy * src.rows)). Either dsize or both fx and fy must be non-zero. + Scale factor along the horizontal axis + Scale factor along the vertical axis; + Interpolation method + + + + Resize an image such that it fits in a given frame + + The source image + The result image + The size of the frame + The interpolation method + If true, it will not try to scale up the image to fit the frame + + + + Applies an affine transformation to an image. + + Source image + Destination image + 2x3 transformation matrix + Size of the output image. + Interpolation method + Warp method + Pixel extrapolation method + A value used to fill outliers + + + + Calculates the matrix of an affine transform such that: + (x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2. + + Coordinates of 3 triangle vertices in the source image. If the array contains more than 3 points, only the first 3 will be used + Coordinates of the 3 corresponding triangle vertices in the destination image. If the array contains more than 3 points, only the first 3 will be used + The 2x3 rotation matrix that defines the Affine transform + + + + Calculates the matrix of an affine transform such that: + (x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2. + + Pointer to an array of PointF, Coordinates of 3 triangle vertices in the source image. + Pointer to an array of PointF, Coordinates of the 3 corresponding triangle vertices in the destination image + The destination 2x3 matrix + + + + Calculates rotation matrix + + Center of the rotation in the source image. + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at top-left corner). + Isotropic scale factor + Pointer to the destination 2x3 matrix + Pointer to the destination 2x3 matrix + + + + Applies a perspective transformation to an image + + Source image + Destination image + 3x3 transformation matrix + Size of the output image + Interpolation method + Warp method + Pixel extrapolation method + value used in case of a constant border + + + + calculates matrix of perspective transform such that: + (t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3. + + Coordinates of 4 quadrangle vertices in the source image + Coordinates of the 4 corresponding quadrangle vertices in the destination image + The perspective transform matrix + + + + calculates matrix of perspective transform such that: + (t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)^T + where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3. + + Coordinates of 4 quadrangle vertices in the source image + Coordinates of the 4 corresponding quadrangle vertices in the destination image + The 3x3 Homography matrix + + + + Applies a generic geometrical transformation to an image. + + Source image + Destination image + The first map of either (x,y) points or just x values having the type CV_16SC2 , CV_32FC1 , or CV_32FC2 . See convertMaps() for details on converting a floating point representation to fixed-point for speed. + The second map of y values having the type CV_16UC1 , CV_32FC1 , or none (empty map if map1 is (x,y) points), respectively. + Interpolation method (see resize() ). The method 'Area' is not supported by this function. + Pixel extrapolation method + A value used to fill outliers + + + + Inverts an affine transformation + + Original affine transformation + Output reverse affine transformation. + + + + The function emulates the human "foveal" vision and can be used for fast scale and rotation-invariant template matching, for object tracking etc. + + Source image + Destination image + The transformation center, where the output precision is maximal + Magnitude scale parameter + Interpolation method + warp method + + + + The function emulates the human "foveal" vision and can be used for fast scale and rotation-invariant template matching, for object tracking etc. + + Source image + Destination image + The transformation center, where the output precision is maximal + Maximum radius + Interpolation method + Warp method + + + + Performs downsampling step of Gaussian pyramid decomposition. First it convolves source image with the specified filter and then downsamples the image by rejecting even rows and columns. + + The source image. + The destination image, should have 2x smaller width and height than the source. + Border type + + + + Performs up-sampling step of Gaussian pyramid decomposition. First it upsamples the source image by injecting even zero rows and columns and then convolves result with the specified filter multiplied by 4 for interpolation. So the destination image is four times larger than the source image. + + The source image. + The destination image, should have 2x smaller width and height than the source. + Border type + + + + The function constructs a vector of images and builds the Gaussian pyramid by recursively applying pyrDown to the previously built pyramid layers, starting from dst[0]==src. + + Source image. Check pyrDown for the list of supported types. + Destination vector of maxlevel+1 images of the same type as src. dst[0] will be the same as src. dst[1] is the next pyramid layer, a smoothed and down-sized src, and so on. + 0-based index of the last (the smallest) pyramid layer. It must be non-negative. + Pixel extrapolation method + + + + Implements one of the variants of watershed, non-parametric marker-based segmentation algorithm, described in [Meyer92] Before passing the image to the function, user has to outline roughly the desired regions in the image markers with positive (>0) indices, i.e. every region is represented as one or more connected components with the pixel values 1, 2, 3 etc. Those components will be "seeds" of the future image regions. All the other pixels in markers, which relation to the outlined regions is not known and should be defined by the algorithm, should be set to 0's. On the output of the function, each pixel in markers is set to one of values of the "seed" components, or to -1 at boundaries between the regions. + + Note, that it is not necessary that every two neighbor connected components are separated by a watershed boundary (-1's pixels), for example, in case when such tangent components exist in the initial marker image. + The input 8-bit 3-channel image + The input/output Int32 depth single-channel image (map) of markers. + + + + Finds minimum area rectangle that contains both input rectangles inside + + First rectangle + Second rectangle + The minimum area rectangle that contains both input rectangles inside + + + + Fits line to 2D or 3D point set + + Input vector of 2D or 3D points, stored in std::vector or Mat. + The distance used for fitting + Numerical parameter (C) for some types of distances, if 0 then some optimal value is chosen + Sufficient accuracy for radius (distance between the coordinate origin and the line), 0.01 would be a good default + Sufficient accuracy for angle, 0.01 would be a good default + Output line parameters. In case of 2D fitting, it should be a vector of 4 elements (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line + and (x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements + (like Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector + collinear to the line and (x0, y0, z0) is a point on the line. + + + + + Fits line to 2D or 3D point set + + Input vector of 2D points. + The distance used for fitting + Numerical parameter (C) for some types of distances, if 0 then some optimal value is chosen + Sufficient accuracy for radius (distance between the coordinate origin and the line), 0.01 would be a good default + Sufficient accuracy for angle, 0.01 would be a good default + A normalized vector collinear to the line + A point on the line. + + + + Finds out if there is any intersection between two rotated rectangles. + + First rectangle + Second rectangle + The output array of the verticies of the intersecting region. It returns at most 8 vertices. Stored as VectorOfPointF or Mat as Mx1 of type CV_32FC2. + The intersect type + + + + Calculates vertices of the input 2d box. + + The box + The four vertices of rectangles. + + + + Calculates vertices of the input 2d box. + + The box + The output array of four vertices of rectangles. + + + + Fits an ellipse around a set of 2D points. + + Input 2D point set + The ellipse that fits best (in least-squares sense) to a set of 2D points + + + + The function calculates the ellipse that fits a set of 2D points. The Approximate Mean Square (AMS) is used. + + Input 2D point set + The rotated rectangle in which the ellipse is inscribed + + + + The function calculates the ellipse that fits a set of 2D points. The Direct least square (Direct) method by [58] is used. + + Input 2D point set + The rotated rectangle in which the ellipse is inscribed + + + + Finds convex hull of 2D point set using Sklansky's algorithm + + The points to find convex hull from + Orientation flag. If it is true, the output convex hull is oriented clockwise. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing to the right, and its Y axis pointing upwards. + The convex hull of the points + + + + The function cvConvexHull2 finds convex hull of 2D point set using Sklansky's algorithm. + + Input 2D point set + Output convex hull. It is either an integer vector of indices or vector of points. In the first case, the hull elements are 0-based indices of the convex hull points in the original array (since the set of convex hull points is a subset of the original point set). In the second case, hull elements are the convex hull points themselves. + Orientation flag. If it is true, the output convex hull is oriented clockwise. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing to the right, and its Y axis pointing upwards. + Operation flag. In case of a matrix, when the flag is true, the function returns convex hull points. Otherwise, it returns indices of the convex hull points. When the output array is std::vector, the flag is ignored, and the output depends on the type of the vector + + + + The default morphology value. + + + + + Erodes the source image using the specified structuring element that determines the shape of a pixel neighborhood over which the minimum is taken: + dst=erode(src,element): dst(x,y)=min((x',y') in element)) src(x+x',y+y') + The function supports the in-place mode. Erosion can be applied several (iterations) times. In case of color image each channel is processed independently. + + Source image. + Destination image + Structuring element used for erosion. If it is IntPtr.Zero, a 3x3 rectangular structuring element is used. + Number of times erosion is applied. + Pixel extrapolation method + Border value in case of a constant border, use Constant for default + Position of the anchor within the element; default value (-1, -1) means that the anchor is at the element center. + + + + Dilates the source image using the specified structuring element that determines the shape of a pixel neighborhood over which the maximum is taken + The function supports the in-place mode. Dilation can be applied several (iterations) times. In case of color image each channel is processed independently + + Source image + Destination image + Structuring element used for erosion. If it is IntPtr.Zero, a 3x3 rectangular structuring element is used + Number of times erosion is applied + Pixel extrapolation method + Border value in case of a constant border + Position of the anchor within the element; default value (-1, -1) means that the anchor is at the element center. + + + + Blurs an image using a Gaussian filter. + + input image; the image can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. + output image of the same size and type as src. + Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd. Or, they can be zero’s and then they are computed from sigma* . + Gaussian kernel standard deviation in X direction. + Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height , respectively (see getGaussianKernel() for details); to fully control the result regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY. + Pixel extrapolation method + + + + Blurs an image using the normalized box filter. + + input image; it can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. + Output image of the same size and type as src. + Blurring kernel size. + Anchor point; default value Point(-1,-1) means that the anchor is at the kernel center. + Border mode used to extrapolate pixels outside of the image. + + + + Blurs an image using the median filter. + + Input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U. + Destination array of the same size and type as src. + Aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... + + + + Blurs an image using the box filter. + + Input image. + Output image of the same size and type as src. + The output image depth (-1 to use src.depth()). + Blurring kernel size. + Anchor point; default value Point(-1,-1) means that the anchor is at the kernel center. + Specifying whether the kernel is normalized by its area or not. + Border mode used to extrapolate pixels outside of the image. + + + + Calculates the normalized sum of squares of the pixel values overlapping the filter. + For every pixel(x, y) in the source image, the function calculates the sum of squares of those neighboring pixel values which overlap the filter placed over the pixel(x, y). + The unnormalized square box filter can be useful in computing local image statistics such as the the local variance and standard deviation around the neighborhood of a pixel. + + input image + output image of the same size and type as src + the output image depth (-1 to use src.depth()) + kernel size + kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel center + flag, specifying whether the kernel is to be normalized by it's area or not. + border mode used to extrapolate pixels outside of the image + + + + Applies the bilateral filter to an image. + + Source 8-bit or floating-point, 1-channel or 3-channel image. + Destination image of the same size and type as src . + Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace . + Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace ) will be mixed together, resulting in larger areas of semi-equal color. + Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0 , it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is proportional to sigmaSpace. + Border mode used to extrapolate pixels outside of the image. + + + + The Sobel operators combine Gaussian smoothing and differentiation so the result is more or less robust to the noise. Most often, the function is called with (xorder=1, yorder=0, aperture_size=3) or (xorder=0, yorder=1, aperture_size=3) to calculate first x- or y- image derivative. The first case corresponds to +
 
+              |-1  0  1|
+              |-2  0  2|
+              |-1  0  1|
+ kernel and the second one corresponds to +
+              |-1 -2 -1|
+              | 0  0  0|
+              | 1  2  1|
+ or +
+              | 1  2  1|
+              | 0  0  0|
+              |-1 -2 -1|
+ kernel, depending on the image origin (origin field of IplImage structure). No scaling is done, so the destination image usually has larger by absolute value numbers than the source image. To avoid overflow, the function requires 16-bit destination image if the source image is 8-bit. The result can be converted back to 8-bit using cvConvertScale or cvConvertScaleAbs functions. Besides 8-bit images the function can process 32-bit floating-point images. Both source and destination must be single-channel images of equal size or ROI size +
+ Source image. + Destination image + output image depth; the following combinations of src.depth() and ddepth are supported: + src.depth() = CV_8U, ddepth = -1/CV_16S/CV_32F/CV_64F + src.depth() = CV_16U/CV_16S, ddepth = -1/CV_32F/CV_64F + src.depth() = CV_32F, ddepth = -1/CV_32F/CV_64F + src.depth() = CV_64F, ddepth = -1/CV_64F + when ddepth=-1, the destination image will have the same depth as the source; in the case of 8-bit input images it will result in truncated derivatives. + Order of the derivative x + Order of the derivative y + Size of the extended Sobel kernel, must be 1, 3, 5 or 7. + Pixel extrapolation method + Optional scale factor for the computed derivative values + Optional delta value that is added to the results prior to storing them in +
+ + + Calculates the first order image derivative in both x and y using a Sobel operator. Equivalent to calling: + Sobel(src, dx, CV_16SC1, 1, 0, 3 ); + Sobel(src, dy, CV_16SC1, 0, 1, 3 ); + + input image. + output image with first-order derivative in x. + output image with first-order derivative in y. + size of Sobel kernel. It must be 3. + pixel extrapolation method + + + + Calculates the first x- or y- image derivative using Scharr operator. + + input image. + output image of the same size and the same number of channels as src. + output image depth + order of the derivative x. + order of the derivative y. + optional scale factor for the computed derivative values; by default, no scaling is applied + optional delta value that is added to the results prior to storing them in dst. + pixel extrapolation method + + + + Calculates Laplacian of the source image by summing second x- and y- derivatives calculated using Sobel operator: + dst(x,y) = d2src/dx2 + d2src/dy2 + Specifying aperture_size=1 gives the fastest variant that is equal to convolving the image with the following kernel: + |0 1 0| + |1 -4 1| + |0 1 0| + Similar to cvSobel function, no scaling is done and the same combinations of input and output formats are supported. + + Source image. + Destination image. Should have type of float + Desired depth of the destination image. + Aperture size used to compute the second-derivative filters. + Optional scale factor for the computed Laplacian values. By default, no scaling is applied. + Optional delta value that is added to the results prior to storing them in dst. + Pixel extrapolation method. + + + + Finds the edges on the input and marks them in the output image edges using the Canny algorithm. The smallest of threshold1 and threshold2 is used for edge linking, the largest - to find initial segments of strong edges. + + Input image + Image to store the edges found by the function + The first threshold + The second threshold. + Aperture parameter for Sobel operator + a flag, indicating whether a more accurate norm should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default norm is enough ( L2gradient=false ). + + + + Finds the edges on the input , and marks them in the output image edges using the Canny algorithm. The smallest of threshold1 and threshold2 is used for edge linking, the largest - to find initial segments of strong edges. + + 16-bit x derivative of input image + 16-bit y derivative of input image + Image to store the edges found by the function + The first threshold + The second threshold. + a flag, indicating whether a more accurate norm should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default norm is enough ( L2gradient=false ). + + + + The function tests whether the input contour is convex or not. The contour must be simple, that is, without self-intersections. Otherwise, the function output is undefined. + + Input vector of 2D points + true if input is convex + + + + finds intersection of two convex polygons + + The first convex polygon + The second convex polygon + The intersection of the convex polygon + Handle nest + + + + + Determines whether the point is inside contour, outside, or lies on an edge (or coinsides with a vertex). It returns positive, negative or zero value, correspondingly + + Input contour + The point tested against the contour + If != 0, the function estimates distance from the point to the nearest contour edge + + When measureDist = false, the return value is >0 (inside), <0 (outside) and =0 (on edge), respectively. + When measureDist != true, it is a signed distance between the point and the nearest contour edge + + + + + Finds the convexity defects of a contour. + + Input contour + Convex hull obtained using ConvexHull that should contain pointers or indices to the contour points, not the hull points themselves, i.e. return_points parameter in cvConvexHull2 should be 0 + The output vector of convexity defects. Each convexity defect is represented as 4-element integer vector (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices in the original contour of the convexity defect beginning, end and the farthest point, and fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the farthest contour point and the hull. That is, to get the floating-point value of the depth will be fixpt_depth/256.0. + + + + Find the bounding rectangle for the specific array of points + + The collection of points + The bounding rectangle for the array of points + + + + Finds a rotated rectangle of the minimum area enclosing the input 2D point set. + + Input vector of 2D points + a circumscribed rectangle of the minimal area for 2D point set + + + + Finds the minimal circumscribed circle for 2D point set using iterative algorithm. It returns nonzero if the resultant circle contains all the input points and zero otherwise (i.e. algorithm failed) + + Sequence or array of 2D points + The minimal circumscribed circle for 2D point set + + + + Finds the minimal circumscribed circle for 2D point set using iterative algorithm. It returns nonzero if the resultant circle contains all the input points and zero otherwise (i.e. algorithm failed) + + Sequence or array of 2D points + The minimal circumscribed circle for 2D point set + + + + Finds a triangle of minimum area enclosing a 2D point set and returns its area. + + Input vector of 2D points with depth CV_32S or CV_32F + Output vector of three 2D points defining the vertices of the triangle. The depth of the OutputArray must be CV_32F. + The triangle's area + + + + Approximates a polygonal curve(s) with the specified precision. + + Input vector of a 2D point + Result of the approximation. The type should match the type of the input curve. + Parameter specifying the approximation accuracy. This is the maximum distance between the original curve and its approximation. + If true, the approximated curve is closed (its first and last vertices are connected). Otherwise, it is not closed. + + + + Returns the up-right bounding rectangle for 2d point set + + Input 2D point set, stored in std::vector or Mat. + The up-right bounding rectangle for 2d point set + + + + Calculates area of the whole contour or contour section. + + Input vector of 2D points (contour vertices), stored in std::vector or Mat. + Oriented area flag. If it is true, the function returns a signed area value, depending on the contour orientation (clockwise or counter-clockwise). + Using this feature you can determine orientation of a contour by taking the sign of an area. + By default, the parameter is false, which means that the absolute value is returned. + The area of the whole contour or contour section + + + + Calculates a contour perimeter or a curve length + + Sequence or array of the curve points + + Indicates whether the curve is closed or not. + + Contour perimeter or a curve length + + + + Applies a fixed-level threshold to each array element. + The function applies fixed-level thresholding to a multiple-channel array. The function is typically used to get a bi-level (binary) image out of a grayscale image ( compare could be also used for this purpose) or for removing a noise, that is, filtering out pixels with too small or too large values. There are several types of thresholding supported by the function. They are determined by type parameter. + + Input array (multiple-channel, 8-bit or 32-bit floating point). + Output array of the same size and type and the same number of channels as src. + Threshold value + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Thresholding type + + + + Transforms grayscale image to binary image. + Threshold calculated individually for each pixel. + For the method CV_ADAPTIVE_THRESH_MEAN_C it is a mean of x pixel + neighborhood, subtracted by param1. + For the method CV_ADAPTIVE_THRESH_GAUSSIAN_C it is a weighted sum (gaussian) of x pixel neighborhood, subtracted by param1. + + Source array (single-channel, 8-bit of 32-bit floating point). + Destination array; must be either the same type as src or 8-bit. + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Adaptive_method + Thresholding type. must be one of CV_THRESH_BINARY, CV_THRESH_BINARY_INV + The size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, ... + Constant subtracted from mean or weighted mean. It may be negative. + + + + Retrieves contours from the binary image and returns the number of retrieved contours. The pointer firstContour is filled by the function. It will contain pointer to the first most outer contour or IntPtr.Zero if no contours is detected (if the image is completely black). Other contours may be reached from firstContour using h_next and v_next links. The sample in cvDrawContours discussion shows how to use contours for connected component detection. Contours can be also used for shape analysis and object recognition - see squares.c in OpenCV sample directory + The function modifies the source image content + + The source 8-bit single channel image. Non-zero pixels are treated as 1s, zero pixels remain 0s - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content + Detected contours. Each contour is stored as a vector of points. + Optional output vector, containing information about the image topology. + Retrieval mode + Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation). + Offset, by which every contour point is shifted. This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context + The number of countours + + + + Retrieves contours from the binary image as a contour tree. The pointer firstContour is filled by the function. It is provided as a convenient way to obtain the hierarchy value as int[,]. + The function modifies the source image content + + The source 8-bit single channel image. Non-zero pixels are treated as 1s, zero pixels remain 0s - that is image treated as binary. To get such a binary image from grayscale, one may use cvThreshold, cvAdaptiveThreshold or cvCanny. The function modifies the source image content + Detected contours. Each contour is stored as a vector of points. + Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation). + Offset, by which every contour point is shifted. This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context + The contour hierarchy + + + + Convert raw data to bitmap + + The pointer to the raw data + The step + The size of the image + The source image color type + The number of channels + The source image depth type + Try to create Bitmap that shares the data with the image + The Bitmap + + + + Converts input image from one color space to another. The function ignores colorModel and channelSeq fields of IplImage header, so the source image color space should be specified correctly (including order of the channels in case of RGB space, e.g. BGR means 24-bit format with B0 G0 R0 B1 G1 R1 ... layout, whereas RGB means 24-bit format with R0 G0 B0 R1 G1 B1 ... layout). + + The source 8-bit (8u), 16-bit (16u) or single-precision floating-point (32f) image + The destination image of the same data type as the source one. The number of channels may be different + Source color type. + Destination color type + + + + Converts input image from one color space to another. The function ignores colorModel and channelSeq fields of IplImage header, so the source image color space should be specified correctly (including order of the channels in case of RGB space, e.g. BGR means 24-bit format with B0 G0 R0 B1 G1 R1 ... layout, whereas RGB means 24-bit format with R0 G0 B0 R1 G1 B1 ... layout). + + The source 8-bit (8u), 16-bit (16u) or single-precision floating-point (32f) image + The destination image of the same data type as the source one. The number of channels may be different + Color conversion operation that can be specifed using CV_src_color_space2dst_color_space constants + number of channels in the destination image; if the parameter is 0, the number of the channels is derived automatically from src and code . + + + + Finds circles in grayscale image using some modification of Hough transform + + The input 8-bit single-channel grayscale image + The storage for the circles detected. It can be a memory storage (in this case a sequence of circles is created in the storage and returned by the function) or single row/single column matrix (CvMat*) of type CV_32FC3, to which the circles' parameters are written. The matrix header is modified by the function so its cols or rows will contain a number of lines detected. If circle_storage is a matrix and the actual number of lines exceeds the matrix size, the maximum possible number of circles is returned. Every circle is encoded as 3 floating-point numbers: center coordinates (x,y) and the radius + Currently, the only implemented method is CV_HOUGH_GRADIENT + Resolution of the accumulator used to detect centers of the circles. For example, if it is 1, the accumulator will have the same resolution as the input image, if it is 2 - accumulator will have twice smaller width and height, etc + Minimum distance between centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed + The first method-specific parameter. In case of CV_HOUGH_GRADIENT it is the higher threshold of the two passed to Canny edge detector (the lower one will be twice smaller). + The second method-specific parameter. In case of CV_HOUGH_GRADIENT it is accumulator threshold at the center detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first + Minimal radius of the circles to search for + Maximal radius of the circles to search for. By default the maximal radius is set to max(image_width, image_height). + Pointer to the sequence of circles + + + + Finds circles in a grayscale image using the Hough transform + + 8-bit, single-channel, grayscale input image. + Detection method to use. Currently, the only implemented method is CV_HOUGH_GRADIENT , which is basically 21HT + Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height. + Minimum distance between the centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed. + First method-specific parameter. In case of CV_HOUGH_GRADIENT , it is the higher threshold of the two passed to the Canny() edge detector (the lower one is twice smaller). + Second method-specific parameter. In case of CV_HOUGH_GRADIENT , it is the accumulator threshold for the circle centers at the detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first. + Minimum circle radius. + Maximum circle radius. + The circles detected + + + + Finds lines in a binary image using the standard Hough transform. + + 8-bit, single-channel binary source image. The image may be modified by the function. + Output vector of lines. Each line is represented by a two-element vector + Distance resolution of the accumulator in pixels. + Angle resolution of the accumulator in radians. + Accumulator threshold parameter. Only those lines are returned that get enough votes (> threshold) + For the multi-scale Hough transform, it is a divisor for the distance resolution rho . The coarse accumulator distance resolution is rho and the accurate accumulator resolution is rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these parameters should be positive. + For the multi-scale Hough transform, it is a divisor for the distance resolution theta + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image. The image may be modified by the function. + Distance resolution of the accumulator in pixels + Angle resolution of the accumulator in radians + Accumulator threshold parameter. Only those lines are returned that get enough votes + Minimum line length. Line segments shorter than that are rejected. + Maximum allowed gap between points on the same line to link them. + The found line segments + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image. The image may be modified by the function. + Output vector of lines. Each line is represented by a 4-element vector (x1, y1, x2, y2) + Distance resolution of the accumulator in pixels + Angle resolution of the accumulator in radians + Accumulator threshold parameter. Only those lines are returned that get enough votes + Minimum line length. Line segments shorter than that are rejected. + Maximum allowed gap between points on the same line to link them. + + + + Calculates spatial and central moments up to the third order and writes them to moments. The moments may be used then to calculate gravity center of the shape, its area, main axises and various shape characeteristics including 7 Hu invariants. + + Image (1-channel or 3-channel with COI set) or polygon (CvSeq of points or a vector of points) + (For images only) If the flag is true, all the zero pixel values are treated as zeroes, all the others are treated as 1s + The moment + + + + This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result + + Image where the search is running. It should be 8-bit or 32-bit floating-point + Searched template; must be not greater than the source image and the same data type as the image + A map of comparison results; single-channel 32-bit floating-point. If image is WxH and templ is wxh then result must be W-w+1xH-h+1. + Specifies the way the template must be compared with image regions + Mask of searched template. It must have the same datatype and size with templ. It is not set by default. + + + + Compares two shapes. The 3 implemented methods all use Hu moments + + First contour or grayscale image + Second contour or grayscale image + Comparison method + Method-specific parameter (is not used now) + The result of the comparison + + + + Returns a structuring element of the specified size and shape for morphological operations. + + Element shape + Size of the structuring element. + Anchor position within the element. The value (-1, -1) means that the anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates how much the result of the morphological operation is shifted. + The structuring element + + + + Performs advanced morphological transformations. + + Source image. + Destination image. + Structuring element. + Type of morphological operation. + Number of times erosion and dilation are applied. + Pixel extrapolation method. + Anchor position with the kernel. Negative values mean that the anchor is at the kernel center. + Border value in case of a constant border. + + + + The algorithm normalizes brightness and increases contrast of the image + + The input 8-bit single-channel image + The output image of the same size and the same data type as src + + + + Calculates a histogram of a set of arrays. + + Source arrays. They all should have the same depth, CV_8U or CV_32F , and the same size. Each of them can have an arbitrary number of channels. + List of the channels used to compute the histogram. + Optional mask. If the matrix is not empty, it must be an 8-bit array of the same size as images[i] . The non-zero mask elements mark the array elements counted in the histogram. + Output histogram + Array of histogram sizes in each dimension. + Array of the dims arrays of the histogram bin boundaries in each dimension. + Accumulation flag. If it is set, the histogram is not cleared in the beginning when it is allocated. This feature enables you to compute a single histogram from several sets of arrays, or to update the histogram in time. + + + + Calculates the back projection of a histogram. + + Source arrays. They all should have the same depth, CV_8U or CV_32F , and the same size. Each of them can have an arbitrary number of channels. + Number of source images. + Input histogram that can be dense or sparse. + Destination back projection array that is a single-channel array of the same size and depth as images[0] . + Array of arrays of the histogram bin boundaries in each dimension. + Optional scale factor for the output back projection. + + + + Compares two histograms. + + First compared histogram. + Second compared histogram of the same size as H1 . + Comparison method + The distance between the histogram + + + + Adds the whole image or its selected region to accumulator sum + + Input image, 1- or 3-channel, 8-bit or 32-bit floating point. (each channel of multi-channel image is processed independently). + Accumulator of the same number of channels as input image, 32-bit or 64-bit floating-point. + Optional operation mask + + + + Adds the input or its selected region, raised to power 2, to the accumulator sqsum + + Input image, 1- or 3-channel, 8-bit or 32-bit floating point (each channel of multi-channel image is processed independently) + Accumulator of the same number of channels as input image, 32-bit or 64-bit floating-point + Optional operation mask + + + + Adds product of 2 images or thier selected regions to accumulator acc + + First input image, 1- or 3-channel, 8-bit or 32-bit floating point (each channel of multi-channel image is processed independently) + Second input image, the same format as the first one + Accumulator of the same number of channels as input images, 32-bit or 64-bit floating-point + Optional operation mask + + + + Calculates weighted sum of input and the accumulator acc so that acc becomes a running average of frame sequence: + acc(x,y)=(1-) * acc(x,y) + * image(x,y) if mask(x,y)!=0 + where regulates update speed (how fast accumulator forgets about previous frames). + + Input image, 1- or 3-channel, 8-bit or 32-bit floating point (each channel of multi-channel image is processed independently). + Accumulator of the same number of channels as input image, 32-bit or 64-bit floating-point. + Weight of input image + Optional operation mask + + + + Runs the Harris edge detector on image. Similarly to cvCornerMinEigenVal and cvCornerEigenValsAndVecs, for each pixel it calculates 2x2 gradient covariation matrix M over block_size x block_size neighborhood. Then, it stores + det(M) - k*trace(M)^2 + to the destination image. Corners in the image can be found as local maxima of the destination image. + + Input image + Image to store the Harris detector responces. Should have the same size as image + Neighborhood size + Aperture parameter for Sobel operator (see cvSobel). format. In the case of floating-point input format this parameter is the number of the fixed float filter used for differencing. + Harris detector free parameter. + Pixel extrapolation method. + + + + Iterates to find the sub-pixel accurate location of corners, or radial saddle points + + Input image + Initial coordinates of the input corners and refined coordinates on output + Half sizes of the search window. For example, if win=(5,5) then 5*2+1 x 5*2+1 = 11 x 11 search window is used + Half size of the dead region in the middle of the search zone over which the summation in formulae below is not done. It is used sometimes to avoid possible singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such size + Criteria for termination of the iterative process of corner refinement. That is, the process of corner position refinement stops either after certain number of iteration or when a required accuracy is achieved. The criteria may specify either of or both the maximum number of iteration and the required accuracy + + + + Calculates one or more integral images for the source image + Using these integral images, one may calculate sum, mean, standard deviation over arbitrary up-right or rotated rectangular region of the image in a constant time. + It makes possible to do a fast blurring or fast block correlation with variable window size etc. In case of multi-channel images sums for each channel are accumulated independently. + + The source image, WxH, 8-bit or floating-point (32f or 64f) image. + The integral image, W+1xH+1, 32-bit integer or double precision floating-point (64f). + The integral image for squared pixel values, W+1xH+1, double precision floating-point (64f). + The integral for the image rotated by 45 degrees, W+1xH+1, the same data type as sum. + Desired depth of the integral and the tilted integral images, CV_32S, CV_32F, or CV_64F. + Desired depth of the integral image of squared pixel values, CV_32F or CV_64F. + + + + Calculates distance to closest zero pixel for all non-zero pixels of source image + + Source 8-bit single-channel (binary) image. + Output image with calculated distances (32-bit floating-point, single-channel). + Type of distance + Size of distance transform mask; can be 3 or 5. + In case of CV_DIST_L1 or CV_DIST_C the parameter is forced to 3, because 3x3 mask gives the same result as 5x5 yet it is faster. + The optional output 2d array of labels of integer type and the same size as src and dst. Can be null if not needed + Type of the label array to build. If labelType==CCOMP then each connected component of zeros in src (as well as all the non-zero pixels closest to the connected component) will be assigned the same label. If labelType==PIXEL then each zero pixel (and all the non-zero pixels closest to it) gets its own label. + + + + Fills a connected component with given color. + + Input 1- or 3-channel, 8-bit or floating-point image. It is modified by the function unless CV_FLOODFILL_MASK_ONLY flag is set. + The starting point. + New value of repainted domain pixels. + Maximal lower brightness/color difference + between the currently observed pixel and one of its neighbor belong to the component + or seed pixel to add the pixel to component. + In case of 8-bit color images it is packed value. + Maximal upper brightness/color difference + between the currently observed pixel and one of its neighbor belong to the component + or seed pixel to add the pixel to component. + In case of 8-bit color images it is packed value. + The operation flags. + Operation mask, + should be singe-channel 8-bit image, 2 pixels wider and 2 pixels taller than image. + If not IntPtr.Zero, the function uses and updates the mask, so user takes responsibility of initializing mask content. + Floodfilling can't go across non-zero pixels in the mask, for example, an edge detector output can be used as a mask to stop filling at edges. + Or it is possible to use the same mask in multiple calls to the function to make sure the filled area do not overlap. + Note: because mask is larger than the filled image, pixel in mask that corresponds to (x,y) pixel in image will have coordinates (x+1,y+1). + Output parameter set by the function to the minimum bounding rectangle of the repainted domain. + Flood fill connectivity + The area of the connected component + + + + Filters image using meanshift algorithm + + Source image + Result image + The spatial window radius. + The color window radius. + Maximum level of the pyramid for the segmentation. Use 1 as default value + Termination criteria: when to stop meanshift iterations. Use new MCvTermCriteria(5, 1) as default value + + + + Converts image transformation maps from one representation to another. + + The first input map of type CV_16SC2 , CV_32FC1 , or CV_32FC2 . + The second input map of type CV_16UC1 , CV_32FC1 , or none (empty matrix), respectively. + The first output map that has the type dstmap1type and the same size as src . + The second output map. + Depth type of the first output map that should be CV_16SC2 , CV_32FC1 , or CV_32FC2. + The number of channels in the dst map. + Flag indicating whether the fixed-point maps are used for the nearest-neighbor or for a more complex interpolation. + + + + Computes the 'minimal work' distance between two weighted point configurations. + + First signature, a size1 x dims + 1 floating-point matrix. Each row stores the point weight followed by the point coordinates. The matrix is allowed to have a single column (weights only) if the user-defined cost matrix is used. + Second signature of the same format as signature1 , though the number of rows may be different. The total weights may be different. In this case an extra 'dummy' point is added to either signature1 or signature2 + Used metric. CV_DIST_L1, CV_DIST_L2 , and CV_DIST_C stand for one of the standard metrics. CV_DIST_USER means that a pre-calculated cost matrix cost is used. + User-defined size1 x size2 cost matrix. Also, if a cost matrix is used, lower boundary lowerBound cannot be calculated because it needs a metric function. + Optional input/output parameter: lower boundary of a distance between the two signatures that is a distance between mass centers. The lower boundary may not be calculated if the user-defined cost matrix is used, the total weights of point configurations are not equal, or if the signatures consist of weights only (the signature matrices have a single column). + Resultant size1 x size2 flow matrix + The 'minimal work' distance between two weighted point configurations. + + + + The function is used to detect translational shifts that occur between two images. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in the frequency domain. It can be used for fast image registration as well as motion estimation. + + Source floating point array (CV_32FC1 or CV_64FC1) + Source floating point array (CV_32FC1 or CV_64FC1) + Floating point array with windowing coefficients to reduce edge effects (optional). + Signal power within the 5x5 centroid around the peak, between 0 and 1 + The translational shifts that occur between two images + + + + This function computes a Hanning window coefficients in two dimensions. + + Destination array to place Hann coefficients in + The window size specifications + Created array type + + + + Draws the line segment between pt1 and pt2 points in the image. The line is clipped by the image or ROI rectangle. For non-antialiased lines with integer coordinates the 8-connected or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased lines are drawn using Gaussian filtering. + + The image + First point of the line segment + Second point of the line segment + Line color + Line thickness. + Type of the line: + 8 (or 0) - 8-connected line. + 4 - 4-connected line. + CV_AA - antialiased line. + + Number of fractional bits in the point coordinates + + + + Draws a arrow segment pointing from the first point to the second one. + + Image + The point the arrow starts from. + The point the arrow points to. + Line color. + Line thickness. + Type of the line. + Number of fractional bits in the point coordinates. + The length of the arrow tip in relation to the arrow length + + + + Draws a single or multiple polygonal curves + + Image + Array points + + Indicates whether the polylines must be drawn closed. + If !=0, the function draws the line from the last vertex of every contour to the first vertex. + + Polyline color + Thickness of the polyline edges + Type of the line segments, see cvLine description + Number of fractional bits in the vertex coordinates + + + + Draws a single or multiple polygonal curves + + Image + Array of pointers to polylines + + Indicates whether the polylines must be drawn closed. + If !=0, the function draws the line from the last vertex of every contour to the first vertex. + + Polyline color + Thickness of the polyline edges + Type of the line segments, see cvLine description + Number of fractional bits in the vertex coordinates + + + + Draws a rectangle specified by a CvRect structure + + /// Image + The rectangle to be drawn + Line color + Thickness of lines that make up the rectangle. Negative values make the function to draw a filled rectangle. + Type of the line + Number of fractional bits in the point coordinates + + + + Computes the connected components labeled image of boolean image + + The boolean image + The connected components labeled image of boolean image + 4 or 8 way connectivity + Specifies the output label image type, an important consideration based on the total number of labels or alternatively the total number of pixels in the source image + N, the total number of labels [0, N-1] where 0 represents the background label. + + + + Computes the connected components labeled image of boolean image + + The boolean image + The connected components labeled image of boolean image + Statistics output for each label, including the background label, see below for available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of cv::ConnectedComponentsTypes. The data type is CV_32S + Centroid output for each label, including the background label. Centroids are accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F. + 4 or 8 way connectivity + Specifies the output label image type, an important consideration based on the total number of labels or alternatively the total number of pixels in the source image + N, the total number of labels [0, N-1] where 0 represents the background label. + + + + Calculates seven Hu invariants + + The output Hu moments. e.g. a Mat can be passed here. + The image moment + + + + Calculates seven Hu invariants + + The image moment + The output Hu moments. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + Weights + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + weights + level weights + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + reject levels + level weights + Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. + Relative difference between sides of the rectangles to merge them into a group. + + + + Groups the object candidate rectangles. + + Input/output vector of rectangles. Output vector includes retained and grouped rectangles. + found weights + found scales + detect threshold, use 0 for default + win det size, use (64, 128) for default + + + + Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method). + What we mean here by “linear programming problem” (or LP problem, for short) can be formulated as: + Maximize c x subject to: Ax <= b and x >= 0 + + This row-vector corresponds to c in the LP problem formulation (see above). It should contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted, in the latter case it is understood to correspond to c^T. + m-by-n+1 matrix, whose rightmost column corresponds to b in formulation above and the remaining to A. It should containt 32- or 64-bit floating point numbers. + The solution will be returned here as a column-vector - it corresponds to c in the formulation above. It will contain 64-bit floating point numbers. + The return codes + + + + Primal-dual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional). + As the image denoising, in particular, may be seen as the variational problem, primal-dual algorithm then can be used to perform + denoising and this is exactly what is implemented. + + This array should contain one or more noised versions of the image that is to be restored. + Here the denoised image will be stored. There is no need to do pre-allocation of storage space, as it will be automatically allocated, if necessary. + Corresponds to in the formulas above. As it is enlarged, the smooth (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly speaking, as it becomes smaller, the result will be more blur but more sever outliers will be removed. + Number of iterations that the algorithm will run. Of course, as more iterations as better, but it is hard to quantitatively refine this statement, so just use the default and increase it if the results are poor. + + + + Reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable objects from still images or video. + + The input 8-bit 1-channel or 3-channel image + The inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that needs to be inpainted + The output image of the same format and the same size as input + The inpainting method + The radius of circular neighborhood of each point inpainted that is considered by the algorithm + + + + Perform image denoising using Non-local Means Denoising algorithm: + http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/ + with several computational optimizations. Noise expected to be a Gaussian white noise. + + Input 8-bit 1-channel, 2-channel or 3-channel image. + Output image with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + Size in pixels of the template patch that is used to compute weights. Should be odd. + Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. + + + + Perform image denoising using Non-local Means Denoising algorithm (modified for color image): + http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/ + with several computational optimizations. Noise expected to be a Gaussian white noise. + The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function. + + Input 8-bit 1-channel, 2-channel or 3-channel image. + Output image with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + The same as h but for color components. For most images value equals 10 will be enought to remove colored noise and do not distort colors. + Size in pixels of the template patch that is used to compute weights. Should be odd. + Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. + + + + Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters are used in many different applications. + + Input 8-bit 3-channel image + Output 8-bit 3-channel image + Edge preserving filters + Range between 0 to 200 + Range between 0 to 1 + + + + This filter enhances the details of a particular image. + + Input 8-bit 3-channel image + Output image with the same size and type as src + Range between 0 to 200 + Range between 0 to 1 + + + + Pencil-like non-photorealistic line drawing + + Input 8-bit 3-channel image + Output 8-bit 1-channel image + Output image with the same size and type as src + Range between 0 to 200 + Range between 0 to 1 + Range between 0 to 0.1 + + + + Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, high-contrast features. + + Input 8-bit 3-channel image. + Output image with the same size and type as src. + Range between 0 to 200. + Range between 0 to 1. + + + + Given an original color image, two differently colored versions of this image can be mixed seamlessly. + + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Output image with the same size and type as src . + R-channel multiply factor. Multiplication factor is between .5 to 2.5. + G-channel multiply factor. Multiplication factor is between .5 to 2.5. + B-channel multiply factor. Multiplication factor is between .5 to 2.5. + + + + Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image. + + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Output image with the same size and type as src. + Value ranges between 0-2. + Value ranges between 0-2. + + + + By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge Detector is used. + + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Output image with the same size and type as src. + Range from 0 to 100. + Value > 100 + The size of the Sobel kernel to be used. + + + + Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized black-and-white photograph rendering, and in many single channel image processing applications + + Input 8-bit 3-channel image. + Output 8-bit 1-channel image. + Output 8-bit 3-channel image. + + + + Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or local changes concerned to a selection. Here we are interested in achieving local changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless manner. The extent of the changes ranges from slight distortions to complete replacement by novel content + + Input 8-bit 3-channel image. + Input 8-bit 3-channel image. + Input 8-bit 1 or 3-channel image. + Point in dst image where object is placed. + Output image with the same size and type as dst. + Cloning method + + + + Implements CAMSHIFT object tracking algorithm ([Bradski98]). First, it finds an object center using cvMeanShift and, after that, calculates the object size and orientation. + + Back projection of object histogram + Initial search window + Criteria applied to determine when the window search should be finished + Circumscribed box for the object, contains object size and orientation + + + + Iterates to find the object center given its back projection and initial position of search window. The iterations are made until the search window center moves by less than the given value and/or until the function has done the maximum number of iterations. + + Back projection of object histogram + Initial search window + Criteria applied to determine when the window search should be finished. + The number of iterations made + + + + Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK. + + 8-bit input image. + Output pyramid. + Window size of optical flow algorithm. Must be not less than winSize argument of calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels. + 0-based maximal pyramid level number. + Set to precompute gradients for the every pyramid level. If pyramid is constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally. + The border mode for pyramid layers. + The border mode for gradients. + put ROI of input image into the pyramid if possible. You can pass false to force data copying. + Number of levels in constructed pyramid. Can be less than maxLevel. + + + + Updates the motion history image as following: + mhi(x,y)=timestamp if silhouette(x,y)!=0 + 0 if silhouette(x,y)=0 and mhi(x,y)<timestamp-duration + mhi(x,y) otherwise + That is, MHI pixels where motion occurs are set to the current timestamp, while the pixels where motion happened far ago are cleared. + + Silhouette mask that has non-zero pixels where the motion occurs. + Motion history image, that is updated by the function (single-channel, 32-bit floating-point) + Current time in milliseconds or other units. + Maximal duration of motion track in the same units as timestamp. + + + + Calculates the derivatives Dx and Dy of mhi and then calculates gradient orientation as: + orientation(x,y)=arctan(Dy(x,y)/Dx(x,y)) + where both Dx(x,y)' and Dy(x,y)' signs are taken into account (as in cvCartToPolar function). After that mask is filled to indicate where the orientation is valid (see delta1 and delta2 description). + + Motion history image + Mask image; marks pixels where motion gradient data is correct. Output parameter. + Motion gradient orientation image; contains angles from 0 to ~360. + The function finds minimum (m(x,y)) and maximum (M(x,y)) mhi values over each pixel (x,y) neihborhood and assumes the gradient is valid only if min(delta1,delta2) <= M(x,y)-m(x,y) <= max(delta1,delta2). + The function finds minimum (m(x,y)) and maximum (M(x,y)) mhi values over each pixel (x,y) neihborhood and assumes the gradient is valid only if min(delta1,delta2) <= M(x,y)-m(x,y) <= max(delta1,delta2). + Aperture size of derivative operators used by the function: CV_SCHARR, 1, 3, 5 or 7 (see cvSobel). + + + + Finds all the motion segments and marks them in segMask with individual values each (1,2,...). It also returns a sequence of CvConnectedComp structures, one per each motion components. After than the motion direction for every component can be calculated with cvCalcGlobalOrientation using extracted mask of the particular component (using cvCmp) + + Motion history image + Image where the mask found should be stored, single-channel, 32-bit floating-point + Current time in milliseconds or other units + Segmentation threshold; recommended to be equal to the interval between motion history "steps" or greater + Vector containing ROIs of motion connected components. + + + + Calculates the general motion direction in the selected region and returns the angle between 0 and 360. At first the function builds the orientation histogram and finds the basic orientation as a coordinate of the histogram maximum. After that the function calculates the shift relative to the basic orientation as a weighted sum of all orientation vectors: the more recent is the motion, the greater is the weight. The resultant angle is a circular sum of the basic orientation and the shift. + + Motion gradient orientation image; calculated by the function cvCalcMotionGradient. + Mask image. It may be a conjunction of valid gradient mask, obtained with cvCalcMotionGradient and mask of the region, whose direction needs to be calculated. + Motion history image. + Current time in milliseconds or other units, it is better to store time passed to cvUpdateMotionHistory before and reuse it here, because running cvUpdateMotionHistory and cvCalcMotionGradient on large images may take some time. + Maximal duration of motion track in milliseconds, the same as in cvUpdateMotionHistory + The angle + + + + Calculates optical flow for a sparse feature set using iterative Lucas-Kanade method in pyramids + + First frame, at time t + Second frame, at time t + dt + Array of points for which the flow needs to be found + Size of the search window of each pyramid level + Maximal pyramid level number. If 0 , pyramids are not used (single level), if 1 , two levels are used, etc + Specifies when the iteration process of finding the flow for each point on each pyramid level should be stopped + Flags + Array of 2D points containing calculated new positions of input features in the second image + Array. Every element of the array is set to 1 if the flow for the corresponding feature has been found, 0 otherwise + Array of double numbers containing difference between patches around the original and moved points + the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations (this matrix is called a spatial gradient matrix in [Bouguet00]), divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost. + + + + Implements sparse iterative version of Lucas-Kanade optical flow in pyramids ([Bouguet00]). It calculates coordinates of the feature points on the current video frame given their coordinates on the previous frame. The function finds the coordinates with sub-pixel accuracy. + + Both parameters prev_pyr and curr_pyr comply with the following rules: if the image pointer is 0, the function allocates the buffer internally, calculates the pyramid, and releases the buffer after processing. Otherwise, the function calculates the pyramid and stores it in the buffer unless the flag CV_LKFLOW_PYR_A[B]_READY is set. The image should be large enough to fit the Gaussian pyramid data. After the function call both pyramids are calculated and the readiness flag for the corresponding image can be set in the next call (i.e., typically, for all the image pairs except the very first one CV_LKFLOW_PYR_A_READY is set). + First frame, at time t. + Second frame, at time t + dt . + Array of points for which the flow needs to be found. + Array of 2D points containing calculated new positions of input + Size of the search window of each pyramid level. + Maximal pyramid level number. If 0 , pyramids are not used (single level), if 1 , two levels are used, etc. + Array. Every element of the array is set to 1 if the flow for the corresponding feature has been found, 0 otherwise. + Array of double numbers containing difference between patches around the original and moved points. Optional parameter; can be NULL + Specifies when the iteration process of finding the flow for each point on each pyramid level should be stopped. + Miscellaneous flags + the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations (this matrix is called a spatial gradient matrix in [Bouguet00]), divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost. + + + + Computes dense optical flow using Gunnar Farneback's algorithm + + The first 8-bit single-channel input image + The second input image of the same size and the same type as prevImg + The computed flow image for x-velocity; will have the same size as prevImg + The computed flow image for y-velocity; will have the same size as prevImg + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + + + + Computes dense optical flow using Gunnar Farneback's algorithm + + The first 8-bit single-channel input image + The second input image of the same size and the same type as prevImg + The computed flow image; will have the same size as prevImg and type CV 32FC2 + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + + + + Finds the geometric transform (warp) between two images in terms of the ECC criterion + + single-channel template image; CV_8U or CV_32F array. + single-channel input image which should be warped with the final warpMatrix in order to provide an image similar to templateImage, same type as temlateImage. + floating-point 2×3 or 3×3 mapping matrix (warp). + Specifying the type of motion. Use Affine for default + specifying the termination criteria of the ECC algorithm; criteria.epsilon defines the threshold of the increment in the correlation coefficient between two iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion). Default values can use 50 iteration and 0.001 eps. + An optional mask to indicate valid values of inputImage. + The final enhanced correlation coefficient, that is the correlation coefficient between the template image and the final warped input image. + + + + Read point cloud from file + + The point cloud file + The color of the points + The normal of the points + The points + + + + Write point cloud to file + + The point cloud file name + The point cloud + The color + The normals + + + + Computes disparity map for the specified stereo pair + + The stereo matcher + Left 8-bit single-channel image. + Right image of the same size and the same type as the left one. + Output disparity map. It has the same size as the input images. Some algorithms, like StereoBM or StereoSGBM compute 16-bit fixed-point disparity map (where each disparity value has 4 fractional bits), whereas other algorithms output 32-bit floating-point disparity map + + + + Transforms the image to compensate radial and tangential lens distortion. + + The input (distorted) image + The output (corrected) image + The camera matrix (A) [fx 0 cx; 0 fy cy; 0 0 1]. + The vector of distortion coefficients, 4x1 or 1x4 [k1, k2, p1, p2]. + Camera matrix of the distorted image. By default it is the same as cameraMatrix, but you may additionally scale and shift the result by using some different matrix + + + + This function is an extended version of cvInitUndistortMap. That is, in addition to the correction of lens distortion, the function can also apply arbitrary perspective transformation R and finally it can scale and shift the image according to the new camera matrix + + The camera matrix A=[fx 0 cx; 0 fy cy; 0 0 1] + The vector of distortion coefficients, 4x1, 1x4, 5x1 or 1x5 + The rectification transformation in object space (3x3 matrix). R1 or R2, computed by cvStereoRectify can be passed here. If the parameter is IntPtr.Zero, the identity matrix is used + The new camera matrix A'=[fx' 0 cx'; 0 fy' cy'; 0 0 1] + Depth type of the first output map that can be CV_32FC1 or CV_16SC2 . + The first output map. + The second output map. + Undistorted image size. + + + + Similar to cvInitUndistortRectifyMap and is opposite to it at the same time. + The functions are similar in that they both are used to correct lens distortion and to perform the optional perspective (rectification) transformation. + They are opposite because the function cvInitUndistortRectifyMap does actually perform the reverse transformation in order to initialize the maps properly, while this function does the forward transformation. + + The observed point coordinates + The ideal point coordinates, after undistortion and reverse perspective transformation. + The camera matrix A=[fx 0 cx; 0 fy cy; 0 0 1] + The vector of distortion coefficients, 4x1, 1x4, 5x1 or 1x5. + The rectification transformation in object space (3x3 matrix). R1 or R2, computed by cvStereoRectify can be passed here. If the parameter is IntPtr.Zero, the identity matrix is used. + The new camera matrix (3x3) or the new projection matrix (3x4). P1 or P2, computed by cvStereoRectify can be passed here. If the parameter is IntPtr.Zero, the identity matrix is used. + + + + Returns the default new camera matrix. + + Input camera matrix. + Camera view image size in pixels. + Location of the principal point in the new camera matrix. The parameter indicates whether this location should be at the image center or not. + The default new camera matrix. + + + + Computes an optimal affine transformation between two 2D point sets. + + First input 2D point set containing (X,Y). + Second input 2D point set containing (x,y). + Output vector indicating which points are inliers (1-inlier, 0-outlier). + Robust method used to compute transformation. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. + The maximum number of robust method iterations. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + Maximum number of iterations of refining algorithm (Levenberg-Marquardt). Passing 0 will disable refining, so the output matrix will be output of robust method. + Output 2D affine transformation matrix 2×3 or empty matrix if transformation could not be estimated. + + + + Computes an optimal affine transformation between two 2D point sets. + + First input 2D point set containing (X,Y). + Second input 2D point set containing (x,y). + Output vector indicating which points are inliers (1-inlier, 0-outlier). + Robust method used to compute transformation. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. + The maximum number of robust method iterations. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + Maximum number of iterations of refining algorithm (Levenberg-Marquardt). Passing 0 will disable refining, so the output matrix will be output of robust method. + Output 2D affine transformation matrix 2×3 or empty matrix if transformation could not be estimated. + + + + Computes an optimal limited affine transformation with 4 degrees of freedom between two 2D point sets. + + First input 2D point set. + Second input 2D point set. + Output vector indicating which points are inliers. + Robust method used to compute transformation. + Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. + The maximum number of robust method iterations. + Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. + Maximum number of iterations of refining algorithm (Levenberg-Marquardt). Passing 0 will disable refining, so the output matrix will be output of robust method. + Output 2D affine transformation (4 degrees of freedom) matrix 2×3 or empty matrix if transformation could not be estimated. + + + + Computes Hand-Eye calibration + + + Rotation part extracted from the homogeneous matrix that transforms a point expressed in the gripper frame to the robot base frame. + This is a vector (vector<Mat>) that contains the rotation matrices for all the transformations from gripper frame to robot base frame. + + + Translation part extracted from the homogeneous matrix that transforms a point expressed in the gripper frame to the robot base frame. + This is a vector (vector<Mat>) that contains the translation vectors for all the transformations from gripper frame to robot base frame. + + + Rotation part extracted from the homogeneous matrix that transforms a point expressed in the target frame to the camera frame. + This is a vector (vector<Mat>) that contains the rotation matrices for all the transformations from calibration target frame to camera frame. + + + Rotation part extracted from the homogeneous matrix that transforms a point expressed in the target frame to the camera frame. + This is a vector (vector<Mat>) that contains the translation vectors for all the transformations from calibration target frame to camera frame. + + + Estimated rotation part extracted from the homogeneous matrix that transforms a point expressed in the camera frame to the gripper frame. + + + Estimated translation part extracted from the homogeneous matrix that transforms a point expressed in the camera frame to the gripper frame. + + One of the implemented Hand-Eye calibration method + + + + File Storage Node class. + The node is used to store each and every element of the file storage opened for reading. When + XML/YAML file is read, it is first parsed and stored in the memory as a hierarchical collection of + nodes. Each node can be a "leaf" that is contain a single number or a string, or be a collection of + other nodes. There can be named collections (mappings) where each element has a name and it is + accessed by a name, and ordered collections (sequences) where elements do not have names but rather + accessed by index. Type of the file node can be determined using FileNode::type method. + Note that file nodes are only used for navigating file storages opened for reading. When a file + storage is opened for writing, no data is stored in memory after it is written. + + + + + Type of the file storage node + + + + + Empty node + + + + + an integer + + + + + Floating-point number + + + + + Synonym or Real + + + + + Text string in UTF-8 encoding + + + + + Synonym for Str + + + + + Integer of size size_t. Typically used for storing complex dynamic structures where some elements reference the others + + + + + The sequence + + + + + Mapping + + + + + The type mask + + + + + Compact representation of a sequence or mapping. Used only by YAML writer + + + + + A registered object (e.g. a matrix) + + + + + Empty structure (sequence or mapping) + + + + + The node has a name (i.e. it is element of a mapping) + + + + + Reads a Mat from the node + + The Mat where the result is read into + The default mat. + + + + Gets the type of the node. + + + The type of the node. + + + + + Release the unmanaged resources + + + + + Reads the string from the node + + The default value if one is not found in the node. + The string from the node + + + + Reads the int from the node. + + The default value if one is not found in the node. + The int from the node. + + + + Reads the float from the node. + + The default value if one is not found in the node. + The float from the node. + + + + Reads the double from the node. + + The default value if one is not found in the node. + The double from the node. + + + + Returns true if the node has a name + + + + + Returns true if the node is empty + + + + + Returns true if the node is a "none" object + + + + + Returns true if the node is a sequence + + + + + Returns true if the node is a mapping + + + + + Returns true if the node is an integer + + + + + Returns true if the node is a floating-point number + + + + + Returns true if the node is a text string + + + + + XML/YAML file storage class that encapsulates all the information necessary for writing or reading data to/from a file. + + + + + File storage mode + + + + + Open the file for reading + + + + + Open the file for writing + + + + + Open the file for appending + + + + + ReadMat data from source or write data to the internal buffer + + + + + Mask for format flags + + + + + Auto format + + + + + XML format + + + + + YAML format + + + + + JSON format + + + + + Write rawdata in Base64 by default. (consider using WriteBase64) + + + + + enable both Write and Base64 + + + + + Initializes a new instance of the class. + + Name of the file to open or the text string to read the data from. Extension of the + file (.xml or .yml/.yaml) determines its format (XML or YAML respectively). Also you can append .gz + to work with compressed files, for example myHugeMatrix.xml.gz. If both FileStorage::WRITE and + FileStorage::MEMORY flags are specified, source is used just to specify the output file format (e.g. + mydata.xml, .yml etc.). + Mode of operation. + Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. + + + + Writes the specified Mat to the node with the specific name. + + The Mat to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Writes the specified Mat to the node with the specific name + + The value to be written to the file storage + The name of the node. + + + + Gets a value indicating whether this instance is opened. + + + true if the object is associated with the current file; otherwise, false. + + + + + Closes the file and releases all the memory buffers + Call this method after all I/O operations with the storage are finished. If the storage was + opened for writing data and FileStorage.Mode.Write was specified + + The string that represent the text in the FileStorage + + + + Gets the top-level mapping. + + Zero-based index of the stream. In most cases there is only one stream in the file. + However, YAML supports multiple streams and so there can be several. + The top-level mapping + + + + Gets the first element of the top-level mapping. + + The first element of the top-level mapping. + + + + Gets the specified element of the top-level mapping. + + Name of the node. + The specified element of the top-level mapping. + + + + Gets the with the specified node name. + + + The . + + Name of the node. + The file node + + + + Release the unmanaged resources + + + + + Similar to the << operator in C++, we cannot have the operator overload to << in C# where the second parameter is not an int. Therefore we use this function instead. + + The string value to insert. + + + + Interface to the algorithm class + + + + + Return the pointer to the algorithm object + + The pointer to the algorithm object + + + + Extension methods to the IAlgorithm interface + + + + + Reads algorithm parameters from a file storage. + + The algorithm. + The node from file storage. + + + + Stores algorithm parameters in a file storage + + The algorithm. + The storage. + + + + Stores algorithm parameters in a file storage + + The algorithm. + The storage. + Simplified API for language bindings + + + + Save the algorithm to file + + The algorithm + The file name where this algorithm will be saved to + + + + Save the algorithm to a string + + The algorithm + file format, can be .xml or .yml + The algorithm as an yml string + + + + Clear the algorithm + + The algorithm + + + + Returns true if the Algorithm is empty. e.g. in the very beginning or after unsuccessful read. + + The algorithm + Returns true if the Algorithm is empty. e.g. in the very beginning or after unsuccessful read. + + + + Loads algorithm from the file + + The algorithm + Name of the file to read. + The optional name of the node to read (if empty, the first top-level node will be used) + Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. + + + + Loads algorithm from a String + + The algorithm + The string variable containing the model you want to load. + The optional name of the node to read (if empty, the first top-level node will be used) + Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. + + + + Returns the algorithm string identifier. + This string is used as top level xml/yml node tag when the object is saved to a file or string. + + The algorithm + + Returns the algorithm string identifier. + This string is used as top level xml/yml node tag when the object is saved to a file or string. + + + + + This is the proxy class for passing read-only input arrays into OpenCV functions. + + + + + The unmanaged pointer to the input array. + + The input array + + + + InputArrayOfArrays + + + + + Extension methods for IInputArrays + + + + + Determines whether the specified input array is umat. + + The array + True if it is a umat + + + + Apply converter and compute result for each channel of the image, for single channel image, apply converter directly, for multiple channel image, make a copy of each channel to a temperary image and apply the convertor + + The return type + The source image + The converter such that accept the IntPtr of a single channel IplImage, and image channel index which returning result of type R + An array which contains result for each channel + + + + Apply converter and compute result for each channel of the image, for single channel image, apply converter directly, for multiple channel image, make a copy of each channel to a temperary image and apply the convertor + + The source image + The converter such that accept the IntPtr of a single channel IplImage, and image channel index which returning result of type R + An array which contains result for each channel + + + + This type is very similar to InputArray except that it is used for input/output function parameters. + + + + + The unmanaged pointer to the input/output array + + Get the input output array + + + + An Image is a wrapper to IplImage of OpenCV. + + Color type of this image (either Gray, Bgr, Bgra, Hsv, Hls, Lab, Luv, Xyz, Ycc, Rgb or Rbga) + Depth of this image (either Byte, SByte, Single, double, UInt16, Int16 or Int32) + + + + The dimension of color + + + + + Create an empty Image + + + + + Create image from the specific multi-dimensional data, where the 1st dimesion is # of rows (height), the 2nd dimension is # cols (width) and the 3rd dimension is the channel + + The multi-dimensional data where the 1st dimension is # of rows (height), the 2nd dimension is # cols (width) and the 3rd dimension is the channel + + + + Create an Image from unmanaged data. + + The width of the image + The height of the image + Size of aligned image row in bytes + Pointer to aligned image data, where each row should be 4-align + The caller is responsible for allocating and freeing the block of memory specified by the scan0 parameter, however, the memory should not be released until the related Image is released. + + + + Allocate the image from the image header. + + This should be only a header to the image. When the image is disposed, the cvReleaseImageHeader will be called on the pointer. + + + + Read image from a file + + the name of the file that contains the image + + + + Load the specific file using OpenCV + + The file to load + + + + Create a blank Image of the specified width, height and color. + + The width of the image + The height of the image + The initial color of the image + + + + Create a blank Image of the specified width and height. + + The width of the image + The height of the image + + + + Create a blank Image of the specific size + + The size of the image + + + + Get or Set the data for this matrix. The Get function has O(1) complexity. The Set function make a copy of the data + + + If the image contains Byte and width is not a multiple of 4. The second dimension of the array might be larger than the Width of this image. + This is necessary since the length of a row need to be 4 align for OpenCV optimization. + The Set function always make a copy of the specific value. If the image contains Byte and width is not a multiple of 4. The second dimension of the array created might be larger than the Width of this image. + + + + + Allocate data for the array + + The number of rows + The number of columns + The number of channels of this image + + + + Create a multi-channel image from multiple gray scale images + + The image channels to be merged into a single image + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + The IplImage structure + + + + + Get or Set the region of interest for this image. To clear the ROI, set it to System.Drawing.Rectangle.Empty + + + + + Get the number of channels for this image + + + + + Get the underneath managed array + + + + + Get the equivalent opencv depth type for this image + + + + + Indicates if the region of interest has been set + + + + + Get the average value on this image + + The average color of the image + + + + Get the average value on this image, using the specific mask + + The mask for find the average value + The average color of the masked area + + + Get the sum for each color channel + The sum for each color channel + + + + Set every pixel of the image to the specific color + + The color to be set + + + + Set every pixel of the image to the specific color, using a mask + + The color to be set + The mask for setting color + + + + Copy the masked area of this image to destination + + the destination to copy to + the mask for copy + + + + Make a copy of the image using a mask, if ROI is set, only copy the ROI + + the mask for coping + A copy of the image + + + + Make a copy of the specific ROI (Region of Interest) from the image + + The roi to be copied + The region of interest + + + + Get a copy of the boxed region of the image + + The boxed region of the image + A copy of the boxed region of the image + + + Make a copy of the image, if ROI is set, only copy the ROI + A copy of the image + + + + Create an image of the same size + + The initial pixel in the image equals zero + The image of the same size + + + + Make a clone of the current image. All image data as well as the COI and ROI are cloned + + A clone of the current image. All image data as well as the COI and ROI are cloned + + + + Get a subimage which image data is shared with the current image. + + The rectangle area of the sub-image + A subimage which image data is shared with the current image + + + Draw an Rectangle of the specific color and thickness + The rectangle to be drawn + The color of the rectangle + If thickness is less than 1, the rectangle is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a 2D Cross using the specific color and thickness + The 2D Cross to be drawn + The color of the cross + Must be > 0 + + + Draw a line segment using the specific color and thickness + The line segment to be drawn + The color of the line segment + The thickness of the line segment + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a line segment using the specific color and thickness + The line segment to be drawn + The color of the line segment + The thickness of the line segment + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a convex polygon using the specific color and thickness + The convex polygon to be drawn + The color of the triangle + If thickness is less than 1, the triangle is filled up + + + + Fill the convex polygon with the specific color + + The array of points that define the convex polygon + The color to fill the polygon with + Line type + Number of fractional bits in the center coordinates and radius value + + + + Draw the polyline defined by the array of 2D points + + A polyline defined by its point + if true, the last line segment is defined by the last point of the array and the first point of the array + the color used for drawing + the thinkness of the line + Line type + Number of fractional bits in the center coordinates and radius value + + + + Draw the polylines defined by the array of array of 2D points + + An array of polylines each represented by an array of points + if true, the last line segment is defined by the last point of the array and the first point of the array + the color used for drawing + the thickness of the line + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a Circle of the specific color and thickness + The circle to be drawn + The color of the circle + If thickness is less than 1, the circle is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a Ellipse of the specific color and thickness + The ellipse to be draw + The color of the ellipse + If thickness is less than 1, the ellipse is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + + Draw the text using the specific font on the image + + The text message to be draw + Font type. + Font scale factor that is multiplied by the font-specific base size. + The location of the bottom left corner of the font + The color of the text + Thickness of the lines used to draw a text. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Draws contour outlines in the image if thickness>=0 or fills area bounded by the contours if thickness<0 + + All the input contours. Each contour is stored as a point vector. + Parameter indicating a contour to draw. If it is negative, all the contours are drawn. + Color of the contours + Maximal level for drawn contours. If 0, only contour is drawn. If 1, the contour and all contours after it on the same level are drawn. If 2, all contours after and all contours one level below the contours are drawn, etc. If the value is negative, the function does not draw the contours following after contour but draws child contours of contour up to abs(maxLevel)-1 level. + Thickness of lines the contours are drawn with. If it is negative the contour interiors are drawn + Type of the contour segments + Optional information about hierarchy. It is only needed if you want to draw only some of the contours + Shift all the point coordinates by the specified value. It is useful in case if the contours retrieved in some image ROI and then the ROI offset needs to be taken into account during the rendering. + + + + Draws contour outlines in the image if thickness>=0 or fills area bounded by the contours if thickness<0 + + The input contour stored as a point vector. + Color of the contours + Thickness of lines the contours are drawn with. If it is negative the contour interiors are drawn + Type of the contour segments + Shift all the point coordinates by the specified value. It is useful in case if the contours retrieved in some image ROI and then the ROI offset needs to be taken into account during the rendering. + + + + Apply Probabilistic Hough transform to find line segments. + The current image must be a binary image (eg. the edges as a result of the Canny edge detector) + + Distance resolution in pixel-related units. + Angle resolution measured in radians + A line is returned by the function if the corresponding accumulator value is greater than threshold + Minimum width of a line + Minimum gap between lines + The line segments detected for each of the channels + + + + Apply Canny Edge Detector follows by Probabilistic Hough transform to find line segments in the image + + The threshold to find initial segments of strong edges + The threshold used for edge Linking + Distance resolution in pixel-related units. + Angle resolution measured in radians + A line is returned by the function if the corresponding accumulator value is greater than threshold + Minimum width of a line + Minimum gap between lines + The line segments detected for each of the channels + + + + First apply Canny Edge Detector on the current image, + then apply Hough transform to find circles + + The higher threshold of the two passed to Canny edge detector (the lower one will be twice smaller). + Accumulator threshold at the center detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first + Resolution of the accumulator used to detect centers of the circles. For example, if it is 1, the accumulator will have the same resolution as the input image, if it is 2 - accumulator will have twice smaller width and height, etc + Minimal radius of the circles to search for + Maximal radius of the circles to search for + Minimum distance between centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed + The circle detected for each of the channels + + + + Get or Set the specific channel of the current image. + For Get operation, a copy of the specific channel is returned. + For Set operation, the specific channel is copied to this image. + + The channel to get from the current image, zero based index + The specific channel of the current image + + + + Get or Set the color in the th row (y direction) and th column (x direction) + + The zero-based row (y direction) of the pixel + The zero-based column (x direction) of the pixel + The color in the specific and + + + + Get or Set the color in the + + the location of the pixel + the color in the + + + + Return parameters based on ROI + + The Pointer to the IplImage + The address of the pointer that point to the start of the Bytes taken into consideration ROI + ROI.Width * ColorType.Dimension + The number of bytes in a row taken into consideration ROI + The number of rows taken into consideration ROI + The width step required to jump to the next row + + + + Apply convertor and compute result for each channel of the image. + + + For single channel image, apply converter directly. + For multiple channel image, set the COI for the specific channel before appling the convertor + + The return type + The converter such that accept the IntPtr of a single channel IplImage, and image channel index which returning result of type R + An array which contains result for each channel + + + + If the image has only one channel, apply the action directly on the IntPtr of this image and , + otherwise, make copy each channel of this image to a temperary one, apply action on it and another temperory image and copy the resulting image back to image2 + + The type of the depth of the image + The function which acepts the src IntPtr, dest IntPtr and index of the channel as input + The destination image + + + + Calculates the image derivative by convolving the image with the appropriate kernel + The Sobel operators combine Gaussian smoothing and differentiation so the result is more or less robust to the noise. Most often, the function is called with (xorder=1, yorder=0, aperture_size=3) or (xorder=0, yorder=1, aperture_size=3) to calculate first x- or y- image derivative. + + Order of the derivative x + Order of the derivative y + Size of the extended Sobel kernel, must be 1, 3, 5 or 7. In all cases except 1, aperture_size xaperture_size separable kernel will be used to calculate the derivative. + The result of the sobel edge detector + + + + Calculates Laplacian of the source image by summing second x- and y- derivatives calculated using Sobel operator. + Specifying aperture_size=1 gives the fastest variant that is equal to convolving the image with the following kernel: + + |0 1 0| + |1 -4 1| + |0 1 0| + + Aperture size + The Laplacian of the image + + + Find the edges on this image and marked them in the returned image. + The threshhold to find initial segments of strong edges + The threshold used for edge Linking + The edges found by the Canny edge detector + + + Find the edges on this image and marked them in the returned image. + The threshhold to find initial segments of strong edges + The threshold used for edge Linking + The aperture size, use 3 for default + a flag, indicating whether a more accurate norm should be used to calculate the image gradient magnitude ( L2gradient=true ), or whether the default norm is enough ( L2gradient=false ). + The edges found by the Canny edge detector + + + + Iterates to find the sub-pixel accurate location of corners, or radial saddle points + + Coordinates of the input corners, the values will be modified by this function call + Half sizes of the search window. For example, if win=(5,5) then 5*2+1 x 5*2+1 = 11 x 11 search window is used + Half size of the dead region in the middle of the search zone over which the summation in formulae below is not done. It is used sometimes to avoid possible singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such size + Criteria for termination of the iterative process of corner refinement. That is, the process of corner position refinement stops either after certain number of iteration or when a required accuracy is achieved. The criteria may specify either of or both the maximum number of iteration and the required accuracy + Refined corner coordinates + + + + The function slides through image, compares overlapped patches of size wxh with templ using the specified method and return the comparison results + + Searched template; must be not greater than the source image and the same data type as the image + Specifies the way the template must be compared with image regions + The comparison result: width = this.Width - template.Width + 1; height = this.Height - template.Height + 1 + + + Perform an elementwise AND operation with another image and return the result + The second image for the AND operation + The result of the AND operation + + + + Perform an elementwise AND operation with another image, using a mask, and return the result + + The second image for the AND operation + The mask for the AND operation + The result of the AND operation + + + Perform an binary AND operation with some color + The color for the AND operation + The result of the AND operation + + + Perform an binary AND operation with some color using a mask + The color for the AND operation + The mask for the AND operation + The result of the AND operation + + + Perform an elementwise OR operation with another image and return the result + The second image for the OR operation + The result of the OR operation + + + Perform an elementwise OR operation with another image, using a mask, and return the result + The second image for the OR operation + The mask for the OR operation + The result of the OR operation + + + Perform an elementwise OR operation with some color + The value for the OR operation + The result of the OR operation + + + Perform an elementwise OR operation with some color using a mask + The color for the OR operation + The mask for the OR operation + The result of the OR operation + + + Perform an elementwise XOR operation with another image and return the result + The second image for the XOR operation + The result of the XOR operation + + + + Perform an elementwise XOR operation with another image, using a mask, and return the result + + The second image for the XOR operation + The mask for the XOR operation + The result of the XOR operation + + + + Perform an binary XOR operation with some color + + The value for the XOR operation + The result of the XOR operation + + + + Perform an binary XOR operation with some color using a mask + + The color for the XOR operation + The mask for the XOR operation + The result of the XOR operation + + + + Compute the complement image + + The complement image + + + Find the elementwise maximum value + The second image for the Max operation + An image where each pixel is the maximum of this image and the parameter image + + + Find the elementwise maximum value + The value to compare with + An image where each pixel is the maximum of this image and + + + Find the elementwise minimum value + The second image for the Min operation + An image where each pixel is the minimum of this image and the parameter image + + + Find the elementwise minimum value + The value to compare with + An image where each pixel is the minimum of this image and + + + Checks that image elements lie between two scalars + The inclusive lower limit of color value + The inclusive upper limit of color value + res[i,j] = 255 if <= this[i,j] <= , 0 otherwise + + + Checks that image elements lie between values defined by two images of same size and type + The inclusive lower limit of color value + The inclusive upper limit of color value + res[i,j] = 255 if [i,j] <= this[i,j] <= [i,j], 0 otherwise + + + + Compare the current image with and returns the comparison mask + + The other image to compare with + The comparison type + The result of the comparison as a mask + + + + Compare the current image with and returns the comparison mask + + The value to compare with + The comparison type + The result of the comparison as a mask + + + + Compare two images, returns true if the each of the pixels are equal, false otherwise + + The other image to compare with + true if the each of the pixels for the two images are equal, false otherwise + + + + Use grabcut to perform background foreground segmentation. + + The initial rectangle region for the foreground + The number of iterations to run GrabCut + The background foreground mask where 2 indicates background and 3 indicates foreground + + + Elementwise subtract another image from the current image + The second image to be subtracted from the current image + The result of elementwise subtracting img2 from the current image + + + Elementwise subtract another image from the current image, using a mask + The image to be subtracted from the current image + The mask for the subtract operation + The result of elementwise subtracting img2 from the current image, using the specific mask + + + Elementwise subtract a color from the current image + The color value to be subtracted from the current image + The result of elementwise subtracting color 'val' from the current image + + + + result = val - this + + the value which subtract this image + val - this + + + + result = val - this, using a mask + + The value which subtract this image + The mask for subtraction + val - this, with mask + + + Elementwise add another image with the current image + The image to be added to the current image + The result of elementwise adding img2 to the current image + + + Elementwise add with the current image, using a mask + The image to be added to the current image + The mask for the add operation + The result of elementwise adding img2 to the current image, using the specific mask + + + Elementwise add a color to the current image + The color value to be added to the current image + The result of elementwise adding color from the current image + + + Elementwise multiply another image with the current image and the + The image to be elementwise multiplied to the current image + The scale to be multiplied + this .* img2 * scale + + + Elementwise multiply with the current image + The image to be elementwise multiplied to the current image + this .* img2 + + + Elementwise multiply the current image with + The scale to be multiplied + The scaled image + + + + Accumulate to the current image using the specific mask + + The image to be added to the current image + the mask + + + + Accumulate to the current image using the specific mask + + The image to be added to the current image + + + + Return the weighted sum such that: res = this * alpha + img2 * beta + gamma + + img2 in: res = this * alpha + img2 * beta + gamma + alpha in: res = this * alpha + img2 * beta + gamma + beta in: res = this * alpha + img2 * beta + gamma + gamma in: res = this * alpha + img2 * beta + gamma + this * alpha + img2 * beta + gamma + + + + Update Running Average. this = (1-alpha)*this + alpha*img + + Input image, 1- or 3-channel, Byte or Single (each channel of multi-channel image is processed independently). + the weight of + + + + Update Running Average. this = (1-alpha)*this + alpha*img, using the mask + + Input image, 1- or 3-channel, Byte or Single (each channel of multi-channel image is processed independently). + The weight of + The mask for the running average + + + + Computes absolute different between this image and the other image + + The other image to compute absolute different with + The image that contains the absolute different value + + + + Computes absolute different between this image and the specific color + + The color to compute absolute different with + The image that contains the absolute different value + + + + Raises every element of input array to p + dst(I)=src(I)^p, if p is integer + dst(I)=abs(src(I))^p, otherwise + + The exponent of power + The power image + + + + Calculates exponent of every element of input array: + dst(I)=exp(src(I)) + + Maximum relative error is ~7e-6. Currently, the function converts denormalized values to zeros on output. + The exponent image + + + + Calculates natural logarithm of absolute value of every element of input array + + Natural logarithm of absolute value of every element of input array + + + + Scale the image to the specific size + + The width of the returned image. + The height of the returned image. + The type of interpolation + The resized image + + + + Scale the image to the specific size + + The width of the returned image. + The height of the returned image. + The type of interpolation + if true, the scale is preservered and the resulting image has maximum width(height) possible that is <= (), if false, this function is equaivalent to Resize(int width, int height) + The resized image + + + + Scale the image to the specific size: width *= scale; height *= scale + + The scale to resize + The type of interpolation + The scaled image + + + + Rotate the image the specified angle cropping the result to the original size + + The angle of rotation in degrees. + The color with which to fill the background + The image rotates by the specific angle + + + + Transforms source image using the specified matrix + + 2x3 transformation matrix + Interpolation type + Warp type + Pixel extrapolation method + A value used to fill outliers + The result of the transformation + + + + Transforms source image using the specified matrix + + 2x3 transformation matrix + The width of the resulting image + the height of the resulting image + Interpolation type + Warp type + Pixel extrapolation method + A value used to fill outliers + The result of the transformation + + + + Transforms source image using the specified matrix + + 3x3 transformation matrix + Interpolation type + Warp type + Pixel extrapolation method + A value used to fill outliers + The depth type of , should be either float or double + The result of the transformation + + + + Transforms source image using the specified matrix + + 3x3 transformation matrix + The width of the resulting image + the height of the resulting image + Interpolation type + Warp type + Border type + A value used to fill outliers + The depth type of , should be either float or double + The result of the transformation + + + + Rotate this image the specified + + The angle of rotation in degrees. + The color with which to fill the background + If set to true the image is cropped to its original size, possibly losing corners information. If set to false the result image has different size than original and all rotation information is preserved + The rotated image + + + + Rotate this image the specified + + The angle of rotation in degrees. Positive means clockwise. + The color with with to fill the background + If set to true the image is cropped to its original size, possibly losing corners information. If set to false the result image has different size than original and all rotation information is preserved + The center of rotation + The interpolation method + The rotated image + + + + Convert the image to log polar, simulating the human foveal vision + + The transformation center, where the output precision is maximal + Magnitude scale parameter + interpolation type + Warp type + The converted image + + + Convert the current image to the specific color and depth + The type of color to be converted to + The type of pixel depth to be converted to + Image of the specific color and depth + + + + Convert the source image to the current image, if the size are different, the current image will be a resized version of the srcImage. + + The color type of the source image + The color depth of the source image + The sourceImage + + + + Convert the source image to the current image, if the size are different, the current image will be a resized version of the srcImage. + + The sourceImage + + + Convert the current image to the specific depth, at the same time scale and shift the values of the pixel + The value to be multiplied with the pixel + The value to be added to the pixel + The type of depth to convert to + Image of the specific depth, val = val * scale + shift + + + + Load the specific file using Bitmap + + The file to load + + + + Obtain the image from the specific Bitmap + + The bitmap which will be converted to the image + + + + The Get property provide a more efficient way to convert Image<Gray, Byte>, Image<Bgr, Byte> and Image<Bgra, Byte> into Bitmap + such that the image data is shared with Bitmap. + If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well! + For other types of image this property has the same effect as ToBitmap() + Take extra caution not to use the Bitmap after the Image object is disposed + The Set property convert the bitmap to this Image type. + + + + + Utility function for Bitmap Set property + + + + + + Convert this image into Bitmap, the pixel values are copied over to the Bitmap + + For better performance on Image<Gray, Byte> and Image<Bgr, Byte>, consider using the Bitmap property + This image in Bitmap format, the pixel data are copied over to the Bitmap + + + Create a Bitmap image of certain size + The width of the bitmap + The height of the bitmap + This image in Bitmap format of the specific size + + + + Performs downsampling step of Gaussian pyramid decomposition. + First it convolves this image with the specified filter and then downsamples the image + by rejecting even rows and columns. + + The downsampled image + + + + Performs up-sampling step of Gaussian pyramid decomposition. + First it upsamples this image by injecting even zero rows and columns and then convolves + result with the specified filter multiplied by 4 for interpolation. + So the resulting image is four times larger than the source image. + + The upsampled image + + + + Compute the image pyramid + + The number of level's for the pyramid; Level 0 referes to the current image, level n is computed by calling the PyrDown() function on level n-1 + The image pyramid + + + Use inpaint to recover the intensity of the pixels which location defined by on this image + The inpainting mask. Non-zero pixels indicate the area that needs to be inpainted + The radius of circular neighborhood of each point inpainted that is considered by the algorithm + The inpainted image + + + + Perform advanced morphological transformations using erosion and dilation as basic operations. + + Structuring element + Anchor position with the kernel. Negative values mean that the anchor is at the kernel center. + Type of morphological operation + Number of times erosion and dilation are applied + Border type + Border value + The result of the morphological operation + + + + Perform inplace advanced morphological transformations using erosion and dilation as basic operations. + + Structuring element + Anchor position with the kernel. Negative values mean that the anchor is at the kernel center. + Type of morphological operation + Number of times erosion and dilation are applied + Border type + Border value + + + + Erodes this image using a 3x3 rectangular structuring element. + Erosion are applied several (iterations) times + + The number of erode iterations + The eroded image + + + + Dilates this image using a 3x3 rectangular structuring element. + Dilation are applied several (iterations) times + + The number of dilate iterations + The dilated image + + + + Erodes this image inplace using a 3x3 rectangular structuring element. + Erosion are applied several (iterations) times + + The number of erode iterations + + + + Dilates this image inplace using a 3x3 rectangular structuring element. + Dilation are applied several (iterations) times + + The number of dilate iterations + + + + perform an generic action based on each element of the image + + The action to be applied to each element of the image + + + + Perform an generic operation based on the elements of the two images + + The depth of the second image + The second image to perform action on + An action such that the first parameter is the a single channel of a pixel from the first image, the second parameter is the corresponding channel of the correspondind pixel from the second image + + + + Compute the element of a new image based on the value as well as the x and y positions of each pixel on the image + + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on element of this image + The depth type of the result image + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on the elements of the two image + The depth type of img2 + The depth type of the result image + The second image + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on the elements of the three image + The depth type of img2 + The depth type of img3 + The depth type of the result image + The second image + The third image + The function to be applied to the image pixels + The result image + + + Compute the element of the new image based on the elements of the four image + The depth type of img2 + The depth type of img3 + The depth type of img4 + The depth type of the result image + The second image + The third image + The fourth image + The function to be applied to the image pixels + The result image + + + + Release all unmanaged memory associate with the image + + + + + Perform an element wise AND operation on the two images + + The first image to AND + The second image to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + + Perform an element wise AND operation using an images and a color + + The first image to AND + The color to AND + The result of the AND operation + + + Perform an element wise OR operation with another image and return the result + The first image to apply bitwise OR operation + The second image to apply bitwise OR operation + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The image to OR + The color to OR + The result of the OR operation + + + Compute the complement image + The image to be inverted + The complement image + + + + Element wise add with + + The first image to be added + The second image to be added + The sum of the two images + + + + Element wise add with + + The image to be added + The value to be added + The images plus the color + + + + Element wise add with + + The image to be added + The value to be added + The images plus the color + + + + Element wise add with + + The image to be added + The color to be added + The images plus the color + + + + Element wise add with + + The image to be added + The color to be added + The images plus the color + + + + Element wise subtract another image from the current image + + The image to be subtracted + The second image to be subtracted from + The result of element wise subtracting img2 from + + + + Element wise subtract another image from the current image + + The image to be subtracted + The color to be subtracted + The result of element wise subtracting from + + + + Element wise subtract another image from the current image + + The image to be subtracted + The color to be subtracted + - + + + + - + + The image to be subtracted + The value to be subtracted + - + + + + Element wise subtract another image from the current image + + The image to be subtracted + The value to be subtracted + - + + + + * + + The image + The multiplication scale + * + + + + * + + The image + The multiplication scale + * + + + + Perform the convolution with on + + The image + The kernel + Result of the convolution + + + + / + + The image + The division scale + / + + + + / + + The image + The scale + / + + + + Summation over a pixel param1 x param2 neighborhood with subsequent scaling by 1/(param1 x param2) + + The width of the window + The height of the window + The result of blur + + + + Summation over a pixel param1 x param2 neighborhood. If scale is true, the result is subsequent scaled by 1/(param1 x param2) + + The width of the window + The height of the window + If true, the result is subsequent scaled by 1/(param1 x param2) + The result of blur + + + + Finding median of x neighborhood + + The size (width & height) of the window + The result of median smooth + + + + Applying bilateral 3x3 filtering + + Color sigma + Space sigma + The size of the bilateral kernel + The result of bilateral smooth + + + Perform Gaussian Smoothing in the current image and return the result + The size of the Gaussian kernel ( x ) + The smoothed image + + + Perform Gaussian Smoothing in the current image and return the result + The width of the Gaussian kernel + The height of the Gaussian kernel + The standard deviation of the Gaussian kernel in the horizontal dimension + The standard deviation of the Gaussian kernel in the vertical dimension + The smoothed image + + + Perform Gaussian Smoothing inplace for the current image + The size of the Gaussian kernel ( x ) + + + Perform Gaussian Smoothing inplace for the current image + The width of the Gaussian kernel + The height of the Gaussian kernel + The standard deviation of the Gaussian kernel in the horizontal dimension + The standard deviation of the Gaussian kernel in the vertical dimension + + + + Performs a convolution using the specific + + The convolution kernel + The optional value added to the filtered pixels before storing them in dst + The pixel extrapolation method. + The result of the convolution + + + + Calculates integral images for the source image + + The integral image + + + + Calculates integral images for the source image + + The integral image + The integral image for squared pixel values + The integral image + + + + Calculates one or more integral images for the source image + + The integral image + The integral image for squared pixel values + The integral for the image rotated by 45 degrees + + + + Transforms grayscale image to binary image. + Threshold calculated individually for each pixel. + For the method CV_ADAPTIVE_THRESH_MEAN_C it is a mean of x pixel + neighborhood, subtracted by param1. + For the method CV_ADAPTIVE_THRESH_GAUSSIAN_C it is a weighted sum (gaussian) of x pixel neighborhood, subtracted by param1. + + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Adaptive_method + Thresholding type. must be one of CV_THRESH_BINARY, CV_THRESH_BINARY_INV + The size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, ... + Constant subtracted from mean or weighted mean. It may be negative. + The result of the adaptive threshold + + + + The base threshold method shared by public threshold functions + + + + Threshold the image such that: dst(x,y) = src(x,y), if src(x,y)>threshold; 0, otherwise + The threshold value + dst(x,y) = src(x,y), if src(x,y)>threshold; 0, otherwise + + + + Threshold the image such that: dst(x,y) = 0, if src(x,y)>threshold; src(x,y), otherwise + + The threshold value + The image such that: dst(x,y) = 0, if src(x,y)>threshold; src(x,y), otherwise + + + + Threshold the image such that: dst(x,y) = threshold, if src(x,y)>threshold; src(x,y), otherwise + + The threshold value + The image such that: dst(x,y) = threshold, if src(x,y)>threshold; src(x,y), otherwise + + + + Threshold the image such that: dst(x,y) = max_value, if src(x,y)>threshold; 0, otherwise + + The threshold value + The maximum value of the pixel on the result + The image such that: dst(x,y) = max_value, if src(x,y)>threshold; 0, otherwise + + + Threshold the image such that: dst(x,y) = 0, if src(x,y)>threshold; max_value, otherwise + The threshold value + The maximum value of the pixel on the result + The image such that: dst(x,y) = 0, if src(x,y)>threshold; max_value, otherwise + + + Threshold the image inplace such that: dst(x,y) = src(x,y), if src(x,y)>threshold; 0, otherwise + The threshold value + + + Threshold the image inplace such that: dst(x,y) = 0, if src(x,y)>threshold; src(x,y), otherwise + The threshold value + + + Threshold the image inplace such that: dst(x,y) = threshold, if src(x,y)>threshold; src(x,y), otherwise + The threshold value + + + Threshold the image inplace such that: dst(x,y) = max_value, if src(x,y)>threshold; 0, otherwise + The threshold value + The maximum value of the pixel on the result + + + Threshold the image inplace such that: dst(x,y) = 0, if src(x,y)>threshold; max_value, otherwise + The threshold value + The maximum value of the pixel on the result + + + + Calculates the average value and standard deviation of array elements, independently for each channel + + The avg color + The standard deviation for each channel + The operation mask + + + + Calculates the average value and standard deviation of array elements, independently for each channel + + The avg color + The standard deviation for each channel + + + + Count the non Zero elements for each channel + + Count the non Zero elements for each channel + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + Return a flipped copy of the current image + The type of the flipping + The flipped copy of this image + + + Inplace flip the image + The type of the flipping + The flipped copy of this image + + + + Concate the current image with another image vertically. + + The other image to concate + A new image that is the vertical concatening of this image and + + + + Concate the current image with another image horizontally. + + The other image to concate + A new image that is the horizontal concatening of this image and + + + + Calculates spatial and central moments up to the third order and writes them to moments. The moments may be used then to calculate gravity center of the shape, its area, main axises and various shape characteristics including 7 Hu invariants. + + If the flag is true, all the zero pixel values are treated as zeroes, all the others are treated as 1's + spatial and central moments up to the third order + + + + Gamma corrects this image inplace. The image must have a depth type of Byte. + + The gamma value + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of gray scale images where each element + in the array represent a single color channel of the original image + + + + + Save this image to the specific file. + + The name of the file to be saved to + The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format. + + + + The algorithm inplace normalizes brightness and increases contrast of the image. + For color images, a HSV representation of the image is first obtained and the V (value) channel is histogram normalized + + + + + This function load the image data from Mat + + The Mat + + + + This function load the image data from the iplImage pointer + + The pointer to the iplImage + + + + Get the managed image from an unmanaged IplImagePointer + + The pointer to the iplImage + The managed image from the iplImage pointer + + + + Get the jpeg representation of the image + + The jpeg quality + An byte array that contains the image as jpeg data + + + + Get the size of the array + + + + + Constants used by the image class + + + + + Offset of roi + + + + + Image data release mode + + + + + Release just the header + + + + + Release the IplImage + + + + + This is the proxy class for passing read-only input arrays into OpenCV functions. + + + This is the proxy class for passing read-only input arrays into OpenCV functions. + + + + + Input array type + + + + + kind shift + + + + + Fixed type + + + + + Fixed size + + + + + Kind mask + + + + + None + + + + + Mat + + + + + Matx + + + + + StdVector + + + + + StdVectorVector + + + + + StdVectorMat + + + + + Expr + + + + + Opengl buffer + + + + + Cuda Host Mem + + + + + Cuda GpuMat + + + + + UMat + + + + + StdVectorUMat + + + + + StdBoolVector + + + + + StdVectorCudaGpuMat + + + + + Create a Input array from an existing unmanaged inputArray pointer + + The unmanaged pointer the the InputArray + The parent object to keep reference to + + + + Get an empty input array + + An empty input array + + + + Get the Mat from the input array + + The index, in case if this is an VectorOfMat + The Mat + + + + Get the UMat from the input array + + The index, in case if this is an VectorOfUMat + The UMat + + + + Get the size of the input array + + The optional index + The size of the input array + + + + Return true if the input array is empty + + + + + Get the depth type + + The optional index + The depth type + + + + Get the number of dimensions + + The optional index + The dimensions + + + + Get the number of channels + + The optional index + The number of channels + + + + Copy this Input array to another. + + The destination array. + The optional mask. + + + + Release all the unmanaged memory associated with this InputArray + + + + + True if the input array is a Mat + + + + + True if the input array is an UMat + + + + + True if the input array is a vector of Mat + + + + + True if the input array is a vector of UMat + + + + + True if the input array is a Matx + + + + + The type of the input array + + + + + Get the GpuMat from the input array + + The GpuMat + + + + This type is very similar to InputArray except that it is used for input/output function parameters. + + + + + Create an InputOutputArray from an existing unmanaged inputOutputArray pointer + + The pointer to the existing inputOutputArray + The parent object to keep reference to + + + + Get an empty InputOutputArray + + An empty InputOutputArray + + + + Release all the memory associated with this InputOutputArry + + + + + This type is very similar to InputArray except that it is used for output function parameters. + + + + + The unmanaged pointer to the output array + + Get the output array + + + + OutputArrayOfArrays + + + + + A Map is similar to an Image, except that the location of the pixels is defined by + its area and resolution + + The color of this map + The depth of this map + + + + Get the area of this map as a rectangle + + + + + Get the resolution of this map as a 2D point + + + + + Create a new Image Map defined by the Rectangle area. The center (0.0, 0.0) of this map is + defined by the center of the rectangle. + + The area this map covers. + The resolution of x (y), (e.g. a value of 0.5 means each cell in the map is 0.5 unit in x (y) dimension) + The initial color of the map + + + + Create a new Image Map defined by the Rectangle area. The center (0.0, 0.0) of this map is + defined by the center of the rectangle. The initial value of the map is 0.0 + + The area this map covers. + The resolution of x (y), (e.g. a value of 0.5 means each cell in the map is 0.5 unit in x (y) dimension) + + + + Map a point to a position in the internal image + + The point on the map + The point on the image + + + + Map a point to a position in the internal image + + The point on the map + The point on the image + + + + Map an image point to a Map point + + The point on image + The point on map + + + + Get a copy of the map in the specific area + + the area of the map to be retrieve + The area of the map + + + + Get or Set the region of interest for this map. To clear the ROI, set it to System.Drawing.RectangleF.Empty + + + + + Draw a rectangle in the map + + The rectangle to draw + The color for the rectangle + The thickness of the rectangle, any value less than or equal to 0 will result in a filled rectangle + + + + Draw a line segment in the map + + The line to be draw + The color for the line + The thickness of the line + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a Circle of the specific color and thickness + The circle to be drawn + The color of the circle + If thickness is less than 1, the circle is filled up + Line type + Number of fractional bits in the center coordinates and radius value + + + Draw a convex polygon of the specific color and thickness + The convex polygon to be drawn + The color of the convex polygon + If thickness is less than 1, the triangle is filled up + + + + Draw the text using the specific font on the image + + The text message to be draw + Font type. + Font scale factor that is multiplied by the font-specific base size. + The location of the bottom left corner of the font + The color of the text + Thickness of the lines used to draw a text. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Draw the polyline defined by the array of 2D points + + the points that defines the poly line + if true, the last line segment is defined by the last point of the array and the first point of the array + the color used for drawing + the thinkness of the line + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + The equivalent of cv::Mat + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + Gets or sets the data as byte array. + + + The bytes. + + + + + Copy data from this Mat to the managed array + + The type of managed data array + The managed array where data will be copied to. + + + + Copy data from managed array to this Mat + + The type of managed data array + The managed array where data will be copied from + + + + An option parent object to keep reference to + + + + + Create an empty cv::Mat + + + + + Create a mat of the specific type. + + Number of rows in a 2D array. + Number of columns in a 2D array. + Mat element type + Number of channels + + + + Create a mat of the specific type. + + Size of the Mat + Mat element type + Number of channels + + + + Create a Mat header from existing data + + Number of rows in a 2D array. + Number of columns in a 2D array. + Mat element type + Number of channels + Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data. Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied. This operation is very efficient and can be used to process external data using OpenCV functions. The external data is not automatically deallocated, so you should take care of it. + Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any. + + + + Create multi-dimension mat using existing data. + + The sizes of each dimension + The type of data + The pointer to the unmanaged data + The steps + + + + Create a Mat header from existing data + + Size of the Mat + Mat element type + Number of channels + Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data. Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied. This operation is very efficient and can be used to process external data using OpenCV functions. The external data is not automatically deallocated, so you should take care of it. + Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any. + + + + Load the Mat from file + + The name of the file + File loading method + + + + Create a mat header for the specific ROI + + The mat where the new Mat header will share data from + The region of interest + + + + Create a mat header for the specific ROI + + The mat where the new Mat header will share data from + The region of interest + The region of interest + + + + Convert this Mat to UMat + + Access type + Usage flags + The UMat + + + + Allocates new array data if needed. + + New number of rows. + New number of columns. + New matrix element depth type. + New matrix number of channels + + + + The size of this matrix + + + + + The number of rows + + + + + The number of columns + + + + + Pointer to the beginning of the raw data + + + + + Get a pointer to the raw data given the specific index + + The index to the Mat data + A pointer to the raw data given the specific index + + + + Get a copy of the data values as an array + + If true, a jagged array will returned. Otherwise it will return a regular array. + a copy of the data values as an array + + + + Gets the binary data from the specific indices. + + The indices. + The raw data in byte + Indices of length more than 2 is not implemented + + + + Step + + + + + The size of the elements in this matrix + + + + + Copy the data in this cv::Mat to an output array + + The output array to copy to + Operation mask. Its non-zero elements indicate which matrix elements need to be copied. + + + + Converts an array to another data type with optional scaling. + + Output matrix; if it does not have a proper size or type before the operation, it is reallocated. + Desired output matrix type or, rather, the depth since the number of channels are the same as the input has; if rtype is negative, the output matrix will have the same type as the input. + Optional scale factor. + Optional delta added to the scaled values. + + + + Changes the shape and/or the number of channels of a 2D matrix without copying the data. + + New number of channels. If the parameter is 0, the number of channels remains the same. + New number of rows. If the parameter is 0, the number of rows remains the same. + A new mat header that has different shape + + + + Release all the unmanaged memory associated with this object. + + + + + Pointer to the InputArray + + The input array + + + + Pointer to the OutputArray + + The output array + + + + Pointer to the InputOutputArray + + The input output array + + + + Get the width of the mat + + + + + Get the height of the mat. + + + + + Get the minimum and maximum value across all channels of the mat + + The range that contains the minimum and maximum values + + + + Convert this Mat to Image + + The type of Color + The type of Depth + If true, we will try to see if we can create an Image object that shared the pixel memory with this Mat. + The image + + + + The Get property provide a more efficient way to convert gray scale Mat of Byte, 3 channel Mat of Byte (assuming BGR color space) or 4 channel Mat of Byte (assuming Bgra color space) into Bitmap + such that the image data is shared with Bitmap. + If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well! + For other types of image this property has the same effect as ToBitmap() + Take extra caution not to use the Bitmap after the Mat object is disposed + The Set property convert the bitmap to this Image type. + + + + + Set the mat to the specific value + + The value to set to + Optional mask + + + + Set the mat to the specific value + + The value to set to + Optional mask + + + + Returns an identity matrix of the specified size and type. + + Number of rows. + Number of columns. + Mat element type + Number of channels + An identity matrix of the specified size and type. + + + + Extracts a diagonal from a matrix. The method makes a new header for the specified matrix diagonal. The new matrix is represented as a single-column matrix. Similarly to Mat::row and Mat::col, this is an O(1) operation. + + Index of the diagonal, with the following values: d=0 is the main diagonal; d < 0 is a diagonal from the lower half. For example, d=-1 means the diagonal is set immediately below the main one; d > 0 is a diagonal from the upper half. For example, d=1 means the diagonal is set immediately above the main one. + A diagonal from a matrix + + + + Transposes a matrix. + + The transposes of the matrix. + + + + Returns a zero array of the specified size and type. + + Number of rows. + Number of columns. + Mat element type + Number of channels + A zero array of the specified size and type. + + + + Returns an array of all 1's of the specified size and type. + + Number of rows. + Number of columns. + Mat element type + Number of channels + An array of all 1's of the specified size and type. + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + + Creates a matrix header for the specified matrix row. + + A 0-based row index. + A matrix header for the specified matrix row. + + + + Creates a matrix header for the specified matrix column. + + A 0-based column index. + A matrix header for the specified matrix column. + + + + Save this image to the specific file. + + The name of the file to be saved to + The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format. + + + + Make a clone of the current Mat + + A clone of the current Mat + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of gray scale images where each element in the array represent a single color channel of the original image + + + + + Compares two Mats and check if they are equal + + The other mat to compare with + True if the two Mats are equal + + + + Computes a dot-product of two vectors. + + Another dot-product operand + The dot-product of two vectors. + + + + Computes a cross-product of two 3-element vectors. + + Another cross-product operand. + Cross-product of two 3-element vectors. + + + + Get an array of the size of the dimensions. e.g. if the mat is 9x10x11, the array of {9, 10, 11} will be returned. + + + + + Perform an element wise AND operation on the two mats + + The first mat to AND + The second mat to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first image to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a color + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The scalar to AND + The result of the AND operation + + + Perform an element wise OR operation with another mat and return the result + The first mat to apply bitwise OR operation + The second mat to apply bitwise OR operation + The result of the OR operation + + + + Perform an binary OR operation with some value + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The value to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The color to OR + The result of the OR operation + + + Compute the complement Mat + The mat to be inverted + The complement image + + + + Element wise add with + + The first image to be added + The second image to be added + The sum of the two images + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The images plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The color to be added + The images plus the color + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted from. + The second image to be subtracted from + The result of element wise subtracting img2 from + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted + The value to be subtracted + The result of element wise subtracting from + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The color to be subtracted + - + + + + - + + The mat to be subtracted + The value to be subtracted + - + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The value to be subtracted + - + + + + * + + The mat + The multiplication scale + * + + + + * + + The mat + The multiplication scale + * + + + + / + + The mat + The division scale + / + + + + / + + The mat + The scale + / + + + + True if the data is continues + + + + + True if the matrix is a submatrix of another matrix + + + + + Depth type + + + + + True if the Mat is empty + + + + + Number of channels + + + + + The method removes one or more rows from the bottom of the matrix + + The value + + + + Adds elements to the bottom of the matrix + + The value + + + + The method returns the number of array elements (a number of pixels if the array represents an image) + + + + + The matrix dimensionality + + + + + Matrix data allocator. Base class for Mat that handles the matrix data allocation and deallocation + + + + + Get the managed data used by the Mat + + + + + Release resource associated with this object + + + + + A MatND is a wrapper to cvMatND of OpenCV. + + The type of depth + + + + Create a N-dimensional matrix + + The size for each dimension + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + This function is not implemented for MatND + + Not implemented + Not implemented + Not implemented + + + + This function is not implemented for MatND + + + + + Get the underneath managed array + + + + + Get the depth representation for Open CV + + + + + Release the matrix and all the memory associate with it + + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + Not Implemented + + The XmlReader + + + + Not Implemented + + The XmlWriter + + + + The MCvMatND structure + + + + + Convert this matrix to different depth + + The depth type to convert to + Matrix of different depth + + + + Check if the two MatND are equal + + The other MatND to compares to + True if the two MatND equals + + + + A Matrix is a wrapper to cvMat of OpenCV. + + Depth of this matrix (either Byte, SByte, Single, double, UInt16, Int16 or Int32) + + + + The default constructor which allows Data to be set later on + + + + + Create a Matrix (only header is allocated) using the Pinned/Unmanaged . The is not freed by the disposed function of this class + + The number of rows + The number of cols + The Pinned/Unmanaged data, the data must not be release before the Matrix is Disposed + The step (row stride in bytes) + The caller is responsible for allocating and freeing the block of memory specified by the data parameter, however, the memory should not be released until the related Matrix is released. + + + + Create a Matrix (only header is allocated) using the Pinned/Unmanaged . The is not freed by the disposed function of this class + + The number of rows + The number of cols + The number of channels + The Pinned/Unmanaged data, the data must not be release before the Matrix is Disposed + The step (row stride in bytes) + The caller is responsible for allocating and freeing the block of memory specified by the data parameter, however, the memory should not be released until the related Matrix is released. + + + + Create a Matrix (only header is allocated) using the Pinned/Unmanaged . The is not freed by the disposed function of this class + + The number of rows + The number of cols + The Pinned/Unmanaged data, the data must not be release before the Matrix is Disposed + The caller is responsible for allocating and freeing the block of memory specified by the data parameter, however, the memory should not be released until the related Matrix is released. + + + + Create a matrix of the specific size + + The number of rows (height) + The number of cols (width) + + + + Create a matrix of the specific size + + The size of the matrix + + + + Create a matrix of the specific size and channels + + The number of rows + The number of cols + The number of channels + + + + Create a matrix using the specific data. + + The data will be used as the Matrix data storage. You need to make sure that the data object live as long as this Matrix object + The data will be used as the Matrix data storage. You need to make sure that the data object live as long as this Matrix object + + + + Create a matrix using the specific + + the data for this matrix + + + + Get the underneath managed array + + + + + Get or Set the data for this matrix + + + + + Get the number of channels for this matrix + + + + + The MCvMat structure format + + + + + Returns determinant of the square matrix + + + + + Return the sum of the elements in this matrix + + + + + Return a matrix of the same size with all elements equals 0 + + A matrix of the same size with all elements equals 0 + + + + Make a copy of this matrix + + A copy if this matrix + + + + Get reshaped matrix which also share the same data with the current matrix + + the new number of channles + The new number of rows + A reshaped matrix which also share the same data with the current matrix + + + + Convert this matrix to different depth + + The depth type to convert to + the scaling factor to apply during conversion (defaults to 1.0 -- no scaling) + the shift factor to apply during conversion (defaults to 0.0 -- no shifting) + Matrix of different depth + + + Returns the transpose of this matrix + The transpose of this matrix + + + + Get or Set the value in the specific and + + the row of the element + the col of the element + The element on the specific and + + + + Allocate data for the array + + The number of rows + The number of columns + The number of channels for this matrix + + + + Get a submatrix corresponding to a specified rectangle + + the rectangle area of the sub-matrix + A submatrix corresponding to a specified rectangle + + + + Get the specific row of the matrix + + the index of the row to be reterived + the specific row of the matrix + + + + Return the matrix corresponding to a specified row span of the input array + + Zero-based index of the starting row (inclusive) of the span + Zero-based index of the ending row (exclusive) of the span + Index step in the row span. That is, the function extracts every delta_row-th row from start_row and up to (but not including) end_row + A matrix corresponding to a specified row span of the input array + + + + Get the specific column of the matrix + + the index of the column to be reterived + the specific column of the matrix + + + + Get the Matrix, corresponding to a specified column span of the input array + + Zero-based index of the ending column (exclusive) of the span + Zero-based index of the selected column + the specific column span of the matrix + + + + Return the specific diagonal elements of this matrix + + Array diagonal. Zero corresponds to the main diagonal, -1 corresponds to the diagonal above the main etc., 1 corresponds to the diagonal below the main etc + The specific diagonal elements of this matrix + + + + Return the main diagonal element of this matrix + + The main diagonal element of this matrix + + + + Return the matrix without a specified row span of the input array + + Zero-based index of the starting row (inclusive) of the span + Zero-based index of the ending row (exclusive) of the span + The matrix without a specified row span of the input array + + + + Return the matrix without a specified column span of the input array + + Zero-based index of the starting column (inclusive) of the span + Zero-based index of the ending column (exclusive) of the span + The matrix without a specified column span of the input array + + + + Concate the current matrix with another matrix vertically. If this matrix is n1 x m and is n2 x m, the resulting matrix is (n1+n2) x m. + + The other matrix to concate + A new matrix that is the vertical concatening of this matrix and + + + + Concate the current matrix with another matrix horizontally. If this matrix is n x m1 and is n x m2, the resulting matrix is n x (m1 + m2). + + The other matrix to concate + A matrix that is the horizontal concatening of this matrix and + + + + Returns the min / max locations and values for the matrix + + The minimum value + The maximum value + The minimum location + The maximum location + The optional mask + + + Elementwise add another matrix with the current matrix + The matrix to be added to the current matrix + The result of elementwise adding mat2 to the current matrix + + + Elementwise add a color to the current matrix + The value to be added to the current matrix + The result of elementwise adding from the current matrix + + + Elementwise subtract another matrix from the current matrix + The matrix to be subtracted to the current matrix + The result of elementwise subtracting mat2 from the current matrix + + + Elementwise subtract a color to the current matrix + The value to be subtracted from the current matrix + The result of elementwise subtracting from the current matrix + + + + result = val - this + + The value which subtract this matrix + val - this + + + Multiply the current matrix with + The scale to be multiplied + The scaled matrix + + + Multiply the current matrix with + The matrix to be multiplied + Result matrix of the multiplication + + + + Elementwise add with + + The Matrix to be added + The Matrix to be added + The elementwise sum of the two matrices + + + + Elementwise add with + + The Matrix to be added + The value to be added + The matrix plus the value + + + + + + + The Matrix to be added + The value to be added + The matrix plus the value + + + + - + + The Matrix to be subtracted + The value to be subtracted + - + + + + - + + The Matrix to be subtracted + The matrix to subtract + - + + + + - + + The Matrix to be subtracted + The value to be subtracted + - + + + + * + + The Matrix to be multiplied + The value to be multiplied + * + + + + * + + The matrix to be multiplied + The value to be multiplied + * + + + + / + + The Matrix to be divided + The value to be divided + / + + + + * + + The Matrix to be multiplied + The Matrix to be multiplied + * + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + Release the matrix and all the memory associate with it + + + + + This function compare the current matrix with and returns the comparison mask + + The other matrix to compare with + Comparison type + The comparison mask + + + + Get all channels for the multi channel matrix + + Each individual channel of this matrix + + + + Return true if every element of this matrix equals elements in + + The other matrix to compare with + true if every element of this matrix equals elements in + + + + Get the size of the array + + + + + The equivalent of cv::Moments + + + + + Create an empty Moment object + + + + + Release the unmanaged resources + + + + + The Gravity Center of this Moment + + + + + M00 + + + + + M10 + + + + + M01 + + + + + M20 + + + + + M11 + + + + + M02 + + + + + M30 + + + + + M21 + + + + + M12 + + + + + M03 + + + + + Mu20 + + + + + Mu11 + + + + + Mu02 + + + + + Mu30 + + + + + Mu21 + + + + + Mu12 + + + + + Mu03 + + + + + Nu20 + + + + + Nu11 + + + + + Nu02 + + + + + Nu30 + + + + + Nu21 + + + + + Nu12 + + + + + Nu03 + + + + + This type is very similar to InputArray except that it is used for output function parameters. + + + + + Create an OutputArray from an existing unmanaged outputArray pointer + + The pointer to the unmanaged outputArray + The parent object to keep reference to + + + + Get an empty output array + + An empty output array + + + + Release the unmanaged memory associated with this output array. + + + + + True if the output array is fixed size + + + + + True if the output array is fixed type + + + + + True if the output array is needed + + + + + Random Number Generator. + + + + + Distribution type + + + + + Uniform distribution + + + + + Normal distribution + + + + + Create a Random Number Generator. + + + + + Create a Random Number Generator using a seed. + + 64-bit value used to initialize the RNG + + + + Release the unmanaged resources + + + + + Fills arrays with random numbers. + + 2D or N-dimensional matrix; currently matrices with more than 4 channels are not supported by the methods, use Mat::reshape as a possible workaround. + distribution type + First distribution parameter; in case of the uniform distribution, this is an inclusive lower boundary, in case of the normal distribution, this is a mean value. + Second distribution parameter; in case of the uniform distribution, this is a non-inclusive upper boundary, in case of the normal distribution, this is a standard deviation (diagonal of the standard deviation matrix or the full standard deviation matrix). + Pre-saturation flag; for uniform distribution only; if true, the method will first convert a and b to the acceptable value range (according to the mat datatype) and then will generate uniformly distributed random numbers within the range [saturate(a), saturate(b)), if saturateRange=false, the method will generate uniformly distributed random numbers in the original range [a, b) and then will saturate them + + + + Fills arrays with random numbers. + + 2D or N-dimensional matrix; currently matrices with more than 4 channels are not supported by the methods, use Mat::reshape as a possible workaround. + distribution type + First distribution parameter; in case of the uniform distribution, this is an inclusive lower boundary, in case of the normal distribution, this is a mean value. + Second distribution parameter; in case of the uniform distribution, this is a non-inclusive upper boundary, in case of the normal distribution, this is a standard deviation (diagonal of the standard deviation matrix or the full standard deviation matrix). + Pre-saturation flag; for uniform distribution only; if true, the method will first convert a and b to the acceptable value range (according to the mat datatype) and then will generate uniformly distributed random numbers within the range [saturate(a), saturate(b)), if saturateRange=false, the method will generate uniformly distributed random numbers in the original range [a, b) and then will saturate them + + + + Returns the next random number sampled from the Gaussian distribution. + + standard deviation of the distribution. + Returns the next random number from the Gaussian distribution N(0,sigma) . That is, the mean value of the returned random numbers is zero and the standard deviation is the specified sigma . + + + + The method updates the state using the MWC algorithm and returns the next 32-bit random number. + + The next 32-bit random number + + + + Returns uniformly distributed integer random number from [a,b) range + + Lower inclusive boundary of the returned random number. + Upper non-inclusive boundary of the returned random number. + Uniformly distributed integer random number from [a,b) range + + + + Returns uniformly distributed random float number from [a,b) range + + Lower inclusive boundary of the returned random number. + Upper non-inclusive boundary of the returned random number. + Uniformly distributed random float number from [a,b) range + + + + Returns uniformly distributed random double number from [a,b) range + + Lower inclusive boundary of the returned random number. + Upper non-inclusive boundary of the returned random number. + Uniformly distributed random double number from [a,b) range + + + + An implementation of IInputArray intented to convert data to IInputArray + + + + + Create an InputArray from MCvScalar + + The MCvScalar to be converted to InputArray + + + + Create an InputArray from a double value + + The double value to be converted to InputArray + + + + Convert double scalar to InputArray + + The double scalar + The InputArray + + + + Convert MCvScalar to InputArray + + The MCvScalar + The InputArray + + + + Release all the unmanaged memory associated with this InputArray + + + + + The pointer to the input array + + The input array + + + + Create a sparse matrix + + The type of elements in this matrix + + + + Create a sparse matrix of the specific dimension + + The dimension of the sparse matrix + + + + Get or Set the value in the specific and + + the row of the element + the col of the element + The element on the specific and + + + + Release the unmanaged memory associated with this sparse matrix + + + + + The Image which contains time stamp which specified what time this image is created + + The color of this map + The depth of this map + + + + Create a empty Image + + + + + Create a blank Image of the specified width, height, depth and color. + + The width of the image + The height of the image + The initial color of the image + + + + Create an empty Image of the specified width and height + + The width of the image + The height of the image + + + + The time this image is captured + + + + + The equivalent of cv::Mat, should only be used if you know what you are doing. + In most case you should use the Matrix class instead + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime deserailization of the object + + Serialization info + Streaming context + + + + A function used for runtime serialization of the object + + Serialization info + streaming context + + + + Allocation usage. + + + + + Default + + + + + Buffer allocation policy is platform and usage specific + + + + + Buffer allocation policy is platform and usage specific + + + + + Buffer allocation policy is platform and usage specific + It is not equal to: AllocateHostMemory | AllocateDeviceMemory + + + + + Get or Set the raw image data + + + + + Create an empty cv::UMat + + + + + Create a umat of the specific type. + + Number of rows in a 2D array. + Number of columns in a 2D array. + Mat element type + Number of channels + Allocation Usage + + + + Create a umat of the specific type. + + Size of the UMat + Mat element type + Number of channels + Allocation Usage + + + + Get the Umat header for the specific roi of the parent + + The parent Umat + The region of interest + + + + Create a umat header for the specific ROI + + The umat where the new UMat header will share data from + The region of interest + The region of interest + + + + Allocates new array data if needed. + + New number of rows. + New number of columns. + New matrix element depth type. + New matrix number of channels + Allocation Usage + + + + Read a UMat from file. + + The name of the file + The read mode + + + + The size of this matrix + + + + + The number of rows + + + + + The number of columns + + + + + The size of the elements in this matrix + + + + + Copy the data in this umat to the other mat + + Operation mask. Its non-zero elements indicate which matrix elements need to be copied. + The input array to copy to + + + + Sets all or some of the array elements to the specified value. + + Assigned scalar converted to the actual array type. + Operation mask of the same size as the umat. + + + + Sets all or some of the array elements to the specified value. + + Assigned scalar value. + Operation mask of the same size as the umat. + + + + Return the Mat representation of the UMat + + The access type + The Mat representation of the UMat + + + + Release all the unmanaged memory associated with this object. + + + + + Pointer to the InputArray + + The input array + + + + Pointer to the OutputArray + + The output array + + + + Pointer to the InputOutputArray + + The input output array + + + + Changes the shape and/or the number of channels of a 2D matrix without copying the data. + + New number of channels. If the parameter is 0, the number of channels remains the same. + New number of rows. If the parameter is 0, the number of rows remains the same. + A new mat header that has different shape + + + + Convert this Mat to Image + + The type of Color + The type of Depth + The image + + + + The Get property provide a more efficient way to convert Image<Gray, Byte>, Image<Bgr, Byte> and Image<Bgra, Byte> into Bitmap + such that the image data is shared with Bitmap. + If you change the pixel value on the Bitmap, you change the pixel values on the Image object as well! + For other types of image this property has the same effect as ToBitmap() + Take extra caution not to use the Bitmap after the Image object is disposed + The Set property convert the bitmap to this Image type. + + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + + Converts an array to another data type with optional scaling. + + Output matrix; if it does not have a proper size or type before the operation, it is reallocated. + Desired output matrix type or, rather, the depth since the number of channels are the same as the input has; if rtype is negative, the output matrix will have the same type as the input. + Optional scale factor. + Optional delta added to the scaled values. + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of gray scale images where each element + in the array represent a single color channel of the original image + + + + + Save this image to the specific file. + + The name of the file to be saved to + The image format is chosen depending on the filename extension, see cvLoadImage. Only 8-bit single-channel or 3-channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format. + + + + Make a clone of the current UMat. + + A clone of the current UMat. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + + true if the current object is equal to the parameter; otherwise, false. + + + + + Copy data from this Mat to the managed array + + The type of managed data array + The managed array where data will be copied to. + + + + Copy data from managed array to this Mat + + The type of managed data array + The managed array where data will be copied from + + + + Computes the dot product of two mats + + The matrix to compute dot product with + The dot product + + + + Creates a matrix header for the specified matrix row. + + A 0-based row index. + A matrix header for the specified matrix row. + + + + Creates a matrix header for the specified matrix column. + + A 0-based column index. + A matrix header for the specified matrix column. + + + + Get a copy of the data values as an array + + If true, a jagged array will returned. Otherwise it will return a regular array. + a copy of the data values as an array + + + + Perform an element wise AND operation on the two mats + + The first mat to AND + The second mat to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first image to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a color + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The value to AND + The result of the AND operation + + + + Perform an element wise AND operation using a mat and a scalar + + The first mat to AND + The scalar to AND + The result of the AND operation + + + Perform an element wise OR operation with another mat and return the result + The first mat to apply bitwise OR operation + The second mat to apply bitwise OR operation + The result of the OR operation + + + + Perform an binary OR operation with some value + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some color + + The mat to OR + The color to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The value to OR + The result of the OR operation + + + + Perform an binary OR operation with some scalar + + The mat to OR + The color to OR + The result of the OR operation + + + Compute the complement Mat + The mat to be inverted + The complement image + + + + Element wise add with + + The first mat to be added + The second mat to be added + The sum of the two images + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The images plus the value + + + + Element wise add with + + The mat to be added + The value to be added + The mat plus the value + + + + Element wise add with + + The mat to be added + The color to be added + The images plus the color + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted from. + The second image to be subtracted from + The result of element wise subtracting img2 from + + + + Element wise subtract another mat from the current mat + + The mat to be subtracted + The value to be subtracted + The result of element wise subtracting from + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The color to be subtracted + - + + + + - + + The mat to be subtracted + The value to be subtracted + - + + + + Element wise subtract value from the current mat + + The mat to be subtracted + The value to be subtracted + - + + + + * + + The mat + The multiplication scale + * + + + + * + + The mat + The multiplication scale + * + + + + / + + The mat + The division scale + / + + + + / + + The mat + The scale + / + + + + True if the data is continues + + + + + True if the matrix is a submatrix of another matrix + + + + + Depth type + + + + + True if the matrix is empty + + + + + Number of channels + + + + + The method returns the number of array elements (a number of pixels if the array represents an image) + + + + + The matrix dimensionality + + + + + The Affine3 matrix, double precision. + + + + + Create an empty Affine3, double precision matrix + + + + + Create a new identity matrix + + The identity affine 3d matrix + + + + Rotate the Affine3 matrix by a Rodrigues vector + + Value of the Rodrigues vector + Value of the Rodrigues vector + Value of the Rodrigues vector + The rotated Affine3 matrix + + + + Translate the Affine3 matrix by the given value + + Value of the translation vector + Value of the translation vector + Value of the translation vector + The translated Affine3 matrix + + + + Get the 3x3 matrix's value as a double vector (of size 9) + + The 3x3 matrix's value as a double vector (of size 9) + + + + Release the unmanaged memory associated with this Affine3 model + + + + + A Uniform Multi-dimensional Dense Histogram + + + + + Creates a uniform 1-D histogram of the specified size + + The number of bins in this 1-D histogram. + The upper and lower boundary of the bin + + + + Creates a uniform multi-dimension histogram of the specified size + + The length of this array is the dimension of the histogram. The values of the array contains the number of bins in each dimension. The total number of bins eaquals the multiplication of all numbers in the array + the upper and lower boundaries of the bins + + + + Clear this histogram + + + + + Project the images to the histogram bins + + The type of depth of the image + images to project + If it is true, the histogram is not cleared in the beginning. This feature allows user to compute a single histogram from several images, or to update the histogram online. + Can be null if not needed. The operation mask, determines what pixels of the source images are counted + + + + Project the matrices to the histogram bins + + The type of depth of the image + Matrices to project + If it is true, the histogram is not cleared in the beginning. This feature allows user to compute a single histogram from several images, or to update the histogram online. + Can be null if not needed. The operation mask, determines what pixels of the source images are counted + + + + Backproject the histogram into a gray scale image + + Source images, all are of the same size and type + Destination back projection image of the same type as the source images + The type of depth of the image + + + + Backproject the histogram into a matrix + + Source matrices, all are of the same size and type + Destination back projection matrix of the sametype as the source matrices + The type of depth of the matrix + + + + Get the size of the bin dimensions + + + + + Get the ranges of this histogram + + + + + Gets the bin values. + + The bin values + + + The interface that is used for WCF to provide a image capture service + + + Capture a Bgr image frame + A Bgr image frame + + + Capture a Bgr image frame that is half width and half height + A Bgr image frame that is half width and half height + + + + The interface to request a duplex image capture + + + + + Request a frame from server + + + + + Request a frame from server which is half width and half height + + + + + The interface for DuplexCaptureCallback + + + + + Function to call when an image is received + + The image received + + + + Capture images from either camera or video file. + + VideoCapture class is NOT implemented in Open CV for Android, iOS or UWP platforms + + + + VideoCapture API backends identifier. + + + + + Auto detect + + + + + Video For Windows (obsolete, removed) + + + + + V4L/V4L2 capturing support + + + + + Same as CAP_V4L + + + + + IEEE 1394 drivers + + + + + IEEE 1394 drivers + + + + + IEEE 1394 drivers + + + + + IEEE 1394 drivers + + + + + QuickTime (obsolete, removed) + + + + + Unicap drivers (obsolete, removed) + + + + + DirectShow (via videoInput) + + + + + PvAPI, Prosilica GigE SDK + + + + + OpenNI (for Kinect) + + + + + OpenNI (for Asus Xtion) + + + + + Android - not used + + + + + XIMEA Camera API + + + + + AVFoundation framework for iOS (OS X Lion will have the same API) + + + + + Smartek Giganetix GigEVisionSDK + + + + + Microsoft Media Foundation (via videoInput) + + + + + Microsoft Windows Runtime using Media Foundation + + + + + Intel Perceptual Computing SDK + + + + + OpenNI2 (for Kinect) + + + + + OpenNI2 (for Asus Xtion and Occipital Structure sensors) + + + + + gPhoto2 connection + + + + + GStreamer + + + + + Open and record video file or stream using the FFMPEG library + + + + + OpenCV Image Sequence (e.g. img_%02d.jpg) + + + + + Aravis SDK + + + + + Built-in OpenCV MotionJPEG codec + + + + + Intel MediaSDK + + + + + XINE engine (Linux) + + + + + the type of flipping + + + + + The type of capture source + + + + + Capture from camera + + + + + Capture from file using HighGUI + + + + + Get the type of the capture module + + + + + Get and set the flip type + + + + + Get or Set if the captured image should be flipped horizontally + + + + + Get or Set if the captured image should be flipped vertically + + + + The width of this capture + + + The height of this capture + + + Create a capture using the specific camera + The index of the camera to create capture from, starting from 0 + The preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available. + + + + Create a capture from file or a video stream + + The name of a file, or an url pointed to a stream. + The preferred Capture API backends to use. Can be used to enforce a specific reader implementation if multiple are available. + + + + Release the resource for this capture + + + + + Obtain the capture property + + The index for the property + The value of the specific property + + + + Sets the specified property of video capturing + + Property identifier + Value of the property + True if success + + + + Grab a frame + + True on success + + + + The event to be called when an image is grabbed + + + + + Start the grab process in a separate thread. Once started, use the ImageGrabbed event handler and RetrieveGrayFrame/RetrieveBgrFrame to obtain the images. + + An exception handler. If provided, it will be used to handle exception in the capture thread. + + + + Pause the grab process if it is running. + + + + + Stop the grabbing thread + + + + + Retrieve a Gray image frame after Grab() + + The output image + The channel to retrieve image + True if the frame can be retrieved + + + + Similar to the C++ implementation of cv::Capture >> Mat. It first call Grab() function follows by Retrieve() + + The matrix the image will be read into. + + + + The name of the backend used by this VideoCapture + + + + + Capture a Bgr image frame + + A Bgr image frame. If no more frames are available, null will be returned. + + + + Capture a Bgr image frame that is half width and half height. + Mainly used by WCF when sending image to remote locations in a bandwidth conservative scenario + + Internally, this is a cvQueryFrame operation follow by a cvPyrDown + A Bgr image frame that is half width and half height + + + + Query a frame duplexly over WCF + + + + + Query a small frame duplexly over WCF + + + + + True if the camera is opened + + + + + The backend for video + + + + + Create a backend given its id + + The id of the backend + + + + The ID of the backend. + + + + + The name of the backend + + + + + Create a video writer that write images to video format + + + + + Create a video writer using the specific information. + On windows, it will open a codec selection dialog. + On linux, it will use the default codec for the specified filename + + The name of the video file to be written to + frame rate per second + the size of the frame + true if this is a color video, false otherwise + + + + Create a video writer using the specific information + + The name of the video file to be written to + Compression code. Usually computed using CvInvoke.CV_FOURCC. + On windows use -1 to open a codec selection dialog. + On Linux, use CvInvoke.CV_FOURCC('I', 'Y', 'U', 'V') for default codec for the specific file name. + + frame rate per second + the size of the frame + true if this is a color video, false otherwise + + + + Create a video writer using the specific information + + The name of the video file to be written to + Compression code. Usually computed using CvInvoke.CV_FOURCC. + On windows use -1 to open a codec selection dialog. + On Linux, use CvInvoke.CV_FOURCC('I', 'Y', 'U', 'V') for default codec for the specific file name. + + frame rate per second + the size of the frame + true if this is a color video, false otherwise + Allows to specify API backends to use. + + + + Write a single frame to the video writer + + The frame to be written to the video writer + + + + Generate 4-character code of codec used to compress the frames. For example, CV_FOURCC('P','I','M','1') is MPEG-1 codec, CV_FOURCC('M','J','P','G') is motion-jpeg codec etc. + + C1 + C2 + C3 + C4 + The integer value calculated from the four cc code + + + + Release the video writer and all the memory associate with it + + + + + Returns true if video writer has been successfully initialized. + + + + + Sets a property in the VideoWriter. + + Property identifier + Value of the property. + The value of the specific property + + + + Returns the specified VideoWriter property. + + Property identifier. + The value of the specific property + + + + The VideoWriter property + + + + + Current quality (0..100%) of the encoded videostream. Can be adjusted dynamically in some codecs. + + + + + (Read-only): Size of just encoded video frame. Note that the encoding order may be different from representation order. + + + + + Number of stripes for parallel encoding. -1 for auto detection. + + + + + Wrapped AGAST detector + + + + + Agast feature type + + + + + AGAST_5_8 + + + + + AGAST_7_12d + + + + + AGAST_7_12s + + + + + OAST_9_16 + + + + + Create AGAST using the specific values + + Threshold + Non maximum suppression + Type + + + + Release the unmanaged resources associated with this object + + + + + Library to invoke Features2D functions + + + + + Wrapped AKAZE detector + + + + + Type of the extracted descriptor + + + + + The kaze upright + + + + + The kaze + + + + + Modified-Local Difference Binary (M-LDB), upright + + + + + Modified-Local Difference Binary (M-LDB) + + + + + Create AKAZE using the specific values + + Type of the extracted descriptor + Size of the descriptor in bits. 0 -> Full size + Number of channels in the descriptor (1, 2, 3) + Detector response threshold to accept point + Default number of sublevels per scale level + Maximum octave evolution of the image + Diffusivity type + + + + Release the unmanaged resources associated with this object + + + + + The match distance type + + + + + + + + + + Manhattan distance (city block distance) + + + + + Squared Euclidean distance + + + + + Euclidean distance + + + + + Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor, + bit count of A exclusive XOR'ed with B. + + + + + Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor, + bit count of A exclusive XOR'ed with B. + + + + + bit-mask which can be used to separate norm type from norm flags + + + + + Relative, flag + + + + + MinMax, flag + + + + + Wrapped BFMatcher + + + + + Create a BFMatcher of the specific distance type + + The distance type + Specify whether or not cross check is needed. Use false for default. + + + + Release the unmanaged resource associated with the BFMatcher + + + + + Class to compute an image descriptor using the bag of visual words. Such a computation consists of the following + steps: + 1. Compute descriptors for a given image and its key points set. + 2. Find the nearest visual words from the vocabulary for each key point descriptor. + 3. Compute the bag-of-words image descriptor as is a normalized histogram of vocabulary words encountered in + the image. The i-th bin of the histogram is a frequency of i-th word of the vocabulary in the given image. + + + + + Create a BOWImgDescriptorExtractor + + Descriptor extractor that is used to compute descriptors for an input image and its key points. + Descriptor matcher that is used to find the nearest word of the trained vocabulary for each key point descriptor of the image. + + + + Sets a visual vocabulary. + + The vocabulary + + + + Computes an image descriptor using the set visual vocabulary. + + Image, for which the descriptor is computed + Key points detected in the input image. + The output image descriptors. + + + + Release all the unmanaged memory associated with this object + + + + + Kmeans-based class to train visual vocabulary using the bag of visual words approach. + + + + + Create a new BOWKmeans trainer + + Number of clusters to split the set by. + Specifies maximum number of iterations and/or accuracy (distance the centers move by between the subsequent iterations). Use empty termcrit for default. + The number of attempts. Use 3 for default + Kmeans initialization flag. Use PPCenters for default. + + + + Get the number of descriptors + + + + + Add the descriptors to the trainer + + The descriptors to be added to the trainer + + + + Cluster the descriptors and return the cluster centers + + The cluster centers + + + + Release all the unmanaged memory associated with this object + + + + + BRISK: Binary Robust Invariant Scalable Keypoints + + + + + Create a BRISK keypoint detector and descriptor extractor. + + Feature parameters. + The number of octave layers. + Pattern scale + + + + Release the unmanaged resources associated with this object + + + + + Descriptor matcher + + + + + The pointer to the Descriptor matcher + + + + + Finds the k best matches for each descriptor from a query set. + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches. Each matches[i] is k or less matches for the same query descriptor. + Count of best matches found per each query descriptor or less if a query descriptor has less than k possible matches in total. + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Find the k-nearest match + + An n x m matrix of descriptors to be query for nearest neighbours. n is the number of descriptor and m is the size of the descriptor + Number of nearest neighbors to search for + Can be null if not needed. An n x 1 matrix. If 0, the query descriptor in the corresponding row will be ignored. + Matches. Each matches[i] is k or less matches for the same query descriptor. + + Parameter used when the mask (or masks) is not empty. If compactResult is + false, the matches vector has the same size as queryDescriptors rows.If compactResult is true, + the matches vector does not contain matches for fully masked-out query descriptors. + + + + + Add the model descriptors + + The model descriptors + + + + Reset the native pointer upon object disposal + + + + + Clears the train descriptor collections. + + + + + Returns true if there are no train descriptors in the both collections. + + + + + Returns true if the descriptor matcher supports masking permissible matches. + + + + + Trains a descriptor matcher (for example, the flann index). In all methods to match, the method + train() is run every time before matching.Some descriptor matchers(for example, BruteForceMatcher) + have an empty implementation of this method.Other matchers really train their inner structures (for + example, FlannBasedMatcher trains flann::Index ). + + + + + Finds the best match for each descriptor from a query set. + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + Finds the best match for each descriptor from a query set. Train descriptors collection that was set by the Add function is used. + + Query set of descriptors. + If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance. + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance. + + Query set of descriptors. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + FAST(Features from Accelerated Segment Test) keypoint detector. + See Detects corners using FAST algorithm by E. Rosten ("Machine learning for high-speed corner + detection, 2006). + + + + + One of the three neighborhoods as defined in the paper + + + + + The type5_8 + + + + + The type7_12 + + + + + The type9_16 + + + + + Create a fast detector with the specific parameters + + Threshold on difference between intensity of center pixel and pixels on circle around + this pixel. + Specify if non-maximum suppression should be used. + One of the three neighborhoods as defined in the paper + + + + Release the unmanaged memory associated with this detector. + + + + + The feature 2D base class + + + + + The pointer to the Feature2D object + + + + + The pointer to the Algorithm object. + + + + + Get the pointer to the Feature2D object + + The pointer to the Feature2D object + + + + Detect keypoints in an image and compute the descriptors on the image from the keypoint locations. + + The image + The optional mask, can be null if not needed + The detected keypoints will be stored in this vector + The descriptors from the keypoints + If true, the method will skip the detection phase and will compute descriptors for the provided keypoints + + + + Reset the pointers + + + + + Detect the features in the image + + The result vector of keypoints + The image from which the features will be detected from + The optional mask. + + + + Detect the keypoints from the image + + The image to extract keypoints from + The optional mask. + An array of key points + + + + Compute the descriptors on the image from the given keypoint locations. + + The image to compute descriptors from + The keypoints where the descriptor computation is perfromed + The descriptors from the given keypoints + + + + Get the number of elements in the descriptor. + + The number of elements in the descriptor + + + + Tools for features 2D + + + + + Draw the keypoints found on the image. + + The image + The keypoints to be drawn + The color used to draw the keypoints + The drawing type + The image with the keypoints drawn + + + + Draw the matched keypoints between the model image and the observered image. + + The model image + The keypoints in the model image + The observed image + The keypoints in the observed image + The color for the match correspondence lines + The color for highlighting the keypoints + The mask for the matches. Use null for all matches. + The drawing type + The image where model and observed image is displayed side by side. Matches are drawn as indicated by the flag + Matches. Each matches[i] is k or less matches for the same query descriptor. + + + + Define the Keypoint draw type + + + + + Two source image, matches and single keypoints will be drawn. + For each keypoint only the center point will be drawn (without + the circle around keypoint with keypoint size and orientation). + + + + + Single keypoints will not be drawn. + + + + + For each keypoint the circle around keypoint with keypoint size and + orientation will be drawn. + + + + + Eliminate the matched features whose scale and rotation do not aggree with the majority's scale and rotation. + + The numbers of bins for rotation, a good value might be 20 (which means each bin covers 18 degree) + This determines the different in scale for neighbor hood bins, a good value might be 1.5 (which means matched features in bin i+1 is scaled 1.5 times larger than matched features in bin i + The keypoints from the model image + The keypoints from the observed image + This is both input and output. This matrix indicates which row is valid for the matches. + Matches. Each matches[i] is k or less matches for the same query descriptor. + The number of non-zero elements in the resulting mask + + + + Recover the homography matrix using RANDSAC. If the matrix cannot be recovered, null is returned. + + The model keypoints + The observed keypoints + + The maximum allowed reprojection error to treat a point pair as an inlier. + If srcPoints and dstPoints are measured in pixels, it usually makes sense to set this parameter somewhere in the range 1 to 10. + + + The mask matrix of which the value might be modified by the function. + As input, if the value is 0, the corresponding match will be ignored when computing the homography matrix. + If the value is 1 and RANSAC determine the match is an outlier, the value will be set to 0. + + The homography matrix, if it cannot be found, null is returned + Matches. Each matches[i] is k or less matches for the same query descriptor. + + + + Filter the matched Features, such that if a match is not unique, it is rejected. + + The distance different ratio which a match is consider unique, a good number will be 0.8 + This is both input and output. This matrix indicates which row is valid for the matches. + Matches. Each matches[i] is k or less matches for the same query descriptor. + + + + This matcher trains flann::Index_ on a train descriptor collection and calls its nearest search methods to find the best matches. So, this matcher may be faster when matching a large train collection than the brute force matcher. + + + + + Create a Flann based matcher. + + The type of index parameters + The search parameters + + + + Release the unmanaged memory associated with this Flann based matcher. + + + + + Wrapping class for feature detection using the goodFeaturesToTrack() function. + + + + + Create a Good Feature to Track detector + + The function first calculates the minimal eigenvalue for every source image pixel using cvCornerMinEigenVal function and stores them in eig_image. Then it performs non-maxima suppression (only local maxima in 3x3 neighborhood remain). The next step is rejecting the corners with the minimal eigenvalue less than quality_level?max(eig_image(x,y)). Finally, the function ensures that all the corners found are distanced enough one from another by considering the corners (the most strongest corners are considered first) and checking that the distance between the newly considered feature and the features considered earlier is larger than min_distance. So, the function removes the features than are too close to the stronger features + The maximum number of features to be detected. + Multiplier for the maxmin eigenvalue; specifies minimal accepted quality of image corners. + Limit, specifying minimum possible distance between returned corners; Euclidian distance is used. + Size of the averaging block, passed to underlying cvCornerMinEigenVal or cvCornerHarris used by the function. + If true, will use Harris corner detector. + K + + + + Release the unmanaged memory associated with this detector. + + + + + Wrapped KAZE detector + + + + + The diffusivity + + + + + PM G1 + + + + + PM G2 + + + + + Weickert + + + + + Charbonnier + + + + + Create KAZE using the specific values + + Set to enable extraction of extended (128-byte) descriptor. + Set to enable use of upright descriptors (non rotation-invariant). + Detector response threshold to accept point + Maximum octave evolution of the image + Default number of sublevels per scale level + Diffusivity type. + + + + Release the unmanaged resources associated with this object + + + + + MSER detector + + + + + Create a MSER detector using the specific parameters + + In the code, it compares (size_{i}-size_{i-delta})/size_{i-delta} + Prune the area which bigger than max_area + Prune the area which smaller than min_area + Prune the area have similar size to its children + Trace back to cut off mser with diversity < min_diversity + For color image, the evolution steps + The area threshold to cause re-initialize + Ignore too small margin + The aperture size for edge blur + + + + Release the unmanaged memory associated with this detector. + + + + + Detect MSER regions + + input image (8UC1, 8UC3 or 8UC4, must be greater or equal than 3x3) + resulting list of point sets + resulting bounding boxes + + + + Wrapped ORB detector + + + + + The score type + + + + + Harris + + + + + Fast + + + + + Create a ORBDetector using the specific values + + The number of desired features. + Coefficient by which we divide the dimensions from one scale pyramid level to the next. + The number of levels in the scale pyramid. + The level at which the image is given. If 1, that means we will also look at the image. times bigger + How far from the boundary the points should be. + How many random points are used to produce each cell of the descriptor (2, 3, 4 ...). + Type of the score to use. + Patch size. + FAST threshold + + + + Release the unmanaged resources associated with this object + + + + + Simple Blob detector + + + + + Create a simple blob detector + + The parameters for creating a simple blob detector + + + + Release the unmanaged memory associated with this detector. + + + + + Parameters for the simple blob detector + + + + + Create parameters for simple blob detector and use default values. + + + + + Release all the unmanaged memory associated with this simple blob detector parameter. + + + + + Threshold step + + + + + Min threshold + + + + + Max threshold + + + + + Min dist between blobs + + + + + Filter by color + + + + + Blob color + + + + + Filter by area + + + + + Min area + + + + + Max area + + + + + Filter by circularity + + + + + Min circularity + + + + + Max circularity + + + + + Filter by inertia + + + + + Min inertia ratio + + + + + Max inertia ratio + + + + + Filter by convexity + + + + + Min Convexity + + + + + Max Convexity + + + + + Min Repeatability + + + + + The Kmeans center initiation types + + + + + Random + + + + + + + + + + + + + + + The index parameters interface + + + + + Gets the pointer to the index parameter. + + + The index parameter pointer. + + + + + Distance Type + + + + + Euclidean + + + + + L2 + + + + + Manhattan + + + + + L1 + + + + + Minkowski + + + + + Max + + + + + HistIntersect + + + + + Hellinger + + + + + ChiSquare + + + + + CS + + + + + KullbackLeibler + + + + + KL + + + + + Hamming + + + + + Flann index + + + + + Create a flann index + + A row by row matrix of descriptors + The index parameter + The distance type + + + + Perform k-nearest-neighbours (KNN) search + + A row by row matrix of descriptors to be query for nearest neighbours + The result of the indices of the k-nearest neighbours + The square of the Eculidean distance between the neighbours + Number of nearest neighbors to search for + The number of times the tree(s) in the index should be recursively traversed. A + higher value for this parameter would give better search precision, but also take more + time. If automatic configuration was used when the index was created, the number of + checks required to achieve the specified precision was also computed, in which case + this parameter is ignored + The search epsilon + If set to true, the search result is sorted + + + + Performs a radius nearest neighbor search for multiple query points + + The query points, one per row + Indices of the nearest neighbors found + The square of the Eculidean distance between the neighbours + The search radius + The maximum number of results + The number of times the tree(s) in the index should be recursively traversed. A + higher value for this parameter would give better search precision, but also take more + time. If automatic configuration was used when the index was created, the number of + checks required to achieve the specified precision was also computed, in which case + this parameter is ignored + The search epsilon + If set to true, the search result is sorted + The number of points in the search radius + + + + Release the unmanaged memory associated with this Flann Index + + + + + Create index for 3D points + + + + + Create a flann index for 3D points + + The IPosition3D array + The index parameters + + + + A neighbor point + + + + + The index of the point + + + + + The square distance + + + + + Find the approximate nearest position in 3D + + The position to start the search from + The nearest neighbor (may be an approximation, depends in the index type). + + + + Perform a search within the given radius + + The center of the search area + The radius of the search + The maximum number of results to return + The neighbors found + + + + Release the resource used by this object + + + + + When passing an object of this type, the index will perform a linear, brute-force search. + + + + + Initializes a new instance of the class. + + + + + Release all the memory associated with this IndexParam + + + + + When passing an object of this type the index constructed will consist of a set of randomized kd-trees which will be searched in parallel. + + + + + Initializes a new instance of the class. + + The number of parallel kd-trees to use. Good values are in the range [1..16] + + + + Release all the memory associated with this IndexParam + + + + + When using a parameters object of this type the index created uses multi-probe LSH (by Multi-Probe LSH: Efficient Indexing for High-Dimensional Similarity Search by Qin Lv, William Josephson, Zhe Wang, Moses Charikar, Kai Li., Proceedings of the 33rd International Conference on Very Large Data Bases (VLDB). Vienna, Austria. September 2007) + + + + + Initializes a new instance of the class. + + The number of hash tables to use (between 10 and 30 usually). + The size of the hash key in bits (between 10 and 20 usually). + The number of bits to shift to check for neighboring buckets (0 is regular LSH, 2 is recommended). + + + + Release all the memory associated with this IndexParam + + + + + When passing an object of this type the index constructed will be a hierarchical k-means tree. + + + + + Initializes a new instance of the class. + + The branching factor to use for the hierarchical k-means tree + The maximum number of iterations to use in the k-means clustering stage when building the k-means tree. A value of -1 used here means that the k-means clustering should be iterated until convergence + The algorithm to use for selecting the initial centers when performing a k-means clustering step. The possible values are CENTERS_RANDOM (picks the initial cluster centers randomly), CENTERS_GONZALES (picks the initial centers using Gonzales’ algorithm) and CENTERS_KMEANSPP (picks the initial centers using the algorithm suggested in arthur_kmeanspp_2007 ) + This parameter (cluster boundary index) influences the way exploration is performed in the hierarchical kmeans tree. When cb_index is zero the next kmeans domain to be explored is chosen to be the one with the closest center. A value greater then zero also takes into account the size of the domain. + + + + Release all the memory associated with this IndexParam + + + + + When using a parameters object of this type the index created combines the randomized kd-trees and the hierarchical k-means tree. + + + + + Initializes a new instance of the class. + + The number of parallel kd-trees to use. Good values are in the range [1..16] + The branching factor to use for the hierarchical k-means tree + The maximum number of iterations to use in the k-means clustering stage when building the k-means tree. A value of -1 used here means that the k-means clustering should be iterated until convergence + The algorithm to use for selecting the initial centers when performing a k-means clustering step. The possible values are CENTERS_RANDOM (picks the initial cluster centers randomly), CENTERS_GONZALES (picks the initial centers using Gonzales’ algorithm) and CENTERS_KMEANSPP (picks the initial centers using the algorithm suggested in arthur_kmeanspp_2007 ) + This parameter (cluster boundary index) influences the way exploration is performed in the hierarchical kmeans tree. When cb_index is zero the next kmeans domain to be explored is chosen to be the one with the closest center. A value greater then zero also takes into account the size of the domain. + + + + Release all the memory associated with this IndexParam + + + + + When passing an object of this type the index created is automatically tuned to offer the best performance, by choosing the optimal index type (randomized kd-trees, hierarchical kmeans, linear) and parameters for the dataset provided. + + + + + Initializes a new instance of the class. + + Is a number between 0 and 1 specifying the percentage of the approximate nearest-neighbor searches that return the exact nearest-neighbor. Using a higher value for this parameter gives more accurate results, but the search takes longer. The optimum value usually depends on the application. + Specifies the importance of the index build time reported to the nearest-neighbor search time. In some applications it’s acceptable for the index build step to take a long time if the subsequent searches in the index can be performed very fast. In other applications it’s required that the index be build as fast as possible even if that leads to slightly longer search times. + Is used to specify the trade off between time (index build time and search time) and memory used by the index. A value less than 1 gives more importance to the time spent and a value greater than 1 gives more importance to the memory usage. + Is a number between 0 and 1 indicating what fraction of the dataset to use in the automatic parameter configuration algorithm. Running the algorithm on the full dataset gives the most accurate results, but for very large datasets can take longer than desired. In such case using just a fraction of the data helps speeding up this algorithm while still giving good approximations of the optimum parameters. + + + + Release all the memory associated with this IndexParam + + + + + Hierarchical Clustering Index Parameters + + + + + Initializes a new instance of the . + + branching + Center initialization method + Trees + Leaf Size + + + + Release all the memory associated with this IndexParam + + + + + Search parameters + + + + + Initializes a new instance of the class. + + how many leafs to visit when searching for neighbors (-1 for unlimited) + Search for eps-approximate neighbors + Only for radius search, require neighbors sorted by distance + + + + Release all the memory associated with this IndexParam + + + + + A geodetic coordinate that is defined by its latitude, longitude and altitude + + + + + Indicates the origin of the Geodetic Coordinate + + + + + Create a geodetic coordinate using the specific values + + Latitude in radian + Longitude in radian + Altitude in meters + + + + Latitude (phi) in radian + + + + + Longitude (lambda) in radian + + + + + Altitude (height) in meters + + + + + Compute the sum of two GeodeticCoordinates + + The first coordinate to be added + The second coordinate to be added + The sum of two GeodeticCoordinates + + + + Compute - + + The first coordinate + The coordinate to be subtracted + - + + + + Compute * + + The coordinate + The scale to be multiplied + * + + + + Check if this Geodetic coordinate equals + + The other coordinate to be compared with + True if two coordinates equals + + + + Convert radian to degree + + radian + degree + + + + Convert degree to radian + + degree + radian + + + + Fisheye Camera model + + + + + Fisheye calibration flag. + + + + + Default flag + + + + + cameraMatrix contains valid initial values of fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image center ( imageSize is used), and focal distances are computed in a least-squares fashion. + + + + + Extrinsic will be recomputed after each iteration of intrinsic optimization. + + + + + The functions will check validity of condition number. + + + + + Skew coefficient (alpha) is set to zero and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Selected distortion coefficients are set to zeros and stay zero. + + + + + Fix intrinsic + + + + + Projects points using fisheye model. The function computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. Optionally, the function computes Jacobians - matrices of partial derivatives of image points coordinates (as functions of all the input parameters) with respect to the particular parameters, intrinsic and/or extrinsic. + + Array of object points, 1xN/Nx1 3-channel (or vector<Point3f> ), where N is the number of points in the view. + Output array of image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, or vector<Point2f>. + rotation vector + translation vector + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + The skew coefficient. + Optional output 2Nx15 jacobian matrix of derivatives of image points with respect to components of the focal lengths, coordinates of the principal point, distortion coefficients, rotation vector, translation vector, and the skew. In the old interface different components of the jacobian are returned via different output parameters. + + + + Distorts 2D points using fisheye model. + + Array of object points, 1xN/Nx1 2-channel (or vector<Point2f> ), where N is the number of points in the view. + Output array of image points, 1xN/Nx1 2-channel, or vector<Point2f> . + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + The skew coefficient. + + + + Transforms an image to compensate for fisheye lens distortion. + + Array of object points, 1xN/Nx1 2-channel (or vector<Point2f> ), where N is the number of points in the view. + Output array of image points, 1xN/Nx1 2-channel, or vector<Point2f>. + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel + New camera matrix (3x3) or new projection matrix (3x4) + + + + Computes undistortion and rectification maps for image transform by cv::remap(). If D is empty zero distortion is used, if R or P is empty identity matrixes are used. + + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel + New camera matrix (3x3) or new projection matrix (3x4) + Undistorted image size. + Type of the first output map that can be CV_32FC1 or CV_16SC2 . See convertMaps() for details. + The first output map. + The second output map. + + + + Transforms an image to compensate for fisheye lens distortion. The function is simply a combination of fisheye::initUndistortRectifyMap (with unity R ) and remap (with bilinear interpolation). + + Image with fisheye lens distortion. + Output image with compensated fisheye lens distortion. + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + Camera matrix of the distorted image. By default, it is the identity matrix but you may additionally scale and shift the result by using a different matrix. + The function transforms an image to compensate radial and tangential lens distortion. + + + + Estimates new camera matrix for undistortion or rectification. + + Camera matrix + Input vector of distortion coefficients (k1,k2,k3,k4). + + Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel + New camera matrix (3x3) or new projection matrix (3x4) + Sets the new focal length in range between the min focal length and the max focal length. Balance is in range of [0, 1] + + Divisor for new focal length. + + + + Stereo rectification for fisheye camera model. + + First camera matrix. + First camera distortion parameters. + Second camera matrix. + Second camera distortion parameters. + Size of the image used for stereo calibration. + Rotation matrix between the coordinate systems of the first and the second cameras. + Translation vector between coordinate systems of the cameras. + Output 3x3 rectification transform (rotation matrix) for the first camera. + Output 3x3 rectification transform (rotation matrix) for the second camera. + Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera. + Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera. + Output 4×4 disparity-to-depth mapping matrix (see reprojectImageTo3D ). + Operation flags that may be zero or ZeroDisparity . If the flag is set, the function makes the principal points of each camera have the same pixel coordinates in the rectified views. And if the flag is not set, the function may still shift the images in the horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the useful image area. + New image resolution after rectification. The same size should be passed to initUndistortRectifyMap. When (0,0) is passed (default), it is set to the original imageSize . Setting it to larger value can help you preserve details in the original image, especially when there is a big radial distortion. + Sets the new focal length in range between the min focal length and the max focal length. Balance is in range of [0, 1]. + Divisor for new focal length. + + + + Performs camera calibaration. + + vector of vectors of calibration pattern points in the calibration pattern coordinate space. + vector of vectors of the projections of calibration pattern points. imagePoints.size() and objectPoints.size() and imagePoints[i].size() must be equal to objectPoints[i].size() for each i. + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. If UseIntrisicGuess is specified, some or all of fx, fy, cx, cy must be initialized before calling the function. + Output vector of distortion coefficients (k1,k2,k3,k4). + Output vector of rotation vectors (see Rodrigues ) estimated for each pattern view. That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the calibration pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the calibration pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Different flags + Termination criteria for the iterative optimization algorithm. + + + + Performs stereo calibration. + + Vector of vectors of the calibration pattern points. + Vector of vectors of the projections of the calibration pattern points, observed by the first camera. + Vector of vectors of the projections of the calibration pattern points, observed by the second camera. + Input/output first camera matrix.If FixIntrinsic is specified, some or all of the matrix components must be initialized. + Input/output vector of distortion coefficients (k1,k2,k3,k4) of 4 elements. + Input/output second camera matrix. The parameter is similar to + Input/output lens distortion coefficients for the second camera. The parameter is similar to + Size of the image used only to initialize intrinsic camera matrix. + Output rotation matrix between the 1st and the 2nd camera coordinate systems. + Output translation vector between the coordinate systems of the cameras. + Fish eye calibration flags + Termination criteria for the iterative optimization algorithm. + + + + Attribute used by ImageBox to generate Operation Menu + + + + + Get or Set the exposable value, if true, this function will be displayed in Operation Menu of ImageBox + + + + + The catefory of this function + + + + + The size for each generic parameter Options + + + + + The options for generic parameters + + + + + Constructor + + + + + A generic parameter for the Operation class + + + + + The selected generic parameter type + + + + + The types that can be used + + + + + Create a generic parameter for the Operation class + + The selected generic parameter typ + The types that can be used + + + + A collection of reflection function that can be applied to ColorType object + + + + + Get the display color for each channel + + The color + The display color for each channel + + + + Get the names of the channels + + The color + The names of the channels + + + + A collection of reflection function that can be applied to IImage object + + + + + Get all the methods that belongs to the IImage and Image class with ExposableMethodAttribute set true. + + The IImage object to be refelected for methods marked with ExposableMethodAttribute + All the methods that belongs to the IImage and Image class with ExposableMethodAttribute set true + + + + Get the color type of the image + + The image to apply reflection on + The color type of the image + + + + Get the depth type of the image + + The image to apply reflection on + The depth type of the image + + + + Get the color at the specific location of the image + + The image to obtain pixel value from + The location to sample a pixel + The color at the specific location + + + + A class that can be used for writing geotiff + + The color type of the image to be written + The depth type of the image to be written + + + + Create a tiff writer to save an image + + The file name to be saved + + + + Write the image to the tiff file + + The image to be written + + + + Write the geo information into the tiff file + + Model Tie Point, an array of size 6 + Model pixel scale, an array of size 3 + + + + Release the writer and write all data on to disk. + + + + + A writer for writing GeoTiff + + The color type of the image to be written + The depth type of the image to be written + + + + Create a TitleTiffWriter. + + The name of the file to be written to + The size of the image + The tile size in pixels + + + + Write a tile into the tile tiff + + The starting row for the tile + The starting col for the tile + The tile to be written + + + + Get the equivalent size for a tile of data as it would be returned in a call to TIFFReadTile or as it would be expected in a call to TIFFWriteTile. + + + + + Get the number of bytes of a row of data in a tile. + + + + + Get tile size in pixels. + + + + + Write the whole image as tile tiff + + The image to be written + + + + This class contains ocl runtime information + + + + + Create a empty OclDevice object + + + + + Get the default OclDevice. Do not dispose this device. + + + + + Release all the unmanaged memory associated with this OclInfo + + + + + Get the native device pointer + + + + + Set the native device pointer + + + + + + Get the string representation of this oclDevice + + A string representation of this oclDevice + + + + Indicates if this is an NVidia device + + + + + Indicates if this is an Intel device + + + + + Indicates if this is an AMD device + + + + + The AddressBits + + + + + Indicates if the linker is available + + + + + Indicates if the compiler is available + + + + + Indicates if the device is available + + + + + The maximum work group size + + + + + The max compute unit + + + + + The local memory size + + + + + The maximum memory allocation size + + + + + The device major version number + + + + + The device minor version number + + + + + The device half floating point configuration + + + + + The device single floating point configuration + + + + + The device double floating point configuration + + + + + True if the device use unified memory + + + + + The global memory size + + + + + The image 2d max width + + + + + The image2d max height + + + + + The ocl device type + + + + + The device name + + + + + The device version + + + + + The device vendor name + + + + + The device driver version + + + + + The device extensions + + + + + The device OpenCL version + + + + + The device OpenCL C version + + + + + Ocl Device Type + + + + + Default + + + + + Cpu + + + + + Gpu + + + + + Accerlerator + + + + + DGpu + + + + + IGpu + + + + + All + + + + + Floating point configuration + + + + + Denorm + + + + + inf, nan + + + + + round to nearest + + + + + round to zero + + + + + round to infinite + + + + + FMA + + + + + soft float + + + + + Correctly rounded divide sqrt + + + + + Class that contains ocl functions + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + Class that contains ocl functions. + + + + + Convert the DepthType to a string that represent the OpenCL value type. + + The depth type + The number of channels + A string the repsent the OpenCL value type + + + + Get all the platform info as a vector + + The vector of Platfom info + + + + cv::ocl::Image2D + + + + + Create an OclImage2D object from UMat + + The UMat from which to get image properties and data + Flag to enable the use of normalized channel data types + Flag indicating that the image should alias the src UMat. If true, changes to the image or src will be reflected in both objects. + + + + Release the unmanaged memory associated with this OclImage2D + + + + + An opencl kernel + + + + + Create an opencl kernel + + + + + Create an opencl kernel + + The name of the kernel + The program source code + The build options + Option error message container that can be passed to this function + True if the kernel can be created + + + + Release the opencl kernel + + + + + Set the parameters for the kernel + + The index of the parameter + The ocl image + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The umat + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The value + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The value + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The value + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The kernel arg + The next index value to be set + + + + Set the parameters for the kernel + + The index of the parameter + The data + The size of the data in number of bytes + The next index value to be set + + + + Execute the kernel + + The global size + The local size + If true, the code is run synchronously (blocking) + Optional Opencl queue + True if the execution is sucessful + + + + Indicates if the kernel is empty + + + + + The pointer to the native kernel + + + + + OpenCL kernel arg + + + + + KernelArg flags + + + + + Local + + + + + Read only + + + + + Write only + + + + + Read write + + + + + Constant + + + + + Ptr only + + + + + No size + + + + + Create the OCL kernel arg + + The flags + The UMat + wscale + iwscale + obj + sz + + + + Release the unmanaged memory associated with this object + + + + + This class contains ocl platform information + + + + + Release all the unmanaged memory associated with this OclInfo + + + + + Get the OclDevice with the specific index + + The index of the ocl device + The ocl device with the specific index + + + + Get the string that represent this oclPlatformInfo object + + A string that represent this oclPlatformInfo object + + + + The platform name + + + + + The platform version + + + + + The platform vendor + + + + + The number of devices + + + + + Open CL kernel program source code + + + + + Create OpenCL program source code + + The source code + + + + Get the source code as String + + + + + Release the unmanaged memory associated with this object + + + + + An OpenCL Queue + + + + + OpenCL queue + + + + + Wait for the queue to finish + + + + + Release the unmanaged memory associated with this object. + + + + + A raw data storage + + The type of elements in the storage + + + + The file info + + + + + Create a binary File Storage + + The file name of the storage + + + + Create a binary File Storage + + The file name of the storage + The data will be read in trunk of this size internally. Can be use to seed up the file read. A good number will be 4096 + + + + Create a binary File Storage with the specific data + + The file name of the storage, all data in the existing file will be replaced + The data which will be stored in the storage + + + + Append the samples to the end of the storage + + The samples to be appended to the storage + + + + The file name of the storage + + + + + Delete all data in the existing storage, if there is any. + + + + + Estimate the number of elements in this storage as the size of the storage divided by the size of the elements + + An estimation of the number of elements in this storage + + + + Get a copy of the first element in the storage. If the storage is empty, a default value will be returned + + A copy of the first element in the storage. If the storage is empty, a default value will be returned + + + + Get the subsampled data in this storage + + The subsample rate + The sub-sampled data in this storage + + + + Get the data in this storage + + The data in this storage + + + + The default exception to be thrown when error encounter in Open CV + + + + + The numeric code for error status + + + + + The corresponding error string for the Status code + + + + + The name of the function the error is encountered + + + + + A description of the error + + + + + The source file name where error is encountered + + + + + The line number in the souce where error is encountered + + + + + The default exception to be thrown when error is encountered in Open CV + + The numeric code for error status + The source file name where error is encountered + A description of the error + The source file name where error is encountered + The line number in the souce where error is encountered + + + + Utilities class + + + + + The ColorPalette of Grayscale for Bitmap Format8bppIndexed + + + + + Convert the color palette to four lookup tables + + The color palette to transform + Lookup table for the B channel + Lookup table for the G channel + Lookup table for the R channel + Lookup table for the A channel + + + + Convert arrays of data to matrix + + Arrays of data + A two dimension matrix that represent the array + The data type of the matrix + + + + Convert arrays of points to matrix + + Arrays of points + A two dimension matrix that represent the points + + + + Compute the minimum and maximum value from the points + + The points + The minimum x,y,z values + The maximum x,y,z values + + + + Copy a generic vector to the unmanaged memory + + The data type of the vector + The source vector + Pointer to the destination unmanaged memory + Specify the number of bytes to copy. If this is -1, the number of bytes equals the number of bytes in the array + The number of bytes copied + + + + Copy a jagged two dimensional array to the unmanaged memory + + The data type of the jagged two dimensional + The source array + Pointer to the destination unmanaged memory + + + + Copy a jagged two dimensional array from the unmanaged memory + + The data type of the jagged two dimensional + The src array + Pointer to the destination unmanaged memory + + + + memcpy function + + the destination of memory copy + the source of memory copy + the number of bytes to be copied + + + + Given the source and destination color type, compute the color conversion code for CvInvoke.cvCvtColor function + + The source color type. Must be a type inherited from IColor + The dest color type. Must be a type inherited from IColor + The color conversion code for CvInvoke.cvCvtColor function + + + + A DataLogger for unmanaged code to log data back to managed code, using callback. + + + + + Create a MessageLogger and register the callback function + + The log level. + + + + The event that will be raised when the unmanaged code send over data + + + + + Log some data + + Pointer to some unmanaged data + The logLevel. The Log function only logs when the is greater or equals to the DataLogger's logLevel + + + + Release the DataLogger and all the unmanaged memory associated with it. + + + + + A generic version of the DataLogger + + The supported type includes System.String and System.ValueType + + + + Create a new DataLogger + + The log level. + + + + The event that will be raised when the unmanaged code send over data + + + + + Log some data + + The data to be logged + The logLevel. The Log function only logs when the is greater or equals to the DataLogger's logLevel + + + + Pointer to the unmanaged object + + + + + Implicit operator for IntPtr + + The DataLogger + The unmanaged pointer for this DataLogger + + + + Release the unmanaged memory associated with this DataLogger + + + + + The event that will be raised when the unmanaged code send over data + + + + + An Unmanaged Object is a disposable object with a Ptr property pointing to the unmanaged object + + + + + A pointer to the shared pointer to the unmanaged object + + + + + Pointer to the shared pointer to the unmanaged object + + + + + Cache the size of various header in bytes + + + + + The size of PointF + + + + + The size of RangF + + + + + The size of PointF + + + + + The size of MCvMat + + + + + The size of IplImage + + + + + The size of MCvPoint3D32f + + + + + The size of MCvMatND + + + + + This class canbe used to initiate TBB. Only usefull if it is compiled with TBB support + + + + + Initialize the TBB task scheduler + + + + + Release the TBB task scheduler + + + + + Wrapped class of the C++ standard vector of Byte. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Byte + + + + + Create an standard vector of Byte of the specific size + + The size of the vector + + + + Create an standard vector of Byte with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Byte + + An array of Byte + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of ColorPoint. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of ColorPoint + + + + + Create an standard vector of ColorPoint of the specific size + + The size of the vector + + + + Create an standard vector of ColorPoint with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of ColorPoint + + An array of ColorPoint + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of CvString. + + + Wrapped class of the C++ standard vector of CvString. + + + + + Create an empty standard vector of CvString + + + + + Create an standard vector of CvString of the specific size + + The size of the vector + + + + Create an standard vector of CvString with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Convert the standard vector to an array of String + + An array of String + + + + Create a VectorOfCvString object from an array of String + + The strings to be placed in this VectorOfCvString + + + + Wrapped class of the C++ standard vector of DMatch. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of DMatch + + + + + Create an standard vector of DMatch of the specific size + + The size of the vector + + + + Create an standard vector of DMatch with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of DMatch + + An array of DMatch + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Double. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Double + + + + + Create an standard vector of Double of the specific size + + The size of the vector + + + + Create an standard vector of Double with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Double + + An array of Double + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Float. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Float + + + + + Create an standard vector of Float of the specific size + + The size of the vector + + + + Create an standard vector of Float with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Float + + An array of Float + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Int. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Int + + + + + Create an standard vector of Int of the specific size + + The size of the vector + + + + Create an standard vector of Int with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Int + + An array of Int + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of KeyPoint. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of KeyPoint + + + + + Create an standard vector of KeyPoint of the specific size + + The size of the vector + + + + Create an standard vector of KeyPoint with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of KeyPoint + + An array of KeyPoint + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Remove keypoints within borderPixels of an image edge. + + Image size + Border size in pixel + + + + Remove keypoints of sizes out of range. + + Minimum size + Maximum size + + + + Remove keypoints from some image by mask for pixels of this image. + + The mask + + + + Wrapped class of the C++ standard vector of Mat. + + + + + Create an empty standard vector of Mat + + + + + Create an standard vector of Mat of the specific size + + The size of the vector + + + + Create an standard vector of Mat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Convert a CvArray to cv::Mat and push it into the vector + + The type of depth of the cvArray + The cvArray to be pushed into the vector + + + + Convert a group of CvArray to cv::Mat and push them into the vector + + The type of depth of the cvArray + The values to be pushed to the vector + + + + Wrapped class of the C++ standard vector of OclPlatformInfo. + + + + + Create an empty standard vector of OclPlatformInfo + + + + + Create an standard vector of OclPlatformInfo of the specific size + + The size of the vector + + + + Create an standard vector of OclPlatformInfo with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Point. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Point + + + + + Create an standard vector of Point of the specific size + + The size of the vector + + + + Create an standard vector of Point with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Point + + An array of Point + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Point3D32F. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Point3D32F + + + + + Create an standard vector of Point3D32F of the specific size + + The size of the vector + + + + Create an standard vector of Point3D32F with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Point3D32F + + An array of Point3D32F + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of PointF. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of PointF + + + + + Create an standard vector of PointF of the specific size + + The size of the vector + + + + Create an standard vector of PointF with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of PointF + + An array of PointF + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Rect. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Rect + + + + + Create an standard vector of Rect of the specific size + + The size of the vector + + + + Create an standard vector of Rect with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Rect + + An array of Rect + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of Triangle2DF. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of Triangle2DF + + + + + Create an standard vector of Triangle2DF of the specific size + + The size of the vector + + + + Create an standard vector of Triangle2DF with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of Triangle2DF + + An array of Triangle2DF + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of UMat. + + + + + Create an empty standard vector of UMat + + + + + Create an standard vector of UMat of the specific size + + The size of the vector + + + + Create an standard vector of UMat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of VectorOfDMatch. + + + + + Create an empty standard vector of VectorOfDMatch + + + + + Create an standard vector of VectorOfDMatch of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfDMatch with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfDMatch + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfInt. + + + + + Create an empty standard vector of VectorOfInt + + + + + Create an standard vector of VectorOfInt of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfInt with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfInt + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfPoint. + + + + + Create an empty standard vector of VectorOfPoint + + + + + Create an standard vector of VectorOfPoint of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfPoint with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfPoint + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfPoint3D32F. + + + + + Create an empty standard vector of VectorOfPoint3D32F + + + + + Create an standard vector of VectorOfPoint3D32F of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfPoint3D32F with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfPoint3D32F + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfPointF. + + + + + Create an empty standard vector of VectorOfPointF + + + + + Create an standard vector of VectorOfPointF of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfPointF with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfPointF + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Wrapped class of the C++ standard vector of VectorOfRect. + + + + + Create an empty standard vector of VectorOfRect + + + + + Create an standard vector of VectorOfRect of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfRect with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfRect + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Use zlib included in OpenCV to perform in-memory binary compression and decompression + + + + + Compress the data using the specific compression level + + The data to be compressed + The compression level, 0-9 where 0 mean no compression at all + The compressed bytes + + + + Uncompress the data + + The compressed data + The estimated size fo the uncompress data. Must be large enough to hold the decompressed data. + The decompressed data + + + + CvBlob + + + + + Blob Moments + + + + + Moment 00 + + + + + Moment 10 + + + + + Moment 01 + + + + + Moment 11 + + + + + Moment 20 + + + + + Moment 02 + + + + + Central moment 11 + + + + + Central moment 20 + + + + + Central moment 02 + + + + + Normalized central moment 11 + + + + + Normalized central moment 20 + + + + + Normalized central moment 02 + + + + + Hu moment 1 + + + + + Hu moment 2 + + + + + Get the contour that defines the blob + + The contour of the blob + + + + Get the blob label + + + + + The minimum bounding box of the blob + + + + + Get the Blob Moments + + + + + The centroid of the blob + + + + + The number of pixels in this blob + + + + + Pointer to the blob + + + + + Implicit operator for IntPtr + + The CvBlob + The unmanaged pointer for this object + + + + Wrapper for the CvBlob detection functions. + The Ptr property points to the label image of the cvb::cvLabel function. + + Algorithm based on paper "A linear-time component-labeling algorithm using contour tracing technique" of Fu Chang, Chun-Jen Chen and Chi-Jen Lu. + + + + Detect blobs from input image. + + The input image + The storage for the detected blobs + Number of pixels that has been labeled. + + + + Calculates mean color of a blob in an image. + + The blob. + The original image + Average color + + + + Blob rendering type + + + + + Render each blog with a different color. + + + + + Render centroid. + + + + + Render bounding box. + + + + + Render angle. + + + + + Print blob data to log out. + + + + + Print blob data to std out. + + + + + The default rendering type + + + + + Draw the blobs on the image + + The binary mask. + The blobs. + Drawing type. + The alpha value. 1.0 for solid color and 0.0 for transparent + The images with the blobs drawn + + + + Get the binary mask for the blobs listed in the CvBlobs + + The blobs + The binary mask for the specific blobs + + + + Release all the unmanaged memory associated with this Blob detector + + + + + CvBlobs + + + + + Create a new CvBlobs + + + + + Release all the unmanaged resources used by this CvBlobs + + + + + Filter blobs by area. Those blobs whose areas are not in range will be erased from the input list of blobs. + + Minimun area + Maximun area + + + + Adds the specified label and blob to the dictionary. + + The label of the blob + The blob + + + + Determines whether the CvBlobs contains the specified label. + + The label (key) to be located + True if the CvBlobs contains an element with the specific label + + + + Get a collection containing the labels in the CvBlobs + + + + + Removes the blob with the specific label + + The label of the blob + True if the element is successfully found and removed; otherwise, false. + + + + Gets the blob associated with the specified label. + + The blob label + When this method returns, contains the blob associated with the specified labe, if the label is found; otherwise, null. This parameter is passed uninitialized. + True if the blobs contains a blob with the specific label; otherwise, false + + + + Get a collection containing the blobs in the CvBlobs. + + + + + Get the blob with the speicific label. Set function is not implemented + + The label for the blob + + + + Adds the specified label and blob to the CvBlobs. + + The structure representing the label and blob to add to the CvBlobs + + + + Removes all keys and values + + + + + Determines whether the CvBlobs contains a specific label and CvBlob. + + The label and blob to be located + True if the specific label and blob is found in the CvBlobs; otherwise, false. + + + + Copies the elements to the , starting at the specific arrayIndex. + + The one-dimensional array that is the defination of the elements copied from the CvBlobs. The array must have zero-base indexing. + The zero-based index in at which copying begins. + + + + Gets the number of label/Blob pairs contained in the collection + + + + + Always false + + + + + Removes a key and value from the dictionary. + + The structure representing the key and value to be removed + True if the key are value is sucessfully found and removed; otherwise false. + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection + + + + Returns a pointer to CvBlobs + + Pointer to CvBlobs + + + + CvTrack + + + + + Track identification number + + + + + Label assigned to the blob related to this track + + + + + X min + + + + + X max + + + + + Y min + + + + + y max + + + + + Get the minimun bounding rectanble for this track + + + + + Centroid + + + + + Indicates how much frames the object has been in scene + + + + + Indicates number of frames that has been active from last inactive period. + + + + + Indicates number of frames that has been missing. + + + + + Compares CvTrack for equality + + The other track to compares with + True if the two CvTrack are equal; otherwise false. + + + + Blobs tracking + + + Tracking based on: + A. Senior, A. Hampapur, Y-L Tian, L. Brown, S. Pankanti, R. Bolle. Appearance Models for + Occlusion Handling. Second International workshop on Performance Evaluation of Tracking and + Surveillance Systems & CVPR'01. December, 2001. + (http://www.research.ibm.com/peoplevision/PETS2001.pdf) + + + + + Create a new CvTracks + + + + + Release all the unmanaged resources used by this CvBlobs + + + + + Updates list of tracks based on current blobs. + + List of blobs + Distance Max distance to determine when a track and a blob match + Inactive Max number of frames a track can be inactive + Active If a track becomes inactive but it has been active less than thActive frames, the track will be deleted. + + + + Adds the specified id and track to the dictionary. + + The id of the track + The track + + + + Determines whether the CvTracks contains the specified id. + + The id (key) to be located + True if the CvTracks contains an element with the specific id + + + + Get a collection containing the ids in the CvTracks. + + + + + Removes the track with the specific id + + The id of the track + True if the element is successfully found and removed; otherwise, false. + + + + Gets the track associated with the specified id. + + The track id + When this method returns, contains the track associated with the specified id, if the id is found; otherwise, an empty track. This parameter is passed uninitialized. + True if the tracks contains a track with the specific id; otherwise, false + + + + Get a collection containing the tracks in the CvTracks. + + + + + Get or Set the Track with the specific id. + + The id of the Track + + + + Adds the specified id and track to the CvTracks. + + The structure representing the id and track to add to the CvTracks + + + + Removes all keys and values + + + + + Determines whether the CvTracks contains a specific id and CvTrack. + + The id and CvTrack to be located + True if the is found in the CvTracks; otherwise, false. + + + + Copies the elements to the , starting at the specific arrayIndex. + + The one-dimensional array that is the defination of the elements copied from the CvTracks. The array must have zero-base indexing. + The zero-based index in at which copying begins. + + + + Gets the number of id/track pairs contained in the collection. + + + + + Always false. + + + + + Removes a key and value from the dictionary. + + The structure representing the key and value to be removed + True if the key are value is sucessfully found and removed; otherwise false. + + + + Returns an enumerator that iterates through the collection. + + An enumerator that can be used to iterate through the collection + + + + Returns a pointer to CvBlobs + + Pointer to CvBlobs + + + + Defines a Bgr (Blue Green Red) color + + + + + The MCvScalar representation of the color intensity + + + + Create a BGR color using the specific values + The blue value for this color + The green value for this color + The red value for this color + + + + Create a Bgr color using the System.Drawing.Color + + System.Drawing.Color + + + Get or set the intensity of the blue color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the red color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Bgra (Blue Green Red Alpha) color + + + + + The MCvScalar representation of the color intensity + + + + Create a BGRA color using the specific values + The blue value for this color + The green value for this color + The red value for this color + The alpha value for this color + + + Get or set the intensity of the blue color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the alpha color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + Defines a Gray color + + + + The MCvScalar representation of the color intensity + + + + Create a Gray color with the given intensity + The intensity for this color + + + The intensity of the gray color + The intensity of the gray color + + + + Returns the hash code for this color + + the hash code + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Hls (Hue Lightness Satuation) color + + + + + The MCvScalar representation of the color intensity + + + + Create a Hls color using the specific values + The hue value for this color ( 0 < hue < 180 ) + The satuation for this color + The lightness for this color + + + Get or set the intensity of the hue color channel ( 0 < hue < 180 ) + + + Get or set the intensity of the lightness color channel + + + Get or set the intensity of the satuation color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a HSV (Hue Satuation Value) color + + + + + The MCvScalar representation of the color intensity + + + + Create a HSV color using the specific values + The hue value for this color ( 0 < hue < 180 ) + The satuation value for this color + The value for this color + + + Get or set the intensity of the hue color channel ( 0 < hue < 180 ) + + + Get or set the intensity of the satuation color channel + + + Get or set the intensity of the value color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a CIE Lab color + + + + + The MCvScalar representation of the color intensity + + + + Create a CIE Lab color using the specific values + The z value for this color + The y value for this color + The x value for this color + + + Get or set the intensity of the x color channel + + + Get or set the intensity of the y color channel + + + Get or set the intensity of the z color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a CIE Luv color + + + + + The MCvScalar representation of the color intensity + + + + Create a CIE Lab color using the specific values + The z value for this color + The y value for this color + The x value for this color + + + + The intensity of the x color channel + + + + + The intensity of the y color channel + + + + + The intensity of the z color channel + + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Rgb (Red Green Blue) color + + + + + The MCvScalar representation of the color intensity + + + + Create a RGB color using the specific values + The blue value for this color + The green value for this color + The red value for this color + + + + Create a Rgb color using the system color + + color + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the blue color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Bgr565 (Blue Green Red) color + + + + + The MCvScalar representation of the color intensity + + + + Create a Bgr565 color using the specific values + The blue value for this color + The green value for this color + The red value for this color + + + + Create a Bgr565 color using the System.Drawing.Color + + System.Drawing.Color + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the blue color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Rgba (Red Green Blue Alpha) color + + + + + The MCvScalar representation of the color intensity + + + + Create a RGBA color using the specific values + The blue value for this color + The green value for this color + The red value for this color + The alpha value for this color + + + Get or set the intensity of the red color channel + + + Get or set the intensity of the green color channel + + + Get or set the intensity of the blue color channel + + + Get or set the intensity of the alpha color channel + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Xyz color (CIE XYZ.Rec 709 with D65 white point) + + + + + The MCvScalar representation of the color intensity + + + + Create a Xyz color using the specific values + The z value for this color + The y value for this color + The x value for this color + + + + Get or set the intensity of the x color channel + + + + + Get or set the intensity of the y color channel + + + + + Get or set the intensity of the z color channel + + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + Defines a Ycc color (YCrCb JPEG) + + + + + The MCvScalar representation of the color intensity + + + + Create a Ycc color using the specific values + The Y value for this color + The Cr value for this color + The Cb value for this color + + + + Get or set the intensity of the Y color channel + + + + + Get or set the intensity of the Cr color channel + + + + + Get or set the intensity of the Cb color channel + + + + + Return true if the two color equals + + The other color to compare with + true if the two color equals + + + + Get the dimension of this color + + + + + Get or Set the equivalent MCvScalar value + + + + + Represent this color as a String + + The string representation of this color + + + + A line segment + + + + A point on the line + + + An other point on the line + + + A point on the line + + + An other point on the line + + + + Create a line segment with the specific starting point and end point + + The first point on the line segment + The second point on the line segment + + + The direction of the line, the norm of which is 1 + + + + Determine which side of the line the 2D point is at + + the point + + 1 if on the right hand side; + 0 if on the line; + -1 if on the left hand side; + + + + + Get the exterior angle between this line and + + The other line + The exterior angle between this line and + + + + Get the length of the line segment + + + + + A line segment + + + + A point on the line + + + An other point on the line + + + A point on the line + + + An other point on the line + + + + Create a line segment with the specific start point and end point + + The first point on the line segment + The second point on the line segment + + + + Get the length of the line segment + + + + + The direction of the line, the norm of which is 1 + + + + Obtain the Y value from the X value using first degree interpolation + The X value + The Y value + + + + Determin which side of the line the 2D point is at + + the point + + 1 if on the right hand side; + 0 if on the line; + -1 if on the left hand side; + + + + + Get the exterior angle between this line and + + The other line + The exterior angle between this line and + + + + A 3D line segment + + + + A point on the line + + + An other point on the line + + + A point on the line + + + An other point on the line + + + + Create a line segment with the specific start point and end point + + The first point on the line segment + The second point on the line segment + + + + Get the length of the line segment + + + + A circle + + + Create a circle with the specific center and radius + The center of this circle + The radius of this circle + + + Get or Set the center of the circle + + + The radius of the circle + + + The area of the circle + + + + Compare this circle with + + The other box to be compared + true if the two boxes equals + + + + A point with Bgr color information + + + + + The position in meters + + + + + The blue color + + + + + The green color + + + + + The red color + + + + + A 2D cross + + + + + The center of this cross + + + + + The size of this cross + + + + + Construct a cross + + The center of the cross + the width of the cross + the height of the cross + + + + Get the horizonal linesegment of this cross + + + + + Get the vertical linesegment of this cross + + + + + A solid resembling a cube, with the rectangular faces not all equal; a rectangular parallelepiped. + + + + + The coordinate of the upper corner + + + + + The coordinate of the lower corner + + + + + Check if the specific point is in the Cuboid + + The point to be checked + True if the point is in the cuboid + + + + Get the centroid of this cuboid + + + + + This is used to hold the sizes of the Open CV structures + + + + + The size of CvPoint + + + + + The size of CvPoint2D32f + + + + + The size of CvPoint3D32f + + + + + The size of CvSize + + + + + The size of CvSize2D32f + + + + + The size of CvScalar + + + + + The size of CvRect + + + + + The size of CvBox2D + + + + + The size of CvMat + + + + + The size of CvMatND + + + + + The size of CvTermCriteria + + + + + The size of IplImage + + + + + An ellipse + + + + + The RotatedRect representation of this ellipse + + + + + Create an ellipse with specific parameters + + The center of the ellipse + The width and height of the ellipse + The rotation angle in radian for the ellipse + + + + Create an ellipse from the specific RotatedRect + + The RotatedRect representation of this ellipse + + + + Result of cvHaarDetectObjects + + + + + Bounding rectangle for the object (average rectangle of a group) + + + + + Number of neighbor rectangles in the group + + + + + Managed structure equivalent to CvMat + + + + + CvMat signature (CV_MAT_MAGIC_VAL), element type and flags + + + + + full row length in bytes + + + + + underlying data reference counter + + + + + Header reference count + + + + + data pointers + + + + + number of rows + + + + + number of columns + + + + + Width + + + + + Height + + + + + Get the number of channels + + + + + Constants used by the MCvMat structure + + + + + Offset of roi + + + + + Managed structure equivalent to CvMatND + + + + + CvMatND signature (CV_MATND_MAGIC_VAL), element type and flags + + + + + number of array dimensions + + + + + underlying data reference counter + + + + + Header reference count + + + + + data pointers + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) + + + + + pairs (number of elements, distance between elements in bytes) for every dimension + + + + + The MatND Dimension + + + + + Number of elements in this dimension + + + + + distance between elements in bytes for this dimension + + + + + Structure contains the bounding box and confidence level for detected object + + + + + Bounding box for a detected object + + + + + Confidence level + + + + + The class identifier + + + + + Managed Structure equivalent to CvPoint2D64f + + + + + x-coordinate + + + + + y-coordinate + + + + + Create a MCvPoint2D64f structure with the specific x and y coordinates + + x-coordinate + y-coordinate + + + + Compute the sum of two 3D points + + The first point to be added + The second point to be added + The sum of two points + + + + Subtract from + + The first point + The point to be added + The sum of two points + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Returns true if the two points equals. + + The other point to compare with + True if the two points equals + + + + + + + + + + Managed Structure equivalent to CvPoint3D32f + + + + + x-coordinate + + + + + y-coordinate + + + + + z-coordinate + + + + + Create a MCvPoint3D32f structure with the specific x and y coordinates + + x-coordinate + y-coordinate + z-coordinate + + + + Return the cross product of two 3D point + + the other 3D point + The cross product of the two 3D point + + + + Return the dot product of two 3D point + + the other 3D point + The dot product of the two 3D point + + + + return the norm of this 3D point + + + + + Get the normalized point + + The normalized point + + + + The implicit operator to convert MCvPoint3D32f to MCvPoint3D64f + + The point to be converted + The converted point + + + + Subtract one point from the other + + The point to subtract from + The value to be subtracted + The subtraction of one point from the other + + + + Compute the sum of two 3D points + + The first point to be added + The second point to be added + The sum of two points + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Return true if the location of the two points are equal + + The other point to compare with + True if the location of the two points are equal + + + + Managed Structure equivalent to CvPoint3D64f + + + + + x-coordinate + + + + + y-coordinate + + + + + z-coordinate + + + + + Create a MCvPoint3D64f structure with the specific x and y coordinates + + x-coordinate + y-coordinate + z-coordinate + + + + Return the cross product of two 3D point + + the other 3D point + The cross product of the two 3D point + + + + Return the dot product of two 3D point + + the other 3D point + The dot product of the two 3D point + + + + Compute the sum of two 3D points + + The first point to be added + The second point to be added + The sum of two points + + + + Subtract from + + The first point + The point to be added + The sum of two points + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Multiply the point with a scale + + The point to be multiplied + The scale + The point multiplied by the scale + + + + Check if the other point equals to this point + + The point to be compared + True if the two points are equal + + + + Managed structure equivalent to CvScalar + + + + + The scalar value + + + + + The scalar value + + + + + The scalar value + + + + + The scalar value + + + + + The scalar values as a vector (of size 4) + + The scalar values as an array + + + + Create a new MCvScalar structure using the specific values + + v0 + + + + Create a new MCvScalar structure using the specific values + + v0 + v1 + + + + Create a new MCvScalar structure using the specific values + + v0 + v1 + v2 + + + + Create a new MCvScalar structure using the specific values + + v0 + v1 + v2 + v3 + + + + Return the code to generate this MCvScalar from specific language + + The programming language to generate code from + The code to generate this MCvScalar from specific language + + + + Return true if the two MCvScalar equals + + The other MCvScalar to compare with + true if the two MCvScalar equals + + + + Managed structure equivalent to CvSlice + + + + + Start index + + + + + End index + + + + + Create a new MCvSlice using the specific start and end index + + start index + end index + + + + Get the equivalent of CV_WHOLE_SEQ + + + + + Managed structure equivalent to CvTermCriteria + + + + + CV_TERMCRIT value + + + + + Maximum iteration + + + + + Epsilon + + + + + Create the termination criteria using the constrain of maximum iteration + + The maximum number of iteration allowed + + + + Create the termination Criteria using only the constrain of epsilon + + The epsilon value + + + + Create the termination criteria using the constrain of maximum iteration as well as epsilon + + The maximum number of iteration allowed + The epsilon value + + + + OpenCV's DMatch structure + + + + + Query descriptor index + + + + + Train descriptor index + + + + + Train image index + + + + + Distance + + + + + Managed structure equivalent to IplImage + + + + + sizeof(IplImage) + + + + + version (=0) + + + + + Most of OpenCV functions support 1,2,3 or 4 channels + + + + + ignored by OpenCV + + + + + pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + ignored by OpenCV + + + + + 0 - interleaved color channels, 1 - separate color channels. + cvCreateImage can only create interleaved images + + + + + 0 - top-left origin, + 1 - bottom-left origin (Windows bitmaps style) + + + + + Alignment of image rows (4 or 8). + OpenCV ignores it and uses widthStep instead + + + + + image width in pixels + + + + + image height in pixels + + + + + image ROI. when it is not NULL, this specifies image region to process + + + + + must be NULL in OpenCV + + + + + ditto + + + + + ditto + + + + + image data size in bytes + (=image->height*image->widthStep in case of interleaved data) + + + + + pointer to aligned image data + + + + + size of aligned image row in bytes + + + + + border completion mode, ignored by OpenCV + + + + + border completion mode, ignored by OpenCV + + + + + border completion mode, ignored by OpenCV + + + + + border completion mode, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + border const, ignored by OpenCV + + + + + pointer to a very origin of image data (not necessarily aligned) - it is needed for correct image deallocation + + + + + OpenCV's KeyPoint class + + + + + The location of the keypoint + + + + + Size of the keypoint + + + + + Orientation of the keypoint + + + + + Response of the keypoint + + + + + octave + + + + + class id + + + + + The range use to setup the histogram + + + + + return the full range. + + + + + Create a range of the specific min/max value + + The start value of this range + The max value of this range + + + + The start value of this range + + + + + The end value of this range + + + + + Return true if the two Range equals + + The other Range to compare with + True if the two Range equals + + + + The range use to setup the histogram + + + + + Create a range of the specific min/max value + + The min value of this range + The max value of this range + + + + The minimum value of this range + + + + + The Maximum value of this range + + + + + Return true if the two RangeF equals + + The other RangeF to compare with + True if the two RangeF equals + + + + Managed structure equivalent to CvBox2D + + + + + The center of the box + + + + + The size of the box + + + + + The angle between the horizontal axis and the first side (i.e. width) in degrees + + Possitive value means counter-clock wise rotation + + + + Create a RotatedRect structure with the specific parameters + + The center of the box + The size of the box + The angle of the box in degrees. Possitive value means counter-clock wise rotation + + + + Shift the box by the specific amount + + The x value to be offseted + The y value to be offseted + + + + Represent an uninitialized RotatedRect + + + + + Get the 4 verticies of this Box. + + The vertives of this RotatedRect + + + + Get the minimum enclosing rectangle for this Box + + The minimum enclosing rectangle for this Box + + + + Returns true if the two box are equal + + The other box to compare with + True if two boxes are equal + + + + Convert a RectangleF to RotatedRect + + The rectangle + The equivalent RotatedRect + + + + A 2D triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + Create a triangle using the specific vertices + + The first vertex + The second vertex + The third vertex + + + + Get the area of this triangle + + + + + Returns the centroid of this triangle + + + + + Compare two triangles and return true if equal + + the other triangles to compare with + true if the two triangles equals, false otherwise + + + + Get the vertices of this triangle + + The vertices of this triangle + + + + A 3D triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + One of the vertex of the triangle + + + + + Get the area of this triangle + + + + + Get the normal of this triangle + + + + + Returns the centroid of this triangle + + + + + Create a triangle using the specific vertices + + The first vertex + The second vertex + The third vertex + + + + Compare two triangles and return true if equal + + the other triangles to compare with + true if the two triangles equals, false otherwise + + + + Attribute used to specify color information + + + + + The code which is used for color conversion + + + + + The code which is used for color conversion + + + + + The code which is used for color conversion + + + + + The display color + + blue + green + red + + + + Get or set the display color + + + + + A color type + + + + + The equivalent MCvScalar value + + + + + Get the dimension of the color type + + + + + The base class for algorithms that align images of the same scene with different exposures + + + + + The pointer to the native AlignExposures object + + + + + Aligns images. + + vector of input images + vector of aligned images + vector of exposure time values for each image + 256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images. + + + + Reset the pointer that points to the CalibrateCRF object. + + + + + This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations. + + + + + Create an AlignMTB object + + logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). + range for exclusion bitmap that is constructed to suppress noise around the median value. + if true cuts images, otherwise fills the new regions with zeros. + + + + Release the unmanaged memory associated with this AlignMTB object + + + + + The base class for camera response calibration algorithms. + + + + + The pointer to the calibrateCRF object + + + + + Recovers inverse camera response. + + Vector of input images + 256x1 matrix with inverse camera response function + Vector of exposure time values for each image + + + + Reset the pointer that points to the CalibrateCRF object. + + + + + Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. Objective function is constructed using pixel values on the same position in all images, extra term is added to make the result smoother. + + + + + Creates CalibrateDebevec object. + + Number of pixel locations to use + Smoothness term weight. Greater values produce smoother results, but can alter the response. + If true sample pixel locations are chosen at random, otherwise the form a rectangular grid. + + + + Release the unmanaged memory associated with this CalibrateCRF object + + + + + Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. This algorithm uses all image pixels. + + + + + Creates CalibrateRobertson object. + + maximal number of Gauss-Seidel solver iterations. + get difference between results of two successive steps of the minimization. + + + + Release the unmanaged memory associated with this CalibrateCRF object + + + + + The base class algorithms that can merge exposure sequence to a single image. + + + + + The pointer to the unmanaged MergeExposure object + + + + + Merges images. + + Vector of input images + Result image + Vector of exposure time values for each image + 256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images. + + + + Reset the native pointer to the MergeExposure object + + + + + The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response. + + + + + Creates MergeDebevec object. + + + + + Release the MergeDebevec object + + + + + Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combined using laplacian pyramids. + The resulting image weight is constructed as weighted average of contrast, saturation and well-exposedness measures. + The resulting image doesn't require tonemapping and can be converted to 8-bit image by multiplying by 255, but it's recommended to apply gamma correction and/or linear tonemapping. + + + + + Creates MergeMertens object. + + contrast measure weight. + saturation measure weight + well-exposedness measure weight + + + + Merges images. + + Vector of input images + Result image + + + + Release the unmanaged memory associated with this MergeMertens object + + + + + The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response + + + + + Creates MergeRobertson object. + + + + + Release the unmanaged memory associated with this MergeRobertson object + + + + + Base class for tonemapping algorithms - tools that are used to map HDR image to 8-bit range. + + + + + The pointer to the unmanaged Tonemap object + + + + + The pointer to the unmanaged Algorithm object + + + + + The pointer to the unamanged Algorith object + + + + + Default constructor that creates empty Tonemap + + The pointer to the unmanaged object + The pointer to the tonemap object + + + + Creates simple linear mapper with gamma correction. + + positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays. Generally gamma > 1 brightens the image and gamma < 1 darkens it. + + + + Tonemaps image. + + Source image - 32-bit 3-channel Mat + destination image - 32-bit 3-channel Mat with values in [0, 1] range + + + + Release the unmanaged memory associated with this Tonemap + + + + + Positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays. + + + + + Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarithmic domain. + Since it's a global operator the same function is applied to all the pixels, it is controlled by the bias parameter. + + + + + Creates TonemapDrago object. + + gamma value for gamma correction. + positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. + value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best results, default value is 0.85. + + + + Release the unmanaged memory associated with this TonemapDrago + + + + + Positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. + + + + + Value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best results, default value is 0.85. + + + + + This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid, transforms contrast values to HVS response and scales the response. After this the image is reconstructed from new contrast values. + + + + + Creates TonemapMantiuk object + + gamma value for gamma correction. + contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results. + saturation enhancement value. + + + + Release the unmanaged memory associated with this TonemapMantiuk + + + + + Saturation enhancement value. + + + + + Contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results. + + + + + This is a global tonemapping operator that models human visual system. + Mapping function is controlled by adaptation parameter, that is computed using light adaptation and color adaptation. + + + + + Creates TonemapReinhard object. + + gamma value for gamma correction + result intensity in [-8, 8] range. Greater intensity produces brighter results. + light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it's global, otherwise it's a weighted mean of this two cases. + chromatic adaptation in [0, 1] range. If 1 channels are treated independently, if 0 adaptation level is the same for each channel. + + + + Release the unmanaged memory associated with this TonemapReinhard + + + + + Result intensity in [-8, 8] range. Greater intensity produces brighter results. + + + + + Light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it is global, otherwise it is a weighted mean of this two cases. + + + + + chromatic adaptation in [0, 1] range. If 1 channels are treated independently, if 0 adaptation level is the same for each channel. + + + + + Interface for all widgets + + + + + Get the pointer to the widget object + + + + + Interface for all widget3D + + + + + Get the pointer to the widget3D object + + + + + Interface for all widget2D + + + + + Get the pointer to the widget2D object + + + + + Represents a 3D visualizer window. + + + + + Create a new 3D visualizer windows + + The name of the windows + + + + Show a widget in the window + + A unique id for the widget. + The widget to be displayed in the window. + Pose of the widget. + + + + Removes a widget from the window. + + The id of the widget that will be removed. + + + + Sets pose of a widget in the window. + + The id of the widget whose pose will be set. + The new pose of the widget. + + + + The window renders and starts the event loop. + + + + + Starts the event loop for a given time. + + Amount of time in milliseconds for the event loop to keep running. + If true, window renders. + + + + Returns whether the event loop has been stopped. + + + + + Set the background color + + + + + Release the unmanaged memory associated with this Viz3d object + + + + + This 3D Widget defines an arrow. + + + + + Constructs an WArrow. + + Start point of the arrow. + End point of the arrow. + Thickness of the arrow. Thickness of arrow head is also adjusted accordingly. + Color of the arrow. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WArrow object + + + + + This 3D Widget defines a circle. + + + + + Constructs default planar circle centred at origin with plane normal along z-axis. + + Radius of the circle. + Thickness of the circle. + Color of the circle. + + + + Constructs repositioned planar circle. + + Radius of the circle. + Center of the circle. + Normal of the plane in which the circle lies. + Thickness of the circle. + Color of the circle. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCircle object + + + + + This 3D Widget defines a point cloud. + + + + + Constructs a WCloud. + + Set of points which can be of type: CV_32FC3, CV_32FC4, CV_64FC3, CV_64FC4. + Set of colors. It has to be of the same size with cloud. + + + + Constructs a WCloud. + + Set of points which can be of type: CV_32FC3, CV_32FC4, CV_64FC3, CV_64FC4. + A single Color for the whole cloud. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCloud + + + + + This 3D Widget defines a cone. + + + + + Constructs default cone oriented along x-axis with center of its base located at origin. + + Length of the cone. + Radius of the cone. + Resolution of the cone. + Color of the cone. + + + + Constructs repositioned planar cone. + + Radius of the cone. + Center of the cone base. + Tip of the cone. + Resolution of the cone. + Color of the cone. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCone object + + + + + This 3D Widget represents a coordinate system. + + + + + Constructs a WCoordinateSystem. + + Determines the size of the axes. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCoordinateSysyem object + + + + + This 3D Widget defines a cube. + + + + + Constructs a WCube. + + Specifies minimum point of the bounding box. + Specifies maximum point of the bounding box. + If true, cube is represented as wireframe. + Color of the cube. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCube object + + + + + This 3D Widget defines a cylinder. + + + + + Constructs a WCylinder. + + A point1 on the axis of the cylinder. + A point2 on the axis of the cylinder. + Radius of the cylinder. + Resolution of the cylinder. + Color of the cylinder. + + + + Get the pointer to the Widget3D obj + + + + + Get the pointer to the Widget obj + + + + + Release the unmanaged memory associated with this WCylinder object + + + + + This 2D Widget represents text overlay. + + + + + Constructs a WText. + + Text content of the widget. + Position of the text. + Font size. + Color of the text. + + + + Get the pointer to the widget2D object + + + + + Get the pointer to the widget object. + + + + + Release the unmanaged memory associated with this Viz3d object + + + + + A collection of points + + + + + Fit an ellipse to the points collection + + The points to be fitted + An ellipse + + + + convert a series of points to LineSegment2D + + the array of points + if true, the last line segment is defined by the last point of the array and the first point of the array + array of LineSegment2D + + + + convert a series of System.Drawing.Point to LineSegment2D + + the array of points + if true, the last line segment is defined by the last point of the array and the first point of the array + array of LineSegment2D + + + + Find the bounding rectangle for the specific array of points + + The collection of points + The bounding rectangle for the array of points + + + + Re-project pixels on a 1-channel disparity map to array of 3D points. + + Disparity map + The re-projection 4x4 matrix, can be arbitrary, e.g. the one, computed by cvStereoRectify + The reprojected 3D points + + + + Generate a random point cloud around the ellipse. + + The region where the point cloud will be generated. The axes of e corresponds to std of the random point cloud. + The number of points to be generated + A random point cloud around the ellipse + + + + Interface to the BackgroundSubtractor class + + + + + Pointer to the native BackgroundSubstractor object + + + + + A static class that provide extension methods to backgroundSubtractor + + + + + Update the background model + + The image that is used to update the background model + Use -1 for default + The background subtractor + The output foreground mask + + + + Computes a background image. + + The output background image + The background subtractor + Sometimes the background image can be very blurry, as it contain the average background statistics. + + + + K-nearest neighbors - based Background/Foreground Segmentation Algorithm. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a K-nearest neighbors - based Background/Foreground Segmentation Algorithm. + + Length of the history. + Threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to that sample. This parameter does not affect the background update. + If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false. + + + + Release all the unmanaged memory associated with this background model. + + + + + The number of last frames that affect the background model + + + + + The number of data samples in the background model + + + + + The threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to a data sample. + + + + + The number of neighbours, the k in the kNN. K is the number of samples that need to be within dist2Threshold in order to decide that pixel is matching the kNN background model. + + + + + If true, the algorithm detects shadows and marks them. + + + + + Shadow value is the value used to mark shadows in the foreground mask. Default value is 127. Value 0 in the mask always means background, 255 means foreground. + + + + + A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel is more than twice darker then it is not shadow. + + + + + The class implements the following algorithm: + "Improved adaptive Gaussian mixture model for background subtraction" + Z.Zivkovic + International Conference Pattern Recognition, UK, August, 2004. + http://www.zoranz.net/Publications/zivkovic2004ICPR.pdf + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create an "Improved adaptive Gaussian mixture model for background subtraction". + + The length of the history. + The maximum allowed number of mixture components. Actual number is determined dynamically per pixel. + If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false. + + + + Release all the unmanaged memory associated with this background model. + + + + + The number of last frames that affect the background model + + + + + If true, the algorithm detects shadows and marks them. + + + + + Shadow value is the value used to mark shadows in the foreground mask. Default value is 127. Value 0 in the mask always means background, 255 means foreground. + + + + + A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel is more than twice darker then it is not shadow. + + + + + The number of gaussian components in the background model + + + + + If a foreground pixel keeps semi-constant value for about backgroundRatio * history frames, it's considered background and added to the model as a center of a new component. It corresponds to TB parameter in the paper. + + + + + The main threshold on the squared Mahalanobis distance to decide if the sample is well described by the background model or not. Related to Cthr from the paper. + + + + + The variance threshold for the pixel-model match used for new mixture component generation. Threshold for the squared Mahalanobis distance that helps decide when a sample is close to the existing components (corresponds to Tg in the paper). If a pixel is not close to any component, it is considered foreground or added as a new component. 3 sigma =%gt + + + + + Tg=3*3=9 is default. A smaller Tg value generates more components. A higher Tg value may result in a small number of components but they can grow too large. + + + + + The initial variance of each gaussian component + + + + + The minimum variance + + + + + The maximum variance + + + + + Dense Optical flow + + + + + Gets the dense optical flow pointer. + + + The dense optical flow . + + + + + Extension methods for IDenseOpticalFlow + + + + + Calculates an optical flow. + + First 8-bit single-channel input image. + Second input image of the same size and the same type as prev. + Computed flow image that has the same size as prev and type CV_32FC2 + The dense optical flow object + + + + DIS optical flow algorithm. + This class implements the Dense Inverse Search(DIS) optical flow algorithm.Includes three presets with preselected parameters to provide reasonable trade-off between speed and quality.However, even the slowest preset is still relatively fast, use DeepFlow if you need better quality and don't care about speed. + More details about the algorithm can be found at: + Till Kroeger, Radu Timofte, Dengxin Dai, and Luc Van Gool. Fast optical flow using dense inverse search. In Proceedings of the European Conference on Computer Vision (ECCV), 2016. + + + + + Preset + + + + + Ultra fast + + + + + Fast + + + + + Medium + + + + + Create an instance of DIS optical flow algorithm. + + Algorithm preset + + + + Release the unmanaged memory associated with this Optical flow algorithm. + + + + + Pointer to cv::Algorithm + + + + + Pointer to native cv::DenseOpticalFlow + + + + + Finest level of the Gaussian pyramid on which the flow is computed (zero level corresponds to the original image resolution). The final flow is obtained by bilinear upscaling. + + + + + Size of an image patch for matching (in pixels). Normally, default 8x8 patches work well enough in most cases. + + + + + Stride between neighbor patches. Must be less than patch size. Lower values correspond to higher flow quality. + + + + + Maximum number of gradient descent iterations in the patch inverse search stage. Higher values may improve quality in some cases. + + + + + Number of fixed point iterations of variational refinement per scale. Set to zero to disable variational refinement completely. Higher values will typically result in more smooth and high-quality flow. + + + + + Weight of the smoothness term + + + + + Weight of the color constancy term + + + + + Weight of the gradient constancy term + + + + + Whether to use mean-normalization of patches when computing patch distance. It is turned on by default as it typically provides a noticeable quality boost because of increased robustness to illumination variations. Turn it off if you are certain that your sequence doesn't contain any changes in illumination. + + + + + Whether to use spatial propagation of good optical flow vectors. This option is turned on by default, as it tends to work better on average and can sometimes help recover from major errors introduced by the coarse-to-fine scheme employed by the DIS optical flow algorithm. Turning this option off can make the output flow field a bit smoother, however. + + + + + Class computing a dense optical flow using the Gunnar Farneback's algorithm. + + + + + Create a FarnebackOpticalFlow object + + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + Fast Pyramids + + + + Release the unmanaged resources + + + + + Gets the dense optical flow pointer. + + + The pointer to the dense optical flow object. + + + + + Return the pointer to the algorithm object + + + + + The class implements a standard Kalman filter. However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get + an extended Kalman filter functionality. + + + + + Initializes a new instance of the class. + + Dimensionality of the state. + Dimensionality of the measurement. + Dimensionality of the control vector. + Type of the created matrices that should be Cv32F or Cv64F + + + + Perform the predict operation using the option control input + + The control. + The predicted state. + + + + Updates the predicted state from the measurement. + + The measured system parameters + + + + + Release the unmanaged resources + + + + + Predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k) + + The result + + + + Corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) + + The result + + + + State transition matrix (A) + + The result + + + + Control matrix (B) (not used if there is no control) + + The result + + + + Measurement matrix (H) + + The result + + + + Process noise covariance matrix (Q) + + The result + + + + Measurement noise covariance matrix (R) + + The result + + + + priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q) + + The result + + + + Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R) + + The result + + + + posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k) + + The result + + + + Sparse Optical flow + + + + + Gets the sparse optical flow pointer. + + + The sparse optical flow . + + + + + Extension methods for ISparseOpticalFlow + + + + + Calculates a sparse optical flow. + + The sparse optical flow + First input image. + Second input image of the same size and the same type as prevImg. + Vector of 2D points for which the flow needs to be found. + Output vector of 2D points containing the calculated new positions of input features in the second image. + Output status vector. Each element of the vector is set to 1 if the flow for the corresponding features has been found.Otherwise, it is set to 0. + Optional output vector that contains error response for each point (inverse confidence). + + + + The class can calculate an optical flow for a sparse feature set using the iterative Lucas-Kanade method with pyramids. + + + + + Create a SparsePyrLKOpticalFlow object + + size of the search window at each pyramid level. + 0-based maximal pyramid level number; if set to 0, pyramids are not used (single level), if set to 1, two levels are used, and so on; if pyramids are passed to input then algorithm will use as many levels as pyramids have but no more than maxLevel. + specifying the termination criteria of the iterative search algorithm (after the specified maximum number of iterations criteria.maxCount or when the search window moves by less than criteria.epsilon. + operation flags + the algorithm calculates the minimum eigen value of a 2x2 normal matrix of optical flow equations, divided by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding feature is filtered out and its flow is not processed, so it allows to remove bad points and get a performance boost. + + + + Release the unmanaged resources + + + + + Pointer to the unmanaged SparseOpticalFlow object + + + + + Return the pointer to the algorithm object + + + + + This class implements variational refinement of the input flow field. + + See: Thomas Brox, Andres Bruhn, Nils Papenberg, and Joachim Weickert. High accuracy optical flow estimation based on a theory for warping. In Computer Vision-ECCV 2004, pages 25-36. Springer, 2004. + + + + Create an instance of Variational Refinement. + + + + + Release the unmanaged memory associated with this Optical flow algorithm. + + + + + Pointer to the unmanaged cv::Algorithm + + + + + Pointer to the unmanaged cv::DenseOpticalFlow + + + + + Number of outer (fixed-point) iterations in the minimization procedure. + + + + + Number of inner successive over-relaxation (SOR) iterations in the minimization procedure to solve the respective linear system. + + + + + Relaxation factor in SOR + + + + + Weight of the smoothness term + + + + + Weight of the color constancy term + + + + + Weight of the gradient constancy term + + + + + Fast dense optical flow computation based on robust local optical flow (RLOF) algorithms and sparse-to-dense interpolation scheme. + + + + + Interpolation type used to compute the dense optical flow. + + + + + Fast geodesic interpolation + + + + + Edge-preserving interpolation + + + + + Creates instance of DenseRLOFOpticalFlow + + The RLOF optical flow parameters + Threshold for the forward backward confidence check. Use 1.0f for default + Size of the grid to spawn the motion vectors. Use (6, 6) for default + Interpolation used to compute the dense optical flow. + See Ximgproc.EdgeAwareInterpolator() K value. + See Ximgproc.EdgeAwareInterpolator() sigma value. + See Ximgproc.EdgeAwareInterpolator() lambda value. + Enables Ximgproc.fastGlobalSmootherFilter + See Ximgproc.EdgeAwareInterpolator(). + See Ximgproc.EdgeAwareInterpolator(). + + + + Release the unmanaged resources + + + + + Gets the dense optical flow pointer. + + + The pointer to the dense optical flow object. + + + + + Return the pointer to the algorithm object + + + + + Dual TV L1 Optical Flow Algorithm. + + + + + Create Dual TV L1 Optical Flow. + + + + + Release the unmanaged resources + + + + + Gets the dense optical flow pointer. + + + The pointer to the dense optical flow object. + + + + + Return the pointer to the algorithm object + + + + + Time step of the numerical scheme + + + + + Weight parameter for the data term, attachment parameter + + + + + Weight parameter for (u - v)^2, tightness parameter + + + + + Coefficient for additional illumination variation term + + + + + Number of scales used to create the pyramid of images + + + + + Number of warpings per scale + + + + + Stopping criterion threshold used in the numerical scheme, which is a trade-off between precision and running time + + + + + Inner iterations (between outlier filtering) used in the numerical scheme + + + + + Outer iterations (number of inner loops) used in the numerical scheme + + + + + Use initial flow + + + + + Step between scales (less than 1) + + + + + Median filter kernel size (1 = no filter) (3 or 5) + + + + + The motion history class + + + For help on using this class, take a look at the Motion Detection example + + + + + The motion mask. + Do not dispose this image. + + + + + Create a motion history object + + In second, the duration of motion history you wants to keep + In second. Any change happens between a time interval greater than this will not be considered + In second. Any change happens between a time interval smaller than this will not be considered. + + + + Create a motion history object + + In second, the duration of motion history you wants to keep + In second. Any change happens between a time interval larger than this will not be considered + In second. Any change happens between a time interval smaller than this will not be considered. + The start time of the motion history + + + + Update the motion history with the specific image and current timestamp + + The image to be added to history + + + + Update the motion history with the specific image and the specific timestamp + + The foreground of the image to be added to history + The time when the image is captured + + + + Get a sequence of motion component + + The output mask of motion components + The bounding rectangles of the motion components + + + + Given a rectangle area of the motion, output the angle of the motion and the number of pixels that are considered to be motion pixel + + The rectangle area of the motion + The orientation of the motion + Number of motion pixels within silhouette ROI + The foreground mask used to calculate the motion info. + + + + Release unmanaged resources + + + + + Release any images associated with this object + + + + + DeepFlow optical flow algorithm implementation. + + + + + Create an instance of DeepFlow optical flow algorithm. + + + + + Release the unmanaged memory associated with this Object + + + + + Pointer to the unmanaged cv::Algorithm + + + + + Pointer to the unmanaged cv::DenseOpticalFlow + + + + + PCAFlow algorithm. + + + + + Creates an instance of PCAFlow + + + + + Release the memory associated with this PCA Flow algorithm + + + + + Pointer to cv::Algorithm + + + + + Pointer to native cv::DenseOpticalFlow + + + + + This is used store and set up the parameters of the robust local optical flow (RLOF) algorithm. + + + + + The solver type + + + + + Apply standard iterative refinement + + + + + Apply optimized iterative refinement based bilinear equation solutions + + + + + The support region type + + + + + Apply a constant support region + + + + + Apply a adaptive support region obtained by cross-based segmentation + + + + + Create a RLOF Optical Flow Parameter with default parameters. + + + + + Release the unmanaged memory associated with this Object + + + + + parameter of the shrinked Hampel norm + + + + + parameter of the shrinked Hampel norm + + + + + Variable specifies the iterative refinement strategy + + + + + Variable specifies the support region shape extraction or shrinking strategy + + + + + Minimal window size of the support region. This parameter is only used if supportRegionType is Cross + + + + + Maximal window size of the support region. If supportRegionType is Fixed this gives the exact support region size. The speed of the RLOF is related to the applied win sizes. The smaller the window size the lower is the runtime, but the more sensitive to noise is the method. + + + + + Color similarity threshold used by cross-based segmentation. Only used if supportRegionType is Cross. With the cross-bassed segmentation motion boundaries can be computed more accurately + + + + + Maximal number of pyramid level used. The large this value is the more likely it is to obtain accurate solutions for long-range motions. The runtime is linear related to this parameter + + + + + Use next point list as initial values. A good initialization can improve the algorithm accuracy and reduce the runtime by a faster convergence of the iteration refinement + + + + + Use the Gennert and Negahdaripour illumination model instead of the intensity brightness constraint. + + + + + Use global motion prior initialisation. It allows to be more accurate for long-range motion. The computational complexity is slightly increased by enabling the global motion prior initialisation. + + + + + Number of maximal iterations used for the iterative refinement. Lower values can reduce the runtime but also the accuracy. + + + + + Threshold for the minimal eigenvalue of the gradient matrix defines when to abort the iterative refinement. + + + + + To apply the global motion prior motion vectors will be computed on a regularly sampled which are the basis for Homography estimation using RANSAC. The reprojection threshold is based on n-th percentil (given by this value [0 ... 100]) of the motion vectors magnitude. + + + + + Class used for calculation sparse optical flow and feature tracking with robust local optical flow (RLOF) algorithms. + + + + + Creates instance of SparseRLOFOpticalFlow + + The RLOF optical flow parameters + Threshold for the forward backward confidence check. Use 1.0f for default + + + + Release the unmanaged resources + + + + + Gets the sparse optical flow pointer. + + + The pointer to the sparse optical flow object. + + + + + Return the pointer to the algorithm object + + + + + Abstract base class for histogram cost algorithms. + + + + + Pointer native cv::Ptr object. + + + + + Release the histogram cost extractor + + + + + A norm based cost extraction. + + + + + Create a norm based cost extraction. + + Distance type + Number of dummies + Default cost + + + + An EMD based cost extraction. + + + + + Create an EMD based cost extraction. + + Distance type + Number of dummies + Default cost + + + + An Chi based cost extraction. + + + + + Create an Chi based cost extraction. + + Number of dummies + Default cost + + + + An EMD-L1 based cost extraction. + + + + + Create an EMD-L1 based cost extraction. + + Number of dummies + Default cost + + + + Library to invoke functions that belongs to the shape module + + + + + Implementation of the Shape Context descriptor and matching algorithm proposed by Belongie et al. in “Shape Matching and Object Recognition Using Shape Contexts” (PAMI 2002). + + + + + The number of iterations + + + + + The number of angular bins in the shape context descriptor. + + + + + The number of radial bins in the shape context descriptor. + + + + + The value of the inner radius. + + + + + The value of the outer radius. + + + + + Rotation Invariant + + + + + The weight of the shape context distance in the final distance value. + + + + + The weight of the appearance cost in the final distance value. + + + + + The weight of the Bending Energy in the final distance value. + + + + + Standard Deviation. + + + + + Create a shape context distance extractor + + The histogram cost extractor, use ChiHistogramCostExtractor as default + The shape transformer, use ThinPlateSplineSphapeTransformer as default + Establish the number of angular bins for the Shape Context Descriptor used in the shape matching pipeline. + Establish the number of radial bins for the Shape Context Descriptor used in the shape matching pipeline. + Set the inner radius of the shape context descriptor. + Set the outer radius of the shape context descriptor. + Iterations + + + + Release the memory associated with this shape context distance extractor + + + + + Abstract base class for shape distance algorithms. + + + + + Pointer to the unmanaged ShapeDistanceExtractor + + + + + Compute the shape distance between two shapes defined by its contours. + + Contour defining first shape + Contour defining second shape + The shape distance between two shapes defined by its contours. + + + + Compute the shape distance between two shapes defined by its contours. + + Contour defining first shape + Contour defining second shape + The shape distance between two shapes defined by its contours. + + + + Release all memory associated with this ShapeDistanceExtractor + + + + + A simple Hausdorff distance measure between shapes defined by contours, according to the paper “Comparing Images using the Hausdorff distance.” by D.P. Huttenlocher, G.A. Klanderman, and W.J. Rucklidge. (PAMI 1993). + + + + + Create Hausdorff distance extractor + + Rhe norm used to compute the Hausdorff value between two shapes. It can be L1 or L2 norm. + The rank proportion (or fractional value) that establish the Kth ranked value of the partial Hausdorff distance. Experimentally had been shown that 0.6 is a good value to compare shapes. + + + + Release the memory associated with this Hausdorff distance extrator + + + + + Abstract base class for shape transformation algorithms. + + + + + Get the pointer to the unmanaged shape transformer + + + + + Definition of the transformation ocupied in the paper “Principal Warps: Thin-Plate Splines and Decomposition of Deformations”, by F.L. Bookstein (PAMI 1989). + + + + + Create a thin plate spline shape transformer + + The regularization parameter for relaxing the exact interpolation requirements of the TPS algorithm. + + + + Get the pointer the the native ShapeTransformer + + + + + Release the unmanaged memory associated with this ShapeTransformer object + + + + + Wrapper class for the OpenCV Affine Transformation algorithm. + + + + + Create an affine transformer + + Full affine + + + + Release the unmanaged memory associated with this ShapeTransformer object + + + + + Get the pointer to the native ShapeTransformer + + + + + Blender for Image Stitching + + + + + Pointer to the native Blender object. + + + + + Pointer to the native Blender object. + + + + + Reset the unmanaged pointer associated to this object + + + + + Simple blender which mixes images at its borders. + + + + + Create a simple blender which mixes images at its borders + + Sharpness + + + + Release all the unmanaged memory associated with this blender + + + + + Blender which uses multi-band blending algorithm + + + + + Create a multiBandBlender + + If true, will try to use GPU + Number of bands + The weight type + + + + Release all unmanaged resources associated with this blender + + + + + Entry points to the Open CV Stitching module. + + + + + Image Stitching. + + + + + The stitcher statis + + + + + Ok. + + + + + Error, need more images. + + + + + Error, homography estimateion failed. + + + + + Error, camera parameters adjustment failed. + + + + + Wave correction kind + + + + + horizontal + + + + + Vertical + + + + + Stitch mode + + + + + Mode for creating photo panoramas. Expects images under perspective transformation and projects resulting pano to sphere. + + + + + Mode for composing scans. Expects images under affine transformation does not compensate exposure by default. + + + + + Creates a Stitcher configured in one of the stitching modes. + + Scenario for stitcher operation. This is usually determined by source of images to stitch and their transformation. + + + + Compute the panoramic images given the images + + The input images. This can be, for example, a VectorOfMat + The panoramic image + The stitching status + + + + These functions try to match the given images and to estimate rotations of each camera. + + Input images. + Masks for each input image specifying where to look for keypoints (optional). + Status code. + + + + These functions try to match the given images and to estimate rotations of each camera. + + Final pano. + Status code. + + + + These functions try to compose the given images (or images stored internally from the other function calls) into the final pano under the assumption that the image transformations were estimated before. + + Input images + Final pano. + Status code. + + + + Set the features finder for this stitcher. + + The features finder + + + + Set the warper creator for this stitcher. + + The warper creator + + + + Set the blender for this stitcher + + The blender + + + + Get or Set a flag to indicate if the stitcher should apply wave correction + + + + + The wave correction type. + + + + + Get or set the pano confidence threshold + + + + + Get or Set the compositing resolution + + + + + Get or Set the seam estimation resolution + + + + + Get or set the registration resolution + + + + + Release memory associated with this stitcher + + + + + The work scale + + + + + Finds features in the given image. + + + + + Pointer to the unmanaged WarperCreator object + + + + + Pointer to the unmanaged RotationWarper object + + + + + Get a pointer to the unmanaged WarperCreator object + + + + + Reset the unmanaged pointer associated to this object + + + + + Builds the projection maps according to the given camera data. + + Source image size + Camera intrinsic parameters + Camera rotation matrix + Projection map for the x axis + Projection map for the y axis + Projected image minimum bounding box + + + + Projects the image. + + Source image + Camera intrinsic parameters + Camera rotation matrix + Interpolation mode + Border extrapolation mode + Projected image + Project image top-left corner + + + + Warper that maps an image onto the z = 1 plane. + + + + + Construct an instance of the plane warper class. + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Warper that maps an image onto the unit sphere located at the origin. + + + + + Construct an instance of the spherical warper class. + + Radius of the projected sphere, in pixels. An image spanning the whole sphere will have a width of 2 * scale * PI pixels. + + + + Release the unmanaged memory associated with this wraper + + + + + Fisheye Warper + + + + + Create a fisheye warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Stereographic Warper + + + + + Create a stereographic warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Compressed rectilinear warper + + + + + Create a compressed rectilinear warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Panini warper + + + + + Create a Panini warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Panini portrait warper + + + + + Create a panini portrait warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Mercator warper + + + + + Create a Mercator Warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Transverse mercator warper + + + + + Create a transverse mercator warper + + Projected image scale multiplier + + + + Release the unmanaged memory associated with this wraper + + + + + Create a video frame source + + + + + The pointer to the frame source + + + + + Create video frame source from video file + + The name of the file + If true, it will try to create video frame source using gpu + + + Create a framesource using the specific camera + The index of the camera to create capture from, starting from 0 + + + + Get the next frame + + + + + Release all the unmanaged memory associated with this framesource + + + + + Supper resolution + + + + + The type of optical flow algorithms used for super resolution + + + + + BTVL + + + + + BTVL using gpu + + + + + Create a super resolution solver for the given frameSource + + The type of optical flow algorithm to use + The frameSource + + + + Release all the unmanaged memory associated to this object + + + + + Use the Capture class as a FrameSource + + + + + Create a Capture frame source + + The capture object that will be converted to a FrameSource + + + + Release the unmanaged memory associated with this CaptureFrameSource + + + + + A FrameSource that can be used by the Video Stabilizer + + + + + Get or Set the capture type + + + + + The unmanaged pointer the the frameSource + + + + + Retrieve the next frame from the FrameSoure + + The next frame + + + + Release the unmanaged memory associated with this FrameSource + + + + + Gaussian motion filter + + + + + Create a Gaussian motion filter + + The radius, use 15 for default. + The standard deviation, use -1.0f for default + + + + Release all the unmanaged memory associated with this object + + + + + A one pass video stabilizer + + + + + Create a one pass stabilizer + + The capture object to be stabalized + + + + Set the Motion Filter + + The motion filter + + + + Release the unmanaged memory associated with the stabilizer + + + + + A two pass video stabilizer + + + + + Create a two pass video stabilizer. + + The capture object to be stabilized. Should not be a camera stream. + + + + Release the unmanaged memory + + + + + The flags for the neural network training function + + + + + Default + + + + + Update weights + + + + + No input scale + + + + + No output scale + + + + + Splitting criteria, used to choose optimal splits during a weak tree construction + + + + + Use the default criteria for the particular boosting method + + + + + Use Gini index. This is default option for Real AdaBoost; may be also used for Discrete AdaBoost + + + + + Use misclassification rate. This is default option for Discrete AdaBoost; may be also used for Real AdaBoost + + + + + Use least squares criteria. This is default and the only option for LogitBoost and Gentle AdaBoost + + + + + Boosting type + + + + + Discrete AdaBoost + + + + + Real AdaBoost + + + + + LogitBoost + + + + + Gentle AdaBoost + + + + + The data layout type + + + + + Feature vectors are stored as cols + + + + + Feature vectors are stored as rows + + + + + Variable type + + + + + Numerical or Ordered + + + + + Categorical + + + + + Neural network + + + + + Possible activation functions + + + + + Identity function: f(x)=x + + + + + Symmetrical sigmoid: f(x)=beta*(1-e^{-alpha x})/(1+e^{-alpha x}) + + If you are using the default sigmoid activation function with the default parameter values + fparam1 = 0 and fparam2 = 0 then the function used is y = 1.7159 * tanh(2/3 * x), so the output + will range from[-1.7159, 1.7159], instead of[0, 1]. + + + + + Gaussian function: f(x)=beta e^{-alpha x*x} + + + + + ReLU function: f(x)=max(0,x) + + + + + Leaky ReLU function: + for x>0, $f(x)=x; + and x<=0, f(x)=alpha x + + + + + Training method for ANN_MLP + + + + + Back-propagation algorithm + + + + + Batch RPROP algorithm + + + + + The simulated annealing algorithm. + + + + + Create a neural network using the specific parameters + + + + + Release the memory associated with this neural network + + + + + Sets the layer sizes. + + Integer vector specifying the number of neurons in each layer including the input and output layers. The very first element specifies the number of elements in the input layer. The last element - number of elements in the output layer. + + + + Initialize the activation function for each neuron. + + Currently the default and the only fully supported activation function is SigmoidSym + The first parameter of the activation function. + The second parameter of the activation function. + + + + Sets training method and common parameters. + + The training method. + param1 passed to setRpropDW0 for ANN_MLP::RPROP and to setBackpropWeightScale for ANN_MLP::BACKPROP and to initialT for ANN_MLP::ANNEAL. + param2 passed to setRpropDWMin for ANN_MLP::RPROP and to setBackpropMomentumScale for ANN_MLP::BACKPROP and to finalT for ANN_MLP::ANNEAL. + + + + Termination criteria of the training algorithm + + + + + BPROP: Strength of the weight gradient term + + + + + BPROP: Strength of the momentum term (the difference between weights on the 2 previous iterations) + + + + + RPROP: Initial value Delta_0 of update-values Delta_{ij} + + + + + RPROP: Increase factor + + + + + RPROP: Decrease factor + + + + + RPROP: Update-values lower limit + + + + + RPROP: Update-values upper limit + + + + + ANNEAL: Update initial temperature. + + + + + ANNEAL: Update final temperature. + + + + + ANNEAL: Update cooling ratio. + + + + + ANNEAL: Update iteration per step. + + + + + This class contains functions to call into machine learning library + + + + + Create a default EM model + + Pointer to the EM model + + + + Release the EM model + + + + + Given the EM , predict the probability of the + + The EM model + The input samples + The prediction results, should have the same # of rows as the + The result. + + + + Create a default random tree + + Pointer to the random tree + + + + Boost Tree + + + + + Boost Type + + + + + Discrete AdaBoost. + + + + + Real AdaBoost. It is a technique that utilizes confidence-rated predictions and works well with categorical data. + + + + + LogitBoost. It can produce good regression fits. + + + + + Gentle AdaBoost. It puts less weight on outlier data points and for that reason is often good with regression data. + + + + + Create a default Boost classifier + + + + + Release the Boost classifier and all memory associate with it + + + + + Cluster possible values of a categorical variable into K less than or equals maxCategories clusters to find a suboptimal split + + + + + The maximum possible depth of the tree + + + + + If the number of samples in a node is less than this parameter then the node will not be split + + + + + If CVFolds greater than 1 then algorithms prunes the built decision tree using K-fold + + + + + If true then surrogate splits will be built + + + + + If true then a pruning will be harsher + + + + + If true then pruned branches are physically removed from the tree + + + + + Termination criteria for regression trees + + + + + Decision Trees + + + + + Predict options + + + + + Predict auto + + + + + Predict sum + + + + + Predict max vote + + + + + Predict mask + + + + + Create a default decision tree + + + + + Release the decision tree and all the memory associate with it + + + + + Cluster possible values of a categorical variable into K less than or equals maxCategories clusters to find a suboptimal split + + + + + The maximum possible depth of the tree + + + + + If the number of samples in a node is less than this parameter then the node will not be split + + + + + If CVFolds greater than 1 then algorithms prunes the built decision tree using K-fold + + + + + If true then surrogate splits will be built + + + + + If true then a pruning will be harsher + + + + + If true then pruned branches are physically removed from the tree + + + + + Termination criteria for regression trees + + + + + Expectation Maximization model + + + + + The type of the mixture covariation matrices + + + + + A covariation matrix of each mixture is a scaled identity matrix, ?k*I, so the only parameter to be estimated is ?k. The option may be used in special cases, when the constraint is relevant, or as a first step in the optimization (e.g. in case when the data is preprocessed with PCA). The results of such preliminary estimation may be passed again to the optimization procedure, this time with cov_mat_type=COV_MAT_DIAGONAL + + + + + A covariation matrix of each mixture may be arbitrary diagonal matrix with positive diagonal elements, that is, non-diagonal elements are forced to be 0's, so the number of free parameters is d for each matrix. This is most commonly used option yielding good estimation results + + + + + A covariation matrix of each mixture may be arbitrary symmetrical positively defined matrix, so the number of free parameters in each matrix is about d2/2. It is not recommended to use this option, unless there is pretty accurate initial estimation of the parameters and/or a huge number of training samples + + + + + The default + + + + + Create an Expectation Maximization model + + + + + Estimate the Gaussian mixture parameters from a samples set. This variation starts with Expectation step. You need to provide initial means of mixture components. Optionally you can pass initial weights and covariance matrices of mixture components. + + Samples from which the Gaussian mixture model will be estimated. It should be a one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type it will be converted to the inner matrix of such type for the further computing. + Initial means of mixture components. It is a one-channel matrix of nclusters x dims size. If the matrix does not have CV_64F type it will be converted to the inner matrix of such type for the further computing. + The vector of initial covariance matrices of mixture components. Each of covariance matrices is a one-channel matrix of dims x dims size. If the matrices do not have CV_64F type they will be converted to the inner matrices of such type for the further computing. + Initial weights of mixture components. It should be a one-channel floating-point matrix with 1 x nclusters or nclusters x 1 size. + The optional output matrix that contains a likelihood logarithm value for each sample. It has nsamples x 1 size and CV_64FC1 type. + The optional output "class label" (indices of the most probable mixture component for each sample). It has nsamples x 1 size and CV_32SC1 type. + The optional output matrix that contains posterior probabilities of each Gaussian mixture component given the each sample. It has nsamples x nclusters size and CV_64FC1 type. + + + + Estimate the Gaussian mixture parameters from a samples set. + This variation starts with Expectation step. Initial values of the model parameters will be estimated by the k-means algorithm. + Unlike many of the ML models, EM is an unsupervised learning algorithm and it does not take responses (class labels or function values) as input. Instead, it computes the Maximum Likelihood Estimate of the Gaussian mixture parameters from an input sample set, stores all the parameters inside the structure, and optionally computes the output "class label" for each sample. + The trained model can be used further for prediction, just like any other classifier. + + Samples from which the Gaussian mixture model will be estimated. It should be a one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type it will be converted to the inner matrix of such type for the further computing. + The probs0. + The optional output matrix that contains a likelihood logarithm value for each sample. It has nsamples x 1 size and CV_64FC1 type. + The optional output "class label" for each sample(indices of the most probable mixture component for each sample). It has nsamples x 1 size and CV_32SC1 type. + The optional output matrix that contains posterior probabilities of each Gaussian mixture component given the each sample. It has nsamples x nclusters size and CV_64FC1 type. + + + + Predict the probability of the + + The input samples + The prediction results, should have the same # of rows as the + The results + + + + Release the memory associated with this EM model + + + + + The number of mixtures + + + + + The type of the mixture covariation matrices + + + + + Termination criteria of the procedure. EM algorithm stops either after a certain number of iterations (term_crit.num_iter), or when the parameters change too little (no more than term_crit.epsilon) from iteration to iteration + + + + + The KNearest classifier + + + + + The type of KNearest search + + + + + Using brute force + + + + + Using kd tree + + + + + Create a default KNearest classifier + + + + + Release the classifier and all the memory associated with it + + + + + Finds the neighbors and predicts responses for input vectors. + + Input samples stored by rows. It is a single-precision floating-point matrix of <number_of_samples> * k size. + Number of used nearest neighbors. Should be greater than 1. + Vector with results of prediction (regression or classification) for each input sample. It is a single-precision floating-point vector with <number_of_samples> elements. + Optional output values for corresponding neighbors. It is a single- precision floating-point matrix of <number_of_samples> * k size. + Optional output distances from the input vectors to the corresponding neighbors. It is a single-precision floating-point matrix of <number_of_samples> * k size. + If only a single input vector is passed, the predicted value is returned by the method. + + + + Default number of neighbors to use in predict method + + + + + Whether classification or regression model should be trained + + + + + Parameter for KDTree implementation + + + + + Algorithm type + + + + + ML implements logistic regression, which is a probabilistic classification technique. + + + + + Specifies the kind of training method used. + + + + + Batch method + + + + + Set MiniBatchSize to a positive integer when using this method. + + + + + Specifies the kind of regularization to be applied. + + + + + Regularization disabled. + + + + + L1 norm + + + + + L2 norm + + + + + Initializes a new instance of the class. + + + + + Return the pointer to the StatModel object + + + + + Return the pointer to the algorithm object + + + + + Release the unmanaged resources + + + + + Learning rate + + + + + Number of iterations + + + + + Kind of regularization to be applied + + + + + Kind of training method to be applied + + + + + Specifies the number of training samples taken in each step of Mini-Batch Gradient Descent + + + + + Termination criteria of the algorithm + + + + + A Normal Bayes Classifier + + + + + Create a normal Bayes classifier + + + + + Release the memory associated with this classifier + + + + + Random trees + + + + + Create a random tree + + + + + Returns the result of each individual tree in the forest. + In case the model is a regression problem, the method will return each of the trees' + results for each of the sample cases.If the model is a classifier, it will return + a Mat with samples + 1 rows, where the first row gives the class number and the + following rows return the votes each class had for each sample. + + Array containing the samples for which votes will be calculated. + Array where the result of the calculation will be written. + Flags for defining the type of RTrees. + + + + Release the random tree and all memory associate with it + + + + + Cluster possible values of a categorical variable into K less than or equals maxCategories clusters to find a suboptimal split + + + + + The maximum possible depth of the tree + + + + + If the number of samples in a node is less than this parameter then the node will not be split + + + + + If CVFolds greater than 1 then algorithms prunes the built decision tree using K-fold + + + + + If true then surrogate splits will be built + + + + + If true then a pruning will be harsher + + + + + If true then pruned branches are physically removed from the tree + + + + + Termination criteria for regression trees + + + + + If true then variable importance will be calculated + + + + + The size of the randomly selected subset of features at each tree node and that are used to find the best split(s) + + + + + The termination criteria that specifies when the training algorithm stops + + + + + Interface for statistical models in OpenCV ML. + + + + + Return the pointer to the StatModel object + + The pointer to the StatModel object + + + + A statistic model + + + + + Trains the statistical model. + + The stat model. + The training samples. + Type of the layout. + Vector of responses associated with the training samples. + True if the training is successful. + + + + Trains the statistical model. + + The model. + The train data. + The flags. + True if the training is successful. + + + + Predicts response(s) for the provided sample(s) + + The model. + The input samples, floating-point matrix. + The optional output matrix of results. + The optional flags, model-dependent. + Response for the provided sample + + + + Wrapped CvParamGrid structure used by SVM + + + + + Minimum value + + + + + Maximum value + + + + + step + + + + + Support Vector Machine + + + + + Type of SVM + + + + + n-class classification (n>=2), allows imperfect separation of classes with penalty multiplier C for outliers + + + + + n-class classification with possible imperfect separation. Parameter nu (in the range 0..1, the larger the value, the smoother the decision boundary) is used instead of C + + + + + one-class SVM. All the training data are from the same class, SVM builds a boundary that separates the class from the rest of the feature space + + + + + Regression. The distance between feature vectors from the training set and the fitting hyper-plane must be less than p. For outliers the penalty multiplier C is used + + + + + Regression; nu is used instead of p. + + + + + SVM kernel type + + + + + Custom svm kernel type + + + + + No mapping is done, linear discrimination (or regression) is done in the original feature space. It is the fastest option. d(x,y) = x y == (x,y) + + + + + polynomial kernel: d(x,y) = (gamma*(xy)+coef0)^degree + + + + + Radial-basis-function kernel; a good choice in most cases: d(x,y) = exp(-gamma*|x-y|^2) + + + + + sigmoid function is used as a kernel: d(x,y) = tanh(gamma*(xy)+coef0) + + + + + Exponential Chi2 kernel, similar to the RBF kernel + + + + + Histogram intersection kernel. A fast kernel. K(xi,xj)=min(xi,xj). + + + + + The type of SVM parameters + + + + + C + + + + + Gamma + + + + + P + + + + + NU + + + + + COEF + + + + + DEGREE + + + + + Create a support Vector Machine + + + + + Release all the memory associated with the SVM + + + + + Get the default parameter grid for the specific SVM type + + The SVM type + The default parameter grid for the specific SVM type + + + + The method trains the SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree from CvSVMParams. By the optimality one mean that the cross-validation estimate of the test set error is minimal. + + The training data. + Cross-validation parameter. The training set is divided into k_fold subsets, one subset being used to train the model, the others forming the test set. So, the SVM algorithm is executed k_fold times + True if training is successful. + + + + The method trains the SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree from CvSVMParams. By the optimality one mean that the cross-validation estimate of the test set error is minimal. + + The training data. + Cross-validation parameter. The training set is divided into k_fold subsets, one subset being used to train the model, the others forming the test set. So, the SVM algorithm is executed k_fold times + cGrid + grid for gamma + grid for p + grid for nu + grid for coeff + grid for degree + If true and the problem is 2-class classification then the method creates more balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. + True if training is successful. + + + + Retrieves all the support vectors. + + All the support vector as floating-point matrix, where support vectors are stored as matrix rows. + + + + Type of a SVM formulation + + + + + Parameter gamma of a kernel function + + + + + Parameter coef0 of a kernel function + + + + + Parameter degree of a kernel function + + + + + Parameter C of a SVM optimization problem + + + + + Parameter nu of a SVM optimization problem + + + + + Parameter epsilon of a SVM optimization problem + + + + + Initialize with one of predefined kernels + + The value + + + + Termination criteria of the iterative SVM training procedure which solves a partial case of constrained quadratic optimization problem + + + + + Type of a SVM kernel + + + + + Support Vector Machine + + + + + SVMSGD type. + ASGD is often the preferable choice. + + + + + Stochastic Gradient Descent + + + + + Average Stochastic Gradient Descent + + + + + Margin type + + + + + General case, suits to the case of non-linearly separable sets, allows outliers. + + + + + More accurate for the case of linearly separable sets. + + + + + Create a support Vector Machine + + + + + Set the optimal parameters for the given model type + + SVMSGD type + Margin type + + + + Release all the memory associated with the SVMSGD model + + + + + Algorithm type + + + + + Margin type + + + + + marginRegularization of a SVMSGD optimization problem + + + + + initialStepSize of a SVMSGD optimization problem + + + + + stepDecreasingPower of a SVMSGD optimization problem + + + + + Termination criteria of the training algorithm. + + + + + Train data + + + + + Creates training data from in-memory arrays. + + Matrix of samples. It should have CV_32F type. + Type of the layout. + Matrix of responses. If the responses are scalar, they should be stored as a single row or as a single column. The matrix should have type CV_32F or CV_32S (in the former case the responses are considered as ordered by default; in the latter case - as categorical) + Vector specifying which variables to use for training. It can be an integer vector (CV_32S) containing 0-based variable indices or byte vector (CV_8U) containing a mask of active variables. + Vector specifying which samples to use for training. It can be an integer vector (CV_32S) containing 0-based sample indices or byte vector (CV_8U) containing a mask of training samples. + Optional vector with weights for each sample. It should have CV_32F type. + Optional vector of type CV_8U and size <number_of_variables_in_samples> + <number_of_variables_in_responses>, containing types of each input and output variable. + + + + Release the unmanaged resources + + + + + Dnn backend. + + + + + Default equals to InferenceEngine if + OpenCV is built with Intel's Inference Engine library or + Opencv otherwise. + + + + + Halide backend + + + + + Intel's Inference Engine library + + + + + OpenCV's implementation + + + + + DNN Backend and Target pair + + + + + Dnn Backend and Target pair + + The backend + The target + + + + The backend + + + + + The target + + + + + Entry points to the Open CV Dnn module + + + + + Creates 4-dimensional blob from image. Optionally resizes and crops image from center, subtract mean values, scales values by scalefactor, swap Blue and Red channels. + + Input image (with 1- or 3-channels). + Multiplier for image values. + Spatial size for output image + Scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + Flag which indicates that swap first and last channels in 3-channel image is necessary. + Flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + 4-dimensional Mat with NCHW dimensions order. + + + + Creates 4-dimensional blob from image. Optionally resizes and crops image from center, subtract mean values, scales values by scalefactor, swap Blue and Red channels. + + Input image (with 1- or 3-channels). + 4-dimensional output array with NCHW dimensions order. + Multiplier for image values. + Spatial size for output image + Scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + Flag which indicates that swap first and last channels in 3-channel image is necessary. + Flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + + + + Creates 4-dimensional blob from series of images. Optionally resizes and crops images from center, subtract mean values, scales values by scalefactor, swap Blue and Red channels. + + Input images (all with 1- or 3-channels). + Multiplier for images values. + Spatial size for output image + Scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + Flag which indicates that swap first and last channels in 3-channel image is necessary. + Flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + Input image is resized so one side after resize is equal to corresponding dimension in size and another one is equal or larger. Then, crop from the center is performed. + + + + Creates 4-dimensional blob from series of images. Optionally resizes and crops images from center, subtract mean values, scales values by scale factor, swap Blue and Red channels. + + input images (all with 1-, 3- or 4-channels). + 4-dimensional OutputArray with NCHW dimensions order. + multiplier for images values. + spatial size for output image + scalar with mean values which are subtracted from channels. Values are intended to be in (mean-R, mean-G, mean-B) order if image has BGR ordering and swapRB is true. + flag which indicates that swap first and last channels in 3-channel image is necessary. + flag which indicates whether image will be cropped after resize or not + Depth of output blob. Choose CV_32F or CV_8U. + + + + Parse a 4D blob and output the images it contains as 2D arrays through a simpler data structure (std::vector<cv::Mat>). + + 4 dimensional array (images, channels, height, width) in floating point precision (CV_32F) from which you would like to extract the images. + Array of 2D Mat containing the images extracted from the blob in floating point precision (CV_32F). They are non normalized neither mean added. The number of returned images equals the first dimension of the blob (batch size). Every image has a number of channels equals to the second dimension of the blob (depth). + + + + Reads a network model stored in Darknet model files. + + path to the .cfg file with text description of the network architecture. + path to the .weights file with learned network. + Network object that ready to do forward, throw an exception in failure cases. + + + + Reads a network model stored in Darknet model files. + + Buffer containing the content of the .cfg file with text description of the network architecture. + Buffer containing the content of the the .weights file with learned network. + Net object. + + + + Reads a network model stored in Caffe framework's format. + + Buffer containing the content of the .prototxt file + Buffer containing the content of the .caffemodel file + Net object. + + + + Reads a network model stored in Caffe framework's format. + + path to the .prototxt file with text description of the network architecture. + path to the .caffemodel file with learned network. + Net object. + + + + Reads a network model stored in TensorFlow framework's format. + + path to the .pb file with binary protobuf description of the network architecture + path to the .pbtxt file that contains text graph definition in protobuf format. Resulting Net object is built by text graph using weights from a binary one that let us make it more flexible. + Net object. + + + + Reads a network model stored in TensorFlow framework's format. + + buffer containing the content of the pb file + buffer containing the content of the pbtxt file + Net object. + + + + Reads a network model ONNX. + + Path to the .onnx file with text description of the network architecture. + Network object that ready to do forward, throw an exception in failure cases. + + + + Creates blob from .pb file. + + Path to the .pb file with input tensor. + The blob + + + + Read deep learning network represented in one of the supported formats. + + + Binary file contains trained weights. The following file extensions are expected for models from different frameworks: + *.caffemodel(Caffe, http://caffe.berkeleyvision.org/) + *.pb (TensorFlow, https://www.tensorflow.org/) + *.t7 | *.net (Torch, http://torch.ch/) + *.weights (Darknet, https://pjreddie.com/darknet/) + *.bin (DLDT, https://software.intel.com/openvino-toolkit) + + Text file contains network configuration. It could be a file with the following extensions: + *.prototxt(Caffe, http://caffe.berkeleyvision.org/) + *.pbtxt (TensorFlow, https://www.tensorflow.org/) + *.cfg (Darknet, https://pjreddie.com/darknet/) + *.xml (DLDT, https://software.intel.com/openvino-toolkit) + + Explicit framework name tag to determine a format. + Net object. + + + + Load a network from Intel's Model Optimizer intermediate representation. + + XML configuration file with network's topology. + Binary file with trained weights. + Net object. Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine backend. + + + + Convert all weights of Caffe network to half precision floating point + + Path to origin model from Caffe framework contains single precision floating point weights (usually has .caffemodel extension). + Path to destination model with updated weights. + + + + Create a text representation for a binary network stored in protocol buffer format. + + A path to binary network. + A path to output text file to be created. + + + + Performs non maximum suppression given boxes and corresponding scores. + + A set of bounding boxes to apply NMS. + A set of corresponding confidences. + A threshold used to filter boxes by score. + A threshold used in non maximum suppression. + The kept indices of bboxes after NMS. + A coefficient in adaptive threshold + If >0, keep at most top_k picked indices. + + + + Get the list of available DNN Backends + + The available backend and target pair + + + + This interface class allows to build new Layers - are building blocks of networks. + + + + + List of learned parameters must be stored here to allow read them by using Net::getParam(). + + + + + Release the unmanaged memory associated with this Layer. + + + + + The name of the layer + + + + + The layer type + + + + + The preferable target + + + + + This class allows to create and manipulate comprehensive artificial neural networks. + + + + + Default constructor. + + + + + Sets the new value for the layer output blob. + + Descriptor of the updating layer output blob. + Input blob + An optional normalization scale. + An optional mean subtraction values. + + + + Runs forward pass for the whole network. + + name for layer which output is needed to get + blob for first output of specified layer + + + + Runs forward pass to compute output of layer with name outputName. + + Contains all output blobs for specified layer. + Name for layer which output is needed to get + + + + Runs forward pass to compute outputs of layers listed in outBlobNames. + + Contains blobs for first outputs of specified layers. + Names for layers which outputs are needed to get + + + + Release the memory associated with this network. + + + + + Return the LayerNames + + + + + Converts string name of the layer to the integer identifier. + + The name of the layer + The id of the layer + + + + Returns layer with specified name which the network use. + + The name of the layer + Layer with specified name which the network use. + + + + Returns layer with specified id which the network use. + + The id of the layer + Layer with specified id which the network use. + + + + Returns indexes of layers with unconnected outputs. + + + + + Returns names of layers with unconnected outputs. + + + + + Dump net to String + + + String with structure, hyperparameters, backend, target and fusion + Call method after setInput(). + To see correct backend, target and fusion run after forward(). + + + + + Dump net structure, hyperparameters, backend, target and fusion to dot file + + Path to output file with .dot extension + + + + Returns overall time for inference and timings (in ticks) for layers. Indexes in returned vector correspond to layers ids. Some layers can be fused with others, in this case zero ticks count will be return for that skipped layers. + + Vector for tick timings for all layers. + Overall ticks for model inference. + + + + Ask network to use specific computation backend where it supported. + + The value + + + + Ask network to make computations on specific target device. + + The value + + + + Enables or disables layer fusion in the network. + + The value + + + + Returns true if there are no layers in the network. + + + + + Schedule layers that support Halide backend. Then compile them for specific target. For layers that not represented in scheduling file or if no manual scheduling used at all, automatic scheduling will be applied. + + The value + + + + Target devices for computations. + + + + + CPU + + + + + OpenCL + + + + + Will fall back to OPENCL if the hardware does not support FP16 + + + + + Myraid + + + + + The Cascade Classifier + + + + + Create a cascade classifier + + + + Create a CascadeClassifier from the specific file + The name of the file that contains the CascadeClassifier + + + + Load the cascade classifier from a file node + + The file node, The file may contain a new cascade classifier only. + True if the classifier can be imported. + + + + Finds rectangular regions in the given image that are likely to contain objects the cascade has been trained for and returns those regions as a sequence of rectangles. + The function scans the image several times at different scales. Each time it considers overlapping regions in the image. + It may also apply some heuristics to reduce number of analyzed regions, such as Canny prunning. + After it has proceeded and collected the candidate rectangles (regions that passed the classifier cascade), it groups them and returns a sequence of average rectangles for each large enough group. + + The image where the objects are to be detected from + The factor by which the search window is scaled between the subsequent scans, for example, 1.1 means increasing window by 10% + Minimum number (minus 1) of neighbor rectangles that makes up an object. All the groups of a smaller number of rectangles than min_neighbors-1 are rejected. If min_neighbors is 0, the function does not any grouping at all and returns all the detected candidate rectangles, which may be useful if the user wants to apply a customized grouping procedure. Use 3 for default. + Minimum window size. Use Size.Empty for default, where it is set to the size of samples the classifier has been trained on (~20x20 for face detection) + Maximum window size. Use Size.Empty for default, where the parameter will be ignored. + The objects detected, one array per channel + + + + Get if the cascade is old format + + + + + Get the original window size + + + + + Release the CascadeClassifier Object and all the memory associate with it + + + + + A HOG descriptor + + + + + Create a new HOGDescriptor + + + + + Create a new HOGDescriptor using the specific parameters. + + Block size in cells. Use (16, 16) for default. + Cell size. Use (8, 8) for default. + Block stride. Must be a multiple of cell size. Use (8,8) for default. + Do gamma correction preprocessing or not. + L2-Hys normalization method shrinkage. + Number of bins. + Gaussian smoothing window parameter. + Detection window size. Must be aligned to block size and block stride. Must match the size of the training image. Use (64, 128) for default. + Deriv Aperture + + + + Return the default people detector + + The default people detector + + + + Set the SVM detector + + The SVM detector + + + + Performs object detection with increasing detection window. + + The image to search in + Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. + Window stride. Must be a multiple of block stride. + Padding + Coefficient of the detection window increase. + After detection some objects could be covered by many rectangles. This coefficient regulates similarity threshold. 0 means don't perform grouping. Should be an integer if not using meanshift grouping. + If true, it will use meanshift grouping. + The regions where positives are found + + + + Computes HOG descriptors of given image. + + The image + Window stride. Must be a multiple of block stride. Use Size.Empty for default + Padding. Use Size.Empty for default + Locations for the computation. Can be null if not needed + The descriptor vector + + + + Release the unmanaged memory associated with this HOGDescriptor + + + + + Get the size of the descriptor + + + + + A QR code detector + + + + + Create a new QR code detector + + + + + Release the unmanaged memory associated with this HOGDescriptor + + + + + Detector the location of the QR code + + The input image + The location of the QR code in the image + True if a QRCode is found. + + + + Decodes QR code in image once it's found by the detect() method. + + grayscale or color (BGR) image containing QR code. + Quadrangle vertices found by detect() method (or some other algorithm). + The optional output image containing rectified and binarized QR code + UTF8-encoded output string or empty string if the code cannot be decoded. + + + + EpsX + + The value + + + + EpsY + + The value + + + + A convolution kernel + + + + + The center of the convolution kernel + + + + + Create a convolution kernel with the specific number of and + + The number of raws for the convolution kernel + The number of columns for the convolution kernel + + + + Create a convolution kernel using the specific matrix and center + + The values for the convolution kernel + The center of the kernel + + + + Create a convolution kernel using the specific floating point matrix + + The values for the convolution kernel + + + + Create a convolution kernel using the specific floating point matrix and center + + The values for the convolution kernel + The center for the convolution kernel + + + Get a flipped copy of the convolution kernel + The type of the flipping + The flipped copy of this image + + + + The center of the convolution kernel + + + + + Obtain the transpose of the convolution kernel + + A transposed convolution kernel + + + + The class is used to iterate over all the pixels on the raster line segment connecting two specified points. + + + + + Create a LineIterator that can be used to get each pixel of a raster line. The line will be clipped on the image boundaries + + The image + The first point + The second point + 8-connected or 4-connected + If true, then the iteration is always done from the left-most point to the right most, not to depend on the ordering of pt1 and pt2 parameters + + + + Native pointer to the pixel data at the current position + + + + + Get or set the pixel data in the current position + + + + + returns the current position in the image + + + + + Move to the next point + + + + + Release unmanaged resources + + + + + Copy the pixel data in the line to a new Mat that is of the same type. + + The image to sample from + The first point + The second point + 8-connected or 4-connected + If true, then the iteration is always done from the left-most point to the right most, not to depend on the ordering of pt1 and pt2 parameters + A new single column Mat of the same data type. The number of rows equals to the number of points on the sample line. + + + + The total number of pixels in the line + + + + + Planar Subdivision, can be use to compute Delaunnay's triangulation or Voroni diagram. + + + + + Start the Delaunay's triangulation in the specific region of interest. + + The region of interest of the triangulation + + + + Create a planar subdivision from the given points. The ROI is computed as the minimum bounding Rectangle for the input points + + If true, any exception during insert will be ignored + The points to be inserted to this planar subdivision + + + + Insert a collection of points to this planar subdivision + + The points to be inserted to this planar subdivision + If true, any exception during insert will be ignored + + + + Insert a point to the triangulation. + + The point to be inserted + + + + Locates input point within subdivision + + The point to locate + The output edge the point falls onto or right to + Optional output vertex double pointer the input point coincides with + The type of location for the point + + + + Finds subdivision vertex that is the closest to the input point. It is not necessarily one of vertices of the facet containing the input point, though the facet (located using cvSubdiv2DLocate) is used as a starting point. + + Input point + The nearest subdivision vertex + The location type of the point + + + + Obtains the list of Voronoi Facets + + Vector of vertices IDs to consider. For all vertices you can pass empty vector. + The list of Voronoi Facets + + + + Returns the triangles subdivision of the current planar subdivision. + + If true, will include the virtual points in the resulting triangles + The triangles might contains virtual points that do not belongs to the inserted points, if you do not want those points, set to false + The triangles subdivision in the current planar subdivision + + + + Release unmanaged resources + + + + + A Voronoi Facet + + + + + Create a Voronoi facet using the specific and + + The point this facet associate with + The points that defines the contour of this facet + + + + The point this facet associates to + + + + + Get or set the vertices of this facet + + + + + The stereo matcher interface + + + + + Pointer to the stereo matcher + + + + + Class for computing stereo correspondence using the block matching algorithm, introduced and contributed to OpenCV by K. Konolige. + + + + + Create a stereoBM object + + the linear size of the blocks compared by the algorithm. The size should be odd (as the block is centered at the current pixel). Larger block size implies smoother, though less accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher chance for algorithm to find a wrong correspondence. + the disparity search range. For each pixel algorithm will find the best disparity from 0 (default minimum disparity) to . The search range can then be shifted by changing the minimum disparity. + + + + Release the stereo state and all the memory associate with it + + + + + Pointer to the stereo matcher + + + + + This is a variation of + "Stereo Processing by Semiglobal Matching and Mutual Information" + by Heiko Hirschmuller. + We match blocks rather than individual pixels, thus the algorithm is called + SGBM (Semi-global block matching) + + + + + The SGBM mode + + + + + This is the default mode, the algorithm is single-pass, which means that you consider only 5 directions instead of 8 + + + + + Run the full-scale two-pass dynamic programming algorithm. It will consume O(W*H*numDisparities) bytes, which is large for 640x480 stereo and huge for HD-size pictures. + + + + + Create a stereo disparity solver using StereoSGBM algorithm (combination of H. Hirschmuller + K. Konolige approaches) + + Minimum possible disparity value. Normally, it is zero but sometimes rectification algorithms can shift images, so this parameter needs to be adjusted accordingly. + Maximum disparity minus minimum disparity. The value is always greater than zero. In the current implementation, this parameter must be divisible by 16. + Matched block size. It must be an odd number >=1 . Normally, it should be somewhere in the 3..11 range. Use 0 for default. + The first parameter controlling the disparity smoothness. It is the penalty on the disparity change by plus or minus 1 between neighbor pixels. Reasonably good value is 8*number_of_image_channels*SADWindowSize*SADWindowSize. Use 0 for default + The second parameter controlling the disparity smoothness. It is the penalty on the disparity change by more than 1 between neighbor pixels. The algorithm requires > . Reasonably good value is 32*number_of_image_channels*SADWindowSize*SADWindowSize. Use 0 for default + Maximum allowed difference (in integer pixel units) in the left-right disparity check. Set it to a non-positive value to disable the check. + Truncation value for the prefiltered image pixels. The algorithm first computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval. The result values are passed to the Birchfield-Tomasi pixel cost function. + Margin in percentage by which the best (minimum) computed cost function value should “win” the second best value to consider the found match correct. Normally, a value within the 5-15 range is good enough. + Maximum size of smooth disparity regions to consider their noise speckles and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the 50-200 range + Maximum disparity variation within each connected component. If you do speckle filtering, set the parameter to a positive value, it will be implicitly multiplied by 16. Normally, 1 or 2 is good enough. + Set it to HH to run the full-scale two-pass dynamic programming algorithm. It will consume O(W*H*numDisparities) bytes, which is large for 640x480 stereo and huge for HD-size pictures. By default, it is set to false. + + + + Release the unmanaged memory associated with this stereo solver + + + + + Pointer to the StereoMatcher + + + + + An interface for the convex polygon + + + + + Get the vertices of this convex polygon + + The vertices of this convex polygon + + + + An interface for the convex polygon + + + + + Get the vertices of this convex polygon + + The vertices of this convex polygon + + + + A unit quaternions that defines rotation in 3D + + + + + Create a quaternion with the specific values + + The W component of the quaternion: the value for cos(rotation angle / 2) + The X component of the vector: rotation axis * sin(rotation angle / 2) + The Y component of the vector: rotation axis * sin(rotation angle / 2) + The Z component of the vector: rotation axis * sin(rotation angle / 2) + + + + The W component of the quaternion: the value for cos(rotation angle / 2) + + + + + The X component of the vector: rotation axis * sin(rotation angle / 2) + + + + + The Y component of the vector: rotation axis * sin(rotation angle / 2) + + + + + The Z component of the vector: rotation axis * sin(rotation angle / 2) + + + + + Set the value of the quaternions using euler angle + + Rotation around x-axis (roll) in radian + Rotation around y-axis (pitch) in radian + rotation around z-axis (yaw) in radian + + + + Get the equivalent euler angle + + Rotation around x-axis (roll) in radian + Rotation around y-axis (pitch) in radian + rotation around z-axis (yaw) in radian + + + + Get or set the equivalent axis angle representation. (x,y,z) is the rotation axis and |(x,y,z)| is the rotation angle in radians + + + + + Fill the (3x3) rotation matrix with the value such that it represent the quaternions + + The (3x3) rotation matrix which values will be set to represent this quaternions + + + + Rotate the points in and save the result in . In-place operation is supported ( == ). + + The points to be rotated + The result of the rotation, should be the same size as , can be as well for inplace rotation + + + + Rotate the specific point and return the result + + The point to be rotated + The rotated point + + + + Get the rotation axis of the quaternion + + + + + Get the rotation angle in radian + + + + + Multiply the current Quaternions with + + The other rotation + A composition of the two rotations + + + + Perform quaternions linear interpolation + + The other quaternions to interpolate with + If 0.0, the result is the same as this quaternions. If 1.0 the result is the same as + The linear interpolated quaternions + + + + Computes the multiplication of two quaternions + + The quaternions to be multiplied + The quaternions to be multiplied + The multiplication of two quaternions + + + + Get the quaternions that represent a rotation of 0 degrees. + + + + + Compute the conjugate of the quaternions + + + + + Check if this quaternions equals to + + The quaternions to be compared + True if two quaternions equals, false otherwise + + + + Get the string representation of the Quaternions + + The string representation + + + + A (2x3) 2D rotation matrix. This Matrix defines an Affine Transform + + + + + Create an empty (2x3) 2D rotation matrix + + + + + Create a (2x3) 2D rotation matrix + + Center of the rotation in the source image + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at top-left corner). + Isotropic scale factor. + + + + Set the values of the rotation matrix + + Center of the rotation in the source image + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at top-left corner). + Isotropic scale factor. + + + + Rotate the , the value of the input will be changed. + + The points to be rotated, its value will be modified + + + + Rotate the , the value of the input will be changed. + + The points to be rotated, its value will be modified + + + + Rotate the , the value of the input will be changed. + + The line segments to be rotated + + + + Rotate the single channel Nx2 matrix where N is the number of 2D points. The value of the matrix is changed after rotation. + + The depth of the points, must be double or float + The N 2D-points to be rotated + + + + Return a clone of the Matrix + + A clone of the Matrix + + + + Create a rotation matrix for rotating an image + + The rotation angle in degrees. Positive values mean couter-clockwise rotation (the coordiate origin is assumed at image centre). + The rotation center + The source image size + The minimun size of the destination image + The rotation matrix that rotate the source image to the destination image. + + + + A (3x1) Rodrigues rotation vector. Rotation vector is a compact representation of rotation matrix. Direction of the rotation vector is the rotation axis and the length of the vector is the rotation angle around the axis. + + + + + Constructor used to deserialize 3D rotation vector + + The serialization info + The streaming context + + + + Create a 3D rotation vector (3x1 Matrix). + + + + + Create a rotation vector using the specific values + + The values of the (3 x 1) Rodrigues rotation vector + + + + Get or Set the (3x3) rotation matrix represented by this rotation vector. + + + + + Access type + + + + + Read + + + + + Write + + + + + Read and write + + + + + Mask + + + + + Fast + + + + + Types of Adaptive Threshold + + + + + Indicates that Mean minus C should be used for adaptive threshold. + + + + + Indicates that Gaussian minus C should be used for adaptive threshold. + + + + + Specific if it is back or front + + + + + Back + + + + + Front + + + + + The type for CopyMakeBorder function + + + + + Used by some cuda methods, will pass the value -1 to the function + + + + + Border is filled with the fixed value, passed as last parameter of the function + + + + + The pixels from the top and bottom rows, the left-most and right-most columns are replicated to fill the border + + + + + Reflect + + + + + Wrap + + + + + Reflect 101 + + + + + Transparent + + + + + The default border interpolation type. + + + + + Do not look outside of ROI + + + + + Type of chessboard calibration + + + + + Default type + + + + + Use adaptive thresholding to convert the image to black-n-white, rather than a fixed threshold level (computed from the average image brightness) + + + + + Normalize the image using cvNormalizeHist before applying fixed or adaptive thresholding. + + + + + Use additional criteria (like contour area, perimeter, square-like shape) to filter out false quads that are extracted at the contour retrieval stage + + + + + If it is on, then this check is performed before the main algorithm and if a chessboard is not found, the function returns 0 instead of wasting 0.3-1s on doing the full search. + + + + + Run an exhaustive search to improve detection rate. + + + + + Up sample input image to improve sub-pixel accuracy due to aliasing effects. This should be used if an accurate camera calibration is required. + + + + + Type of circles grid calibration + + + + + Symmetric grid + + + + + Asymmetric grid + + + + + Clustering + + + + + Various camera calibration flags + + + + + The default value + + + + + intrinsic_matrix contains valid initial values of fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image center (image_size is used here), and focal distances are computed in some least-squares fashion + + + + + The optimization procedure consider only one of fx and fy as independent variable and keeps the aspect ratio fx/fy the same as it was set initially in intrinsic_matrix. In this case the actual initial values of (fx, fy) are either taken from the matrix (when CV_CALIB_USE_INTRINSIC_GUESS is set) or estimated somehow (in the latter case fx, fy may be set to arbitrary values, only their ratio is used) + + + + + The principal point is not changed during the global optimization, it stays at the center and at the other location specified (when CV_CALIB_FIX_FOCAL_LENGTH - Both fx and fy are fixed. + CV_CALIB_USE_INTRINSIC_GUESS is set as well) + + + + + Tangential distortion coefficients are set to zeros and do not change during the optimization + + + + + The focal length is fixed + + + + + The 1st distortion coefficient (k1) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 2nd distortion coefficient (k2) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 3rd distortion coefficient (k3) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 4th distortion coefficient (k4) is fixed (see above) + + + + + The 5th distortion coefficient (k5) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + The 6th distortion coefficient (k6) is fixed to 0 or to the initial passed value if CV_CALIB_USE_INTRINSIC_GUESS is passed + + + + + Rational model + + + + + Thin prism model + + + + + Fix S1, S2, S3, S4 + + + + + Tilted model + + + + + Fix Taux Tauy + + + + + Use QR instead of SVD decomposition for solving. Faster but potentially less precise + + + + + Only for stereo: Fix intrinsic + + + + + Only for stereo: Same focal length + + + + + For stereo rectification: Zero disparity + + + + + For stereo rectification: use LU instead of SVD decomposition for solving. much faster but potentially less precise + + + + + CV Capture property identifier + + + + + Turn the feature off (not controlled manually nor automatically) + + + + + Set automatically when a value of the feature is set by the user + + + + + DC1394 mode auto + + + + + DC1394 mode one push auto + + + + + Film current position in milliseconds or video capture timestamp + + + + + 0-based index of the frame to be decoded/captured next + + + + + Relative position of the video file: 0=start of the film, 1=end of the film. + + + + + Width of frames in the video stream + + + + + Height of frames in the video stream + + + + + Frame rate + + + + + 4-character code of codec + + + + + Number of frames in video file + + + + + Format of the %Mat objects returned by VideoCapture::retrieve(). + + + + + Backend-specific value indicating the current capture mode. + + + + + Brightness of the image (only for those cameras that support). + + + + + Contrast of the image (only for cameras). + + + + + Saturation of the image (only for cameras). + + + + + Hue of the image (only for cameras). + + + + + Gain of the image (only for those cameras that support). + + + + + Exposure (only for those cameras that support). + + + + + Boolean flags indicating whether images should be converted to RGB. + + + + + Currently unsupported. + + + + + Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently). + + + + + Monochrome + + + + + Sharpness + + + + + Exposure control done by camera, user can adjust reference level using this feature + + + + + Gamma + + + + + Temperature + + + + + Trigger + + + + + Trigger delay + + + + + White balance red v + + + + + Zoom + + + + + Focus + + + + + GUID + + + + + ISO SPEED + + + + + MAX DC1394 + + + + + Backlight + + + + + Pan + + + + + Tilt + + + + + Roll + + + + + Iris + + + + + Pop up video/camera filter dialog (note: only supported by DSHOW backend currently. The property value is ignored) + + + + + Buffer size + + + + + Auto focus + + + + + Sample aspect ratio: num/den (num) + + + + + Sample aspect ratio: num/den (den) + + + + + Current backend (enum VideoCaptureAPIs). Read-only property + + + + + Video input or Channel Number (only for those cameras that support) + + + + + Enable/ disable auto white-balance + + + + + White-balance color temperature + + + + + property for highgui class CvCapture_Android only + + + + + readonly, tricky property, returns cpnst char* indeed + + + + + readonly, tricky property, returns cpnst char* indeed + + + + + OpenNI depth generator + + + + + OpenNI image generator + + + + + OpenNI IR generator + + + + + OpenNI map generators + + + + + Properties of cameras available through OpenNI interfaces + + + + + Properties of cameras available through OpenNI interfaces, in mm. + + + + + Properties of cameras available through OpenNI interfaces, in mm. + + + + + Properties of cameras available through OpenNI interfaces, in pixels. + + + + + Flag that synchronizes the remapping depth map to image map + by changing depth generator's view point (if the flag is "on") or + sets this view point to its normal one (if the flag is "off"). + + + + + Flag that synchronizes the remapping depth map to image map + by changing depth generator's view point (if the flag is "on") or + sets this view point to its normal one (if the flag is "off"). + + + + + Approx frame sync + + + + + Max buffer size + + + + + Circle buffer + + + + + Max time duration + + + + + Generator present + + + + + OpenNI2 Sync + + + + + OpenNI2 Mirror + + + + + Openni image generator present + + + + + Image generator output mode + + + + + Depth generator present + + + + + Depth generator baseline, in mm. + + + + + Depth generator focal length, in pixels. + + + + + Openni generator registration + + + + + Openni generator registration on + + + + + Openni IR generator present + + + + + Properties of cameras available through GStreamer interface. Default is 1 + + + + + Ip for enable multicast master mode. 0 for disable multicast + + + + + FrameStartTriggerMode: Determines how a frame is initiated + + + + + Horizontal sub-sampling of the image + + + + + Vertical sub-sampling of the image + + + + + Horizontal binning factor + + + + + Vertical binning factor + + + + + Pixel format + + + + + Change image resolution by binning or skipping. + + + + + Output data format + + + + + Horizontal offset from the origin to the area of interest (in pixels). + + + + + Vertical offset from the origin to the area of interest (in pixels). + + + + + Defines source of trigger. + + + + + Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE. + + + + + Selects general purpose input + + + + + Set general purpose input mode + + + + + Get general purpose level + + + + + Selects general purpose output + + + + + Set general purpose output mode + + + + + Selects camera signaling LED + + + + + Define camera signaling LED functionality + + + + + Calculates White Balance(must be called during acquisition) + + + + + Automatic white balance + + + + + Automatic exposure/gain + + + + + Exposure priority (0.5 - exposure 50%, gain 50%). + + + + + Maximum limit of exposure in AEAG procedure + + + + + Maximum limit of gain in AEAG procedure + + + + + Average intensity of output signal AEAG should achieve(in %) + + + + + Image capture timeout in milliseconds + + + + + Exposure time in microseconds + + + + + Sets the number of times of exposure in one frame. + + + + + Gain selector for parameter Gain allows to select different type of gains. + + + + + Gain in dB + + + + + Change image downsampling type. + + + + + Binning engine selector. + + + + + Vertical Binning - number of vertical photo-sensitive cells to combine together. + + + + + Horizontal Binning - number of horizontal photo-sensitive cells to combine together. + + + + + Binning pattern type. + + + + + Decimation engine selector. + + + + + Vertical Decimation - vertical sub-sampling of the image - reduces the vertical resolution of the image by the specified vertical decimation factor. + + + + + Horizontal Decimation - horizontal sub-sampling of the image - reduces the horizontal resolution of the image by the specified vertical decimation factor. + + + + + Decimation pattern type. + + + + + Selects which test pattern generator is controlled by the TestPattern feature. + + + + + Selects which test pattern type is generated by the selected generator. + + + + + Output data format. + + + + + Change sensor shutter type(CMOS sensor). + + + + + Number of taps + + + + + Automatic exposure/gain ROI offset X + + + + + Automatic exposure/gain ROI offset Y + + + + + Automatic exposure/gain ROI Width + + + + + Automatic exposure/gain ROI Height + + + + + Correction of bad pixels + + + + + White balance red coefficient + + + + + White balance green coefficient + + + + + White balance blue coefficient + + + + + Width of the Image provided by the device (in pixels). + + + + + Height of the Image provided by the device (in pixels). + + + + + Selects Region in Multiple ROI which parameters are set by width, height, ... ,region mode + + + + + Activates/deactivates Region selected by Region Selector + + + + + Set/get bandwidth(datarate)(in Megabits) + + + + + Sensor output data bit depth. + + + + + Device output data bit depth. + + + + + bitdepth of data returned by function xiGetImage + + + + + Device output data packing (or grouping) enabled. Packing could be enabled if output_data_bit_depth > 8 and packing capability is available. + + + + + Data packing type. Some cameras supports only specific packing type. + + + + + Returns 1 for cameras that support cooling. + + + + + Start camera cooling. + + + + + Set sensor target temperature for cooling. + + + + + Camera sensor temperature + + + + + Camera housing temperature + + + + + Camera housing back side temperature + + + + + Camera sensor board temperature + + + + + Mode of color management system. + + + + + Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE). + + + + + Returns 1 for color cameras. + + + + + Returns color filter array type of RAW data. + + + + + Luminosity gamma + + + + + Chromaticity gamma + + + + + Sharpness Strength + + + + + Color Correction Matrix element [0][0] + + + + + Color Correction Matrix element [0][1] + + + + + Color Correction Matrix element [0][2] + + + + + Color Correction Matrix element [0][3] + + + + + Color Correction Matrix element [1][0] + + + + + Color Correction Matrix element [1][1] + + + + + Color Correction Matrix element [1][2] + + + + + Color Correction Matrix element [1][3] + + + + + Color Correction Matrix element [2][0] + + + + + Color Correction Matrix element [2][1] + + + + + Color Correction Matrix element [2][2] + + + + + Color Correction Matrix element [2][3] + + + + + Color Correction Matrix element [3][0] + + + + + Color Correction Matrix element [3][1] + + + + + Color Correction Matrix element [3][2] + + + + + Color Correction Matrix element [3][3] + + + + + Set default Color Correction Matrix + + + + + Selects the type of trigger. + + + + + Sets number of frames acquired by burst. This burst is used only if trigger is set to FrameBurstStart + + + + + Enable/Disable debounce to selected GPI + + + + + Debounce time (x * 10us) + + + + + Debounce time (x * 10us) + + + + + Debounce polarity (pol = 1 t0 - falling edge, t1 - rising edge) + + + + + Status of lens control interface. This shall be set to XI_ON before any Lens operations. + + + + + Current lens aperture value in stops. Examples: 2.8, 4, 5.6, 8, 11 + + + + + Lens current focus movement value to be used by XI_PRM_LENS_FOCUS_MOVE in motor steps. + + + + + Moves lens focus motor by steps set in XI_PRM_LENS_FOCUS_MOVEMENT_VALUE. + + + + + Lens focus distance in cm. + + + + + Lens focal distance in mm. + + + + + Selects the current feature which is accessible by XI_PRM_LENS_FEATURE. + + + + + Allows access to lens feature value currently selected by XI_PRM_LENS_FEATURE_SELECTOR. + + + + + Return device model id + + + + + Return device serial number + + + + + The alpha channel of RGB32 output image format. + + + + + Buffer size in bytes sufficient for output image returned by xiGetImage + + + + + Current format of pixels on transport layer. + + + + + Sensor clock frequency in Hz. + + + + + Sensor clock frequency index. Sensor with selected frequencies have possibility to set the frequency only by this index. + + + + + Number of output channels from sensor used for data transfer. + + + + + Define framerate in Hz + + + + + Select counter + + + + + Counter status + + + + + Type of sensor frames timing. + + + + + Calculate and return available interface bandwidth(int Megabits) + + + + + Data move policy + + + + + Activates LUT. + + + + + Control the index (offset) of the coefficient to access in the LUT. + + + + + Value at entry LUTIndex of the LUT + + + + + Specifies the delay in microseconds (us) to apply after the trigger reception before activating it. + + + + + Defines how time stamp reset engine will be armed + + + + + Defines which source will be used for timestamp reset. Writing this parameter will trigger settings of engine (arming) + + + + + Returns 1 if camera connected and works properly. + + + + + Acquisition buffer size in buffer_size_unit. Default bytes. + + + + + Acquisition buffer size unit in bytes. Default 1. E.g. Value 1024 means that buffer_size is in KiBytes + + + + + Acquisition transport buffer size in bytes + + + + + Queue of field/frame buffers + + + + + Number of buffers to commit to low level + + + + + GetImage returns most recent frame + + + + + Resets the camera to default state. + + + + + Correction of column FPN + + + + + Correction of row FPN + + + + + Current sensor mode. Allows to select sensor mode by one integer. Setting of this parameter affects: image dimensions and downsampling. + + + + + Enable High Dynamic Range feature. + + + + + The number of kneepoints in the PWLR. + + + + + position of first kneepoint(in % of XI_PRM_EXPOSURE) + + + + + position of second kneepoint (in % of XI_PRM_EXPOSURE) + + + + + value of first kneepoint (% of sensor saturation) + + + + + value of second kneepoint (% of sensor saturation) + + + + + Last image black level counts. Can be used for Offline processing to recall it. + + + + + Returns hardware revision number. + + + + + Set debug level + + + + + Automatic bandwidth calculation, + + + + + File number. + + + + + Size of file. + + + + + Size of free camera FFS. + + + + + Size of used camera FFS. + + + + + Setting of key enables file operations on some cameras. + + + + + Selects the current feature which is accessible by XI_PRM_SENSOR_FEATURE_VALUE. + + + + + Allows access to sensor feature value currently selected by XI_PRM_SENSOR_FEATURE_SELECTOR. + + + + + Android flash mode + + + + + Android focus mode + + + + + Android white balance + + + + + Android anti banding + + + + + Android focal length + + + + + Android focus distance near + + + + + Android focus distance optimal + + + + + Android focus distance far + + + + + Android expose lock + + + + + Android white balance lock + + + + + iOS device focus + + + + + iOS device exposure + + + + + iOS device flash + + + + + iOS device white-balance + + + + + iOS device torch + + + + + Smartek Giganetix Ethernet Vision: frame offset X + + + + + Smartek Giganetix Ethernet Vision: frame offset Y + + + + + Smartek Giganetix Ethernet Vision: frame width max + + + + + Smartek Giganetix Ethernet Vision: frame height max + + + + + Smartek Giganetix Ethernet Vision: frame sens width + + + + + Smartek Giganetix Ethernet Vision: frame sens height + + + + + Intelperc Profile Count + + + + + Intelperc Profile Idx + + + + + Intelperc Depth Low Confidence Value + + + + + Intelperc Depth Saturation Value + + + + + Intelperc Depth Confidence Threshold + + + + + Intelperc Depth Focal Length Horz + + + + + Intelperc Depth Focal Length Vert + + + + + Intelperc Depth Generator + + + + + Intelperc Image Generator + + + + + Intelperc Generators Mask + + + + + contour approximation method + + + + + output contours in the Freeman chain code. All other methods output polygons (sequences of vertices). + + + + + translate all the points from the chain code into points; + + + + + compress horizontal, vertical, and diagonal segments, that is, the function leaves only their ending points; + + + + + + + + + + apply one of the flavors of Teh-Chin chain approximation algorithm + + + + + use completely different contour retrieval algorithm via linking of horizontal segments of 1s. Only LIST retrieval mode can be used with this method + + + + + Enumeration used by cvCheckArr + + + + + Checks that every element is neither NaN nor Infinity + + + + + If set, the function checks that every value of array is within [minVal,maxVal) range, otherwise it just checks that every element is neither NaN nor Infinity + + + + + If set, the function does not raises an error if an element is invalid or out of range + + + + + Seamless clone method + + + + + The power of the method is fully expressed when inserting objects with complex outlines into a new background + + + + + The classic method, color-based selection and alpha masking might be time consuming and often leaves an undesirable halo. Seamless cloning, even averaged with the original image, is not effective. Mixed seamless cloning based on a loose selection proves effective. + + + + + Monochrome transfer + + + + + Type used for cvCmp function + + + + + src1(I) "equal to" src2(I) + + + + + src1(I) "greater than" src2(I) + + + + + src1(I) "greater or equal" src2(I) + + + + + src1(I) "less than" src2(I) + + + + + src1(I) "less or equal" src2(I) + + + + + src1(I) "not equal to" src2(I) + + + + + Color Conversion code + + + + + Convert BGR color to BGRA color + + + + + Convert RGB color to RGBA color + + + + + Convert BGRA color to BGR color + + + + + Convert RGBA color to RGB color + + + + + Convert BGR color to RGBA color + + + + + Convert RGB color to BGRA color + + + + + Convert RGBA color to BGR color + + + + + Convert BGRA color to RGB color + + + + + Convert BGR color to RGB color + + + + + Convert RGB color to BGR color + + + + + Convert BGRA color to RGBA color + + + + + Convert RGBA color to BGRA color + + + + + Convert BGR color to GRAY color + + + + + Convert RGB color to GRAY color + + + + + Convert GRAY color to BGR color + + + + + Convert GRAY color to RGB color + + + + + Convert GRAY color to BGRA color + + + + + Convert GRAY color to RGBA color + + + + + Convert BGRA color to GRAY color + + + + + Convert RGBA color to GRAY color + + + + + Convert BGR color to BGR565 color + + + + + Convert RGB color to BGR565 color + + + + + Convert BGR565 color to BGR color + + + + + Convert BGR565 color to RGB color + + + + + Convert BGRA color to BGR565 color + + + + + Convert RGBA color to BGR565 color + + + + + Convert BGR565 color to BGRA color + + + + + Convert BGR565 color to RGBA color + + + + + Convert GRAY color to BGR565 color + + + + + Convert BGR565 color to GRAY color + + + + + Convert BGR color to BGR555 color + + + + + Convert RGB color to BGR555 color + + + + + Convert BGR555 color to BGR color + + + + + Convert BGR555 color to RGB color + + + + + Convert BGRA color to BGR555 color + + + + + Convert RGBA color to BGR555 color + + + + + Convert BGR555 color to BGRA color + + + + + Convert BGR555 color to RGBA color + + + + + Convert GRAY color to BGR555 color + + + + + Convert BGR555 color to GRAY color + + + + + Convert BGR color to XYZ color + + + + + Convert RGB color to XYZ color + + + + + Convert XYZ color to BGR color + + + + + Convert XYZ color to RGB color + + + + + Convert BGR color to YCrCb color + + + + + Convert RGB color to YCrCb color + + + + + Convert YCrCb color to BGR color + + + + + Convert YCrCb color to RGB color + + + + + Convert BGR color to HSV color + + + + + Convert RGB colot to HSV color + + + + + Convert BGR color to Lab color + + + + + Convert RGB color to Lab color + + + + + Convert BayerBG color to BGR color + + + + + Convert BayerGB color to BGR color + + + + + Convert BayerRG color to BGR color + + + + + Convert BayerGR color to BGR color + + + + + Convert BayerBG color to BGR color + + + + + Convert BayerRG color to BGR color + + + + + Convert BayerRG color to RGB color + + + + + Convert BayerGR color to RGB color + + + + + Convert BGR color to Luv color + + + + + Convert RGB color to Luv color + + + + + Convert BGR color to HLS color + + + + + Convert RGB color to HLS color + + + + + Convert HSV color to BGR color + + + + + Convert HSV color to RGB color + + + + + Convert Lab color to BGR color + + + + + Convert Lab color to RGB color + + + + + Convert Luv color to BGR color + + + + + Convert Luv color to RGB color + + + + + Convert HLS color to BGR color + + + + + Convert HLS color to RGB color + + + + + Convert BayerBG pattern to BGR color using VNG + + + + + Convert BayerGB pattern to BGR color using VNG + + + + + Convert BayerRG pattern to BGR color using VNG + + + + + Convert BayerGR pattern to BGR color using VNG + + + + + Convert BayerBG pattern to RGB color using VNG + + + + + Convert BayerGB pattern to RGB color using VNG + + + + + Convert BayerRG pattern to RGB color using VNG + + + + + Convert BayerGR pattern to RGB color using VNG + + + + + Convert BGR to HSV + + + + + Convert RGB to HSV + + + + + Convert BGR to HLS + + + + + Convert RGB to HLS + + + + + Convert HSV color to BGR color + + + + + Convert HSV color to RGB color + + + + + Convert HLS color to BGR color + + + + + Convert HLS color to RGB color + + + + + Convert sBGR color to Lab color + + + + + Convert sRGB color to Lab color + + + + + Convert sBGR color to Luv color + + + + + Convert sRGB color to Luv color + + + + + Convert Lab color to sBGR color + + + + + Convert Lab color to sRGB color + + + + + Convert Luv color to sBGR color + + + + + Convert Luv color to sRGB color + + + + + Convert BGR color to YUV + + + + + Convert RGB color to YUV + + + + + Convert YUV color to BGR + + + + + Convert YUV color to RGB + + + + + Convert BayerBG to GRAY + + + + + Convert BayerGB to GRAY + + + + + Convert BayerRG to GRAY + + + + + Convert BayerGR to GRAY + + + + + Convert YUV420i to RGB + + + + + Convert YUV420i to BGR + + + + + Convert YUV420sp to RGB + + + + + Convert YUV320sp to BGR + + + + + Convert YUV320i to RGBA + + + + + Convert YUV420i to BGRA + + + + + Convert YUV420sp to RGBA + + + + + Convert YUV420sp to BGRA + + + + + Convert YUV (YV12) to RGB + + + + + Convert YUV (YV12) to BGR + + + + + Convert YUV (iYUV) to RGB + + + + + Convert YUV (iYUV) to BGR + + + + + Convert YUV (i420) to RGB + + + + + Convert YUV (i420) to BGR + + + + + Convert YUV (420p) to RGB + + + + + Convert YUV (420p) to BGR + + + + + Convert YUV (YV12) to RGBA + + + + + Convert YUV (YV12) to BGRA + + + + + Convert YUV (iYUV) to RGBA + + + + + Convert YUV (iYUV) to BGRA + + + + + Convert YUV (i420) to RGBA + + + + + Convert YUV (i420) to BGRA + + + + + Convert YUV (420p) to RGBA + + + + + Convert YUV (420p) to BGRA + + + + + Convert YUV 420 to Gray + + + + + Convert YUV NV21 to Gray + + + + + Convert YUV NV12 to Gray + + + + + Convert YUV YV12 to Gray + + + + + Convert YUV (iYUV) to Gray + + + + + Convert YUV (i420) to Gray + + + + + Convert YUV (420sp) to Gray + + + + + Convert YUV (420p) to Gray + + + + + Convert YUV (UYVY) to RGB + + + + + Convert YUV (UYVY) to BGR + + + + + Convert YUV (Y422) to RGB + + + + + Convert YUV (Y422) to BGR + + + + + Convert YUV (UYNY) to RGB + + + + + Convert YUV (UYNV) to BGR + + + + + Convert YUV (UYVY) to RGBA + + + + + Convert YUV (VYUY) to BGRA + + + + + Convert YUV (Y422) to RGBA + + + + + Convert YUV (Y422) to BGRA + + + + + Convert YUV (UYNV) to RGBA + + + + + Convert YUV (UYNV) to BGRA + + + + + Convert YUV (YUY2) to RGB + + + + + Convert YUV (YUY2) to BGR + + + + + Convert YUV (YVYU) to RGB + + + + + Convert YUV (YVYU) to BGR + + + + + Convert YUV (YUYV) to RGB + + + + + Convert YUV (YUYV) to BGR + + + + + Convert YUV (YUNV) to RGB + + + + + Convert YUV (YUNV) to BGR + + + + + Convert YUV (YUY2) to RGBA + + + + + Convert YUV (YUY2) to BGRA + + + + + Convert YUV (YVYU) to RGBA + + + + + Convert YUV (YVYU) to BGRA + + + + + Convert YUV (YUYV) to RGBA + + + + + Convert YUV (YUYV) to BGRA + + + + + Convert YUV (YUNV) to RGBA + + + + + Convert YUV (YUNV) to BGRA + + + + + Convert YUV (UYVY) to Gray + + + + + Convert YUV (YUY2) to Gray + + + + + Convert YUV (Y422) to Gray + + + + + Convert YUV (UYNV) to Gray + + + + + Convert YUV (YVYU) to Gray + + + + + Convert YUV (YUYV) to Gray + + + + + Convert YUV (YUNV) to Gray + + + + + Alpha premultiplication + + + + + Alpha premultiplication + + + + + Convert RGB to YUV_I420 + + + + + Convert BGR to YUV_I420 + + + + + Convert RGB to YUV_IYUV + + + + + Convert BGR to YUV_IYUV + + + + + Convert RGBA to YUV_I420 + + + + + Convert BGRA to YUV_I420 + + + + + Convert RGBA to YUV_IYUV + + + + + Convert BGRA to YUV_IYUV + + + + + Convert RGB to YUV_YV12 + + + + + Convert BGR to YUV_YV12 + + + + + Convert RGBA to YUV_YV12 + + + + + Convert BGRA to YUV_YV12 + + + + + Convert BayerBG to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerGB to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerRG to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerGR to BGR (Edge-Aware Demosaicing) + + + + + Convert BayerBG to RGB (Edge-Aware Demosaicing) + + + + + Convert BayerGB to RGB (Edge-Aware Demosaicing) + + + + + Convert BayerRG to RGB (Edge-Aware Demosaicing) + + + + + Convert BayerGR to RGB (Edge-Aware Demosaicing) + + + + + The max number, do not use + + + + + The type of color map + + + + + Autumn + + + + + Bone + + + + + Jet + + + + + Winter + + + + + Rainbow + + + + + Ocean + + + + + Summer + + + + + Spring + + + + + Cool + + + + + Hsv + + + + + Pink + + + + + Hot + + + + + Parula + + + + + Magma + + + + + Inferno + + + + + Plasma + + + + + Viridis + + + + + Cividis + + + + + Twilight + + + + + TwilightShifted + + + + + Connected components algorithm output formats + + + + + The leftmost (x) coordinate which is the inclusive start of the bounding box in the horizontal direction. + + + + + The topmost (y) coordinate which is the inclusive start of the bounding box in the vertical direction. + + + + + The horizontal size of the bounding box. + + + + + The vertical size of the bounding box. + + + + + The total area (in pixels) of the connected component. + + + + + Max + + + + + The type for cvSampleLine + + + + + 8-connected + + + + + 4-connected + + + + + Type used by cvMatchShapes + + + + + I_1(A,B)=sum_{i=1..7} abs(1/m^A_i - 1/m^B_i) where m^A_i=sign(h^A_i) log(h^A_i), m^B_i=sign(h^B_i) log(h^B_i), h^A_i, h^B_i - Hu moments of A and B, respectively + + + + + I_2(A,B)=sum_{i=1..7} abs(m^A_i - m^B_i) where m^A_i=sign(h^A_i) log(h^A_i), m^B_i=sign(h^B_i) log(h^B_i), h^A_i, h^B_i - Hu moments of A and B, respectively + + + + + I_3(A,B)=sum_{i=1..7} abs(m^A_i - m^B_i)/abs(m^A_i) where m^A_i=sign(h^A_i) log(h^A_i), m^B_i=sign(h^B_i) log(h^B_i), h^A_i, h^B_i - Hu moments of A and B, respectively + + + + + cvCalcCovarMatrix method types + + + + + Calculates covariation matrix for a set of vectors + transpose([v1-avg, v2-avg,...]) * [v1-avg,v2-avg,...] + + + + + [v1-avg, v2-avg,...] * transpose([v1-avg,v2-avg,...]) + + + + + Do not calc average (i.e. mean vector) - use the input vector instead + (useful for calculating covariance matrix by parts) + + + + + Scale the covariance matrix coefficients by number of the vectors + + + + + All the input vectors are stored in a single matrix, as its rows + + + + + All the input vectors are stored in a single matrix, as its columns + + + + + Flag used for cvDCT + + + + + Do forward 1D or 2D transform. The result is not scaled + + + + + Do inverse 1D or 2D transform. The result is not scaled. CV_DXT_FORWARD and CV_DXT_INVERSE are mutually exclusive, of course + + + + + Do forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc + + + + + cvInvert method + + + + + Gaussian elimination with optimal pivot element chose + In case of LU method the function returns src1 determinant (src1 must be square). If it is 0, the matrix is not inverted and src2 is filled with zeros. + + + + + Singular value decomposition (SVD) method + In case of SVD methods the function returns the inversed condition number of src1 (ratio of the smallest singular value to the largest singular value) and 0 if src1 is all zeros. The SVD methods calculate a pseudo-inverse matrix if src1 is singular + + + + + Eig + + + + + method for a symmetric positively-defined matrix + + + + + QR decomposition + + + + + Normal + + + + + OpenCV depth type + + + + + Default + + + + + Byte + + + + + SByte + + + + + UInt16 + + + + + Int16 + + + + + Int32 + + + + + float + + + + + double + + + + + Distance transform algorithm flags + + + + + Connected component + + + + + The pixel + + + + + Defines for Distance Transform + + + + + User defined distance + + + + + distance = |x1-x2| + |y1-y2| + + + + + Simple euclidean distance + + + + + distance = max(|x1-x2|,|y1-y2|) + + + + + L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) + + + + + distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 + + + + + distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 + + + + + distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345 + + + + + Flag used for cvDFT + + + + + Do forward 1D or 2D transform. The result is not scaled + + + + + Do inverse 1D or 2D transform. The result is not scaled. CV_DXT_FORWARD and CV_DXT_INVERSE are mutually exclusive, of course + + + + + Scale the result: divide it by the number of array elements. Usually, it is combined with CV_DXT_INVERSE, and one may use a shortcut + + + + + Do forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc + + + + + Inverse and scale + + + + + Edge preserving filter flag + + + + + Recurs filter + + + + + Norm conv filter + + + + + IO type for eigen object related functions + + + + + No callback + + + + + Input callback + + + + + Output callback + + + + + Both callback + + + + + Shape of the Structuring Element + + + + + A rectangular element. + + + + + A cross-shaped element. + + + + + An elliptic element. + + + + + A user-defined element. + + + + + Error codes + + + + + Ok + + + + + Back trace + + + + + Error + + + + + Internal + + + + + No memory + + + + + Bad argument + + + + + Bad function + + + + + No Conv + + + + + Auto trace + + + + + Header is Null + + + + + Bad image size + + + + + Bad Offset + + + + + Bad Data pointer + + + + + Bad step + + + + + Bad model or chseq + + + + + Bad number of channels + + + + + Bad number of channels 1U + + + + + Bad depth + + + + + Bad Alpha channel + + + + + Bad Order + + + + + Bad origin + + + + + Bad Align + + + + + Bad callback + + + + + Bad tile size + + + + + Bad COI + + + + + Bad ROI size + + + + + Mask is tiled + + + + + Null Pointer + + + + + Vec length error + + + + + Filter Structure Content Error + + + + + Kernel Structure Content Error + + + + + Filter Offset Error + + + + + Bad Size + + + + + Division by zero + + + + + Inplace not supported + + + + + Object Not Found + + + + + Unmatched formats + + + + + Bad flag + + + + + Bad point + + + + + Bad mask + + + + + Unmatched sizes + + + + + Unsupported format + + + + + Out of range + + + + + Parse Error + + + + + Not Implemented + + + + + Bad memory block + + + + + Enumeration used by cvFlip + + + + + No flipping + + + + + Flip horizontally + + + + + Flip vertically + + + + + Type of floodfill operation + + + + + The default type + + + + + If set the difference between the current pixel and seed pixel is considered, + otherwise difference between neighbor pixels is considered (the range is floating). + + + + + If set, the function does not fill the image (new_val is ignored), + but the fills mask (that must be non-NULL in this case). + + + + + Calculates fundamental matrix given a set of corresponding points + + + + + for 7-point algorithm. N == 7 + + + + + for 8-point algorithm. N >= 8 + + + + + for LMedS algorithm. N >= 8 + + + + + for RANSAC algorithm. N >= 8 + + + + + CV_FM_LMEDS_ONLY | CV_FM_8POINT + + + + + CV_FM_RANSAC_ONLY | CV_FM_8POINT + + + + + Fonts + + + + + Hershey simplex + + + + + Hershey plain + + + + + Hershey duplex + + + + + Hershey complex + + + + + Hershey triplex + + + + + Hershey complex small + + + + + Hershey script simplex + + + + + Hershey script complex + + + + + Flags used for GEMM function + + + + + Do not apply transpose to neither matrices + + + + + transpose src1 + + + + + transpose src2 + + + + + transpose src3 + + + + + General enumeration + + + + + Max dim + + + + + Seq magic val + + + + + Set magic val + + + + + Grabcut initialization type + + + + + Initialize with rectangle + + + + + Initialize with mask + + + + + Eval + + + + + The types for haar detection + + + + + The default type where no optimization is done. + + + + + If it is set, the function uses Canny edge detector to reject some image regions that contain too few or too much edges and thus can not contain the searched object. The particular threshold values are tuned for face detection and in this case the pruning speeds up the processing + + + + + For each scale factor used the function will downscale the image rather than "zoom" the feature coordinates in the classifier cascade. Currently, the option can only be used alone, i.e. the flag can not be set together with the others + + + + + If it is set, the function finds the largest object (if any) in the image. That is, the output sequence will contain one (or zero) element(s) + + + + + It should be used only when CV_HAAR_FIND_BIGGEST_OBJECT is set and min_neighbors > 0. If the flag is set, the function does not look for candidates of a smaller size as soon as it has found the object (with enough neighbor candidates) at the current scale. Typically, when min_neighbors is fixed, the mode yields less accurate (a bit larger) object rectangle than the regular single-object mode (flags=CV_HAAR_FIND_BIGGEST_OBJECT), but it is much faster, up to an order of magnitude. A greater value of min_neighbors may be specified to improve the accuracy + + + + + HandEyeCalibration Method + + + + + A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibration + + + + + Robot Sensor Calibration: Solving AX = XB on the Euclidean Group + + + + + Hand-eye Calibration + + + + + On-line Hand-Eye Calibration + + + + + Hand-Eye Calibration Using Dual Quaternions + + + + + Histogram comparison method + + + + + Correlation + + + + + Chi-Square + + + + + Intersection + + + + + Bhattacharyya distance + + + + + Synonym for Bhattacharyya + + + + + Alternative Chi-Square + + + + + Hough detection type + + + + + Gradient + + + + + cvLoadImage type + + + + + If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). + + + + + If set, always convert image to the single channel grayscale image. + + + + + If set, always convert image to the 3 channel BGR color image. + + + + + If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit. + + + + + If set, the image is read in any possible color format. + + + + + If set, use the gdal driver for loading the image. + + + + + If set, always convert image to the single channel grayscale image and the image size reduced 1/2. + + + + + If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2. + + + + + If set, always convert image to the single channel grayscale image and the image size reduced 1/4. + + + + + If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4. + + + + + If set, always convert image to the single channel grayscale image and the image size reduced 1/8. + + + + + If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8. + + + + + Flags for Imwrite function + + + + + For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95. + + + + + Enable JPEG features, 0 or 1, default is False. + + + + + Enable JPEG features, 0 or 1, default is False. + + + + + JPEG restart interval, 0 - 65535, default is 0 - no restart. + + + + + Separate luma quality level, 0 - 100, default is 0 - don't use. + + + + + Separate chroma quality level, 0 - 100, default is 0 - don't use. + + + + + For PNG, it can be the compression level from 0 to 9. A higher value means a smaller size and longer compression time. Default value is 3. + + + + + One of cv::ImwritePNGFlags, default is IMWRITE_PNG_STRATEGY_DEFAULT. + + + + + Binary level PNG, 0 or 1, default is 0. + + + + + For PPM, PGM, or PBM, it can be a binary format flag, 0 or 1. Default value is 1. + + + + + For WEBP, it can be a quality from 1 to 100 (the higher is the better). By default (without any parameter) and for quality above 100 the lossless compression is used. + + + + + Inpaint type + + + + + Navier-Stokes based method. + + + + + The method by Alexandru Telea + + + + + Interpolation types + + + + + Nearest-neighbor interpolation + + + + + Bilinear interpolation + + + + + Resampling using pixel area relation. It is the preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method + + + + + Bicubic interpolation + + + + + Lanczos interpolation over 8x8 neighborhood + + + + + Bit exact bilinear interpolation + + + + + IPL_DEPTH + + + + + Indicates if the value is signed + + + + + 1bit unsigned + + + + + 8bit unsigned (Byte) + + + + + 16bit unsigned + + + + + 32bit float (Single) + + + + + 8bit signed + + + + + 16bit signed + + + + + 32bit signed + + + + + double + + + + + KMeans initialization type + + + + + Chooses random centers for k-Means initialization + + + + + Uses the user-provided labels for K-Means initialization + + + + + Uses k-Means++ algorithm for initialization + + + + + The type of line for drawing + + + + + Filled + + + + + 8-connected + + + + + 4-connected + + + + + Anti-alias + + + + + Type for cvCalcOpticalFlowPyrLK + + + + + The default type + + + + + Uses initial estimations, stored in nextPts; if the flag is not set, then prevPts is copied to nextPts and is considered the initial estimate. + + + + + use minimum eigen values as an error measure (see minEigThreshold description); if the flag is not set, then L1 distance between patches around the original and a moved point, divided by number of pixels in a window, is used as a error measure. + + + + + Morphology operation type + + + + + Erode + + + + + Dilate + + + + + Open + + + + + Close + + + + + Gradient + + + + + Top hat + + + + + Black hat + + + + + Hit or miss. Only supported for CV_8UC1 binary images. + + + + + Motion type for the FindTransformECC function + + + + + Sets a translational motion model; warpMatrix is 2x3 with the first 2x2 part being the unity matrix and the rest two parameters being estimated. + + + + + Sets a Euclidean (rigid) transformation as motion model; three parameters are estimated; warpMatrix is 2x3. + + + + + Sets an affine motion model (DEFAULT); six parameters are estimated; warpMatrix is 2x3. + + + + + Sets a homography as a motion model; eight parameters are estimated; warpMatrix is 3x3. + + + + + The types for MulSpectrums + + + + + The default type + + + + + Do forward or inverse transform of every individual row of the input matrix. This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc + + + + + Conjugate the second argument of cvMulSpectrums + + + + + The named window type + + + + + The user can resize the window (no constraint) / also use to switch a fullscreen window to a normal size + + + + + The user cannot resize the window, the size is constrainted by the image displayed + + + + + Window with opengl support + + + + + Change the window to fullscreen + + + + + The image expends as much as it can (no ratio constraint) + + + + + the ratio of the image is respected + + + + + Type for Norm + + + + + if arr2 is NULL, norm = ||arr1||_C = max_I abs(arr1(I)); + if arr2 is not NULL, norm = ||arr1-arr2||_C = max_I abs(arr1(I)-arr2(I)) + + + + + if arr2 is NULL, norm = ||arr1||_L1 = sum_I abs(arr1(I)); + if arr2 is not NULL, norm = ||arr1-arr2||_L1 = sum_I abs(arr1(I)-arr2(I)) + + + + + if arr2 is NULL, norm = ||arr1||_L2 = sqrt( sum_I arr1(I)^2); + if arr2 is not NULL, norm = ||arr1-arr2||_L2 = sqrt( sum_I (arr1(I)-arr2(I))^2 ) + + + + + Norm mask + + + + + It is used in combination with either CV_C, CV_L1 or CV_L2 + + + + + It is used in combination with either CV_C, CV_L1 or CV_L2 + + + + + Min Max + + + + + Diff C + + + + + Diff L1 + + + + + Diff L2 + + + + + norm = ||arr1-arr2||_C/||arr2||_C + + + + + norm = ||arr1-arr2||_L1/||arr2||_L1 + + + + + norm = ||arr1-arr2||_L2/||arr2||_L2 + + + + + The available flags for Farneback optical flow computation + + + + + Default + + + + + Use the input flow as the initial flow approximation + + + + + Use a Gaussian winsize x winsizefilter instead of box + filter of the same size for optical flow estimation. Usually, this option gives more accurate + flow than with a box filter, at the cost of lower speed (and normally winsize for a + Gaussian window should be set to a larger value to achieve the same level of robustness) + + + + + Orientation + + + + + Clockwise + + + + + Counter clockwise + + + + + PCA Type + + + + + the vectors are stored as rows (i.e. all the components of a certain vector are stored continously) + + + + + the vectors are stored as columns (i.e. values of a certain vector component are stored continuously) + + + + + use pre-computed average vector + + + + + Rectangle intersect type + + + + + No intersection + + + + + There is a partial intersection + + + + + One of the rectangle is fully enclosed in the other + + + + + Type used for Reduce function + + + + + The matrix is reduced to a single row + + + + + The matrix is reduced to a single column + + + + + The dimension is chosen automatically by analysing the dst size + + + + + Type used for Reduce function + + + + + The output is the sum of all the matrix rows/columns + + + + + The output is the mean vector of all the matrix rows/columns + + + + + The output is the maximum (column/row-wise) of all the matrix rows/columns + + + + + The output is the minimum (column/row-wise) of all the matrix rows/columns + + + + + Contour retrieval mode + + + + + Retrieve only the extreme outer contours + + + + + Retrieve all the contours and puts them in the list + + + + + Retrieve all the contours and organizes them into two-level hierarchy: top level are external boundaries of the components, second level are bounda boundaries of the holes + + + + + Retrieve all the contours and reconstructs the full hierarchy of nested contours + + + + + Type of Robust Estimation Algorithm + + + + + regular method using all the point pairs + + + + + Least-Median robust method + + + + + RANSAC-based robust method + + + + + RHO algorithm + + + + + The rotation type + + + + + Rotate 90 degrees clockwise + + + + + Rotate 180 degrees clockwise + + + + + Rotate 270 degrees clockwise + + + + + Sequence constants + + + + + The bit to shift for SEQ_ELTYPE + + + + + The mask of CV_SEQ_ELTYPE + + + + + The bits to shift for SEQ_KIND + + + + + The bits to shift for SEQ_FLAG + + + + + Sequence element type + + + + + (x,y) + + + + + freeman code: 0..7 + + + + + unspecified type of sequence elements + + + + + =6 + + + + + pointer to element of other sequence + + + + + index of element of some other sequence + + + + + next_o, next_d, vtx_o, vtx_d + + + + + first_edge, (x,y) + + + + + vertex of the binary tree + + + + + connected component + + + + + (x,y,z) + + + + + Sequence flag + + + + + Close sequence + + + + + Simple sequence + + + + + Convex sequence + + + + + Hole + + + + + The kind of sequence available + + + + + Generic (unspecified) kind of sequence + + + + + Dense sequence subtypes + + + + + Dense sequence subtypes + + + + + Sparse sequence (or set) subtypes + + + + + Sparse sequence (or set) subtypes + + + + + Sequence type for point sets + + + + + Point set + + + + + Point 3D set + + + + + Polyline + + + + + Polygon + + + + + Simple Polygon + + + + + Interpolation type + + + + + (simple blur with no scaling) - summation over a pixel param1 x param2 neighborhood. If the neighborhood size may vary, one may precompute integral image with cvIntegral function + + + + + (simple blur) - summation over a pixel param1 x param2 neighborhood with subsequent scaling by 1/(param1 x param2). + + + + + (Gaussian blur) - convolving image with param1 x param2 Gaussian kernel. + + + + + (median blur) - finding median of param1 x param1 neighborhood (i.e. the neighborhood is square). + + + + + (bilateral filter) - applying bilateral 3x3 filtering with color sigma=param1 and space sigma=param2. Information about bilateral filtering can be found + + + + + The return value for solveLP function + + + + + Problem is unbounded (target function can achieve arbitrary high values) + + + + + Problem is unfeasible (there are no points that satisfy all the constraints imposed) + + + + + There is only one maximum for target function + + + + + there are multiple maxima for target function - the arbitrary one is returned + + + + + Method for solving a PnP problem + + + + + Iterative + + + + + EPnP: Efficient Perspective-n-Point Camera Pose Estimation + F.Moreno-Noguer, V.Lepetit and P.Fua "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" + + + + + Complete Solution Classification for the Perspective-Three-Point Problem + X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang; "Complete Solution Classification for the Perspective-Three-Point Problem" + + + + + A Direct Least-Squares (DLS) Method for PnP + + + + + Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation + + + + + An Efficient Algebraic Solution to the Perspective-Three-Point Problem + + + + + Infinitesimal Plane-Based Pose Estimation. Object points must be coplanar. + + + + + Infinitesimal Plane-Based Pose Estimation. This is a special case suitable for marker pose estimation. + 4 coplanar object points must be defined in the following order: + - point 0: [-squareLength / 2, squareLength / 2, 0] + - point 1: [ squareLength / 2, squareLength / 2, 0] + - point 2: [ squareLength / 2, -squareLength / 2, 0] + - point 3: [-squareLength / 2, -squareLength / 2, 0] + + + + + Flags for sorting + + + + + Each matrix row is sorted independently + + + + + Each matrix column is sorted + independently; this flag and SortEveryRow are + mutually exclusive. + + + + + Each matrix row is sorted in the ascending order. + + + + + Each matrix row is sorted in the + descending order; this flag and SortAscending are also + mutually exclusive. + + + + + Stereo Block Matching Prefilter type + + + + + No prefilter + + + + + XSobel + + + + + Type used in cvStereoRectify + + + + + Shift one of the image in horizontal or vertical direction (depending on the orientation of epipolar lines) in order to maximise the useful image area + + + + + Makes the principal points of each camera have the same pixel coordinates in the rectified views + + + + + The file storage operation type + + + + + The storage is open for reading + + + + + The storage is open for writing + + + + + The storage is open for append + + + + + The result type of cvSubdiv2DLocate. + + + + + One of input arguments is invalid. + + + + + Point is outside the subdivision reference rectangle + + + + + Point falls into some facet + + + + + Point coincides with one of subdivision vertices + + + + + Point falls onto the edge + + + + + Type for cvSVD + + + + + The default type + + + + + Enables modification of matrix src1 during the operation. It speeds up the processing. + + + + + indicates that only a vector of singular values 'w' is to be processed, while u and vt will be set to empty matrices + + + + + when the matrix is not square, by default the algorithm produces u and vt matrices of + sufficiently large size for the further A reconstruction; if, however, FULL_UV flag is + specified, u and vt will be full-size square orthogonal matrices. + + + + + Methods for comparing two array + + + + + R(x,y)=sumx',y'[T(x',y')-I(x+x',y+y')]2 + + + + + R(x,y)=sumx',y'[T(x',y')-I(x+x',y+y')]2/sqrt[sumx',y'T(x',y')2 sumx',y'I(x+x',y+y')2] + + + + + R(x,y)=sumx',y'[T(x',y') I(x+x',y+y')] + + + + + R(x,y)=sumx',y'[T(x',y') I(x+x',y+y')]/sqrt[sumx',y'T(x',y')2 sumx',y'I(x+x',y+y')2] + + + + + R(x,y)=sumx',y'[T'(x',y') I'(x+x',y+y')], + where T'(x',y')=T(x',y') - 1/(wxh) sumx",y"T(x",y") + I'(x+x',y+y')=I(x+x',y+y') - 1/(wxh) sumx",y"I(x+x",y+y") + + + + + R(x,y)=sumx',y'[T'(x',y') I'(x+x',y+y')]/sqrt[sumx',y'T'(x',y')2 sumx',y'I'(x+x',y+y')2] + + + + + CV TERMCRIT type + + + + + Iteration + + + + + Epsilon + + + + + Types of thresholding + + + + + value = value > threshold ? max_value : 0 + + + + + value = value > threshold ? 0 : max_value + + + + + value = value > threshold ? threshold : value + + + + + value = value > threshold ? value : 0 + + + + + value = value > threshold ? 0 : value + + + + + Mask + + + + + use Otsu algorithm to choose the optimal threshold value; + combine the flag with one of the above CV_THRESH_* values + + + + + Use Triangle algorithm to choose the optimal threshold value + + + + + Types for WarpAffine + + + + + Neither FILL_OUTLIERS nor CV_WRAP_INVERSE_MAP + + + + + Fill all the destination image pixels. If some of them correspond to outliers in the source image, they are set to fillval. + + + + + Indicates that matrix is inverse transform from destination image to source and, thus, can be used directly for pixel interpolation. Otherwise, the function finds the inverse transform from map_matrix. + + + + + A deformable parts model detector + + + + + Create a new dpm detector with the specified files and classes + + A set of file names storing the trained detectors (models). Each file contains one model. + A set of trained models names. If it's empty then the name of each model will be constructed from the name of file containing the model. E.g. the model stored in "/home/user/cat.xml" will get the name "cat". + + + + Return true if the detector is empty + + + + + Get the class names + + + + + get the number of classes + + + + + Perform detection on the image + + The image for detection. + The detection result + + + + Dispose the unmanaged memory associated with this DPM + + + + + Provide interfaces to the Open CV DPM functions + + + + + A DPM detection + + + + + rectangle + + + + + detection score + + + + + class of the detection + + + + + create a detection + + The rectangle + The score + The class id + + + + Provide interfaces to the Open CV Saliency functions + + + + + Compute the saliency. + + The Saliency object + The image. + The computed saliency map. + true if the saliency map is computed, false otherwise + + + + Perform a binary map of given saliency map + + the saliency map obtained through one of the specialized algorithms + the binary map + The StatucSaliency object + True if the binary map is sucessfully computed + + + + A Fast Self-tuning Background Subtraction Algorithm. + + This background subtraction algorithm is inspired to the work of B. Wang and P. Dudek [2] [2] B. Wang and P. Dudek "A Fast Self-tuning Background Subtraction Algorithm", in proc of IEEE Workshop on Change Detection, 2014 + + + + Image width + + + + + Image height + + + + + This function allows the correct initialization of all data structures that will be used by the algorithm. + + The result + + + + constructor + + + + + Pointer to the unmanaged MotionSaliency object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + Objectness algorithms based on [3] [3] Cheng, Ming-Ming, et al. "BING: Binarized normed gradients for objectness estimation at 300fps." IEEE CVPR. 2014 + + + + + W + + + + + NSS + + + + + constructor + + + + + Pointer to the unmanaged Objectness object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + Return the list of the rectangles' objectness value. + + The list of the rectangles' objectness value. + + + + set the correct path from which the algorithm will load the trained model. + + The training path + + + + Base interface for Saliency algorithms + + + + + Pointer to the unmanaged Saliency object + + + + + Base interface for StaticSaliency algorithms + + + + + Pointer to the unmanaged StaticSaliency object + + + + + Base interface for MotionSaliency algorithms + + + + + Pointer to the unmanaged MotionSaliency object + + + + + Base interface for Objectness algorithms + + + + + Pointer to the unmanaged Objectness object + + + + + simulate the behavior of pre-attentive visual search + + + + + constructor + + + + + Pointer to the unmanaged StaticSaliency object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + The Fine Grained Saliency approach from + Sebastian Montabone and Alvaro Soto. Human detection using a mobile platform and novel features derived from a visual saliency mechanism. In Image and Vision Computing, Vol. 28 Issue 3, pages 391–402. Elsevier, 2010. + + This method calculates saliency based on center-surround differences. High resolution saliency maps are generated in real time by using integral images. + + + + constructor + + + + + Pointer to the unmanaged StaticSaliency object + + + + + Pointer to the unmanaged Saliency object + + + + + Pointer to the unmanaged Algorithm object + + + + + Release the unmanaged memory associated with this object + + + + + Class implementing BoostDesc (Learning Image Descriptors with Boosting). + + + See: + V. Lepetit T. Trzcinski, M. Christoudias and P. Fua. Boosting Binary Keypoint Descriptors. In Computer Vision and Pattern Recognition, 2013. + M. Christoudias T. Trzcinski and V. Lepetit. Learning Image Descriptors with Boosting. submitted to IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2013. + + + + + The type of descriptor + + + + + BGM is the base descriptor where each binary dimension is computed as the output of a single weak learner. + + + + + BGM_HARD refers to same BGM but use different type of gradient binning. In the BGM_HARD that use ASSIGN_HARD binning type the gradient is assigned to the nearest orientation bin. + + + + + BGM_BILINEAR refers to same BGM but use different type of gradient binning. In the BGM_BILINEAR that use ASSIGN_BILINEAR binning type the gradient is assigned to the two neighbouring bins. + + + + + LBGM (alias FP-Boost) is the floating point extension where each dimension is computed as a linear combination of the weak learner responses. + + + + + BINBOOST and subvariants are the binary extensions of LBGM where each bit is computed as a thresholded linear combination of a set of weak learners. + + + + + BINBOOST and subvariants are the binary extensions of LBGM where each bit is computed as a thresholded linear combination of a set of weak learners. + + + + + BINBOOST and subvariants are the binary extensions of LBGM where each bit is computed as a thresholded linear combination of a set of weak learners. + + + + + Create an instance of Boost Descriptor + + type of descriptor to use + sample patterns using keypoints orientation + adjust the sampling window of detected keypoints 6.25f is default and fits for KAZE, SURF detected keypoints window ratio 6.75f should be the scale for SIFT detected keypoints window ratio 5.00f should be the scale for AKAZE, MSD, AGAST, FAST, BRISK keypoints window ratio 0.75f should be the scale for ORB keypoints ratio 1.50f was the default in original implementation + + + + Release all the unmanaged resource associated with BRIEF + + + + + This class wraps the functional calls to the OpenCV XFeatures2D modules + + + + + GMS (Grid-based Motion Statistics) feature matching strategy + + Input size of image1. + Input size of image2. + Input keypoints of image1. + Input keypoints of image2. + Input 1-nearest neighbor matches. + Matches returned by the GMS matching strategy. + Take rotation transformation into account. + Take scale transformation into account. + The higher, the less matches. + + + + BRIEF Descriptor + + + + + Create a BRIEF descriptor extractor. + + The size of descriptor. It can be equal 16, 32 or 64 bytes. + + + + Release all the unmanaged resource associated with BRIEF + + + + + Daisy descriptor. + + + + + Create DAISY descriptor extractor + + Radius of the descriptor at the initial scale. + Amount of radial range division quantity. + Amount of angular range division quantity. + Amount of gradient orientations range division quantity. + Descriptors normalization type. + optional 3x3 homography matrix used to warp the grid of daisy but sampling keypoints remains unwarped on image + Switch to disable interpolation for speed improvement at minor quality loss + Sample patterns using keypoints orientation, disabled by default. + + + + Normalization type + + + + + Will not do any normalization (default) + + + + + Histograms are normalized independently for L2 norm equal to 1.0 + + + + + Descriptors are normalized for L2 norm equal to 1.0 + + + + + Descriptors are normalized for L2 norm equal to 1.0 but no individual one is bigger than 0.154 as in SIFT + + + + + Release all the unmanaged resource associated with BRIEF + + + + + The FREAK (Fast Retina Keypoint) keypoint descriptor: + Alahi, R. Ortiz, and P. Vandergheynst. FREAK: Fast Retina Keypoint. In IEEE Conference on Computer + Vision and Pattern Recognition, 2012. CVPR 2012 Open Source Award Winner. + The algorithm + propose a novel keypoint descriptor inspired by the human visual system and more precisely the retina, coined Fast + Retina Key- point (FREAK). A cascade of binary strings is computed by efficiently comparing image intensities over a + retinal sampling pattern. FREAKs are in general faster to compute with lower memory load and also more robust than + SIFT, SURF or BRISK. They are competitive alternatives to existing keypoints in particular for embedded applications. + + + + + Create a Freak descriptor extractor. + + Enable orientation normalization + Enable scale normalization + Scaling of the description pattern + Number of octaves covered by the detected keypoints. + + + + Release all the unmanaged resource associated with FREAK + + + + + Class implementing the Harris-Laplace feature detector + + + + + Create a HarrisLaplaceFeatureDetector + + the number of octaves in the scale-space pyramid + the threshold for the Harris cornerness measure + the threshold for the Difference-of-Gaussians scale selection + the maximum number of corners to consider + the number of intermediate scales per octave + + + + Release all the unmanaged resource associated with FREAK + + + + + latch Class for computing the LATCH descriptor. + If you find this code useful, please add a reference to the following paper in your work: + Gil Levi and Tal Hassner, "LATCH: Learned Arrangements of Three Patch Codes", arXiv preprint arXiv:1501.03719, 15 Jan. 2015 + LATCH is a binary descriptor based on learned comparisons of triplets of image patches. + + + + + Create LATCH descriptor extractor + + The size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1 + Whether or not the descriptor should compensate for orientation changes. + the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x + then the half_ssd_size should be (7-1)/2 = 3. + + + + Release all the unmanaged resource associated with BRIEF + + + + + The locally uniform comparison image descriptor: + An image descriptor that can be computed very fast, while being + about as robust as, for example, SURF or BRIEF. + + + + + Create a locally uniform comparison image descriptor. + + Kernel for descriptor construction, where 1=3x3, 2=5x5, 3=7x7 and so forth + kernel for blurring image prior to descriptor construction, where 1=3x3, 2=5x5, 3=7x7 and so forth + + + + Release all the unmanaged resource associated with BRIEF + + + + + Class implementing the MSD (Maximal Self-Dissimilarity) keypoint detector, described in "Federico Tombari and Luigi Di Stefano. Interest points via maximal self-dissimilarities. In Asian Conference on Computer Vision - ACCV 2014, 2014". + + The algorithm implements a novel interest point detector stemming from the intuition that image patches which are highly dissimilar over a relatively large extent of their surroundings hold the property of being repeatable and distinctive. This concept of "contextual self-dissimilarity" reverses the key paradigm of recent successful techniques such as the Local Self-Similarity descriptor and the Non-Local Means filter, which build upon the presence of similar - rather than dissimilar - patches. Moreover, it extends to contextual information the local self-dissimilarity notion embedded in established detectors of corner-like interest points, thereby achieving enhanced repeatability, distinctiveness and localization accuracy. + + + + Create a MSD (Maximal Self-Dissimilarity) keypoint detector. + + Patch radius + Search area raduis + Nms radius + Nms scale radius + Th saliency + Knn + Scale factor + N scales + Compute orientation + + + + Release all the unmanaged resource associated with MSDDetector + + + + + Class implementing PCT (position-color-texture) signature extraction as described in: + Martin Krulis, Jakub Lokoc, and Tomas Skopal. Efficient extraction of clustering-based feature signatures using GPU architectures. Multimedia Tools Appl., 75(13):8071–8103, 2016. + The algorithm is divided to a feature sampler and a clusterizer. Feature sampler produces samples at given set of coordinates. Clusterizer then produces clusters of these samples using k-means algorithm. Resulting set of clusters is the signature of the input image. + A signature is an array of SIGNATURE_DIMENSION-dimensional points.Used dimensions are: weight, x, y position; lab color, contrast, entropy. + + + + + Color resolution of the greyscale bitmap represented in allocated bits (i.e., value 4 means that 16 shades of grey are used). The greyscale bitmap is used for computing contrast and entropy values. + + + + + Size of the texture sampling window used to compute contrast and entropy. (center of the window is always in the pixel selected by x,y coordinates of the corresponding feature sample). + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Weights (multiplicative constants) that linearly stretch individual axes of the feature space. (x,y = position. L,a,b = color in CIE Lab space. c = contrast. e = entropy) + + + + + Number of iterations of the k-means clustering. We use fixed number of iterations, since the modified clustering is pruning clusters (not iteratively refining k clusters). + + + + + Maximal number of generated clusters. If the number is exceeded, the clusters are sorted by their weights and the smallest clusters are cropped. + + + + + This parameter multiplied by the index of iteration gives lower limit for cluster size. Clusters containing fewer points than specified by the limit have their centroid dismissed and points are reassigned. + + + + + Threshold euclidean distance between two centroids. If two cluster centers are closer than this distance, one of the centroid is dismissed and points are reassigned. + + + + + Remove centroids in k-means whose weight is lesser or equal to given threshold. + + + + + Distance function selector used for measuring distance between two points in k-means. + + + + + Point distributions supported by random point generator. + + + + + Generate numbers uniformly. + + + + + Generate points in a regular grid. + + + + Generate points with normal (gaussian) distribution. + + + + Creates PCTSignatures algorithm using sample and seed count. It generates its own sets of sampling points and clusterization seed indexes. + + Number of points used for image sampling. + Number of initial clusterization seeds. Must be lower or equal to initSampleCount + Distribution of generated points. + + + + Creates PCTSignatures algorithm using pre-generated sampling points and number of clusterization seeds. It uses the provided sampling points and generates its own clusterization seed indexes. + + Sampling points used in image sampling. + Number of initial clusterization seeds. Must be lower or equal to initSamplingPoints.size(). + + + + Creates PCTSignatures algorithm using pre-generated sampling points and clusterization seeds indexes. + + Sampling points used in image sampling. + Indexes of initial clusterization seeds. Its size must be lower or equal to initSamplingPoints.size(). + + + + Release the unmanaged memory associated with this PCTSignatures object + + + + + Computes signature of given image. + + Input image of CV_8U type. + Output computed signature. + + + + Draws signature in the source image and outputs the result. Signatures are visualized as a circle with radius based on signature weight and color based on signature color. Contrast and entropy are not visualized. + + Source image. + Image signature. + Output result. + Determines maximal radius of signature in the output image. + Border thickness of the visualized signature. + + + + Class implementing Signature Quadratic Form Distance (SQFD). + + See also: Christian Beecks, Merih Seran Uysal, Thomas Seidl. Signature quadratic form distance. In Proceedings of the ACM International Conference on Image and Video Retrieval, pages 438-445. ACM, 2010. + + + + Lp distance function selector. + + + + + L0_25 + + + + + L0_5 + + + + + L1 + + + + + L2 + + + + + L2 squared + + + + + L5 + + + + + L infinity + + + + + Similarity function selector. + + + + + -d(c_i, c_j) + + + + + e^{ -alpha * d^2(c_i, c_j)} + + + + + 1 / (alpha + d(c_i, c_j)) + + + + + Creates the algorithm instance using selected distance function, similarity function and similarity function parameter. + + Distance function selector. + Similarity function selector. + Parameter of the similarity function. + + + + Computes Signature Quadratic Form Distance of two signatures. + + The first signature. + The second signature. + The Signature Quadratic Form Distance of two signatures + + + + Computes Signature Quadratic Form Distance between the reference signature and each of the other image signatures. + + The signature to measure distance of other signatures from. + Vector of signatures to measure distance from the source signature. + Output vector of measured distances. + + + + Release the unmanaged memory associated with this PCTSignaturesSQFD object + + + + + StarDetector + + + + + Create a star detector with the specific parameters + + + Maximum size of the features. The following + values of the parameter are supported: + 4, 6, 8, 11, 12, 16, 22, 23, 32, 45, 46, 64, 90, 128 + + Threshold for the approximated laplacian, + used to eliminate weak features. The larger it is, + the less features will be retrieved + + + Another threshold for the laplacian to eliminate edges. + The larger the threshold, the more points you get. + + + Another threshold for the feature size to eliminate edges. + The larger the threshold, the more points you get. + + Suppress Nonmax Size + + + + + Release the unmanaged memory associated with this detector. + + + + + Class implementing VGG (Oxford Visual Geometry Group) descriptor trained end to end using "Descriptor Learning Using Convex Optimisation" (DLCO) aparatus + + See: K. Simonyan, A. Vedaldi, and A. Zisserman. Learning local feature descriptors using convex optimisation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014. + + + + The VGG descriptor type + + + + + 120 dimension float + + + + + 80 dimension float + + + + + 64 dimension float + + + + + 48 dimension float + + + + + Create an instance of VGG + + Type of descriptor to use + gaussian kernel value for image blur + use image sample intensity normalization + sample patterns using keypoints orientation + adjust the sampling window of detected keypoints to 64.0f (VGG sampling window) 6.25f is default and fits for KAZE, SURF detected keypoints window ratio 6.75f should be the scale for SIFT detected keypoints window ratio 5.00f should be the scale for AKAZE, MSD, AGAST, FAST, BRISK keypoints window ratio 0.75f should be the scale for ORB keypoints ratio + clamp descriptors to 255 and convert to uchar CV_8UC1 + + + + Release all the unmanaged resource associated with VGG + + + + + Basic Face Recognizer + + + + + The native pointer to the BasicFaceRecognizer object + + + + + Implementation of bio-inspired features (BIF) from the paper: Guo, Guodong, et al. "Human age estimation using bio-inspired features." Computer Vision and Pattern Recognition, 2009. CVPR 2009. + + + + + Create an instance of bio-inspired features + + The number of filter bands used for computing BIF. + The number of image rotations. + + + + Computes features by input image. + + Input image (CV_32FC1) + Feature vector (CV_32FC1) + + + + Release the unmanaged memory associated with this BIF + + + + + Class that contains entry points for the Face module. + + + Class that contains entry points for the Face module. + + + Class that contains entry points for the Face module. + + + Class that contains entry points for the Face module. + + + + + A function to load the trained model before the fitting process. + + The facemark object + A string represent the filename of a trained model. + + + + Trains a Facemark algorithm using the given dataset. + + The facemark object + Input image. + Represent region of interest of the detected faces. Each face is stored in cv::Rect container. + The detected landmark points for each faces. + True if successful + + + + Utility to draw the detected facial landmark points. + + The input image to be processed. + Contains the data of points which will be drawn. + The color of points in BGR format + + + + Eigen face recognizer + + + + + Create an EigenFaceRecognizer + + The number of components + The distance threshold + + + + Release the unmanaged memory associated with this EigenFaceRecognizer + + + + + Parameters for the FacemarkAAM model + + + + + Create the paramaters with the default values. + + + + + Release the unmanaged memory associated with this object. + + + + + filename where the trained model will be saved + + + + + M + + + + + N + + + + + Number of iteration + + + + + show the training print-out + + + + + flag to save the trained model or not + + + + + The maximum value of M + + + + + The maximum value of N + + + + + The Facemark AMM model + + + + + Pointer to the unmanaged Facemark object + + + + + Pointer to the unmanaged Algorithm object + + + + + Create an instance of FacemarkAAM model + + The model parameters + + + + Release all the unmanaged memory associated with this Facemark + + + + + Parameters for the FacemarkLBF model + + + + + Create the paramaters with the default values. + + + + + Release the unmanaged memory associated with this object. + + + + + offset for the loaded face landmark points + + + + + show the training print-out + + + + + number of landmark points + + + + + multiplier for augment the training data + + + + + number of refinement stages + + + + + number of tree in the model for each landmark point refinement + + + + + the depth of decision tree, defines the size of feature + + + + + overlap ratio for training the LBF feature + + + + + flag to save the trained model or not + + + + + filename of the face detector model + + + + + filename where the trained model will be saved + + + + + The FacemarkLBF model + + + + + Pointer to the unmanaged Facemark object + + + + + Pointer to the unmanaged Algorithm object + + + + + Create an instance of the FacemarkLBF model + + The model parameters + + + + Release all the unmanaged memory associated with this Facemark + + + + + Face Recognizer + + + + + The native pointer to the FaceRecognizer object + + + + + Train the face recognizer with the specific images and labels + + The images used in the training. This can be a VectorOfMat + The labels of the images. This can be a VectorOfInt + + + + Train the face recognizer with the specific images and labels + + The images used in the training. + The labels of the images. + + + + Predict the label of the image + + The image where prediction will be based on + The prediction label + + + + The prediction result + + + + + The label + + + + + The distance + + + + + Save the FaceRecognizer to a file + + The file name to be saved to + + + + Load the FaceRecognizer from the file + + The file where the FaceRecognizer will be loaded from + + + + Release the unmanaged memory associated with this FaceRecognizer + + + + + Fisher face recognizer + + + + + Create a FisherFaceRecognizer + + The number of components + The distance threshold + + + + Release the unmanaged memory associated with this FisherFaceRecognizer + + + + + Interface to the Facemark class + + + + + Return the pointer to the Facemark object + + The pointer to the Facemark object + + + + LBPH face recognizer + + + + + Create a LBPH face recognizer + + Radius + Neighbors + Grid X + Grid Y + The distance threshold + + + + Updates a FaceRecognizer with given data and associated labels. + + The training images, that means the faces you want to learn. The data has to be given as a VectorOfMat. + The labels corresponding to the images + + + + Update the face recognizer with the specific images and labels + + The images used for updating the face recognizer + The labels of the images + + + + Release the unmanaged memory associated with this FisherFaceRecognizer + + + + + Minimum Average Correlation Energy Filter useful for authentication with (cancellable) biometrical features. (does not need many positives to train (10-50), and no negatives at all, also robust to noise/salting) + + + + + Create a new MACE object + + images will get resized to this (should be an even number) + + + + optionally encrypt images with random convolution + + a crc64 random seed will get generated from this + + + + train it on positive features compute the mace filter: h = D(-1) * X * (X(+) * D(-1) * X)(-1) * C also calculate a minimal threshold for this class, the smallest self-similarity from the train images + + A VectorOfMat with the train images + + + + correlate query img and threshold to min class value + + a Mat with query image + True if the query is the same + + + + Release the unmanaged memory associated with this BIF + + + + + Base class for 1st and 2nd stages of Neumann and Matas scene text detection algorithm + + + + + The native pointer to the shared object. + + + + + Release all the unmanaged memory associate with this ERFilter + + + + + Takes image on input and returns the selected regions in a vector of ERStat only distinctive ERs which correspond to characters are selected by a sequential classifier + + Single channel image CV_8UC1 + Output for the 1st stage and Input/Output for the 2nd. The selected Extremal Regions are stored here. + + + + The grouping method + + + + + Only perform grouping horizontally. + + + + + Perform grouping in any orientation. + + + + + Find groups of Extremal Regions that are organized as text blocks. + + The image where ER grouping is to be perform on + Array of single channel images from which the regions were extracted + Vector of ER’s retrieved from the ERFilter algorithm from each channel + The XML or YAML file with the classifier model (e.g. trained_classifier_erGrouping.xml) + The minimum probability for accepting a group. + The grouping methods + The output of the algorithm that indicates the text regions + + + + Extremal Region Filter for the 1st stage classifier of N&M algorithm + + + + + Create an Extremal Region Filter for the 1st stage classifier of N&M algorithm + + The file name of the classifier + Threshold step in subsequent thresholds when extracting the component tree. + The minimum area (% of image size) allowed for retreived ER’s. + The maximum area (% of image size) allowed for retreived ER’s. + The minimum probability P(er|character) allowed for retreived ER’s. + Whenever non-maximum suppression is done over the branch probabilities. + The minimum probability difference between local maxima and local minima ERs. + + + + Extremal Region Filter for the 2nd stage classifier of N&M algorithm + + + + + Create an Extremal Region Filter for the 2nd stage classifier of N&M algorithm + + The file name of the classifier + The minimum probability P(er|character) allowed for retreived ER’s. + + + + computeNMChannels operation modes + + + + + A combination of red (R), green (G), blue (B), lightness (L), and gradient + magnitude (Grad). + + + + + In N&M algorithm, the combination of intensity (I), hue (H), saturation (S), and gradient magnitude + channels (Grad) are used in order to obtain high localization recall. + + + + + This class wraps the functional calls to the OpenCV Text modules + + + + + Converts MSER contours (vector of point) to ERStat regions. + + Source image CV_8UC1 from which the MSERs where extracted. + Input vector with all the contours (vector of Point). + Output where the ERStat regions are stored. + + + + Compute the different channels to be processed independently in the N&M algorithm. + + Source image. Must be RGB CV_8UC3. + Output vector of Mat where computed channels are stored. + Mode of operation + + + + The ERStat structure represents a class-specific Extremal Region (ER). + An ER is a 4-connected set of pixels with all its grey-level values smaller than the values in its outer boundary. + A class-specific ER is selected (using a classifier) from all the ER’s in the component tree of the image. + + + + + Seed point + + + + + Threshold (max grey-level value) + + + + + Area + + + + + Perimeter + + + + + Euler number + + + + + Bounding box + + + + + Order 1 raw moments to derive the centroid + + + + + Order 1 raw moments to derive the centroid + + + + + Order 2 central moments to construct the covariance matrix + + + + + Order 2 central moments to construct the covariance matrix + + + + + Order 2 central moments to construct the covariance matrix + + + + + Pointer owner to horizontal crossings + + + + + Pointer to horizontal crossings + + + + + Median of the crossings at three different height levels + + + + + Hole area ratio + + + + + Convex hull ratio + + + + + Number of inflexion points + + + + + Get the pixels list. + + + + + Probability that the ER belongs to the class we are looking for + + + + + Pointer to the parent ERStat + + + + + Pointer to the child ERStat + + + + + Pointer to the next ERStat + + + + + Pointer to the previous ERStat + + + + + If or not the regions is a local maxima of the probability + + + + + Pointer to the ERStat that is the max probability ancestor + + + + + Pointer to the ERStat that is the min probability ancestor + + + + + Get the center of the region + + The source image width + The center of the region + + + + Wrapped class of the C++ standard vector of ERStat. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of ERStat + + + + + Create an standard vector of ERStat of the specific size + + The size of the vector + + + + Create an standard vector of ERStat with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of ERStat + + An array of ERStat + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Wrapped class of the C++ standard vector of VectorOfERStat. + + + + + Create an empty standard vector of VectorOfERStat + + + + + Create an standard vector of VectorOfERStat of the specific size + + The size of the vector + + + + Create an standard vector of VectorOfERStat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Create the standard vector of VectorOfERStat + + + + + Convert the standard vector to arrays of int + + Arrays of int + + + + Draw UTF-8 strings with freetype/harfbuzz. + + + + + Create instance to draw UTF-8 strings. + + + + + Native algorithm pointer + + + + + Load font data. + + FontFile Name + Face index to select a font faces in a single file. + + + + Set the number of split points from bezier-curve to line. If you want to draw large glyph, large is better. If you want to draw small glyph, small is better. + + Number of split points from bezier-curve to line + + + + Renders the specified text string in the image. Symbols that cannot be rendered using the specified font are replaced by "Tofu" or non-drawn. + + Image. + Text string to be drawn. + Bottom-left/Top-left corner of the text string in the image. + Drawing font size by pixel unit. + Text color. + Thickness of the lines used to draw a text when negative, the glyph is filled. Otherwise, the glyph is drawn with this thickness. + Line type + When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner. + + + + Calculates the width and height of a text string. + + Input text string. + Drawing font size by pixel unit. + Thickness of lines used to render the text. + y-coordinate of the baseline relative to the bottom-most text point. + The approximate size of a box that contains the specified text + + + + Release all the unmanaged memory associate with this object + + + + + This class wraps the functional calls to the OpenCV Freetype modules + + + + + Background subtraction based on counting. + + About as fast as MOG2 on a high end system. More than twice faster than MOG2 on cheap hardware (benchmarked on Raspberry Pi3). + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Creates a CNT Background Subtractor. + + number of frames with same pixel color to consider stable + determines if we're giving a pixel credit for being stable for a long time + maximum allowed credit for a pixel in history + determines if we're parallelizing the algorithm + + + + Release all the unmanaged memory associated with this background model. + + + + + Background Subtractor module based on the algorithm given in: + Andrew B. Godbehere, Akihiro Matsukawa, Ken Goldberg, + "Visual Tracking of Human Visitors under Variable-Lighting Conditions for a Responsive Audio Art Installation", + American Control Conference, Montreal, June 2012. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a background subtractor module based on GMG + + Number of frames used to initialize the background models. + Threshold value, above which it is marked foreground, else background. + + + + Release all the unmanaged memory associated with this background model. + + + + + Implementation of the different yet better algorithm which is called GSOC, as it was implemented during GSOC and was not originated from any paper. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Creates an instance of BackgroundSubtractorGSOC algorithm. + + Whether to use camera motion compensation. + Number of samples to maintain at each point of the frame. + Probability of replacing the old sample - how fast the model will update itself. + Probability of propagating to neighbors. + How many positives the sample must get before it will be considered as a possible replacement. + Scale coefficient for threshold. + Bias coefficient for threshold. + Blinking supression decay factor. + Blinking supression multiplier. + Strength of the noise removal for background points. + Strength of the noise removal for foreground points. + + + + Release all the unmanaged memory associated with this background model. + + + + + Background Subtraction using Local SVD Binary Pattern. + + More details about the algorithm can be found at: L. Guo, D. Xu, and Z. Qiang. Background subtraction using local svd binary pattern. In 2016 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), pages 1159–1167, June 2016. + + + + Camera Motion compensation mode + + + + + None + + + + + Use LK camera compensation + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Creates an instance of BackgroundSubtractorLSBP algorithm. + + Whether to use camera motion compensation. + Number of samples to maintain at each point of the frame. + LSBP descriptor radius. + Lower bound for T-values. + Upper bound for T-values. + Increase step for T-values. + Decrease step for T-values. + Scale coefficient for threshold values. + Increase/Decrease step for threshold values. + Strength of the noise removal for background points. + Strength of the noise removal for foreground points. + Threshold for LSBP binary string. + Minimal number of matches for sample to be considered as foreground. + + + + Release all the unmanaged memory associated with this background model. + + + + + Gaussian Mixture-based Background/Foreground Segmentation Algorithm. + The class implements the following algorithm: + "An improved adaptive background mixture model for real-time tracking with shadow detection" + P. KadewTraKuPong and R. Bowden, + Proc. 2nd European Workshp on Advanced Video-Based Surveillance Systems, 2001." + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create an "Improved adaptive Gaussian mixture model for background subtraction". + + The length of the history. + The maximum number of gaussian mixtures. + Background ratio + Noise strength (standard deviation of the brightness or each color channel). 0 means some automatic value. + + + + Release all the unmanaged memory associated with this background model. + + + + + Class that contains entry points for the Contrib module. + + + + + Disparity map filter based on Weighted Least Squares filter (in form of Fast Global Smoother that is a lot faster than traditional Weighted Least Squares filter implementations) and optional use of left-right-consistency-based confidence to refine the results in half-occlusions and uniform areas. + + + + + Pointer to cv::Algorithm + + + + + Pointer to the native DisparityFilter + + + + + Creates an instance of DisparityWLSFilter and sets up all the relevant filter parameters automatically based on the matcher instance. Currently supports only StereoBM and StereoSGBM. + + stereo matcher instance that will be used with the filter + + + + Create instance of DisparityWLSFilter and execute basic initialization routines. When using this method you will need to set-up the ROI, matchers and other parameters by yourself. + + Filtering with confidence requires two disparity maps (for the left and right views) and is approximately two times slower. However, quality is typically significantly better. + + + + Release the unmanaged memory associated with this DisparityWLSFilter + + + + + The matcher for computing the right-view disparity map that is required in case of filtering with confidence. + + + + + Pointer to the stereo matcher + + + + + Set up the matcher for computing the right-view disparity map that is required in case of filtering with confidence. + + Main stereo matcher instance that will be used with the filter + + + + Release the unmanaged memory associated with the RightMatcher + + + + + Library to invoke XImgproc functions + + + Extended Image Processing + + + + + Apply filtering to the disparity map. + + The disparity filter + Disparity map of the left view, 1 channel, CV_16S type. Implicitly assumes that disparity values are scaled by 16 (one-pixel disparity corresponds to the value of 16 in the disparity map). Disparity map can have any resolution, it will be automatically resized to fit left_view resolution. + Left view of the original stereo-pair to guide the filtering process, 8-bit single-channel or three-channel image. + Output disparity map. + Optional argument, some implementations might also use the disparity map of the right view to compute confidence maps, for instance. + Region of the disparity map to filter. Optional, usually it should be set automatically. + Optional argument, some implementations might also use the right view of the original stereo-pair. + + + + Applies the joint bilateral filter to an image. + + Joint 8-bit or floating-point, 1-channel or 3-channel image. + Source 8-bit or floating-point, 1-channel or 3-channel image with the same depth as joint image. + Destination image of the same size and type as src . + Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace . + Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace ) will be mixed together, resulting in larger areas of semi-equal color. + Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0 , it specifies the neighborhood size regardless of sigmaSpace . Otherwise, d is proportional to sigmaSpace . + Border type + + + + Applies the bilateral texture filter to an image. It performs structure-preserving texture filter. + + Source image whose depth is 8-bit UINT or 32-bit FLOAT + Destination image of the same size and type as src. + Radius of kernel to be used for filtering. It should be positive integer + Number of iterations of algorithm, It should be positive integer + Controls the sharpness of the weight transition from edges to smooth/texture regions, where a bigger value means sharper transition. When the value is negative, it is automatically calculated. + Range blur parameter for texture blurring. Larger value makes result to be more blurred. When the value is negative, it is automatically calculated as described in the paper. + For more details about this filter see: Hojin Cho, Hyunjoon Lee, Henry Kang, and Seungyong Lee. Bilateral texture filtering. ACM Transactions on Graphics, 33(4):128:1–128:8, July 2014. + + + + Applies the rolling guidance filter to an image + + Source 8-bit or floating-point, 1-channel or 3-channel image. + Destination image of the same size and type as src. + Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace . + Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace ) will be mixed together, resulting in larger areas of semi-equal color. + Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0 , it specifies the neighborhood size regardless of sigmaSpace . Otherwise, d is proportional to sigmaSpace . + Number of iterations of joint edge-preserving filtering applied on the source image. + Border type + + + + Simple one-line Fast Global Smoother filter call. + + image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels. + source image for filtering with unsigned 8-bit or signed 16-bit or floating-point 32-bit depth and up to 4 channels. + destination image. + parameter defining the amount of regularization + parameter, that is similar to color space sigma in bilateralFilter. + internal parameter, defining how much lambda decreases after each iteration. Normally, it should be 0.25. Setting it to 1.0 may lead to streaking artifacts. + number of iterations used for filtering, 3 is usually enough. + + + + Global image smoothing via L0 gradient minimization. + + Source image for filtering with unsigned 8-bit or signed 16-bit or floating-point depth. + Destination image. + Parameter defining the smooth term weight. + Parameter defining the increasing factor of the weight of the gradient data term. + + + + Simple one-line Adaptive Manifold Filter call. + + joint (also called as guided) image or array of images with any numbers of channels. + filtering image with any numbers of channels. + output image. + spatial standard deviation. + color space standard deviation, it is similar to the sigma in the color space into bilateralFilter. + optional, specify perform outliers adjust operation or not, (Eq. 9) in the original paper. + + + + Simple one-line Guided Filter call. + + guided image (or array of images) with up to 3 channels, if it have more then 3 channels then only first 3 channels will be used. + filtering image with any numbers of channels. + output image. + radius of Guided Filter. + regularization term of Guided Filter. eps^2 is similar to the sigma in the color space into bilateralFilter. + optional depth of the output image. + + + + Simple one-line Domain Transform filter call. + + guided image (also called as joint image) with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels. + filtering image with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels. + output image + parameter in the original article, it's similar to the sigma in the coordinate space into bilateralFilter. + parameter in the original article, it's similar to the sigma in the color space into bilateralFilter. + Dt filter mode + optional number of iterations used for filtering, 3 is quite enough. + + + + Niblack threshold + + The source image + The output result + Value that defines which local binarization algorithm should be used. + Block size + delta + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + + + + Computes the estimated covariance matrix of an image using the sliding window forumlation. + + The source image. Input image must be of a complex type. + The destination estimated covariance matrix. Output matrix will be size (windowRows*windowCols, windowRows*windowCols). + The number of rows in the window. + The number of cols in the window. The window size parameters control the accuracy of the estimation. The sliding window moves over the entire image from the top-left corner to the bottom right corner. Each location of the window represents a sample. If the window is the size of the image, then this gives the exact covariance matrix. For all other cases, the sizes of the window will impact the number of samples and the number of elements in the estimated covariance matrix. + + + + Applies weighted median filter to an image. + + Joint 8-bit, 1-channel or 3-channel image. + Source 8-bit or floating-point, 1-channel or 3-channel image. + Destination image. + Radius of filtering kernel, should be a positive integer. + Filter range standard deviation for the joint image. + The type of weight definition + A 0-1 mask that has the same size with I. This mask is used to ignore the effect of some pixels. If the pixel value on mask is 0, the pixel will be ignored when maintaining the joint-histogram. This is useful for applications like optical flow occlusion handling. + For more details about this implementation, please see: Qi Zhang, Li Xu, and Jiaya Jia. 100+ times faster weighted median filter (wmf). In Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, pages 2830–2837. IEEE, 2014. + + + + Applies Paillou filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32F image with same number of channel than op. + see paper + see paper + For more details about this implementation, please see: Philippe Paillou. Detecting step edges in noisy sar images: a new linear operator. IEEE transactions on geoscience and remote sensing, 35(1):191–196, 1997. + + + + Applies Paillou filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32F image with same number of channel than op. + see paper + see paper + For more details about this implementation, please see: Philippe Paillou. Detecting step edges in noisy sar images: a new linear operator. IEEE transactions on geoscience and remote sensing, 35(1):191–196, 1997. + + + + Applies Y Deriche filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32FC image with same number of channel than _op. + see paper + see paper + For more details about this implementation, please see here + + + + Applies X Deriche filter to an image. + + Source 8-bit or 16bit image, 1-channel or 3-channel image. + result CV_32FC image with same number of channel than _op. + see paper + see paper + For more details about this implementation, please see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.476.5736&rep=rep1&type=pdf + + + + Applies a binary blob thinning operation, to achieve a skeletization of the input image. + The function transforms a binary blob image into a skeletized form using the technique of Zhang-Suen. + + Source 8-bit single-channel image, containing binary blobs, with blobs having 255 pixel values. + Destination image of the same size and the same type as src. The function can work in-place. + Value that defines which thinning algorithm should be used. + + + + Performs anisotropic diffusion on an image. + + Grayscale Source image. + Destination image of the same size and the same number of channels as src . + The amount of time to step forward by on each iteration (normally, it's between 0 and 1). + sensitivity to the edges + The number of iterations + + + + Brighten the edges of the image + + The source image + The result + Contrast + Short Range + Long Range + + + + Interface for realizations of Domain Transform filter. + + + + + The three modes for filtering 2D signals in the article. + + + + + NC + + + + + IC + + + + + RF + + + + + Create instance of DTFilter and produce initialization routines. + + Guided image (used to build transformed distance, which describes edge structure of guided image). + Parameter in the original article, it's similar to the sigma in the coordinate space into bilateralFilter. + Parameter in the original article, it's similar to the sigma in the color space into bilateralFilter. + One form three modes DTF_NC, DTF_RF and DTF_IC which corresponds to three modes for filtering 2D signals in the article. + Optional number of iterations used for filtering, 3 is quite enough. + + + + Produce domain transform filtering operation on source image. + + Filtering image with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels. + Destination image. + Optional depth of the output image. dDepth can be set to Default, which will be equivalent to src.depth(). + + + + Release the unmanaged memory associated with this object + + + + + Domain Transform filter type + + + + + NC + + + + + IC + + + + + RF + + + + + Class implementing EdgeBoxes algorithm from C. Lawrence Zitnick and Piotr Dollár. Edge boxes: Locating object proposals from edges. In ECCV, 2014. + + + + + Pointer to cv::Algorithm + + + + + Create an EdgeBox + + Step size of sliding window search. + Nms threshold for object proposals. + Adaptation rate for nms threshold. + Min score of boxes to detect. + Max number of boxes to detect. + Edge min magnitude. Increase to trade off accuracy for speed. + Edge merge threshold. Increase to trade off accuracy for speed. + Cluster min magnitude. Increase to trade off accuracy for speed. + Max aspect ratio of boxes. + Minimum area of boxes. + Affinity sensitivity. + Scale sensitivity. + + + + Returns array containing proposal boxes. + + edge image. + orientation map. + Proposal boxes. + + + + + + + Class implementing the FLD (Fast Line Detector) algorithm + + + + + Initializes a new instance of the FastLineDetector object. + + Segment shorter than this will be discarded. + A point placed from a hypothesis line segment farther than this will be regarded as an outlier. + First threshold for hysteresis procedure in Canny(). + Second threshold for hysteresis procedure in Canny(). + Aperture size for the Sobel operator in Canny(). + If true, incremental merging of segments will be performed + + + + Finds lines in the input image. + + Image to detect lines in. + The detected line segments + + + + Draws the line segments on a given image. + + The image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found. + A vector of the lines that needed to be drawn. + If true, arrow heads will be drawn. + + + + + + + Graph Based Segmentation Algorithm. The class implements the algorithm described in Pedro F Felzenszwalb and Daniel P Huttenlocher. Efficient graph-based image segmentation. volume 59, pages 167 - 181. Springer, 2004. + + + + + Creates a graph based segmentor. + + The sigma parameter, used to smooth image + The k parameter of the algorithm + The minimum size of segments + + + + Segment an image and store output in dst. + + The input image. Any number of channel (1 (Eg: Gray), 3 (Eg: RGB), 4 (Eg: RGB-D)) can be provided + The output segmentation. It's a CV_32SC1 Mat with the same number of cols and rows as input image, with an unique, sequential, id for each pixel. + + + + Release the unmanaged memory associated with this object. + + + + + Main interface for all disparity map filters. + + + + + Pointer to the native diaprty filter object + + + + + LocalBinarizationMethods type + + + + + Classic Niblack binarization. + + + + + Sauvola's technique. + + + + + Wolf's technique. + + + + + NICK's technique. + + + + + Applies Ridge Detection Filter to an input image. + Implements Ridge detection similar to the one in [Mathematica] (http://reference.wolfram.com/language/ref/RidgeFilter.html) + using the eigen values from the Hessian Matrix of the input image using Sobel Derivatives. + Additional refinement can be done using Skeletonization and Binarization. + + + + + Pointer to cv::Algorithm + + + + + Create a Ridge detection filter. + + Specifies output image depth. + Specifies output image channel. + Order of derivative x + Order of derivative y + Sobel kernel size + Converted format for output + Converted format for output + Optional scale value for derivative values + Optional bias added to output + Pixel extrapolation method + + + + Apply Ridge detection filter on input image. + + InputArray as supported by Sobel. img can be 1-Channel or 3-Channels. + Output image with ridges. + + + + + + + Selective search segmentation algorithm The class implements the algorithm described in: + Jasper RR Uijlings, Koen EA van de Sande, Theo Gevers, and Arnold WM Smeulders. Selective search for object recognition. International journal of computer vision, 104(2):154–171, 2013. + + + + + Selective search segmentation algorithm + + + + + Set a image used by switch* functions to initialize the class. + + The image + + + + Initialize the class with the 'Single stragegy' parameters + + The k parameter for the graph segmentation + The sigma parameter for the graph segmentation + + + + Initialize the class with the 'Selective search fast' parameters + + The k parameter for the first graph segmentation + The increment of the k parameter for all graph segmentations + The sigma parameter for the graph segmentation + + + + Initialize the class with the 'Selective search quality' parameters + + The k parameter for the first graph segmentation + The increment of the k parameter for all graph segmentations + The sigma parameter for the graph segmentation + + + + Add a new image in the list of images to process. + + The image + + + + Based on all images, graph segmentations and stragies, computes all possible rects and return them. + + The list of rects. The first ones are more relevents than the lasts ones. + + + + Release the unmanaged memory associated with this object. + + + + + Class implementing edge detection algorithm from Piotr Dollar and C Lawrence Zitnick. Structured forests for fast edge detection. In Computer Vision (ICCV), 2013 IEEE International Conference on, pages 1841-1848. IEEE, 2013. + + + + + Create an edge detection algorithm. + + name of the file where the model is stored + optional object inheriting from RFFeatureGetter. You need it only if you would like to train your own forest, pass NULL otherwise + + + + The function detects edges in src and draw them to dst. The algorithm underlies this function is much more robust to texture presence, than common approaches, e.g. Sobel + + source image (RGB, float, in [0;1]) to detect edges + destination image (grayscale, float, in [0;1]) where edges are drawn + + + + The function computes orientation from edge image. + + Edge image. + Orientation image. + + + + The function edgenms in edge image and suppress edges where edge is stronger in orthogonal direction. + + edge image from DetectEdges function. + orientation image from ComputeOrientation function. + Suppressed image (grayscale, float, in [0;1]) + Radius for NMS suppression. + Radius for boundary suppression. + Multiplier for conservative suppression. + Enables/disables parallel computing. + + + + Release the unmanaged memory associated with this object. + + + + + Helper class for training part of [P. Dollar and C. L. Zitnick. Structured Forests for Fast Edge Detection, 2013]. + + + + + Create a default RFFeatureGetter + + + + + Release the unmanaged memory associated with this RFFeatureGetter. + + + + + Class implementing the LSC (Linear Spectral Clustering) superpixels algorithm described in "Zhengqin Li and Jiansheng Chen. Superpixel segmentation using linear spectral clustering. June 2015." + + LSC (Linear Spectral Clustering) produces compact and uniform superpixels with low computational costs. Basically, a normalized cuts formulation of the superpixel segmentation is adopted based on a similarity metric that measures the color similarity and space proximity between image pixels. LSC is of linear computational complexity and high memory efficiency and is able to preserve global properties of images + + + + The function initializes a SuperpixelLSC object for the input image. + + Image to segment + Chooses an average superpixel size measured in pixels + Chooses the enforcement of superpixel compactness factor of superpixel + + + + Calculates the actual amount of superpixels on a given segmentation computed and stored in SuperpixelLSC object + + + + + Returns the segmentation labeling of the image. + Each label represents a superpixel, and each pixel is assigned to one superpixel label. + + A CV_32SC1 integer array containing the labels of the superpixel segmentation. The labels are in the range [0, NumberOfSuperpixels]. + + + + Returns the mask of the superpixel segmentation stored in SuperpixelLSC object. + + Return: CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise. + If false, the border is only one pixel wide, otherwise all pixels at the border are masked. + + + + Calculates the superpixel segmentation on a given image with the initialized parameters in the SuperpixelLSC object. + This function can be called again without the need of initializing the algorithm with createSuperpixelLSC(). This save the computational cost of allocating memory for all the structures of the algorithm. + + Number of iterations. Higher number improves the result. + + + + Release the unmanaged memory associated with this object. + + + + + Class implementing the SEEDS (Superpixels Extracted via Energy-Driven Sampling) superpixels algorithm described in Michael Van den Bergh, Xavier Boix, Gemma Roig, Benjamin de Capitani, and Luc Van Gool. Seeds: Superpixels extracted via energy-driven sampling. In Computer Vision-ECCV 2012, pages 13-26. Springer, 2012. + + + + + The function initializes a SuperpixelSEEDS object for the input image. + + Image width + Image height + Number of channels of the image. + Desired number of superpixels. Note that the actual number may be smaller due to restrictions (depending on the image size and num_levels). Use getNumberOfSuperpixels() to get the actual number. + Number of block levels. The more levels, the more accurate is the segmentation, but needs more memory and CPU time. + Enable 3x3 shape smoothing term if >0. A larger value leads to smoother shapes. prior must be in the range [0, 5]. + Number of histogram bins. + If true, iterate each block level twice for higher accuracy. + + + + The function computes the superpixels segmentation of an image with the parameters initialized with the function createSuperpixelSEEDS(). + + + + + Returns the segmentation labeling of the image. + Each label represents a superpixel, and each pixel is assigned to one superpixel label. + + Return: A CV_32UC1 integer array containing the labels of the superpixel segmentation. The labels are in the range [0, NumberOfSuperpixels]. + + + + Returns the mask of the superpixel segmentation stored in SuperpixelSEEDS object. + + Return: CV_8UC1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise. + If false, the border is only one pixel wide, otherwise all pixels at the border are masked. + + + + Calculates the superpixel segmentation on a given image with the initialized parameters in the SuperpixelSEEDS object. + + This function can be called again for other images without the need of initializing the algorithm with createSuperpixelSEEDS(). This save the computational cost of allocating memory for all the structures of the algorithm. + Input image. Supported formats: CV_8U, CV_16U, CV_32F. Image size & number of channels must match with the initialized image size & channels with the function createSuperpixelSEEDS(). It should be in HSV or Lab color space. Lab is a bit better, but also slower. + Number of pixel level iterations. Higher number improves the result. + + + + Release the unmanaged memory associated with this object. + + + + + Class implementing the SLIC (Simple Linear Iterative Clustering) superpixels algorithm described in Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Susstrunk. Slic superpixels compared to state-of-the-art superpixel methods. IEEE Trans. Pattern Anal. Mach. Intell., 34(11):2274-2282, nov 2012. + + + + + The algorithm to use + + + + + SLIC segments image using a desired region_size + + + + + SLICO will choose an adaptive compactness factor. + + + + + The function initializes a SuperpixelSLIC object for the input image. It sets the parameters of choosed superpixel algorithm, which are: region_size and ruler. It preallocate some buffers for future computing iterations over the given image. + + Image to segment + Chooses the algorithm variant to use + Chooses an average superpixel size measured in pixels + Chooses the enforcement of superpixel smoothness factor of superpixel + + + + Calculates the actual amount of superpixels on a given segmentation computed and stored in SuperpixelSLIC object. + + + + + Returns the segmentation labeling of the image. Each label represents a superpixel, and each pixel is assigned to one superpixel label. + + A CV_32SC1 integer array containing the labels of the superpixel segmentation. The labels are in the range [0, NumberOfSuperpixels]. + + + + Returns the mask of the superpixel segmentation stored in SuperpixelSLIC object. + + CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise. + If false, the border is only one pixel wide, otherwise all pixels at the border are masked. + + + + Calculates the superpixel segmentation on a given image with the initialized parameters in the SuperpixelSLIC object. + This function can be called again without the need of initializing the algorithm with createSuperpixelSLIC(). This save the computational cost of allocating memory for all the structures of the algorithm. + + Number of iterations. Higher number improves the result. + + + + The function merge component that is too small, assigning the previously found adjacent label + to this component.Calling this function may change the final number of superpixels. + + + The minimum element size in percents that should be absorbed into a bigger + superpixel.Given resulted average superpixel size valid value should be in 0-100 range, 25 means + that less then a quarter sized superpixel should be absorbed, this is default. + + + + + Release the unmanaged memory associated with this object. + + + + + Thinning type + + + + + Thinning technique of Zhang-Suen + + + + + Thinning technique of Guo-Hall + + + + + Weight type + + + + + exp(-|I1-I2|^2/(2*sigma^2)) + + + + + (|I1-I2|+sigma)^-1 + + + + + (|I1-I2|^2+sigma^2)^-1 + + + + + dot(I1,I2)/(|I1|*|I2|) + + + + + (min(r1,r2)+min(g1,g2)+min(b1,b2))/(max(r1,r2)+max(g1,g2)+max(b1,b2)) + + + + + unweighted + + + + + Gray-world white balance algorithm. + This algorithm scales the values of pixels based on a gray-world assumption which states that the average of all channels should result in a gray image. + It adds a modification which thresholds pixels based on their saturation value and only uses pixels below the provided threshold in finding average pixel values. + Saturation is calculated using the following for a 3-channel RGB image per pixel I and is in the range [0, 1]: + Saturation[I]= max(R,G,B)-min(R,G,B) / max(R,G,B) + A threshold of 1 means that all pixels are used to white-balance, while a threshold of 0 means no pixels are used. Lower thresholds are useful in white-balancing saturated images. + Currently supports images of type CV_8UC3 and CV_16UC3. + + + + + Creates a gray-world white balancer + + + + + Release all the unmanaged memory associated with this white balancer + + + + + Maximum saturation for a pixel to be included in the gray-world assumption + + + + + Class that contains entry points for the XPhoto module. + + + + + The function implements simple dct-based denoising, link: http://www.ipol.im/pub/art/2011/ys-dct/. + + Source image + Destination image + Expected noise standard deviation + Size of block side where dct is computed + + + + Inpaint type + + + + + Shift map + + + + + The function implements different single-image inpainting algorithms + + source image, it could be of any type and any number of channels from 1 to 4. In case of 3- and 4-channels images the function expect them in CIELab colorspace or similar one, where first color component shows intensity, while second and third shows colors. Nonetheless you can try any colorspaces. + mask (CV_8UC1), where non-zero pixels indicate valid image area, while zero pixels indicate area to be inpainted + destination image + algorithm type + + + + Implements an efficient fixed-point approximation for applying channel gains, which is the last step of multiple white balance algorithms. + + Input three-channel image in the BGR color space (either CV_8UC3 or CV_16UC3) + Output image of the same size and type as src. + Gain for the B channel + Gain for the G channel + Gain for the R channel + + + + Performs image denoising using the Block-Matching and 3D-filtering algorithm with several computational optimizations. Noise expected to be a gaussian white noise. + + Input 8-bit or 16-bit 1-channel image. + Output image of the first step of BM3D with the same size and type as src. + Output image of the second step of BM3D with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + Size in pixels of the template patch that is used for block-matching. Should be power of 2. + Size in pixels of the window that is used to perform block-matching. Affect performance linearly: greater searchWindowsSize - greater denoising time. Must be larger than templateWindowSize. + Block matching threshold for the first step of BM3D (hard thresholding), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Block matching threshold for the second step of BM3D (Wiener filtering), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Maximum size of the 3D group for collaborative filtering. + Sliding step to process every next reference block. + Kaiser window parameter that affects the sidelobe attenuation of the transform of the window. Kaiser window is used in order to reduce border effects. To prevent usage of the window, set beta to zero. + Norm used to calculate distance between blocks. L2 is slower than L1 but yields more accurate results. + Step of BM3D to be executed. Possible variants are: step 1, step 2, both steps. + Type of the orthogonal transform used in collaborative filtering step. Currently only Haar transform is supported. + + + + + Performs image denoising using the Block-Matching and 3D-filtering algorithm with several computational optimizations. Noise expected to be a gaussian white noise. + + Input 8-bit or 16-bit 1-channel image. + Output image with the same size and type as src. + Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. + Size in pixels of the template patch that is used for block-matching. Should be power of 2. + Size in pixels of the window that is used to perform block-matching. Affect performance linearly: greater searchWindowsSize - greater denoising time. Must be larger than templateWindowSize. + Block matching threshold for the first step of BM3D (hard thresholding), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Block matching threshold for the second step of BM3D (Wiener filtering), i.e. maximum distance for which two blocks are considered similar. Value expressed in euclidean distance. + Maximum size of the 3D group for collaborative filtering. + Sliding step to process every next reference block. + Kaiser window parameter that affects the sidelobe attenuation of the transform of the window. Kaiser window is used in order to reduce border effects. To prevent usage of the window, set beta to zero. + Norm used to calculate distance between blocks. L2 is slower than L1 but yields more accurate results. + Step of BM3D to be executed. Allowed are only BM3D_STEP1 and BM3D_STEPALL. BM3D_STEP2 is not allowed as it requires basic estimate to be present. + Type of the orthogonal transform used in collaborative filtering step. Currently only Haar transform is supported. + + + + + Oil Painting effect + + Input three-channel or one channel image (either CV_8UC3 or CV_8UC1) + Output image of the same size and type as src. + Neighbouring size is 2-size+1 + Image is divided by dynRatio before histogram processing + Color space conversion code(see ColorConversionCodes). Histogram will used only first plane + + + + More sophisticated learning-based automatic white balance algorithm. + As GrayworldWB, this algorithm works by applying different gains to the input image channels, but their computation is a bit more involved compared to the simple gray-world assumption. + More details about the algorithm can be found in: Dongliang Cheng, Brian Price, Scott Cohen, and Michael S Brown. Effective learning-based illuminant estimation using simple features. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 1000-1008, 2015. + To mask out saturated pixels this function uses only pixels that satisfy the following condition: + max(R,G,B) / range_max_val < saturation_thresh + Currently supports images of type CV_8UC3 and CV_16UC3. + + + + + Create a learning based white balancer. + + + + + Release all the unmanaged memory associated with this white balancer + + + + + Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images) + + + + + Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds saturation_threshold x range_max_val are ignored. + + + + + Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image). + + + + + A simple white balance algorithm that works by independently stretching each of the input image channels to the specified range. For increased robustness it ignores the top and bottom p% of pixel values. + + + + + Creates a simple white balancer + + + + + Release all the unmanaged memory associated with this white balancer + + + + + Input image range minimum value + + + + + Input image range maximum value + + + + + Output image range minimum value + + + + + Output image range maximum value + + + + + Percent of top/bottom values to ignore + + + + + This algorithm decomposes image into two layers: base layer and detail layer using bilateral filter and compresses contrast of the base layer thus preserving all the details. + This implementation uses regular bilateral filter from opencv. + + + + + Creates TonemapDurand object. + + gamma value for gamma correction. + resulting contrast on logarithmic scale, i. e. log(max / min), where max and min are maximum and minimum luminance values of the resulting image. + saturation enhancement value. + bilateral filter sigma in color space + bilateral filter sigma in coordinate space + + + + Release the unmanaged memory associated with this TonemapDurand + + + + + Positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. + + + + + Resulting contrast on logarithmic scale, i. e. log(max / min), where max and min are maximum and minimum luminance values of the resulting image. + + + + + Bilateral filter sigma in color space + + + + + bilateral filter sigma in coordinate space + + + + + The base class for auto white balance algorithms. + + + + + Pointer to the native white balancer object + + + + + Applies white balancing to the input image. + + Input image + White balancing result + + + + Reset the pointer to the native white balancer object + + + + + BM3D denoising transform types + + + + + Un-normalized Haar transform + + + + + BM3D steps + + + + + Execute all steps of the algorithm + + + + + Execute only first step of the algorithm + + + + + Execute only second step of the algorithm + + + + + This class is used to track multiple objects using the specified tracker algorithm. The MultiTracker is naive implementation of multiple object tracking. It process the tracked objects independently without any optimization accross the tracked objects. + + + + + Constructor. In the case of trackerType is given, it will be set as the default algorithm for all trackers. + + + + + Add a new object to be tracked. The defaultAlgorithm will be used the newly added tracker. + + The tracker to use for tracking the image + Input image + A rectangle represents ROI of the tracked object + True if successfully added + + + + Update the current tracking status. The result will be saved in the internal storage. + + Input image + the tracking result, represent a list of ROIs of the tracked objects. + True id update success + + + + Returns the tracked objects, each object corresponds to one tracker algorithm. + + The tracked objects, each object corresponds to one tracker algorithm. + + + + Release the unmanaged memory associated with this multi-tracker. + + + + + Long-term tracker + + + + + The native pointer to the tracker + + + + + Initialize the tracker with a know bounding box that surrounding the target. + + The initial frame + The initial bounding box + True if successful. + + + + Update the tracker, find the new most likely bounding box for the target. + + The current frame + The bounding box that represent the new target location, if true was returned, not modified otherwise + True means that target was located and false means that tracker cannot locate target in current frame. Note, that latter does not imply that tracker has failed, maybe target is indeed missing from the frame (say, out of sight) + + + + Release the unmanaged memory associated with this tracker + + + + + This is a real-time object tracking based on a novel on-line version of the AdaBoost algorithm. + The classifier uses the surrounding background as negative examples in update step to avoid the drifting problem. + + + + + Create a Boosting Tracker + + The number of classifiers to use in a OnlineBoosting algorithm + Search region parameters to use in a OnlineBoosting algorithm + search region parameters to use in a OnlineBoosting algorithm + The initial iterations + Number of features, a good value would be 10*numClassifiers + iterationInit + + + + Release all the unmanaged memory associated with this Boosting Tracker + + + + + Discriminative Correlation Filter Tracker with Channel and Spatial Reliability + + + + + Creates a CSRT tracker + + Use hog + Use color names + Use Gray + Use RGB + Use channel weights + Use segmentation + Windows function + Kaiser alpha + Cheb attenuation + Template size + Gsl Sigma + Hog orientations + Hog clip + padding + filter Lr + weights Lr + Number of hog channels used + Admm iterations + Histogram bins + Histogram Lr + Background ratio + Number of scales + Scale Sigma factor + Scale Model Max Area + Scale Lr + Scale step + + + + Release the unmanaged resources associated with this tracker + + + + + GOTURN is kind of trackers based on Convolutional Neural Networks (CNN). While taking all advantages of CNN trackers, GOTURN is much faster due to offline training without online fine-tuning nature. GOTURN tracker addresses the problem of single target tracking: given a bounding box label of an object in the first frame of the video, we track that object through the rest of the video. NOTE: Current method of GOTURN does not handle occlusions; however, it is fairly robust to viewpoint changes, lighting changes, and deformations. Inputs of GOTURN are two RGB patches representing Target and Search patches resized to 227x227. Outputs of GOTURN are predicted bounding box coordinates, relative to Search patch coordinate system, in format X1,Y1,X2,Y2. + + Original paper is here: http://davheld.github.io/GOTURN/GOTURN.pdf As long as original authors implementation: https://github.com/davheld/GOTURN#train-the-tracker Implementation of training algorithm is placed in separately here due to 3d-party dependencies: https://github.com/Auron-X/GOTURN_Training_Toolkit GOTURN architecture goturn.prototxt and trained model goturn.caffemodel are accessible on opencv_extra GitHub repository. + + + + Create a GOTURN tracker + + + + + Release the unmanaged resources associated with this tracker + + + + + KCF is a novel tracking framework that utilizes properties of circulant matrix to enhance the processing speed. + The original paper of KCF is available at http://home.isr.uc.pt/~henriques/circulant/index.html + as well as the matlab implementation. + + + + + Feature type to be used in the tracking grayscale, colornames, compressed color-names + The modes available now: + - "GRAY" -- Use grayscale values as the feature + - "CN" -- Color-names feature + + + + + Grayscale + + + + + Color + + + + + Custom + + + + + Creates a KCF Tracker + + detection confidence threshold + gaussian kernel bandwidth + regularization + linear interpolation factor for adaptation + spatial bandwidth (proportional to target) + compression learning rate + activate the resize feature to improve the processing speed + split the training coefficients into two matrices + wrap around the kernel values + activate the pca method to compress the features + threshold for the ROI size + feature size after compression + compressed descriptors of TrackerKCF::MODE + non-compressed descriptors of TrackerKCF::MODE + + + + Release the unmanaged resources associated with this tracker + + + + + Median Flow tracker implementation. + The tracker is suitable for very smooth and predictable movements when object is visible throughout + the whole sequence.It's quite and accurate for this type of problems (in particular, it was shown + by authors to outperform MIL). During the implementation period the code at + http://www.aonsquared.co.uk/node/5, the courtesy of the author Arthur Amarra, was used for the + reference purpose. + + + + Create a median flow tracker + Points in grid, use 10 for default. + Win size, use (3, 3) for default + Max level, use 5 for default. + Termination criteria, use count = 20 and eps = 0.3 for default + win size NCC, use (30, 30) for default + Max median length of displacement difference + + + + Release the unmanaged resources associated with this tracker + + + + + The MIL algorithm trains a classifier in an online manner to separate the object from the background. + Multiple Instance Learning avoids the drift problem for a robust tracking. + Original code can be found here http://vision.ucsd.edu/~bbabenko/project_miltrack.shtml + + + + + Creates a MIL Tracker + + radius for gathering positive instances during init + negative samples to use during init + size of search window + radius for gathering positive instances during tracking + positive samples to use during tracking + negative samples to use during tracking + features + + + + Release all the unmanaged memory associated with this tracker + + + + + MOSSE Visual Object Tracking using Adaptive Correlation Filters + + note, that this tracker works with grayscale images, if passed bgr ones, they will get converted internally. + + + + Create a MOSSE tracker + + + + + Release the unmanaged resources associated with this tracker + + + + + TLD is a novel tracking framework that explicitly decomposes the long-term tracking task into tracking, learning and detection. + + The tracker follows the object from frame to frame. The detector localizes all appearances that have been observed so far and corrects the tracker if necessary. The learning estimates detector's errors and updates it to avoid these errors in the future. + + + + Creates a TLD tracker + + + + + Release the unmanaged resources associated with this tracker + + + + + A 2D plot + + + + + Create 2D plot from data + + The data to be plotted + + + + Create 2D plot for data + + The data for the X-axis + The data for the Y-axis + + + + Render the plot to the resulting Mat + + The output plot + + + + Set the line color + + The plot line color + + + + Set the background color + + The background color + + + + Set the axis color + + the axis color + + + + Set the plot grid color + + The plot grid color + + + + Set the plot text color + + The plot text color + + + + Set the plot size + + The width + The height + + + + Release unmanaged memory associated with this plot2d. + + + + + Min X + + The value + + + + Min Y + + The value + + + + Max X + + The value + + + + Max Y + + The value + + + + Plot line width + + The value + + + + Entry points for the cv::plot functions + + + + + Entry points for the Aruco module. + + + + + Draw a canonical marker image. + + dictionary of markers indicating the type of markers + identifier of the marker that will be returned. It has to be a valid id in the specified dictionary. + size of the image in pixels + output image with the marker + width of the marker border. + + + + Performs marker detection in the input image. Only markers included in the specific dictionary are searched. For each detected marker, it returns the 2D position of its corner in the image and its corresponding identifier. Note that this function does not perform pose estimation. + + input image + indicates the type of markers that will be searched + Vector of detected marker corners. For each marker, its four corners are provided, (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array is Nx4. The order of the corners is clockwise. + vector of identifiers of the detected markers. The identifier is of type int (e.g. VectorOfInt). For N detected markers, the size of ids is also N. The identifiers have the same order than the markers in the imgPoints array. + marker detection parameters + contains the imgPoints of those squares whose inner code has not a correct codification. Useful for debugging purposes. + + + + Given the pose estimation of a marker or board, this function draws the axis of the world coordinate system, i.e. the system centered on the marker/board. Useful for debugging purposes. + + input/output image. It must have 1 or 3 channels. The number of channels is not altered. + input 3x3 floating-point camera matrix + vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + rotation vector of the coordinate system that will be drawn. + translation vector of the coordinate system that will be drawn. + length of the painted axis in the same unit than tvec (usually in meters) + + + + This function receives the detected markers and returns their pose estimation respect to the camera individually. So for each marker, one rotation and translation vector is returned. The returned transformation is the one that transforms points from each marker coordinate system to the camera coordinate system. The marker corrdinate system is centered on the middle of the marker, with the Z axis perpendicular to the marker plane. The coordinates of the four corners of the marker in its own coordinate system are: (-markerLength/2, markerLength/2, 0), (markerLength/2, markerLength/2, 0), (markerLength/2, -markerLength/2, 0), (-markerLength/2, -markerLength/2, 0) + + vector of already detected markers corners. For each marker, its four corners are provided, (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + the length of the markers' side. The returning translation vectors will be in the same unit. Normally, unit is meters. + input 3x3 floating-point camera matrix + vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + array of output rotation vectors. Each element in rvecs corresponds to the specific marker in imgPoints. + array of output translation vectors (e.g. VectorOfPoint3D32F ). Each element in tvecs corresponds to the specific marker in imgPoints. + + + + Refine not detected markers based on the already detected and the board layout. + + Input image + Layout of markers in the board. + Vector of already detected marker corners. + Vector of already detected marker identifiers. + Vector of rejected candidates during the marker detection process + Optional input 3x3 floating-point camera matrix + Optional vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Minimum distance between the corners of the rejected candidate and the reprojected marker in order to consider it as a correspondence. (default 10) + Rate of allowed erroneous bits respect to the error correction capability of the used dictionary. -1 ignores the error correction step. (default 3) + Consider the four posible corner orders in the rejectedCorners array. If it set to false, only the provided corner order is considered (default true). + Optional array to returns the indexes of the recovered candidates in the original rejectedCorners array. + marker detection parameters + + + + Draw detected markers in image. + + Input/output image. It must have 1 or 3 channels. The number of channels is not altered. + Positions of marker corners on input image. (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + Vector of identifiers for markers in markersCorners . Optional, if not provided, ids are not painted. + Color of marker borders. Rest of colors (text color and first corner color) are calculated based on this one to improve visualization. + + + + Calibrate a camera using aruco markers. + + Vector of detected marker corners in all frames. The corners should have the same format returned by detectMarkers + List of identifiers for each marker in corners + Number of markers in each frame so that corners and ids can be split + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Calibrate a camera using aruco markers. + + Vector of detected marker corners in all frames. The corners should have the same format returned by detectMarkers + List of identifiers for each marker in corners + Number of markers in each frame so that corners and ids can be split + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Output vector of standard deviations estimated for intrinsic parameters. Order of deviations values: (fx,fy,cx,cy,k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4,τx,τy) If one of parameters is not estimated, it's deviation is equals to zero. + Output vector of standard deviations estimated for extrinsic parameters. Order of deviations values: (R1,T1,…,RM,TM) where M is number of pattern views, Ri,Ti are concatenated 1x3 vectors. + Output vector of average re-projection errors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Calibrate a camera using Charuco corners. + + Vector of detected charuco corners per frame + List of identifiers for each corner in charucoCorners per frame + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Calibrate a camera using Charuco corners. + + Vector of detected charuco corners per frame + List of identifiers for each corner in charucoCorners per frame + Marker Board layout + Size of the image used only to initialize the intrinsic camera matrix. + Output 3x3 floating-point camera matrix. + Output vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector of rotation vectors (see Rodrigues ) estimated for each board view (e.g. std::vector<cv::Mat>). That is, each k-th rotation vector together with the corresponding k-th translation vector (see the next output parameter description) brings the board pattern from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the board pattern in the k-th pattern view (k=0.. M -1). + Output vector of translation vectors estimated for each pattern view. + Output vector of standard deviations estimated for intrinsic parameters. Order of deviations values: (fx,fy,cx,cy,k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4,τx,τy) If one of parameters is not estimated, it's deviation is equals to zero. + Output vector of standard deviations estimated for extrinsic parameters. Order of deviations values: (R1,T1,…,RM,TM) where M is number of pattern views, Ri,Ti are concatenated 1x3 vectors. + Output vector of average re-projection errors estimated for each pattern view. + Flags Different flags for the calibration process + Termination criteria for the iterative optimization algorithm. + The final re-projection error. + + + + Interpolate position of ChArUco board corners + + vector of already detected markers corners. For each marker, its four corners are provided, (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array should be Nx4.The order of the corners should be clockwise. + list of identifiers for each marker in corners + input image necesary for corner refinement. Note that markers are not detected and should be sent in corners and ids parameters. + layout of ChArUco board. + interpolated chessboard corners + interpolated chessboard corners identifiers + optional 3x3 floating-point camera matrix + optional vector of distortion coefficients, (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]]) of 4, 5, 8 or 12 elements + number of adjacent markers that must be detected to return a charuco corner + The number of interpolated corners. + + + + Draws a set of Charuco corners + + image input/output image. It must have 1 or 3 channels. The number of channels is not altered. + vector of detected charuco corners + list of identifiers for each corner in charucoCorners + color of the square surrounding each corner + + + + Pose estimation for a ChArUco board given some of their corners + + vector of detected charuco corners + list of identifiers for each corner in charucoCorners + layout of ChArUco board. + input 3x3 floating-point camera matrix + vector of distortion coefficients, 4, 5, 8 or 12 elements + Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board + Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. + defines whether initial guess for rvec and tvec will be used or not. + If pose estimation is valid, returns true, else returns false. + + + + Detect ChArUco Diamond markers + + input image necessary for corner subpixel. + list of detected marker corners from detectMarkers function. + list of marker ids in markerCorners. + rate between square and marker length: squareMarkerLengthRate = squareLength / markerLength.The real units are not necessary. + output list of detected diamond corners (4 corners per diamond). The order is the same than in marker corners: top left, top right, bottom right and bottom left. Similar format than the corners returned by detectMarkers(e.g VectorOfVectorOfPointF ). + ids of the diamonds in diamondCorners. The id of each diamond is in fact of type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the diamond. + Optional camera calibration matrix. + Optional camera distortion coefficients. + + + + Draw a set of detected ChArUco Diamond markers + + input/output image. It must have 1 or 3 channels. The number of channels is not altered. + positions of diamond corners in the same format returned by detectCharucoDiamond(). (e.g VectorOfVectorOfPointF ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + vector of identifiers for diamonds in diamondCorners, in the same format returned by detectCharucoDiamond() (e.g. VectorOfMat ). Optional, if not provided, ids are not painted. + color of marker borders. Rest of colors (text color and first corner color) are calculated based on this one. + + + + Draw a ChArUco Diamond marker + + dictionary of markers indicating the type of markers. + list of 4 ids for each ArUco marker in the ChArUco marker. + size of the chessboard squares in pixels. + size of the markers in pixels. + output image with the marker. The size of this image will be 3*squareLength + 2*marginSize. + minimum margins (in pixels) of the marker in the output image + width of the marker borders. + + + + Draw a planar board. + + Layout of the board that will be drawn. The board should be planar, z coordinate is ignored + Size of the output image in pixels. + Output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. + Minimum margins (in pixels) of the board in the output image + Width of the marker borders. + + + + Pose estimation for a board of markers. + + Vector of already detected markers corners. For each marker, its four corners are provided, (e.g std::vector>std::vector>cv::Point2f< < ). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. + List of identifiers for each marker in corners + Layout of markers in the board. The layout is composed by the marker identifiers and the positions of each marker corner in the board reference system. + Input 3x3 floating-point camera matrix + Vector of distortion coefficients (k1,k2,p1,p2[,k3[,k4,k5,k6],[s1,s2,s3,s4]]) of 4, 5, 8 or 12 elements + Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board (see cv::Rodrigues). Used as initial guess if not empty. + Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. + Defines whether initial guess for rvec and tvec will be used or not. Used as initial guess if not empty. + The function returns the number of markers from the input employed for the board pose estimation. Note that returning a 0 means the pose has not been estimated. + + + + Given a board configuration and a set of detected markers, returns the corresponding image points and object points to call solvePnP. + + Marker board layout. + List of detected marker corners of the board. + List of identifiers for each marker. + Vector of vectors of board marker points in the board coordinate space. + Vector of vectors of the projections of board marker corner points. + + + + Parameters for the detectMarker process + + + + + Type of corner refinement method + + + + + Default corners + + + + + Refine the corners using subpix + + + + + Refine the corners using the contour-points + + + + + minimum window size for adaptive thresholding before finding contours (default 3) + + + + + maximum window size for adaptive thresholding before finding contours (default 23). + + + + + increments from adaptiveThreshWinSizeMin to adaptiveThreshWinSizeMax during the thresholding (default 10). + + + + + constant for adaptive thresholding before finding contours (default 7) + + + + + determine minimum perimeter for marker contour to be detected. This is defined as a rate respect to the maximum dimension of the input image (default 0.03). + + + + + determine maximum perimeter for marker contour to be detected. This is defined as a rate respect to the maximum dimension of the input image (default 4.0). + + + + + minimum accuracy during the polygonal approximation process to determine which contours are squares. + + + + + minimum distance between corners for detected markers relative to its perimeter (default 0.05) + + + + + minimum distance of any corner to the image border for detected markers (in pixels) (default 3) + + + + + minimum mean distance beetween two marker corners to be considered similar, so that the smaller one is removed. The rate is relative to the smaller perimeter of the two markers (default 0.05). + + + + + Corner refinement method + + + + + window size for the corner refinement process (in pixels) (default 5). + + + + + maximum number of iterations for stop criteria of the corner refinement process (default 30). + + + + + minimum error for the stop criteria of the corner refinement process (default: 0.1) + + + + + number of bits of the marker border, i.e. marker border width (default 1). + + + + + number of bits (per dimension) for each cell of the marker when removing the perspective (default 8). + + + + + width of the margin of pixels on each cell not considered for the determination of the cell bit. Represents the rate respect to the total size of the cell, i.e. perpectiveRemovePixelPerCell (default 0.13) + + + + + maximum number of accepted erroneous bits in the border (i.e. number of allowed white bits in the border). Represented as a rate respect to the total number of bits per marker (default 0.35). + + + + + minimun standard deviation in pixels values during the decodification step to apply Otsu thresholding (otherwise, all the bits are set to 0 or 1 depending on mean higher than 128 or not) (default 5.0) + + + + + error correction rate respect to the maximun error correction capability for each dictionary. (default 0.6). + + + + + Detection of quads can be done on a lower-resolution image, improving speed at a + cost of pose accuracy and a slight decrease in detection rate.Decoding the binary payload is still + done at full resolution. + + + + + What Gaussian blur should be applied to the segmented image (used for quad detection?) + Parameter is the standard deviation in pixels.Very noisy images benefit from non-zero values(e.g. 0.8). + + + + + reject quads containing too few pixels. + + + + + how many corner candidates to consider when segmenting a group of pixels into a quad. + + + + + Reject quads where pairs of edges have angles that are close to straight or close to + 180 degrees.Zero means that no quads are rejected. (In radians). + + + + + When fitting lines to the contours, what is the maximum mean squared error + allowed? This is useful in rejecting contours that are far from being quad shaped; rejecting + these quads "early" saves expensive decoding processing. + + + + + When we build our model of black & white pixels, we add an extra check that + the white model must be(overall) brighter than the black model.How much brighter? (in pixel values, [0, 255]). + + + + + should the thresholded image be deglitched? Only useful for very noisy images + + + + + Get the detector parameters with default values + + The default detector parameters + + + + Dictionary/Set of markers. It contains the inner codification. + + + + + Create a Dictionary using predefined values + + The name of the predefined dictionary + + + + Generates a new customizable marker dictionary. + + number of markers in the dictionary + number of bits per dimension of each markers + + + + Generates a new customizable marker dictionary. + + number of markers in the dictionary + number of bits per dimension of each markers + Include the markers in this dictionary at the beginning (optional) + + + + The name of the predefined dictionary + + + + + Dict4X4_50 + + + + + Dict4X4_100 + + + + + Dict4X4_250 + + + + + Dict4X4_1000 + + + + + Dict5X5_50 + + + + + Dict5X5_100 + + + + + Dict5X5_250 + + + + + Dict5X5_1000 + + + + + Dict6X6_50 + + + + + Dict6X6_100 + + + + + Dict6X6_250 + + + + + Dict6X6_1000 + + + + + Dict7X7_50 + + + + + Dict7X7_100 + + + + + Dict7X7_250 + + + + + Dict7X7_1000 + + + + + standard ArUco Library Markers. 1024 markers, 5x5 bits, 0 minimum distance + + + + + Release the unmanaged resource + + + + + Board of markers + + + + + Pointer to native IBoard + + + + + Planar board with grid arrangement of markers More common type of board. All markers are placed in the same plane in a grid arrangment. + + + + + Create a GridBoard object. + + number of markers in X direction + number of markers in Y direction + marker side length (normally in meters) + separation between two markers (same unit than markerLenght) + dictionary of markers indicating the type of markers. The first markersX*markersY markers in the dictionary are used. + id of first marker in dictionary to use on board. + + + + Draw a GridBoard. + + size of the output image in pixels. + output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. + minimum margins (in pixels) of the board in the output image + width of the marker borders. + + + + Release the unmanaged resource associated with this GridBoard + + + + + Pointer to native IBoard + + + + + A ChArUco board is a planar board where the markers are placed + inside the white squares of a chessboard.The benefits of ChArUco boards is that they provide + both, ArUco markers versatility and chessboard corner precision, which is important for + calibration and pose estimation. + + + + + ChArUco board + + number of chessboard squares in X direction + number of chessboard squares in Y direction + chessboard square side length (normally in meters) + marker side length (same unit than squareLength) + dictionary of markers indicating the type of markers. + + + + Draw a ChArUco board + + size of the output image in pixels. + output image with the board. The size of this image will be outSize and the board will be on the center, keeping the board proportions. + minimum margins (in pixels) of the board in the output image + width of the marker borders. + + + + Release the unmanaged resource associated with this ChArUco board + + + + + Pointer to native IBoard + + + + + The module brings implementation of the image processing algorithms based on fuzzy mathematics. + + + + + Function type + + + + + Linear + + + + + Sinus + + + + + Inpaint algorithm + + + + + One step algorithm. + + + + + Algorithm automaticaly increasing radius of the basic function. + + + + + Iterative algorithm running in more steps using partial computations. + + + + + Creates kernel from basic functions. + + Basic function used in axis x. + Basic function used in axis y. + Final 32-b kernel derived from A and B. + Number of kernel channels. + + + + Creates kernel from general functions. + + Function type + Radius of the basic function. + Final 32-b kernel. + Number of kernel channels. + + + + Image inpainting. + + Input image. + Mask used for unwanted area marking. + Output 32-bit image. + Radius of the basic function. + Function type + Algorithm type + + + + Image filtering. + + Input image. + Final 32-b kernel. + Output 32-bit image. + + + + Entry points to the Open CV HFS module + + + + + Hierarchical Feature Selection for Efficient Image Segmentation + + + + + Create a hfs object + + The height of the input image + The width of the input image + segEgbThresholdI + minRegionSizeI + segEgbThresholdII + minRegionSizeII + spatialWeight + slicSpixelSize + numSlicIter + + + + Native algorithm pointer + + + + + Release all the unmanaged memory associate with this object + + + + + Segmentation with gpu + + The input image + if draw the image in the returned Mat. if this parameter is false, then the content of the returned Mat is a matrix of index, describing the region each pixel belongs to. And it's data type is CV_16U. If this parameter is true, then the returned Mat is a segmented picture, and color of each region is the average color of all pixels in that region. And it's data type is the same as the input image + Segmentation result + + + + Segmentation with cpu. This method is only implemented for reference. It is highly NOT recommended to use it. + + The input image + if draw the image in the returned Mat. if this parameter is false, then the content of the returned Mat is a matrix of index, describing the region each pixel belongs to. And it's data type is CV_16U. If this parameter is true, then the returned Mat is a segmented picture, and color of each region is the average color of all pixels in that region. And it's data type is the same as the input image + Segmentation result + + + + WaldBoost detector. + + + + + Create instance of WBDetector. + + + + + Read detector from FileNode. + + FileNode for input + + + + Write detector to FileStorage. + + FileStorage for output + + + + Train WaldBoost detector. + + Path to directory with cropped positive samples + Path to directory with negative (background) images + + + + Detect objects on image using WaldBoost detector. + + Input image for detection + Bounding boxes coordinates output vector + Confidence values for bounding boxes output vector + + + + Release all the unmanaged memory associated with this WBDetector. + + + + + Class that contains entry points for the XObjdetect module. + + + + + Entry points to the Open CV bioinspired module + + + + + A wrapper class which allows the Gipsa/Listic Labs model to be used. + This retina model allows spatio-temporal image processing (applied on still images, video sequences). + As a summary, these are the retina model properties: + 1. It applies a spectral whithening (mid-frequency details enhancement); + 2. high frequency spatio-temporal noise reduction; + 3. low frequency luminance to be reduced (luminance range compression); + 4. local logarithmic luminance compression allows details to be enhanced in low light conditions. + USE : this model can be used basically for spatio-temporal video effects but also for : + _using the getParvo method output matrix : texture analysiswith enhanced signal to noise ratio and enhanced details robust against input images luminance ranges + _using the getMagno method output matrix : motion analysis also with the previously cited properties + + For more information, reer to the following papers : + Benoit A., Caplier A., Durette B., Herault, J., "USING HUMAN VISUAL SYSTEM MODELING FOR BIO-INSPIRED LOW LEVEL IMAGE PROCESSING", Elsevier, Computer Vision and Image Understanding 114 (2010), pp. 758-773, DOI: http://dx.doi.org/10.1016/j.cviu.2010.01.011 + Vision: Images, Signals and Neural Networks: Models of Neural Processing in Visual Perception (Progress in Neural Processing),By: Jeanny Herault, ISBN: 9814273686. WAPI (Tower ID): 113266891. + + The retina filter includes the research contributions of phd/research collegues from which code has been redrawn by the author : + _take a look at the retinacolor.hpp module to discover Brice Chaix de Lavarene color mosaicing/demosaicing and the reference paper: + B. Chaix de Lavarene, D. Alleysson, B. Durette, J. Herault (2007). "Efficient demosaicing through recursive filtering", IEEE International Conference on Image Processing ICIP 2007 + _take a look at imagelogpolprojection.hpp to discover retina spatial log sampling which originates from Barthelemy Durette phd with Jeanny Herault. A Retina / V1 cortex projection is also proposed and originates from Jeanny's discussions. + more informations in the above cited Jeanny Heraults's book. + + + + + Create a retina model + + The input frame size + + + + Create a retina model + + The input frame size + Specifies if (true) color is processed of not (false) to then processing gray level image + Specifies which kind of color sampling will be used + Activate retina log sampling, if true, the 2 following parameters can be used + Only useful if param useRetinaLogSampling=true, specifies the reduction factor of the output frame (as the center (fovea) is high resolution and corners can be underscaled, then a reduction of the output is allowed without precision leak + Only useful if param useRetinaLogSampling=true, specifies the strength of the log scale that is applied + + + + Get or Set the Retina parameters. + + + + + Method which allows retina to be applied on an input image, after run, encapsulated retina module is ready to deliver its outputs using dedicated acccessors. and + + The input image to be processed + + + + Accessors of the details channel of the retina (models foveal vision) + + The details channel of the retina. + + + + Accessors of the motion channel of the retina (models peripheral vision) + + The motion channel of the retina. + + + + Clear all retina buffers (equivalent to opening the eyes after a long period of eye close. + + + + + Release all unmanaged memory associated with the retina model. + + + + + The retina color sampling method. + + + + + Each pixel position is either R, G or B in a random choice + + + + + Color sampling is RGBRGBRGB..., line 2 BRGBRGBRG..., line 3, GBRGBRGBR... + + + + + Standard bayer sampling + + + + + Outer Plexiform Layer (OPL) and Inner Plexiform Layer Parvocellular (IplParvo) parameters + + + + + Specifies if (true) color is processed of not (false) to then processing gray level image + + + + + Normalise output. Use true for default + + + + + Photoreceptors local adaptation sensitivity. Use 0.7 for default + + + + + Photoreceptors temporal constant. Use 0.5 for default + + + + + Photoreceptors spatial constant. Use 0.53 for default + + + + + Horizontal cells gain. Use 0.0 for default + + + + + Hcells temporal constant. Use 1.0 for default + + + + + Hcells spatial constant. Use 7.0 for default + + + + + Ganglion cells sensitivity. Use 0.7 for default + + + + + Inner Plexiform Layer Magnocellular channel (IplMagno) + + + + + Normalise output + + + + + ParasolCells_beta. Use 0.0 for default + + + + + ParasolCells_tau. Use 0.0 for default + + + + + ParasolCells_k. Use 7.0 for default + + + + + Amacrin cells temporal cut frequency. Use 1.2 for default + + + + + V0 compression parameter. Use 0.95 for default + + + + + LocalAdaptintegration_tau. Use 0.0 for default + + + + + LocalAdaptintegration_k. Use 7.0 for default + + + + + Retina parameters + + + + + Outer Plexiform Layer (OPL) and Inner Plexiform Layer Parvocellular (IplParvo) parameters + + + + + Inner Plexiform Layer Magnocellular channel (IplMagno) + + + + + A wrapper class which allows the tone mapping algorithm of Meylan & al(2007) to be used with OpenCV. + + + + + Create a wrapper class which allows the tone mapping algorithm of Meylan & al(2007) to be used with OpenCV. + + The size of the images to process + + + + Applies a luminance correction (initially High Dynamic Range (HDR) tone mapping) + + The input image to process RGB or gray levels + The output tone mapped image + + + + Updates tone mapping behaviors by adjusting the local luminance computation area + + The first stage local adaptation area + The second stage local adaptation area + The factor applied to modulate the meanLuminance information (default is 1, see reference paper) + + + + Release all unmanaged memory associated with the RetinaFastToneMapping model. + + + + + Computes average hash value of the input image. + + This is a fast image hashing algorithm, but only work on simple case. + + + + Create an average hash object. + + + + + Release all the unmanaged resource associated with AverageHash + + + + + The module brings implementation of the image processing algorithms based on fuzzy mathematics. + + + + + Image hash based on block mean. + + + + + Block Mean Hash mode + + + + + use fewer block and generate 16*16/8 uchar hash value + + + + + use block blocks(step sizes/2), generate 31*31/8 + 1 uchar hash value + + + + + Create a Block Mean Hash object + + The hash mode + + + + Release all the unmanaged resource associated with BlockMeanHash + + + + + Image hash based on color moments. + + + + + Create a Color Moment Hash object + + + + + Release all the unmanaged resource associated with ColorMomentHash + + + + + The Image Hash base class + + + + + The pointer to the ImgHashBase object + + + + + Get the pointer to the ImgHashBase object + + The pointer to the ImgHashBase object + + + + Reset the pointers + + + + + Computes hash of the input image + + input image to compute hash value + hash of the image + + + + Compare the hash value between inOne and inTwo + + Hash value one + Hash value two + indicate similarity between inOne and inTwo, the meaning of the value vary from algorithms to algorithms + + + + Marr-Hildreth Operator Based Hash, slowest but more discriminative. + + + + + Create a Marr-Hildreth operator based hash. + + Scale factor for marr wavelet. + Level of scale factor + + + + Release all the unmanaged resource associated with MarrHildrethHash + + + + + Slower than average hash, but tolerant of minor modifications + + + + + Create a PHash object + + + + + Release all the unmanaged resource associated with AverageHash + + + + + Image hash based on Radon transform + + + + + Create an image hash based on Radon transform + + Sigma + Number of angle line + + + + Release all the unmanaged resource associated with RadialVarianceHash + + + + + Class implementing two-dimensional phase unwrapping. + + This algorithm belongs to the quality-guided phase unwrapping methods. First, it computes a reliability map from second differences between a pixel and its eight neighbours. Reliability values lie between 0 and 16*pi*pi. Then, this reliability map is used to compute the reliabilities of "edges". An edge is an entity defined by two pixels that are connected horizontally or vertically. Its reliability is found by adding the reliabilities of the two pixels connected through it. Edges are sorted in a histogram based on their reliability values. This histogram is then used to unwrap pixels, starting from the highest quality pixel. + + + + Create a HistogramPhaseUnwrapping instance + + Phase map width. + Phase map height. + Bins in the histogram are not of equal size. Default value is 3*pi*pi. The one before "histThresh" value are smaller. + Number of bins between 0 and "histThresh". Default value is 10. + Number of bins between "histThresh" and 32*pi*pi (highest edge reliability value). Default value is 5. + + + + Release the unmanaged resources associated with the HistogramPhaseUnwrapping + + + + + Get the reliability map computed from the wrapped phase map. + + Image where the reliability map is stored. + + + + Unwraps a 2D phase map. + + The wrapped phase map that needs to be unwrapped. + The unwrapped phase map. + Optional parameter used when some pixels do not hold any phase information in the wrapped phase map. + + + + Provide interfaces to the Open CV PhaseUnwrapping functions + + + + + Main interface for all quality filters. + + + + + Pointer to the native QualityBase object + + + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + Class that contains entry points for the Quality module. + + + + + Compute quality score per channel with the per-channel score in each element of the result + + The quality base object + Comparison image(s), or image(s) to evaluate for no-reference quality algorithms + Quality score per channel + + + + Returns output quality map images that were generated during computation, if supported by the algorithm. + + The quality base object + Output quality map images that were generated during computation, if supported by the algorithm. + + + + BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator) is a No Reference Image Quality Assessment (NR-IQA) algorithm. + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create an object which calculates quality. + + Contains a path to the BRISQUE model data. If empty, attempts to load from ${OPENCV_DIR}/testdata/contrib/quality/brisque_model_live.yml + contains a path to the BRISQUE range data. If empty, attempts to load from ${OPENCV_DIR}/testdata/contrib/quality/brisque_range_live.yml + + + + Release the unmanaged memory associated with this object + + + + + Implementation to Gradient Magnitude Similarity Deviation: A Highly Efficient Perceptual Image Quality Index + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create a new instance of GMSD quality measurement. + + vector of reference images, converted to internal type + + + + Release the unmanaged memory associated with this object + + + + + Mean square error algorithm + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create a new instance of MSE quality measurement. + + vector of reference images, converted to internal type + + + + Release the unmanaged memory associated with this object + + + + + Peak signal to noise ratio (PSNR) algorithm + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create an instance of peak signal to noise ratio (PSNR) algorithm + + Input image(s) to use as the source for comparison + maximum per-channel value for any individual pixel; eg 255 for uint8 image + + + + Release the unmanaged memory associated with this object + + + + + Structural similarity algorithm + + + + + Pointer to the native QualityBase object + + + + + Pointer to the native algorithm object + + + + + Create an object which calculates quality via mean square error. + + input image(s) to use as the source for comparison + + + + Release the unmanaged memory associated with this object + + + + + Class containing the methods needed for Quasi Dense Stereo computation. + + + + + Create a new instance containing the methods needed for Quasi Dense Stereo computation. + + Image size + The path for the parameters + + + + Release the unmanaged memory associated with this object + + + + + Main process of the algorithm. This method computes the sparse seeds and then densifies them. + Initially input images are converted to gray-scale and then the sparseMatching method is called to obtain the sparse stereo. Finally quasiDenseMatching is called to densify the corresponding points. + + The left Channel of a stereo image pair. + The right Channel of a stereo image pair. + If input images are in color, the method assumes that are BGR and converts them to grayscale. + + + + Compute and return the disparity map based on the correspondences found in the "process" method. + + The level of detail in output disparity image. + Mat containing a the disparity image in grayscale. + + + + The propagation parameters + + + + + similarity window + + + + + similarity window + + + + + border to ignore + + + + + border to ignore + + + + + correlation threshold + + + + + texture threshold + + + + + neighborhood size + + + + + disparity gradient threshold + + + + + Parameters for LK flow algorithm + + + + + Parameters for LK flow algorithm + + + + + Parameters for LK flow algorithm + + + + + Parameters for LK flow algorithm + + + + + Parameters for GFT algorithm. + + + + + Parameters for GFT algorithm. + + + + + Parameters for GFT algorithm. + + + + + Parameters for the QuasiDenseStereo class + + + + + Class that contains entry points for the Stereo module. + + + + + This class implements a very efficient and robust variant of the iterative closest point (ICP) algorithm. The task is to register a 3D model (or point cloud) against a set of noisy target data. The variants are put together by myself after certain tests. The task is to be able to match partial, noisy point clouds in cluttered scenes, quickly. You will find that my emphasis is on the performance, while retaining the accuracy. + + + + + The sampling type + + + + + Uniform + + + + + Gelfand + + + + + Constructor to a very efficient and robust variant of the iterative closest point (ICP) algorithm. + + number of iterations + Controls the accuracy of registration at each iteration of ICP. + Robust outlier rejection is applied for robustness. This value actually corresponds to the standard deviation coefficient. Points with rejectionScale * sigma are ignored during registration. + Number of pyramid levels to proceed. Deep pyramids increase speed but decrease accuracy. Too coarse pyramids might have computational overhead on top of the inaccurate registrtaion. This parameter should be chosen to optimize a balance. Typical values range from 4 to 10. + Currently this parameter is ignored and only uniform sampling is applied. + Currently this parameter is ignored and only PickyICP is applied. Leave it as 1. + + + + Release the unmanaged resources associated with the ICP + + + + + Perform registration. + + The input point cloud for the model. Expected to have the normals (Nx6). Currently, CV_32F is the only supported data type. + The input point cloud for the scene. It is assumed that the model is registered on the scene. Scene remains static. Expected to have the normals (Nx6). Currently, CV_32F is the only supported data type. + The output registration error. + Transformation between srcPC and dstPC. + On successful termination, the function returns 0. + + + + Entry points to the Open CV Surface Matching module + + + + + Base class for convolution (or cross-correlation) operator. + + + + + Create a Cuda Convolution object. + + Block size. If you leave default value Size(0,0) then automatic estimation of block size will be used (which is optimized for speed). By varying user_block_size you can reduce memory requirements at the cost of speed. + + + + Computes a convolution (or cross-correlation) of two images. + + Source image. Only CV_32FC1 images are supported for now. + Template image. The size is not greater than the image size. The type is the same as image . + Result image. If image is W x H and templ is w x h, then result must be W-w+1 x H-h+1. + Flags to evaluate cross-correlation instead of convolution. + Stream for the asynchronous version + + + + Release all the unmanaged memory associated with this object + + + + + This class wraps the functional calls to the opencv_gpu module + + + + + Get the compute capability of the device + + The device + The major version of the compute capability + The minor version of the compute capability + + + + Get the number of multiprocessors on device + + The device + The number of multiprocessors on device + + + + Get the device name + + + + + Return true if Cuda is found on the system + + + + + Get the opencl platform summary as a string + + An opencl platfor summary + + + + Get the number of Cuda enabled devices + + The number of Cuda enabled devices + + + + Set the current Gpu Device + + The id of the device to be setted as current + + + + Get the current Cuda device id + + The current Cuda device id + + + + Create a GpuMat from the specific region of . The data is shared between the two GpuMat. + + The gpuMat to extract regions from. + The column range. Use MCvSlice.WholeSeq for all columns. + The row range. Use MCvSlice.WholeSeq for all rows. + Pointer to the GpuMat + + + + Resize the GpuMat + + The input GpuMat + The resulting GpuMat + The interpolation type + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + gpuMatReshape the src GpuMat + + The source GpuMat + The resulting GpuMat, as input it should be an empty GpuMat. + The new number of channels + The new number of rows + + + + Returns header, corresponding to a specified rectangle of the input GpuMat. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. + + Input GpuMat + Zero-based coordinates of the rectangle of interest. + Pointer to the resultant sub-array header. + + + + Shifts a matrix to the left (c = a << scalar) + + The matrix to be shifted. + The scalar to shift by. + The result of the shift + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Shifts a matrix to the right (c = a >> scalar) + + The matrix to be shifted. + The scalar to shift by. + The result of the shift + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Adds one matrix to another (c = a + b). + + The first matrix to be added. + The second matrix to be added. + The sum of the two matrix + The optional mask that is used to select a subarray. Use null if not needed + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Subtracts one matrix from another (c = a - b). + + The matrix where subtraction take place + The matrix to be substracted + The result of a - b + The optional mask that is used to select a subarray. Use null if not needed + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes element-wise product of the two GpuMat: c = scale * a * b. + + The first GpuMat to be element-wise multiplied. + The second GpuMat to be element-wise multiplied. + The element-wise multiplication of the two GpuMat + The scale + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes element-wise quotient of the two GpuMat (c = scale * a / b). + + The first GpuMat + The second GpuMat + The element-wise quotient of the two GpuMat + The scale + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes the weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma) + + The first source GpuMat + The weight for + The second source GpuMat + The weight for + The constant to be added + The result + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Computes element-wise absolute difference of two GpuMats (c = abs(a - b)). + + The first GpuMat + The second GpuMat + The result of the element-wise absolute difference. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes absolute value of each pixel in an image + + The source GpuMat, support depth of Int16 and float. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes square of each pixel in an image + + The source GpuMat, support depth of byte, UInt16, Int16 and float. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes square root of each pixel in an image + + The source GpuMat, support depth of byte, UInt16, Int16 and float. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Transposes a matrix. + + Source matrix. 1-, 4-, 8-byte element sizes are supported for now. + Destination matrix. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Compares elements of two GpuMats (c = a <cmpop> b). + Supports CV_8UC4, CV_32FC1 types + + The first GpuMat + The second GpuMat + The result of the comparison. + The type of comparison + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Resizes the image. + + The source image. Has to be GpuMat<Byte>. If stream is used, the GpuMat has to be either single channel or 4 channels. + The destination image. + The interpolation type. Supports INTER_NEAREST, INTER_LINEAR. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Scale factor along the horizontal axis. If it is zero, it is computed as: (double)dsize.width/src.cols + Scale factor along the vertical axis. If it is zero, it is computed as: (double)dsize.height/src.rows + Destination image size. If it is zero, it is computed as: dsize = Size(round(fx* src.cols), round(fy* src.rows)). Either dsize or both fx and fy must be non-zero. + + + + Copies each plane of a multi-channel GpuMat to a dedicated GpuMat + + The multi-channel gpuMat + Pointer to an array of single channel GpuMat pointers + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Makes multi-channel GpuMat out of several single-channel GpuMats + + Pointer to an array of single channel GpuMat pointers + The multi-channel gpuMat + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Computes exponent of each matrix element (b = exp(a)) + + The source GpuMat. Supports Byte, UInt16, Int16 and float type. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes power of each matrix element: + (dst(i,j) = pow( src(i,j) , power), if src.type() is integer; + (dst(i,j) = pow(fabs(src(i,j)), power), otherwise. + supports all, except depth == CV_64F + + The source GpuMat + The power + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes natural logarithm of absolute value of each matrix element: b = log(abs(a)) + + The source GpuMat. Supports Byte, UInt16, Int16 and float type. + The resulting GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes magnitude of each (x(i), y(i)) vector + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes squared magnitude of each (x(i), y(i)) vector + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes angle (angle(i)) of each (x(i), y(i)) vector + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + If true, the output angle is in degrees, otherwise in radian + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts Cartesian coordinates to polar + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + If true, the output angle is in degrees, otherwise in radian + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts polar coordinates to Cartesian + + The source GpuMat. Supports only floating-point type + The source GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + The destination GpuMat. Supports only floating-point type + If true, the input angle is in degrees, otherwise in radian + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Finds minimum and maximum element values and their positions. The extremums are searched over the whole GpuMat or, if mask is not IntPtr.Zero, in the specified GpuMat region. + + The source GpuMat, single-channel + Pointer to returned minimum value + Pointer to returned maximum value + Pointer to returned minimum location + Pointer to returned maximum location + The optional mask that is used to select a subarray. Use null if not needed + + + + Finds global minimum and maximum matrix elements and returns their values with locations. + + Single-channel source image. + The output min and max values + The ouput min and max locations + Optional mask to select a sub-matrix. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs downsampling step of Gaussian pyramid decomposition. + + The source CudaImage. + The destination CudaImage, should have 2x smaller width and height than the source. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs up-sampling step of Gaussian pyramid decomposition. + + The source CudaImage. + The destination image, should have 2x smaller width and height than the source. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes mean value and standard deviation + + The GpuMat. Supports only CV_8UC1 type + The mean value + The standard deviation + + + + Computes norm of the difference between two GpuMats + + The GpuMat. Supports only CV_8UC1 type + If IntPtr.Zero, norm operation is apply to only. Otherwise, this is the GpuMat of type CV_8UC1 + The norm type. Supports NORM_INF, NORM_L1, NORM_L2. + The norm of the if is IntPtr.Zero. Otherwise the norm of the difference between two GpuMats. + + + + Returns the norm of a matrix. + + Source matrix. Any matrices except 64F are supported. + Norm type. NORM_L1 , NORM_L2 , and NORM_INF are supported for now. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + The norm of a matrix + + + + Returns the norm of a matrix. + + Source matrix. Any matrices except 64F are supported. + The GpuMat to store the result + Norm type. NORM_L1 , NORM_L2 , and NORM_INF are supported for now. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Returns the difference of two matrices. + + Source matrix. Any matrices except 64F are supported. + Second source matrix (if any) with the same size and type as src1. + The GpuMat where the result will be stored in + Norm type. NORM_L1 , NORM_L2 , and NORM_INF are supported for now. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Returns the sum of absolute values for matrix elements. + + Source image of any depth except for CV_64F. + optional operation mask; it must have the same size as src and CV_8UC1 type. + The sum of absolute values for matrix elements. + + + + Returns the sum of absolute values for matrix elements. + + Source image of any depth except for CV_64F. + The GpuMat where the result will be stored. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Returns the squared sum of matrix elements. + + Source image of any depth except for CV_64F. + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + The squared sum of matrix elements. + + + + Returns the squared sum of matrix elements. + + Source image of any depth except for CV_64F. + The GpuMat where the result will be stored + optional operation mask; it must have the same size as src1 and CV_8UC1 type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Counts non-zero array elements + + Single-channel source image. + The number of non-zero GpuMat elements + + + + Counts non-zero array elements + + Single-channel source image. + A Gpu mat to hold the result + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Normalizes the norm or value range of an array. + + Input array. + Output array of the same size as src . + Norm value to normalize to or the lower range boundary in case of the range normalization. + Upper range boundary in case of the range normalization; it is not used for the norm normalization. + Normalization type ( NORM_MINMAX , NORM_L2 , NORM_L1 or NORM_INF ). + Optional depth of the output array. + Optional operation mask. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Reduces GpuMat to a vector by treating the GpuMat rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained. + + The input GpuMat + Destination vector. Its size and type is defined by dim and dtype parameters + Dimension index along which the matrix is reduced. 0 means that the matrix is reduced to a single row. 1 means that the matrix is reduced to a single column. + The reduction operation type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Optional depth of the output array. + + + + Flips the GpuMat<Byte> in one of different 3 ways (row and column indices are 0-based). + + The source GpuMat. supports 1, 3 and 4 channels GpuMat with Byte, UInt16, int or float depth + Destination GpuMat. The same source and type as + Specifies how to flip the GpuMat. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical conjunction of two GpuMats: + dst(I)=src1(I)^src2(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The first source GpuMat + The second source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical or of two GpuMats: + dst(I)=src1(I) | src2(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The first source GpuMat + The second source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical and of two GpuMats: + dst(I)=src1(I) & src2(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The first source GpuMat + The second source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates per-element bit-wise logical not + dst(I)=~src(I) if mask(I)!=0 + In the case of floating-point GpuMats their bit representations are used for the operation. All the GpuMats must have the same type, except the mask, and the same size + + The source GpuMat + The destination GpuMat + Mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes per-element minimum of two GpuMats (dst = min(src1, src2)) + + The first GpuMat + The second GpuMat + The result GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes per-element maximum of two GpuMats (dst = max(src1, src2)) + + The first GpuMat + The second GpuMat + The result GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Applies fixed-level thresholding to single-channel array. The function is typically used to get bi-level (binary) image out of grayscale image or for removing a noise, i.e. filtering out pixels with too small or too large values. There are several types of thresholding the function supports that are determined by thresholdType + + Source array (single-channel, 8-bit of 32-bit floating point). + Destination array; must be either the same type as src or 8-bit. + Threshold value + Maximum value to use with CV_THRESH_BINARY and CV_THRESH_BINARY_INV thresholding types + Thresholding type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs generalized matrix multiplication: + dst = alpha*op(src1)*op(src2) + beta*op(src3), where op(X) is X or XT + + The first source array. + The second source array. + The scalar + The third source array (shift). Can be IntPtr.Zero, if there is no shift. + The scalar + The destination array. + The gemm operation type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Warps the image using affine transformation + + The source GpuMat + The destination GpuMat + The 2x3 transformation matrix (pointer to CvArr) + Supports NN, LINEAR, CUBIC + The border mode, use BORDER_TYPE.CONSTANT for default. + The border value, use new MCvScalar() for default. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + The size of the destination image + + + + Warps the image using perspective transformation + + The source GpuMat + The destination GpuMat + The 2x3 transformation matrix (pointer to CvArr) + Supports NN, LINEAR, CUBIC + The border mode, use BORDER_TYPE.CONSTANT for default. + The border value, use new MCvScalar() for default. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + The size of the destination image + + + + DST[x,y] = SRC[xmap[x,y],ymap[x,y]] with bilinear interpolation. + + The source GpuMat. Supports CV_8UC1, CV_8UC3 source types. + The dstination GpuMat. Supports CV_8UC1, CV_8UC3 source types. + The xmap. Supports CV_32FC1 map type. + The ymap. Supports CV_32FC1 map type. + Interpolation type. + Border mode. Use BORDER_CONSTANT for default. + The value of the border. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Rotates an image around the origin (0,0) and then shifts it. + + Source image. Supports 1, 3 or 4 channels images with Byte, UInt16 or float depth + Destination image with the same type as src. Must be pre-allocated + Angle of rotation in degrees + Shift along the horizontal axis + Shift along the verticle axis + The size of the destination image + Interpolation method. Only INTER_NEAREST, INTER_LINEAR, and INTER_CUBIC are supported. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Copies a 2D array to a larger destination array and pads borders with the given constant. + + Source image. + Destination image with the same type as src. The size is Size(src.cols+left+right, src.rows+top+bottom). + Number of pixels in each direction from the source image rectangle to extrapolate. + Number of pixels in each direction from the source image rectangle to extrapolate. + Number of pixels in each direction from the source image rectangle to extrapolate. + Number of pixels in each direction from the source image rectangle to extrapolate. + Border Type + Border value. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes the integral image and integral for the squared image + + The source GpuMat, supports only CV_8UC1 source type + The sum GpuMat, supports only CV_32S source type, but will contain unsigned int values + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Computes squared integral image + + The source GpuMat, supports only CV_8UC1 source type + The sqsum GpuMat, supports only CV32F source type. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs a forward or inverse discrete Fourier transform (1D or 2D) of floating point matrix. + Param dft_size is the size of DFT transform. + + If the source matrix is not continous, then additional copy will be done, + so to avoid copying ensure the source matrix is continous one. If you want to use + preallocated output ensure it is continuous too, otherwise it will be reallocated. + + Being implemented via CUFFT real-to-complex transform result contains only non-redundant values + in CUFFT's format. Result as full complex matrix for such kind of transform cannot be retrieved. + + For complex-to-real transform it is assumed that the source matrix is packed in CUFFT's format. + + The source GpuMat + The resulting GpuMat of the DST, must be pre-allocated and continious. If single channel, the result is real. If double channel, the result is complex + Size of a discrete Fourier transform. + DFT flags + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs a per-element multiplication of two Fourier spectrums and scales the result. + + First spectrum. + Second spectrum with the same size and type. + Destination spectrum. + Mock parameter used for CPU/CUDA interfaces similarity, simply add a 0 value. + Scale constant. + Optional flag to specify if the second spectrum needs to be conjugated before the multiplication. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs a per-element multiplication of two Fourier spectrums. + + First spectrum. + Second spectrum with the same size and type. + Destination spectrum. + Mock parameter used for CPU/CUDA interfaces similarity. + Optional flag to specify if the second spectrum needs to be conjugated before the multiplication. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Sets a CUDA device and initializes it for the current thread with OpenGL interoperability. + This function should be explicitly called after OpenGL context creation and before any CUDA calls. + + System index of a CUDA device starting with 0. + + + + Colors a disparity image. + + Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit floating-point disparity image. If 16-bit signed format is used, the values are assumed to have no fractional bits. + Output disparity image. It has the same size as src_disp. The type is CV_8UC4 in BGRA format (alpha = 255). + Number of disparities. + Stream for the asynchronous version. + + + + Release the GpuMat + + Pointer to the GpuMat + + + + Create an empty GpuMat + + Pointer to an empty GpuMat + + + + Convert a CvArr to a GpuMat + + Pointer to a CvArr + Pointer to the GpuMat + + + + Get the GpuMat size: + width == number of columns, height == number of rows + + The GpuMat + The size of the matrix + + + + Get the GpuMat type + + The GpuMat + The GpuMat type + + + + Create a GpuMat of the specified size + + Pointer to the native cv::Mat + The number of rows (height) + The number of columns (width) + The type of GpuMat + Pointer to the GpuMat + + + + Create a GpuMat of the specified size. The allocated data is continuous within this GpuMat. + + The number of rows (height) + The number of columns (width) + The type of GpuMat + Pointer to the GpuMat + + + + Performs blocking upload data to GpuMat. + + The destination gpuMat + The CvArray to be uploaded to GPU + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Downloads data from device to host memory. Blocking calls. + + The source GpuMat + The CvArray where data will be downloaded to + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Copy the source GpuMat to destination GpuMat, using an optional mask. + + The GpuMat to be copied from + The GpuMat to be copied to + The optional mask, use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + This function has several different purposes and thus has several synonyms. It copies one GpuMat to another with optional scaling, which is performed first, and/or optional type conversion, performed after: + dst(I)=src(I)*scale + (shift,shift,...) + All the channels of multi-channel GpuMats are processed independently. + The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination GpuMat element type, it is set to the nearest representable value on the real axis. + In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate convertTo synonym. + + Source GpuMat + Destination GpuMat + The depth type of the destination GpuMat + Scale factor + Value added to the scaled source GpuMat elements + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Changes shape of GpuMat without copying data. + + The GpuMat to be reshaped. + The result GpuMat. + New number of channels. newCn = 0 means that the number of channels remains unchanged. + New number of rows. newRows = 0 means that the number of rows remains unchanged unless it needs to be changed according to newCn value. + A GpuMat of different shape + + + + Converts image from one color space to another + + The source GpuMat + The destination GpuMat + The color conversion code + Number of channels in the destination image. If the parameter is 0, the number of the channels is derived automatically from src and the code . + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts an image from Bayer pattern to RGB or grayscale. + + Source image (8-bit or 16-bit single channel). + Destination image. + Color space conversion code (see the description below). + Number of channels in the destination image. If the parameter is 0, the number of the channels is derived automatically from src and the code . + Stream for the asynchronous version. + + + + Swap channels. + + The image where the channels will be swapped + + Integer array describing how channel values are permutated. The n-th entry + of the array contains the number of the channel that is stored in the n-th channel of + the output image. E.g. Given an RGBA image, aDstOrder = [3,2,1,0] converts this to ABGR + channel order. + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Routines for correcting image color gamma + + Source image (3- or 4-channel 8 bit). + Destination image. + True for forward gamma correction or false for inverse gamma correction. + Stream for the asynchronous version. + + + + Composites two images using alpha opacity values contained in each image. + + First image. Supports CV_8UC4 , CV_16UC4 , CV_32SC4 and CV_32FC4 types. + Second image. Must have the same size and the same type as img1 . + Destination image + Flag specifying the alpha-blending operation + Stream for the asynchronous version + + + + Calculates histogram for one channel 8-bit image. + + Source image with CV_8UC1 type. + Destination histogram with one row, 256 columns, and the CV_32SC1 type. + tream for the asynchronous version. + + + + Equalizes the histogram of a grayscale image. + + Source image with CV_8UC1 type. + Destination image. + Stream for the asynchronous version. + + + + Calculates histogram with evenly distributed bins for single channel source. + + The source GpuMat. Supports CV_8UC1, CV_16UC1 and CV_16SC1 types. + Histogram with evenly distributed bins. A GpuMat<int> type. + The size of histogram (number of levels) + The lower level + The upper level + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + Histogram with evenly distributed bins + + + + Calculates a histogram with bins determined by the levels array + + Source image. CV_8U , CV_16U , or CV_16S depth and 1 or 4 channels are supported. For a four-channel image, all channels are processed separately. + Destination histogram with one row, (levels.cols-1) columns, and the CV_32SC1 type. + Number of levels in the histogram. + Stream for the asynchronous version. + + + + Performs linear blending of two images. + + First image. Supports only CV_8U and CV_32F depth. + Second image. Must have the same size and the same type as img1 . + Weights for first image. Must have tha same size as img1. Supports only CV_32F type. + Weights for second image. Must have tha same size as img2. Supports only CV_32F type. + Destination image. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Applies bilateral filter to the image. + + The source image + The destination image; should have the same size and the same type as src + The diameter of each pixel neighborhood, that is used during filtering. + Filter sigma in the color space. Larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting in larger areas of semi-equal color + Filter sigma in the coordinate space. Larger value of the parameter means that farther pixels will influence each other (as long as their colors are close enough; see sigmaColor). Then d>0, it specifies the neighborhood size regardless of sigmaSpace, otherwise d is proportional to sigmaSpace. + Pixel extrapolation method, use DEFAULT for default + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs mean-shift filtering for each point of the source image. It maps each point of the source + image into another point, and as the result we have new color and new position of each point. + + Source CudaImage. Only CV 8UC4 images are supported for now. + Destination CudaImage, containing color of mapped points. Will have the same size and type as src. + Spatial window radius. + Color window radius. + Termination criteria. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs mean-shift procedure and stores information about processed points (i.e. their colors + and positions) into two images. + + Source CudaImage. Only CV 8UC4 images are supported for now. + Destination CudaImage, containing color of mapped points. Will have the same size and type as src. + Destination CudaImage, containing position of mapped points. Will have the same size as src and CV 16SC2 type. + Spatial window radius. + Color window radius. + Termination criteria. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Performs mean-shift segmentation of the source image and eleminates small segments. + + Source CudaImage. Only CV 8UC4 images are supported for now. + Segmented Image. Will have the same size and type as src. Note that this is an Image type and not CudaImage type + Spatial window radius. + Color window radius. + Minimum segment size. Smaller segements will be merged. + Termination criteria. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result + + Image where the search is running. It should be 8-bit or 32-bit floating-point + Searched template; must be not greater than the source image and the same data type as the image + A map of comparison results; single-channel 32-bit floating-point. If image is WxH and templ is wxh then result must be W-w+1xH-h+1. + Pointer to cv::gpu::TemplateMatching + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Calculates a dense optical flow. + + The dense optical flow object + first input image. + second input image of the same size and the same type as . + computed flow image that has the same size as I0 and type CV_32FC2. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Calculates a sparse optical flow. + + The sparse optical flow + First input image. + Second input image of the same size and the same type as . + Vector of 2D points for which the flow needs to be found. + Output vector of 2D points containing the calculated new positions of input features in the second image. + Output status vector. Each element of the vector is set to 1 if the flow for the corresponding features has been found. Otherwise, it is set to 0. + Optional output vector that contains error response for each point (inverse confidence). + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + The Cuda device information + + + + + Query the information of the gpu device that is currently in use. + + + + + Query the information of the cuda device with the specific id. + + The device id + + + + The id of the device + + + + + The name of the device + + + + + The compute capability + + + + + The number of single multi processors + + + + + Get the amount of free memory at the moment + + + + + Get the amount of total memory + + + + + Indicates if the device has the specific feature + + The device feature + True if the feature is supported + + + + Checks whether the Cuda module can be run on the given device + + + + + GPU feature + + + + + Cuda compute 1.0 + + + + + Cuda compute 1.1 + + + + + Cuda compute 1.2 + + + + + Cuda compute 1.3 + + + + + Cuda compute 2.0 + + + + + Cuda compute 2.1 + + + + + Global Atomic + + + + + Shared Atomic + + + + + Native double + + + + + Release the unmanaged resource related to the GpuDevice + + + + + An CudaImage is very similar to the Emgu.CV.Image except that it is being used for GPU processing + + Color type of this image (either Gray, Bgr, Bgra, Hsv, Hls, Lab, Luv, Xyz, Ycc, Rgb or Rbga) + Depth of this image (either Byte, SByte, Single, double, UInt16, Int16 or Int32) + + + + Create an empty CudaImage + + + + + Create the CudaImage from the unmanaged pointer. + + The unmanaged pointer to the GpuMat. It is the user's responsibility that the Color type and depth matches between the managed class and unmanaged pointer. + if true, unpon object disposal, we will cann the release function on the unmanaged + + + + Create a GPU image from a regular image + + The image to be converted to GPU image + + + + Create a CudaImage of the specific size + + The number of rows (height) + The number of columns (width) + Indicates if the data should be continuous + + + + Create a CudaImage of the specific size + + The number of rows (height) + The number of columns (width) + + + + Create a CudaImage of the specific size + + The size of the image + + + + Create a CudaImage from the specific region of . The data is shared between the two CudaImage + + The CudaImage where the region is extracted from + The column range. Use MCvSlice.WholeSeq for all columns. + The row range. Use MCvSlice.WholeSeq for all rows. + + + + Convert the current CudaImage to a regular Image. + + A regular image + + + Convert the current CudaImage to the specific color and depth + The type of color to be converted to + The type of pixel depth to be converted to + CudaImage of the specific color and depth + + + + Convert the source image to the current image, if the size are different, the current image will be a resized version of the srcImage. + + The color type of the source image + The color depth of the source image + The sourceImage + + + + Create a clone of this CudaImage + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + A clone of this CudaImage + + + + Resize the CudaImage. The calling GpuMat be GpuMat%lt;Byte>. If stream is specified, it has to be either 1 or 4 channels. + + The new size + The interpolation type + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + A CudaImage of the new size + + + + Returns a CudaImage corresponding to a specified rectangle of the current CudaImage. The data is shared with the current matrix. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. + + Zero-based coordinates of the rectangle of interest. + A CudaImage that represent the region of the current CudaImage. + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the ith row of the CudaImage. The data is shared with the current Image. + + The row to be extracted + The ith row of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the [ ) rows of the CudaImage. The data is shared with the current Image. + + The inclusive stating row to be extracted + The exclusive ending row to be extracted + The [ ) rows of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the ith column of the CudaImage. The data is shared with the current Image. + + The column to be extracted + The ith column of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + Returns a CudaImage corresponding to the [ ) columns of the CudaImage. The data is shared with the current Image. + + The inclusive stating column to be extracted + The exclusive ending column to be extracted + The [ ) columns of the CudaImage + The parent CudaImage should never be released before the returned CudaImage that represent the subregion + + + + convert the current CudaImage to its equivalent Bitmap representation + + + + + Gpu look up table + + + + + Create the look up table + + It should be either 1 or 3 channel matrix of 1x256 + + + + Transform the image using the lookup table + + The image to be transformed + The transformation result + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associated with this look up table + + + + + A GpuMat, use the generic version if possible. The non generic version is good for use as buffer in stream calls. + + + + + Create an empty GpuMat + + + + + Create a GpuMat of the specified size + + The number of rows (height) + The number of columns (width) + The number of channels + The type of depth + Indicates if the data should be continuous + + + + allocates new GpuMat data unless the GpuMat already has specified size and type + + The number of rows + The number of cols + The depth type + The number of channels. + + + + Create a GpuMat from the specific pointer + + Pointer to the unmanaged gpuMat + True if we need to call Release function to during object disposal + + + + Create a GpuMat from an CvArray of the same depth type + + The CvArray to be converted to GpuMat + + + + Create a GpuMat from the specific region of . The data is shared between the two GpuMat + + The matrix where the region is extracted from + The column range. + The row range. + + + + Release the unmanaged memory associated with this GpuMat + + + + + Get the GpuMat size: + width == number of columns, height == number of rows + + + + + Get the type of the GpuMat + + + + + Pointer to the InputArray + + The input array + + + + Pointer to the OutputArray + + The output array + + + + Pointer to the InputOutputArray + + The input output array + + + + Upload data to GpuMat + + The CvArray to be uploaded to GpuMat + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Downloads data from device to host memory. + + The destination CvArray where the GpuMat data will be downloaded to. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Convert the GpuMat to Mat + + The Mat that contains the same data as this GpuMat + + + + Get a copy of the data values as an array + + If true, a jagged array will returned. Otherwise it will return a regular array. + a copy of the data values as an array + + + + Copies scalar value to every selected element of the destination GpuMat: + arr(I)=value if mask(I)!=0 + + Fill value + Operation mask, 8-bit single channel GpuMat; specifies elements of destination GpuMat to be changed. Can be IntPtr.Zero if not used + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Copy the source GpuMat to destination GpuMat, using an optional mask. + + The output array to be copied to + The optional mask, use IntPtr.Zero if not needed. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + This function has several different purposes and thus has several synonyms. It copies one GpuMat to another with optional scaling, which is performed first, and/or optional type conversion, performed after: + dst(I)=src(I)*scale + (shift,shift,...) + All the channels of multi-channel GpuMats are processed independently. + The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination GpuMat element type, it is set to the nearest representable value on the real axis. + In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate convertTo synonym. + + Destination GpuMat + Result type + Scale factor + Value added to the scaled source GpuMat elements + Use a Stream to call the function asynchronously (non-blocking) or IntPtr.Zero to call the function synchronously (blocking). + + + + Changes shape of GpuMat without copying data. + + New number of channels. newCn = 0 means that the number of channels remains unchanged. + New number of rows. newRows = 0 means that the number of rows remains unchanged unless it needs to be changed according to newCn value. + A GpuMat of different shape + + + + Returns a GpuMat corresponding to the ith row of the GpuMat. The data is shared with the current GpuMat. + + The row to be extracted + The ith row of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns a GpuMat corresponding to the [ ) rows of the GpuMat. The data is shared with the current GpuMat. + + The inclusive stating row to be extracted + The exclusive ending row to be extracted + The [ ) rows of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns a GpuMat corresponding to the ith column of the GpuMat. The data is shared with the current GpuMat. + + The column to be extracted + The ith column of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns a GpuMat corresponding to the [ ) columns of the GpuMat. The data is shared with the current GpuMat. + + The inclusive stating column to be extracted + The exclusive ending column to be extracted + The [ ) columns of the GpuMat + The parent GpuMat should never be released before the returned GpuMat that represent the subregion + + + + Returns true if the two GpuMat equals + + The other GpuMat to be compares with + True if the two GpuMat equals + + + + Makes multi-channel array out of several single-channel arrays + + + An array of single channel GpuMat where each item + in the array represent a single channel of the GpuMat + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Split current Image into an array of gray scale images where each element + in the array represent a single color channel of the original image + + + An array of single channel GpuMat where each item + in the array represent a single channel of the original GpuMat + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Split current GpuMat into an array of single channel GpuMat where each element + in the array represent a single channel of the original GpuMat + + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + An array of single channel GpuMat where each element + in the array represent a single channel of the original GpuMat + + + + + Get the Bitmap from this GpuMat + + + + + Returns the min / max location and values for the image + + The maximum locations for each channel + The maximum values for each channel + The minimum locations for each channel + The minimum values for each channel + + + + Save the GpuMat to a file + + The file name + + + + Make a clone of the GpuMat + + A clone of the GPU Mat + + + + True if the data is continues + + + + + Depth type + + + + + True if the matrix is empty + + + + + Number of channels + + + + + Similar to CvArray but use GPU for processing + + The type of element in the matrix + + + + Create a GpuMat from the unmanaged pointer + + The unmanaged pointer to the GpuMat + If true, will call the release function on the + + + + Create an empty GpuMat + + + + + Create a GpuMat from an CvArray of the same depth type + + The CvArry to be converted to GpuMat + + + + Create a GpuMat of the specified size + + The number of rows (height) + The number of columns (width) + The number of channels + Indicates if the data should be continuous + + + + Create a GpuMat of the specified size + + The size of the GpuMat + The number of channels + + + + Convert this GpuMat to a Matrix + + The matrix that contains the same values as this GpuMat + + + + Returns a GpuMat corresponding to a specified rectangle of the current GpuMat. The data is shared with the current matrix. In other words, it allows the user to treat a rectangular part of input array as a stand-alone array. + + Zero-based coordinates of the rectangle of interest. + A GpuMat that represent the region of the current matrix. + The parent GpuMat should never be released before the returned GpuMat the represent the subregion + + + + Encapculates Cuda Stream. Provides interface for async coping. + Passed to each function that supports async kernel execution. + Reference counting is enabled + + + + + Create a new Cuda Stream + + + + + Wait for the completion + + + + + Check if the stream is completed + + + + + Release the stream + + + + + Gives information about what GPU archs this OpenCV GPU module was compiled for + + + + + Check if the GPU module is build with the specific feature set. + + The feature set to be checked. + True if the GPU module is build with the specific feature set. + + + + Check if the GPU module is targeted for the specific device version + + The major version + The minor version + True if the GPU module is targeted for the specific device version. + + + + Check if the GPU module is targeted for the specific PTX version + + The major version + The minor version + True if the GPU module is targeted for the specific PTX version. + + + + Check if the GPU module is targeted for the specific BIN version + + The major version + The minor version + True if the GPU module is targeted for the specific BIN version. + + + + Check if the GPU module is targeted for equal or less PTX version + + The major version + The minor version + True if the GPU module is targeted for equal or less PTX version. + + + + Check if the GPU module is targeted for equal or greater device version + + The major version + The minor version + True if the GPU module is targeted for equal or greater device version. + + + + Check if the GPU module is targeted for equal or greater PTX version + + The major version + The minor version + True if the GPU module is targeted for equal or greater PTX version. + + + + Check if the GPU module is targeted for equal or greater BIN version + + The major version + The minor version + True if the GPU module is targeted for equal or greater BIN version. + + + + Wrapped class of the C++ standard vector of GpuMat. + + + + + Create an empty standard vector of GpuMat + + + + + Create an standard vector of GpuMat of the specific size + + The size of the vector + + + + Create an standard vector of GpuMat with the initial values + + The initial values + + + + Get the size of the vector + + + + + Clear the vector + + + + + Push a value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values into the standard vector + + The values to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + Gaussian Mixture-based Background/Foreground Segmentation Algorithm. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a Gaussian Mixture-based Background/Foreground Segmentation model + + Length of the history. + Number of Gaussian mixtures. + Background ratio. + Noise strength (standard deviation of the brightness or each color channel). 0 means some automatic value. + + + + Updates the background model + + Next video frame. + The learning rate, use -1.0f for default value. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + The foregroundMask + + + + Release all the unmanaged resource associated with this object + + + + + Gaussian Mixture-based Background/Foreground Segmentation Algorithm. + + + + + Pointer to the unmanaged Algorithm object + + + + + Pointer to the unmanaged BackgroundSubtractor object + + + + + Create a Gaussian Mixture-based Background/Foreground Segmentation model + + Length of the history. + Threshold on the squared Mahalanobis distance between the pixel and the model to decide whether a pixel is well described by the background model. This parameter does not affect the background update. + If true, the algorithm will detect shadows and mark them. It decreases the speed a bit, so if you do not need this feature, set the parameter to false. + + + + Updates the background model + + Next video frame. + The output forground mask + The learning rate, use -1.0f for default value. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged resource associated with this object + + + + + Box filter + + + + + Create a BoxMax filter. + + Size of the kernel + The center of the kernel. User (-1, -1) for the default kernel center. + The border type. + The border value. + The source image depth type + The number of channels in the source image + The destination image depth type + The number of channels in the destination image + + + + BoxMax filter + + + + + Create a BoxMax filter. + + Size of the kernel + The center of the kernel. User (-1, -1) for the default kernel center. + The border type. + The border value. + The depth type of the source image + The number of channels of the source image + + + + BoxMin filter + + + + + Create a BoxMin filter. + + Size of the kernel + The center of the kernel. User (-1, -1) for the default kernel center. + The border type. + The border value. + The depth of the source image + The number of channels in the source image + + + + A vertical 1D box filter. + + + + + Creates a vertical 1D box filter. + + Input image depth. + Input image channel. + Output image depth. + Output image channel. + Kernel size. + Anchor point. The default value (-1) means that the anchor is at the kernel center. + Pixel extrapolation method. + Default border value. + + + + A generalized Deriv operator. + + + + + Creates a generalized Deriv operator. + + Source image depth. + Source image channels. + Destination array depth. + Destination array channels. + Derivative order in respect of x. + Derivative order in respect of y. + Aperture size. + Flag indicating whether to normalize (scale down) the filter coefficients or not. + Optional scale factor for the computed derivative values. By default, no scaling is applied. + Pixel extrapolation method in the vertical direction. + Pixel extrapolation method in the horizontal direction. + + + + Base Cuda filter class + + + + + Release all the unmanaged memory associated with this gpu filter + + + + + Apply the cuda filter + + The source CudaImage where the filter will be applied to + The destination CudaImage + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Gaussian filter + + + + + Create a Gaussian filter. + + The size of the kernel + This parameter may specify Gaussian sigma (standard deviation). If it is zero, it is calculated from the kernel size. + In case of non-square Gaussian kernel the parameter may be used to specify a different (from param3) sigma in the vertical direction. Use 0 for default + The row border type. + The column border type. + The depth type of the source image + The number of channels in the source image + The depth type of the destination image + The number of channels in the destination image + + + + Laplacian filter + + + + + Create a Laplacian filter. + + Either 1 or 3 + Optional scale. Use 1.0 for default + The border type. + The border value. + The depth type of the source image + The number of channels in the source image + The depth type of the destination image + The number of channels in the destination image + + + + Applies arbitrary linear filter to the image. In-place operation is supported. When the aperture is partially outside the image, the function interpolates outlier pixel values from the nearest pixels that is inside the image + + + + + Create a Gpu LinearFilter + + Convolution kernel, single-channel floating point matrix (e.g. Emgu.CV.Matrix). If you want to apply different kernels to different channels, split the gpu image into separate color planes and process them individually + The anchor of the kernel that indicates the relative position of a filtered point within the kernel. The anchor shoud lie within the kernel. The special default value (-1,-1) means that it is at the kernel center + Border type. Use REFLECT101 as default. + The border value + The depth type of the source image + The number of channels in the source image + The depth type of the dest image + The number of channels in the dest image + + + + median filtering for each point of the source image. + + + + + Create a median filter + + Type of of source image. Only 8U images are supported for now. + Type of of source image. Only single channel images are supported for now. + Size of the kernerl used for the filtering. Uses a (windowSize x windowSize) filter. + Specifies the parallel granularity of the workload. This parameter should be used GPU experts when optimizing performance. + + + + Morphology filter + + + + + Create a Morphology filter. + + Type of morphological operation + 2D 8-bit structuring element for the morphological operation. + Anchor position within the structuring element. Negative values mean that the anchor is at the center. + Number of times erosion and dilation to be applied. + The depth type of the source image + The number of channels in the source image + + + + A horizontal 1D box filter. + + + + + Creates a horizontal 1D box filter. + + Input image depth. Only 8U type is supported for now. + Input image channel. Only single channel type is supported for now. + Output image depth. Only 32F type is supported for now. + Output image channel. Only single channel type is supported for now. + Kernel size. + Anchor point. The default value (-1) means that the anchor is at the kernel center. + Pixel extrapolation method. + Default border value. + + + + A vertical or horizontal Scharr operator. + + + + + Creates a vertical or horizontal Scharr operator. + + Source image depth. + Source image channels. + Destination array depth. + Destination array channels. + Order of the derivative x. + Order of the derivative y. + Optional scale factor for the computed derivative values. By default, no scaling is applied. + Pixel extrapolation method in the vertical direction. For details, see borderInterpolate. + Pixel extrapolation method in the horizontal direction. + + + + SeparableLinearFilter + + + + + Create a SeparableLinearFilter + + Source array depth + Source array channels + Destination array depth + Destination array channels + Horizontal filter coefficients. Support kernels with size <= 32 . + Vertical filter coefficients. Support kernels with size <= 32 . + Anchor position within the kernel. Negative values mean that anchor is positioned at the aperture center. + Pixel extrapolation method in the vertical direction + Pixel extrapolation method in the horizontal direction + + + + Sobel filter + + + + + Create a Sobel filter. + + The depth of the source image + The number of channels of the source image + The depth of the destination image + The number of channels of the the destination image + Order of the derivative x + Order of the derivative y + Size of the extended Sobel kernel + Optional scale, use 1 for default. + The row border type. + The column border type. + + + + Cascade Classifier for object detection using Cuda + + + + + Canny edge detector using Cuda. + + The first threshold, used for edge linking + The second threshold, used to find initial segments of strong edges + Aperture parameter for Sobel operator, use 3 for default + Use false for default + + + + Finds the edges on the input and marks them in the output image edges using the Canny algorithm. + + Input image + Image to store the edges found by the function + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associate with this Canny edge detector. + + + + + Contrast Limited Adaptive Histogram Equalization + + + + + Create the Contrast Limited Adaptive Histogram Equalization + + Threshold for contrast limiting. Use 40.0 for default + Size of grid for histogram equalization. Input image will be divided into equally sized rectangular tiles. This parameter defines the number of tiles in row and column. Use (8, 8) for default + + + + Equalizes the histogram of a grayscale image using Contrast Limited Adaptive Histogram Equalization. + + Source image + Destination image + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associated with this object + + + + + Base CornernessCriteria class + + + + + Release all the unmanaged memory associated with this gpu filter + + + + + Apply the cuda filter + + The source CudaImage where the filter will be applied to + The destination CudaImage + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Cuda implementation of GoodFeaturesToTrackDetector + + + + + Create the Cuda implementation of GoodFeaturesToTrackDetector + + The depth of the src image + The number of channels in the src image + The maximum number of channels + The quality level + The minimum distance + The block size + If true, use Harris detector + Harris K + + + + Find the good features to track + + The input image + The output corners + Optional mask + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged memory associated with this detector + + + + + Runs the Harris edge detector on image. Similarly to cvCornerMinEigenVal and cvCornerEigenValsAndVecs, for each pixel it calculates 2x2 gradient covariation matrix M over block_size x block_size neighborhood. Then, it stores + det(M) - k*trace(M)^2 + to the destination image. Corners in the image can be found as local maxima of the destination image. + + + + + Create a Cuda Harris Corner detector + + The depth of the source image + The number of channels in the source image + Neighborhood size + + Harris detector free parameter. + Boreder type, use REFLECT101 for default + + + + Base class for circles detector algorithm. + + + + + Create hough circles detector + + Inverse ratio of the accumulator resolution to the image resolution. For example, if dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has half as big width and height. + Minimum distance between the centers of the detected circles. If the parameter is too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is too large, some circles may be missed. + The higher threshold of the two passed to Canny edge detector (the lower one is twice smaller). + The accumulator threshold for the circle centers at the detection stage. The smaller it is, the more false circles may be detected. + Minimum circle radius. + Maximum circle radius. + Maximum number of output circles. + + + + Finds circles in a grayscale image using the Hough transform. + + 8-bit, single-channel grayscale input image. + Output vector of found circles. Each vector is encoded as a 3-element floating-point vector. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Finds circles in a grayscale image using the Hough transform. + + 8-bit, single-channel grayscale input image. + Circles detected + + + + Release the unmanaged memory associated with this circle detector. + + + + + Base class for lines detector algorithm. + + + + + Create a hough lines detector + + Distance resolution of the accumulator in pixels. + Angle resolution of the accumulator in radians. + Accumulator threshold parameter. Only those lines are returned that get enough votes (> threshold). + Performs lines sort by votes. + Maximum number of output lines. + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image + Output vector of lines.Output vector of lines. Each line is represented by a two-element vector. + The first element is the distance from the coordinate origin (top-left corner of the image). + The second element is the line rotation angle in radians. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged memory associated to this line detector. + + + + + Base class for line segments detector algorithm. + + + + + Create a hough segment detector + + Distance resolution of the accumulator in pixels. + Angle resolution of the accumulator in radians. + Minimum line length. Line segments shorter than that are rejected. + Maximum allowed gap between points on the same line to link them. + Maximum number of output lines. + + + + Finds line segments in a binary image using the probabilistic Hough transform. + + 8-bit, single-channel binary source image + Output vector of lines. Each line is represented by a 4-element vector (x1, y1, x2, y2) , where (x1, y1) and (x2, y2) are the ending points of each detected line segment. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged memory associated with this segment detector + + + + + Bayer Demosaicing (Malvar, He, and Cutler) + + + + + BayerBG2BGR_MHT + + + + + BayerGB2BGR_MHT + + + + + BayerRG2BGR_MHT + + + + + BayerGR2BGR_MHT + + + + + BayerBG2RGB_MHT + + + + + BayerGB2RGB_MHT + + + + + BayerRG2RGB_MHT + + + + + BayerGR2RGB_MHT + + + + + BayerBG2GRAY_MHT + + + + + BayerGB2GRAY_MHT + + + + + BayerRG2GRAY_MHT + + + + + BayerGR2GRAY_MHT + + + + + Alpha composite types + + + + + Over + + + + + In + + + + + Out + + + + + Atop + + + + + Xor + + + + + Plus + + + + + Over Premul + + + + + In Premul + + + + + Out Premul + + + + + Atop Premul + + + + + Xor Premul + + + + + Plus Premul + + + + + Premul + + + + + Implementation for the minimum eigen value of a 2x2 derivative covariation matrix (the cornerness criteria). + + + + + Creates implementation for the minimum eigen value of a 2x2 derivative covariation matrix (the cornerness criteria). + + Input source depth. Only 8U and 32F are supported for now. + Input source type. Only single channel are supported for now. + Neighborhood size. + Aperture parameter for the Sobel operator. + Pixel extrapolation method. Only BORDER_REFLECT101 and BORDER_REPLICATE are supported for now. + + + + Cuda template matching filter. + + + + + Create a Cuda template matching filter + + Specifies the way the template must be compared with image regions + The block size + The depth type of the image that will be used in the template matching + The number of channels of the image that will be used in the template matching + + + + This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result + + Image where the search is running. It should be 8-bit or 32-bit floating-point + Searched template; must be not greater than the source image and the same data type as the image + A map of comparison results; single-channel 32-bit floating-point. If image is WxH and templ is wxh then result must be W-w+1xH-h+1. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the buffer + + + + + Brox optical flow + + + + + Create the Brox optical flow solver + + Flow smoothness + Gradient constancy importance + Pyramid scale factor + Number of lagged non-linearity iterations (inner loop) + Number of warping iterations (number of pyramid levels) + Number of linear system solver iterations + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged DenseOpticalFlow object + + + + + Pointer to the unmanaged Algorithm object + + + + + PyrLK optical flow + + + + + Create the PyrLK optical flow solver + + Windows size. Use 21x21 for default + The maximum number of pyramid levels. + The number of iterations. + Weather or not use the initial flow in the input matrix. + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged DenseOpticalFlow object + + + + + Pointer to the unmanaged Algorithm object + + + + + Farneback optical flow + + + + + Create a CudaFarnebackOpticalFlow object + + Specifies the image scale (!1) to build the pyramids for each image. pyrScale=0.5 means the classical pyramid, where each next layer is twice smaller than the previous + The number of pyramid layers, including the initial image. levels=1 means that no extra layers are created and only the original images are used + The averaging window size; The larger values increase the algorithm robustness to image noise and give more chances for fast motion detection, but yield more blurred motion field + The number of iterations the algorithm does at each pyramid level + Size of the pixel neighborhood used to find polynomial expansion in each pixel. The larger values mean that the image will be approximated with smoother surfaces, yielding more robust algorithm and more blurred motion field. Typically, poly n=5 or 7 + Standard deviation of the Gaussian that is used to smooth derivatives that are used as a basis for the polynomial expansion. For poly n=5 you can set poly sigma=1.1, for poly n=7 a good value would be poly sigma=1.5 + The operation flags + Fast Pyramids + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged DenseOpticalFlow object + + + + + Pointer to the unamanged Algorithm object + + + + + DualTvl1 optical flow + + + + + Initializes a new instance of the CudaOpticalFlowDualTvl1 class. + + Time step of the numerical scheme. + Weight parameter for the data term, attachment parameter. This is the most relevant parameter, which determines the smoothness of the output. The smaller this parameter is, the smoother the solutions we obtain. It depends on the range of motions of the images, so its value should be adapted to each image sequence. + Parameter used for motion estimation. It adds a variable allowing for illumination variations Set this parameter to 1. if you have varying illumination. + Number of scales used to create the pyramid of images. + Number of warpings per scale. Represents the number of times that I1(x+u0) and grad( I1(x+u0) ) are computed per scale. This is a parameter that assures the stability of the method. It also affects the running time, so it is a compromise between speed and accuracy. + Stopping criterion threshold used in the numerical scheme, which is a trade-off between precision and running time. A small value will yield more accurate solutions at the expense of a slower convergence. + Stopping criterion iterations number used in the numerical scheme. + Scale step + Weight parameter for (u - v)^2, tightness parameter. It serves as a link between the attachment and the regularization terms. In theory, it should have a small value in order to maintain both parts in correspondence. The method is stable for a large range of values of this parameter. + If true, use initial flow. + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the DenseOpticalFlow object + + + + + Pointer to the algorithm object + + + + + Sparse PyrLK optical flow + + + + + Create the PyrLK optical flow solver + + Windows size. Use 21x21 for default + The maximum number of pyramid levels. + The number of iterations. + Weather or not use the initial flow in the input matrix. + + + + Release all the unmanaged memory associated with this optical flow solver. + + + + + Pointer to the unmanaged SparseOpticalFlow object + + + + + Pointer to the unmanaged Algorithm object + + + + + Cuda Dense Optical flow + + + + + Pointer to cv::cuda::denseOpticalFlow + + + + + Interface to provide access to the cuda::SparseOpticalFlow class. + + + + + Pointer the the native cuda::sparseOpticalFlow object. + + + + + Descriptor matcher + + + + + Pointer to the native cv::Algorithm + + + + + Find the k-nearest match + + An n x m matrix of descriptors to be query for nearest neighbors. n is the number of descriptor and m is the size of the descriptor + Number of nearest neighbors to search for + Can be null if not needed. An n x 1 matrix. If 0, the query descriptor in the corresponding row will be ignored. + Matches. Each matches[i] is k or less matches for the same query descriptor. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + + + + Find the k-nearest match + + An n x m matrix of descriptors to be query for nearest neighbors. n is the number of descriptor and m is the size of the descriptor + Number of nearest neighbors to search for + Can be null if not needed. An n x 1 matrix. If 0, the query descriptor in the corresponding row will be ignored. + Matches. Each matches[i] is k or less matches for the same query descriptor. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Finds the k best matches for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::knnMatchConvert method to retrieve results in standard representation. + Count of best matches found per each query descriptor or less if a query descriptor has less than k possible matches in total. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Finds the k best matches for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::knnMatchConvert method to retrieve results in standard representation. + Count of best matches found per each query descriptor or less if a query descriptor has less than k possible matches in total. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Converts matches array from internal representation to standard matches vector. + + Matches + Vector of DMatch objects. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Finds the best match for each descriptor from a query set (blocking version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches. If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + Finds the best match for each descriptor from a query set (blocking version). + + Query set of descriptors. + Matches. If a query descriptor is masked out in mask , no match is added for this descriptor. So, matches size may be smaller than the query descriptors count. + Mask specifying permissible matches between an input query and train matrices of descriptors. + + + + Finds the best match for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::matchConvert method to retrieve results in standard representation. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Finds the best match for each descriptor from a query set (asynchronous version). + + Query set of descriptors. + Matches array stored in GPU memory. Internal representation is not defined. Use DescriptorMatcher::matchConvert method to retrieve results in standard representation. + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Converts matches array from internal representation to standard matches vector. + + Matches, returned from MatchAsync. + Vector of DMatch objects. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (blocking version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (blocking version). + + Query set of descriptors. + Found matches. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (asynchronous version). + + Query set of descriptors. + Train set of descriptors. This set is not added to the train descriptors collection stored in the class object. + Matches array stored in GPU memory. Internal representation is not defined. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + For each query descriptor, finds the training descriptors not farther than the specified distance (asynchronous version). + + Query set of descriptors. + Matches array stored in GPU memory. Internal representation is not defined. + Threshold for the distance between matched descriptors. Distance means here metric distance (e.g. Hamming distance), not the distance between coordinates (which is measured in Pixels)! + Mask specifying permissible matches between an input query and train matrices of descriptors. + CUDA stream. + + + + Converts matches array from internal representation to standard matches vector. + + Matches, returned from DescriptorMatcher.RadiusMatchAsync. + Vector of DMatch objects. + Parameter used when the mask (or masks) is not empty. If compactResult is false, the matches vector has the same size as queryDescriptors rows. If compactResult is true, the matches vector does not contain matches for fully masked-out query descriptors. + + + + Add the model descriptors + + The model descriptors + + + + Return True if mask is supported + + + + + Clear the matcher + + + + + Return True if the matcher is empty + + + + + Trains a descriptor matcher. + + + + + Release all the unmanaged memory associated with this matcher + + + + + A Brute force matcher using Cuda + + + + + Create a CudaBruteForceMatcher using the specific distance type + + The distance type + + + + A FAST detector using Cuda + + + + + Create a fast detector with the specific parameters + + Threshold on difference between intensity of center pixel and pixels on circle around + this pixel. Use 10 for default. + Specifiy if non-maximum supression should be used. + The maximum number of keypoints to be extracted. + The detector type + + + + Release the unmanaged resource associate to the Detector + + + + + An ORB detector using Cuda + + + + + Create a ORBDetector using the specific values + + The number of desired features. + Coefficient by which we divide the dimensions from one scale pyramid level to the next. + The number of levels in the scale pyramid. + The level at which the image is given. If 1, that means we will also look at the image. times bigger + How far from the boundary the points should be. + How many random points are used to produce each cell of the descriptor (2, 3, 4 ...). + Type of the score to use. + Patch size. + Blur for descriptor + Fast threshold + + + + Release the unmanaged resource associate to the Detector + + + + + The feature 2D base class + + + + + Get the pointer to the Feature2DAsync object + + The pointer to the Feature2DAsync object + + + + Class that contains extension methods for Feature2DAsync + + + + + Detect keypoints in an image and compute the descriptors on the image from the keypoint locations. + + The Feature2DAsync object + The image + The optional mask, can be null if not needed + The detected keypoints will be stored in this vector + The descriptors from the keypoints + If true, the method will skip the detection phase and will compute descriptors for the provided keypoints + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Detect the features in the image + + The Feature2DAsync object + The result vector of keypoints + The image from which the features will be detected from + The optional mask. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Compute the descriptors on the image from the given keypoint locations. + + The Feature2DAsync object + The image to compute descriptors from + The keypoints where the descriptor computation is perfromed + The descriptors from the given keypoints + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts keypoints array from internal representation to standard vector. + + The Feature2DAsync object + GpuMat representation of the keypoints. + Vector of keypoints + + + + Disparity map refinement using joint bilateral filtering given a single color image. + Qingxiong Yang, Liang Wang†, Narendra Ahuja + http://vision.ai.uiuc.edu/~qyang6/ + + + + + Create a GpuDisparityBilateralFilter + + Number of disparities. Use 64 as default + Filter radius, use 3 as default + Number of iterations, use 1 as default + + + + Apply the filter to the disparity image + + The input disparity map + The image + The output disparity map, should have the same size as the input disparity map + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged resources associated with the filter. + + + + + Use Block Matching algorithm to find stereo correspondence + + + + + Create a stereoBM + + The number of disparities. Must be multiple of 8. Use 64 for default + The SAD window size. Use 19 for default + + + + Computes disparity map for the input rectified stereo pair. + + The left single-channel, 8-bit image + The right image of the same size and the same type + The disparity map + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the stereo state and all the memory associate with it + + + + + A Constant-Space Belief Propagation Algorithm for Stereo Matching. + Qingxiong Yang, Liang Wang, Narendra Ahuja. + http://vision.ai.uiuc.edu/~qyang6/ + + + + + A Constant-Space Belief Propagation Algorithm for Stereo Matching + + The number of disparities. Use 128 as default + The number of BP iterations on each level. Use 8 as default. + The number of levels. Use 4 as default + The number of active disparity on the first level. Use 4 as default. + + + + Computes disparity map for the input rectified stereo pair. + + The left single-channel, 8-bit image + The right image of the same size and the same type + The disparity map + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release the unmanaged memory + + + + + Cascade Classifier for object detection using Cuda + + + + + Create a Cuda cascade classifier using the specific file + + The file to create the classifier from + + + + Create a Cuda cascade classifier using the specific file storage + + The file storage to create the classifier from + + + + Detects objects of different sizes in the input image. + + Matrix of type CV_8U containing an image where objects should be detected. + Buffer to store detected objects (rectangles). + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Converts objects array from internal representation to standard vector. + + Objects array in internal representation. + Resulting array. + + + + Release all unmanaged resources associated with this object + + + + + Parameter specifying how much the image size is reduced at each image scale + + + + + Parameter specifying how many neighbors each candidate rectangle should have to retain it + + + + + The maximum number of objects + + + + + If true, only return the largest object + + + + + The maximum object size + + + + + The minimum object size + + + + + The classifier size + + + + + A HOG descriptor + + + + + The descriptor format + + + + + Row by row + + + + + Col by col + + + + + Create a new HOGDescriptor using the specific parameters + + Block size in cells. Use (16, 16) for default. + Cell size. Use (8, 8) for default. + Block stride. Must be a multiple of cell size. Use (8,8) for default. + Number of bins. + Detection window size. Must be aligned to block size and block stride. Must match the size of the training image. Use (64, 128) for default. + + + + Returns coefficients of the classifier trained for people detection (for default window size). + + The default people detector + + + + Set the SVM detector + + The SVM detector + + + + Performs object detection with increasing detection window. + + The CudaImage to search in + The regions where positives are found + + + + Performs object detection with a multi-scale window. + + Source image. + Detected objects boundaries. + Optional output array for confidences. + + + + Release the unmanaged memory associated with this HOGDescriptor + + + + + Flag to specify whether the gamma correction preprocessing is required or not + + + + + Gaussian smoothing window parameter + + + + + Maximum number of detection window increases + + + + + Coefficient to regulate the similarity threshold. When detected, some objects can be covered by many rectangles. 0 means not to perform grouping. See groupRectangles. + + + + + Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. + + + + + Coefficient of the detection window increase. + + + + + L2-Hys normalization method shrinkage. + + + + + The descriptor format + + + + + Returns the number of coefficients required for the classification. + + + + + Window stride. It must be a multiple of block stride. + + + + + Returns the block histogram size. + + + + + Background/Foreground Segmentation Algorithm. + + + + + Create a Background/Foreground Segmentation model + + Quantized levels per 'color' component. Power of two, typically 32, 64 or 128. + Number of color vectors used to model normal background color variation at a given pixel. + Used to allow the first N1c vectors to adapt over time to changing background. + Quantized levels per 'color co-occurrence' component. Power of two, typically 16, 32 or 64. + Number of color co-occurrence vectors used to model normal background color variation at a given pixel. + Used to allow the first N1cc vectors to adapt over time to changing background. + If TRUE we ignore holes within foreground blobs. Defaults to TRUE. + These erase one-pixel junk blobs and merge almost-touching blobs. Default value is 1. + Background reference image update parameter + Stat model update parameter. 0.002f ~ 1K frame(~45sec), 0.005 ~ 18sec (if 25fps and absolutely static BG) + start value for alpha parameter (to fast initiate statistic model) + Affects color and color co-occurrence quantization, typically set to 2. + T + Discard foreground blobs whose bounding box is smaller than this threshold. + + + + Updates the background model + + Next video frame. + The learning rate, use -1.0f for default value. + Output the current forground mask + + + + Release all the unmanaged resource associated with this object + + + + + Background/Foreground Segmentation Algorithm. + + + + + Create a Background/Foreground Segmentation model + + The number of frames used for initialization + The decision threshold + + + + Updates the background model + + Next video frame. + The learning rate, use -1.0f for default value. + The output foreground mask as an 8-bit binary image. + Use a Stream to call the function asynchronously (non-blocking) or null to call the function synchronously (blocking). + + + + Release all the unmanaged resource associated with this object + + + + + Interface to the TesseractResultRender + + + + + Pointer to the unmanaged TessResultRendered + + + + + This class set the locale to specific values and revert it back to the old values when the object is disposed. + + + + + The locale category + + + + + All + + + + + Collate + + + + + Ctype + + + + + Monetary + + + + + Numeric + + + + + Time + + + + + Create a locale guard to set the locale to specific value. Will revert locale back to previous value when the object is disposed. + + The locale category + The locale + + + + Revert back to the old locale + + + + + Library to invoke Tesseract OCR functions + + + + + The setlocale function installs the specified system locale or its portion as the new C locale. The modifications remain in effect and influences the execution of all locale-sensitive C library functions until the next call to setlocale. If locale is a null pointer, setlocale queries the current C locale without modifying it. + + Locale category identifier + System-specific locale identifier. Can be "" for the user-preferred locale or "C" for the minimal locale + String identifying the C locale after applying the changes, if any, or null pointer on failure. A copy of the returned string along with the category used in this call to std::setlocale may be used later in the program to restore the locale back to the state at the end of this call. + + + + When Tesseract/LSTM is initialized we can choose to instantiate/load/run + only the Tesseract part, only the Cube part or both along with the combiner. + The preference of which engine to use is stored in tessedit_ocr_engine_mode. + + + + + Run Tesseract only - fastest + + + + + Run just the LSTM line recognizer. + + + + + Run the LSTM recognizer, but allow fallback to Tesseract when things get difficult. + + + + + Specify this mode when calling init_*(), + to indicate that any of the above modes + should be automatically inferred from the + variables in the language-specific config, + command-line configs, or if not specified + in any of the above should be set to the + default OEM_TESSERACT_ONLY. + + + + + The tesseract page iterator + + + + + Returns orientation for the block the iterator points to. + + + + + Returns the baseline of the current object at the given level. The baseline is the line that passes through (x1, y1) and (x2, y2). WARNING: with vertical text, baselines may be vertical! Returns null if there is no baseline at the current position. + + Page iterator level + The baseline of the current object at the given level + + + + Release the page iterator + + + + + The orientation + + + + + Page orientation + + + + + Writing direction + + + + + Textline order + + + + + after rotating the block so the text orientation is upright, how many radians does one have to rotate the block anti-clockwise for it to be level? -Pi/4 <= deskew_angle <= Pi/4 + + + + + Page orientation + + + + + Up + + + + + Right + + + + + Down + + + + + Left + + + + + Writing direction + + + + + Left to right + + + + + Right to left + + + + + Top to bottom + + + + + Textline order + + + + + Left to right + + + + + Right to left + + + + + Top to bottom + + + + + Page iterator level + + + + + Block of text/image/separator line. + + + + + Paragraph within a block. + + + + + Line within a paragraph. + + + + + Word within a textline. + + + + + Symbol/character within a word. + + + + + Tesseract page segmentation mode + + + + + PageOrientation and script detection only. + + + + + Automatic page segmentation with orientation and script detection. (OSD) + + + + + Automatic page segmentation, but no OSD, or OCR. + + + + + Fully automatic page segmentation, but no OSD. + + + + + Assume a single column of text of variable sizes. + + + + + Assume a single uniform block of vertically aligned text. + + + + + Assume a single uniform block of text. (Default.) + + + + + Treat the image as a single text line. + + + + + Treat the image as a single word. + + + + + Treat the image as a single word in a circle. + + + + + Treat the image as a single character. + + + + + Find as much text as possible in no particular order. + + + + + Sparse text with orientation and script det. + + + + + Treat the image as a single text line, bypassing hacks that are Tesseract-specific. + + + + + Number of enum entries. + + + + + Leptonica Pix image structure + + + + + Create a Pix object by coping data from Mat + + The Mat to create the Pix object from + + + + Release all the unmanaged memory associated with this Pix + + + + + The tesseract OCR engine + + + + + Get the tesseract version as String + + + + + Get the tesseract version + + + + + Create a default tesseract engine. Needed to Call Init function to load language files in a later stage. + + If true, it will enforce "C" locale during the initialization. + + + + If compiled with OpenCL AND an available OpenCL + device is deemed faster than serial code, then + "device" is populated with the cl_device_id + and returns sizeof(cl_device_id) + otherwise *device=nullptr and returns 0. + + Pointer to the opencl device + 0 if no device found. sizeof(cl_device_id) if device is found. + + + + Create a Tesseract OCR engine. + + + The datapath must be the name of the directory of tessdata and + must end in / . Any name after the last / will be stripped. + + + The language is (usually) an ISO 639-3 string or NULL will default to eng. + It is entirely safe (and eventually will be efficient too) to call + Init multiple times on the same instance to change language, or just + to reset the classifier. + The language may be a string of the form [~]%lt;lang>[+[~]<lang>]* indicating + that multiple languages are to be loaded. Eg hin+eng will load Hindi and + English. Languages may specify internally that they want to be loaded + with one or more other languages, so the ~ sign is available to override + that. Eg if hin were set to load eng by default, then hin+~eng would force + loading only hin. The number of loaded languages is limited only by + memory, with the caveat that loading additional languages will impact + both speed and accuracy, as there is more work to do to decide on the + applicable language, and there is more chance of hallucinating incorrect + words. + + OCR engine mode + This can be used to specify a white list for OCR. e.g. specify "1234567890" to recognize digits only. Note that the white list currently seems to only work with OcrEngineMode.OEM_TESSERACT_ONLY + If true, we will change the locale to "C" before initializing the tesseract engine and reverting it back once the tesseract initialiation is completer. If false, it will be the user's responsibility to set the locale to "C", otherwise an exception will be thrown. See https://github.com/tesseract-ocr/tesseract/issues/1670 + + + + Check whether a word is valid according to Tesseract's language model + + The word to be checked. + 0 if the word is invalid, non-zero if valid + + + + Gets or sets the page seg mode. + + + The page seg mode. + + + + + Get the default tesseract ocr directory. This should return the folder of the dll in most situations. + + + + + Get the url to download the tessdata file for the specific language + + The 3 letter language identifier + the url to download the tessdata file for the specific language + + + + Initialize the OCR engine using the specific dataPath and language name. + + + The datapath must be the name of the parent directory of tessdata and + must end in / . Any name after the last / will be stripped. + + + The language is (usually) an ISO 639-3 string or NULL will default to eng. + It is entirely safe (and eventually will be efficient too) to call + Init multiple times on the same instance to change language, or just + to reset the classifier. + The language may be a string of the form [~]%lt;lang>[+[~]<lang>]* indicating + that multiple languages are to be loaded. Eg hin+eng will load Hindi and + English. Languages may specify internally that they want to be loaded + with one or more other languages, so the ~ sign is available to override + that. Eg if hin were set to load eng by default, then hin+~eng would force + loading only hin. The number of loaded languages is limited only by + memory, with the caveat that loading additional languages will impact + both speed and accuracy, as there is more work to do to decide on the + applicable language, and there is more chance of hallucinating incorrect + words. + + OCR engine mode + + + + Release the unmanaged resource associated with this class + + + + + Set the image for optical character recognition + + The image where detection took place + + + + Set the image for optical character recognition + + The image where detection took place + + + + Recognize the image from SetAndThresholdImage, generating Tesseract + internal structures. + + Returns 0 on success. + + + + Set the variable to the specific value. + + The name of the tesseract variable. e.g. use "tessedit_char_blacklist" to black list characters and "tessedit_char_whitelist" to white list characters. The full list of options can be found in the Tesseract OCR source code "tesseractclass.h" + The value to be set + + + + Get all the text in the image + + All the text in the image + + + + Make a TSV-formatted string from the internal data structures. + + pageNumber is 0-based but will appear in the output as 1-based. + A TSV-formatted string from the internal data structures. + + + + The recognized text is returned as coded in the same format as a box file used in training. + + pageNumber is 0-based but will appear in the output as 1-based. + The recognized text is returned as coded in the same format as a box file used in training. + + + + The recognized text is returned coded as UNLV format Latin-1 with specific reject and suspect codes + + pageNumber is 0-based but will appear in the output as 1-based. + The recognized text is returned coded as UNLV format Latin-1 with specific reject and suspect codes + + + + The recognized text + + pageNumber is 0-based but will appear in the output as 1-based. + The recognized text + + + + Make a HTML-formatted string with hOCR markup from the internal data structures. + + pageNumber is 0-based but will appear in the output as 1-based. + A HTML-formatted string with hOCR markup from the internal data structures. + + + + Detect all the characters in the image. + + All the characters in the image + + + + This represent a character that is detected by the OCR engine + + + + + The text + + + + + The cost. The lower it is, the more confident is the result + + + + + The region where the character is detected. + + + + + Turn a single image into symbolic text. + + The pix is the image processed. + Metadata used by side-effect processes, such as reading a box file or formatting as hOCR. + Metadata used by side-effect processes, such as reading a box file or formatting as hOCR. + retryConfig is useful for debugging. If not NULL, you can fall back to an alternate configuration if a page fails for some reason. + terminates processing if any single page takes too long. Set to 0 for unlimited time. + Responsible for creating the output. For example, use the TessTextRenderer if you want plaintext output, or the TessPDFRender to produce searchable PDF. + Returns true if successful, false on error. + + + + Runs page layout analysis in the mode set by SetPageSegMode. May optionally be called prior to Recognize to get access to just the page layout results. Returns an iterator to the results. Returns NULL on error or an empty page. The returned iterator must be deleted after use. WARNING! This class points to data held within the TessBaseAPI class, and therefore can only be used while the TessBaseAPI class still exists and has not been subjected to a call of Init, SetImage, Recognize, Clear, End DetectOS, or anything else that changes the internal PAGE_RES. + + If true merge similar words + Page iterator + + + + Get the OCR Engine Mode + + + + + This structure is primary used for PInvoke + + + + + The length + + + + + The cost + + + + + The region + + + + + Renders tesseract output into searchable PDF + + + + + Create a PDF renderer + + Output base + dataDir is the location of the TESSDATA. We need it because we load a custom PDF font from this location. + Text only + + + + Release the unmanaged memory associated with this Renderer + + + + + Pointer to the unmanaged TessResultRendered + + + + + Wrapped class of the C++ standard vector of TesseractResult. + + + + + Constructor used to deserialize runtime serialized object + + The serialization info + The streaming context + + + + A function used for runtime serialization of the object + + Serialization info + Streaming context + + + + Create an empty standard vector of TesseractResult + + + + + Create an standard vector of TesseractResult of the specific size + + The size of the vector + + + + Create an standard vector of TesseractResult with the initial values + + The initial values + + + + Push an array of value into the standard vector + + The value to be pushed to the vector + + + + Push multiple values from the other vector into this vector + + The other vector, from which the values will be pushed to the current vector + + + + Convert the standard vector to an array of TesseractResult + + An array of TesseractResult + + + + Get the size of the vector + + + + + Clear the vector + + + + + The pointer to the first element on the vector. In case of an empty vector, IntPtr.Zero will be returned. + + + + + Get the item in the specific index + + The index + The item in the specific index + + + + Release the standard vector + + + + + Get the pointer to cv::_InputArray + + The input array + + + + Get the pointer to cv::_OutputArray + + The output array + + + + Get the pointer to cv::_InputOutputArray + + The input output array + + + + The size of the item in this Vector, counted as size in bytes. + + + + + An abstract class that wrap around a disposable object + + + + Track whether Dispose has been called. + + + + The dispose function that implements IDisposable interface + + + + + Dispose(bool disposing) executes in two distinct scenarios. + If disposing equals true, the method has been called directly + or indirectly by a user's code. Managed and unmanaged resources + can be disposed. + If disposing equals false, the method has been called by the + runtime from inside the finalizer and you should not reference + other objects. Only unmanaged resources can be disposed. + + If disposing equals false, the method has been called by the runtime from inside the finalizer and you should not reference other objects. Only unmanaged resources can be disposed. + + + + Release the managed resources. This function will be called during the disposal of the current object. + override ride this function if you need to call the Dispose() function on any managed IDisposable object created by the current object + + + + + Release the unmanaged resources + + + + + Destructor + + + + + A generic EventArgs + + The type of arguments + + + + Create a generic EventArgs with the specific value + + The value + + + + The value of the EventArgs + + + + + A generic EventArgs + + The type of the first value + The type of the second value + + + + Create a generic EventArgs with two values + + The first value + The second value + + + + The first value + + + + + The second value + + + + + Implement this interface if the object can output code to generate it self. + + + + + Return the code to generate the object itself from the specific language + + The programming language to output code + The code to generate the object from the specific language + + + + An object that can be interpolated + + The type of the object + + + + The index that will be used for interpolation + + + + + Interpolate base on this point and the other point with the given index + + The other point + The interpolation index + The interpolated point + + + + A Pinned array of the specific type + + The type of the array + + + + Create a Pinnned array of the specific type + + The size of the array + + + + Get the address of the pinned array + + A pointer to the address of the the pinned array + + + + Get the array + + + + + Release the GCHandle + + + + + Disposed the unmanaged data + + + + + Provide information for the platform which is using. + + + + + Get the type of the current operating system + + + + + Get the type of the current runtime environment + + + + + utilities functions for Emgu + + + + + Convert an object to an xml document + + The type of the object to be converted + The object to be serialized + An xml document that represents the object + + + + Convert an object to an xml document + + The type of the object to be converted + The object to be serialized + Other types that it must known ahead to serialize the object + An xml document that represents the object + + + + Convert an xml document to an object + + The type of the object to be converted to + The xml document + The object representation as a result of the deserialization of the xml document + + + + Convert an xml document to an object + + The type of the object to be converted to + The xml document + Other types that it must known ahead to deserialize the object + The object representation as a result of the deserialization of the xml document + + + + Convert an xml string to an object + + The type of the object to be converted to + The xml document as a string + The object representation as a result of the deserialization of the xml string + + + + Similar to Marshal.SizeOf function + + The type + The size of T in bytes + + + + Merges two byte vector into one + + the first byte vector to be merged + the second byte vector to be merged + The bytes that is a concatenation of a and b + + + + Call a command from command line + + The name of the executable + The arguments to the executable + The standard output + + + + Use reflection to find the base type. If such type do not exist, null is returned + + The type to search from + The name of the base class to search + The base type + + + + Convert some generic vector to vector of Bytes + + type of the input vector + array of data + the byte vector + + + + Perform first degree interpolation give the sorted data and the interpolation + + The sorted data that will be interpolated from + The indexes of the interpolate result + + + + + Get subsamples with the specific rate + + The source which the subsamples will be derived from + The subsample rate + subsampled with the specific rate + The type of the object + + + + Joining multiple index ascending IInterpolatables together as a single index ascending IInterpolatable. + + The type of objects that will be joined + The enumerables, each should be stored in index ascending order + A single enumerable sorted in index ascending order + + + + Maps the specified executable module into the address space of the calling process. + + The name of the dll + The handle to the library + + + + Decrements the reference count of the loaded dynamic-link library (DLL). When the reference count reaches zero, the module is unmapped from the address space of the calling process and the handle is no longer valid + + The handle to the library + If the function succeeds, the return value is true. If the function fails, the return value is false. + + + + Adds a directory to the search path used to locate DLLs for the application + + The directory to be searched for DLLs + True if success + + + + Type of operating system + + + + + Windows + + + + + Linux + + + + + Mac OS + + + + + iOS devices. iPhone, iPad, iPod Touch + + + + + Android devices + + + + + The windows phone + + + + + The runtime environment + + + + + .Net runtime + + + + + Windows Store app runtime + + + + + Mono runtime + + + + + The type of Programming languages + + + + + C# + + + + + C++ + + + + + An Unmanaged Object is a disposable object with a Ptr property pointing to the unmanaged object + + + + + A pointer to the unmanaged object + + + + + Pointer to the unmanaged object + + + + + Implicit operator for IntPtr + + The UnmanagedObject + The unmanaged pointer for this object + +
+
diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..11a8f2f Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.pdb new file mode 100644 index 0000000..edfc1d2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.xml new file mode 100644 index 0000000..eee718a --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/ICSharpCode.SharpZipLib.xml @@ -0,0 +1,9880 @@ + + + + ICSharpCode.SharpZipLib + + + + + An example class to demonstrate compression and decompression of BZip2 streams. + + + + + Decompress the input writing + uncompressed data to the output stream + + The readable stream containing data to decompress. + The output stream to receive the decompressed data. + Both streams are closed on completion if true. + + + + Compress the input stream sending + result data to output stream + + The readable stream to compress. + The output stream to receive the compressed data. + Both streams are closed on completion if true. + Block size acts as compression level (1 to 9) with 1 giving + the lowest compression and 9 the highest. + + + + Defines internal values for both compression and decompression + + + + + Random numbers used to randomise repetitive blocks + + + + + When multiplied by compression parameter (1-9) gives the block size for compression + 9 gives the best compression but uses the most memory. + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + Backend constant + + + + + BZip2Exception represents exceptions specific to BZip2 classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + An input stream that decompresses files in the BZip2 format + + + + + Construct instance for reading from stream + + Data source + + + + Get/set flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + + + + Gets a value indicating if the stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + This property always returns false + + + + + Gets the length in bytes of the stream. + + + + + Gets the current position of the stream. + Setting the position is not supported and will throw a NotSupportException. + + Any attempt to set the position. + + + + Flushes the stream. + + + + + Set the streams position. This operation is not supported and will throw a NotSupportedException + + A byte offset relative to the parameter. + A value of type indicating the reference point used to obtain the new position. + The new position of the stream. + Any access + + + + Sets the length of this stream to the given value. + This operation is not supported and will throw a NotSupportedExceptionortedException + + The new length for the stream. + Any access + + + + Writes a block of bytes to this stream using data from a buffer. + This operation is not supported and will throw a NotSupportedException + + The buffer to source data from. + The offset to start obtaining data from. + The number of bytes of data to write. + Any access + + + + Writes a byte to the current position in the file stream. + This operation is not supported and will throw a NotSupportedException + + The value to write. + Any access + + + + Read a sequence of bytes and advances the read position by one byte. + + Array of bytes to store values in + Offset in array to begin storing data + The maximum number of bytes to read + The total number of bytes read into the buffer. This might be less + than the number of bytes requested if that number of bytes are not + currently available or zero if the end of the stream is reached. + + + + + Closes the stream, releasing any associated resources. + + + + + Read a byte from stream advancing position + + byte read or -1 on end of stream + + + + An output stream that compresses into the BZip2 format + including file header chars into another stream. + + + + + Construct a default output stream with maximum block size + + The stream to write BZip data onto. + + + + Initialise a new instance of the + for the specified stream, using the given blocksize. + + The stream to write compressed data to. + The block size to use. + + Valid block sizes are in the range 1..9, with 1 giving + the lowest compression and 9 the highest. + + + + + Ensures that resources are freed and other cleanup operations + are performed when the garbage collector reclaims the BZip2OutputStream. + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking + + + + + Gets a value indicating whether the current stream supports writing + + + + + Gets the length in bytes of the stream + + + + + Gets or sets the current position of this stream. + + + + + Sets the current position of this stream to the given value. + + The point relative to the offset from which to being seeking. + The reference point from which to begin seeking. + The new position in the stream. + + + + Sets the length of this stream to the given value. + + The new stream length. + + + + Read a byte from the stream advancing the position. + + The byte read cast to an int; -1 if end of stream. + + + + Read a block of bytes + + The buffer to read into. + The offset in the buffer to start storing data at. + The maximum number of bytes to read. + The total number of bytes read. This might be less than the number of bytes + requested if that number of bytes are not currently available, or zero + if the end of the stream is reached. + + + + Write a block of bytes to the stream + + The buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + + + + Write a byte to the stream. + + The byte to write to the stream. + + + + Get the number of bytes written to output. + + + + + Get the number of bytes written to the output. + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Flush output buffers + + + + + Computes Adler32 checksum for a stream of data. An Adler32 + checksum is not as reliable as a CRC32 checksum, but a lot faster to + compute. + + The specification for Adler32 may be found in RFC 1950. + ZLIB Compressed Data Format Specification version 3.3) + + + From that document: + + "ADLER32 (Adler-32 checksum) + This contains a checksum value of the uncompressed data + (excluding any dictionary data) computed according to Adler-32 + algorithm. This algorithm is a 32-bit extension and improvement + of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + standard. + + Adler-32 is composed of two sums accumulated per byte: s1 is + the sum of all bytes, s2 is the sum of all s1 values. Both sums + are done modulo 65521. s1 is initialized to 1, s2 to zero. The + Adler-32 checksum is stored as s2*65536 + s1 in most- + significant-byte first (network) order." + + "8.2. The Adler-32 algorithm + + The Adler-32 algorithm is much faster than the CRC32 algorithm yet + still provides an extremely low probability of undetected errors. + + The modulo on unsigned long accumulators can be delayed for 5552 + bytes, so the modulo operation time is negligible. If the bytes + are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + and order sensitive, unlike the first sum, which is just a + checksum. That 65521 is prime is important to avoid a possible + large class of two-byte errors that leave the check unchanged. + (The Fletcher checksum uses 255, which is not prime and which also + makes the Fletcher check insensitive to single byte changes 0 - + 255.) + + The sum s1 is initialized to 1 instead of zero to make the length + of the sequence part of s2, so that the length does not have to be + checked separately. (Any sequence of zeroes has a Fletcher + checksum of zero.)" + + + + + + + largest prime smaller than 65536 + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the Adler32 data checksum as if no update was ever called. + + + + + Returns the Adler32 data checksum computed so far. + + + + + Updates the checksum with the byte b. + + + The data value to add. The high byte of the int is ignored. + + + + + Updates the Adler32 data checksum with the bytes taken from + a block of data. + + Contains the data to update the checksum with. + + + + Update Adler32 data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + CRC-32 with unreversed data and reversed output + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the CRC data checksum as if no update was ever called. + + + + + Returns the CRC data checksum computed so far. + + Reversed Out = true + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of bval + + Reversed Data = false + + + + Updates the CRC data checksum with the bytes taken from + a block of data. + + Contains the data to update the CRC with. + + + + Update CRC data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + CRC-32 with reversed data and unreversed output + + + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. + + + + + The CRC data checksum so far. + + + + + Initialise a default instance of + + + + + Resets the CRC data checksum as if no update was ever called. + + + + + Returns the CRC data checksum computed so far. + + Reversed Out = false + + + + Updates the checksum with the int bval. + + + the byte is taken as the lower 8 bits of bval + + Reversed Data = true + + + + Updates the CRC data checksum with the bytes taken from + a block of data. + + Contains the data to update the CRC with. + + + + Update CRC data checksum based on a portion of a block of data + + Contains the data to update the CRC with. + The offset into the buffer where the data starts + The number of data bytes to update the CRC with. + + + + Interface to compute a data checksum used by checked input/output streams. + A data checksum can be updated by one byte or with a byte array. After each + update the value of the current checksum can be returned by calling + getValue. The complete checksum object can also be reset + so it can be used again with new data. + + + + + Resets the data checksum as if no update was ever called. + + + + + Returns the data checksum computed so far. + + + + + Adds one byte to the data checksum. + + + the data value to add. The high byte of the int is ignored. + + + + + Updates the data checksum with the bytes taken from the array. + + + buffer an array of bytes + + + + + Adds the byte array to the data checksum. + + + The buffer which contains the data + + + The offset in the buffer where the data starts + + + the number of data bytes to add. + + + + + Event arguments for scanning. + + + + + Initialise a new instance of + + The file or directory name. + + + + The file or directory name for this event. + + + + + Get set a value indicating if scanning should continue or not. + + + + + Event arguments during processing of a single file or directory. + + + + + Initialise a new instance of + + The file or directory name if known. + The number of bytes processed so far + The total number of bytes to process, 0 if not known + + + + The name for this event if known. + + + + + Get set a value indicating wether scanning should continue or not. + + + + + Get a percentage representing how much of the has been processed + + 0.0 to 100.0 percent; 0 if target is not known. + + + + The number of bytes processed so far + + + + + The number of bytes to process. + + Target may be 0 or negative if the value isnt known. + + + + Event arguments for directories. + + + + + Initialize an instance of . + + The name for this directory. + Flag value indicating if any matching files are contained in this directory. + + + + Get a value indicating if the directory contains any matching files or not. + + + + + Arguments passed when scan failures are detected. + + + + + Initialise a new instance of + + The name to apply. + The exception to use. + + + + The applicable name. + + + + + The applicable exception. + + + + + Get / set a value indicating wether scanning should continue. + + + + + Delegate invoked before starting to process a file. + + The source of the event + The event arguments. + + + + Delegate invoked during processing of a file or directory + + The source of the event + The event arguments. + + + + Delegate invoked when a file has been completely processed. + + The source of the event + The event arguments. + + + + Delegate invoked when a directory failure is detected. + + The source of the event + The event arguments. + + + + Delegate invoked when a file failure is detected. + + The source of the event + The event arguments. + + + + FileSystemScanner provides facilities scanning of files and directories. + + + + + Initialise a new instance of + + The file filter to apply when scanning. + + + + Initialise a new instance of + + The file filter to apply. + The directory filter to apply. + + + + Initialise a new instance of + + The file filter to apply. + + + + Initialise a new instance of + + The file filter to apply. + The directory filter to apply. + + + + Delegate to invoke when a directory is processed. + + + + + Delegate to invoke when a file is processed. + + + + + Delegate to invoke when processing for a file has finished. + + + + + Delegate to invoke when a directory failure is detected. + + + + + Delegate to invoke when a file failure is detected. + + + + + Raise the DirectoryFailure event. + + The directory name. + The exception detected. + + + + Raise the FileFailure event. + + The file name. + The exception detected. + + + + Raise the ProcessFile event. + + The file name. + + + + Raise the complete file event + + The file name + + + + Raise the ProcessDirectory event. + + The directory name. + Flag indicating if the directory has matching files. + + + + Scan a directory. + + The base directory to scan. + True to recurse subdirectories, false to scan a single directory. + + + + The file filter currently in use. + + + + + The directory filter currently in use. + + + + + Flag indicating if scanning should continue running. + + + + + INameTransform defines how file system names are transformed for use with archives, or vice versa. + + + + + Given a file name determine the transformed value. + + The name to transform. + The transformed file name. + + + + Given a directory name determine the transformed value. + + The name to transform. + The transformed directory name + + + + Scanning filters support filtering of names. + + + + + Test a name to see if it 'matches' the filter. + + The name to test. + Returns true if the name matches the filter, false if it does not match. + + + + NameFilter is a string matching class which allows for both positive and negative + matching. + A filter is a sequence of independant regular expressions separated by semi-colons ';'. + To include a semi-colon it may be quoted as in \;. Each expression can be prefixed by a plus '+' sign or + a minus '-' sign to denote the expression is intended to include or exclude names. + If neither a plus or minus sign is found include is the default. + A given name is tested for inclusion before checking exclusions. Only names matching an include spec + and not matching an exclude spec are deemed to match the filter. + An empty filter matches any name. + + The following expression includes all name ending in '.dat' with the exception of 'dummy.dat' + "+\.dat$;-^dummy\.dat$" + + + + + Construct an instance based on the filter expression passed + + The filter expression. + + + + Test a string to see if it is a valid regular expression. + + The expression to test. + True if expression is a valid false otherwise. + + + + Test an expression to see if it is valid as a filter. + + The filter expression to test. + True if the expression is valid, false otherwise. + + + + Split a string into its component pieces + + The original string + Returns an array of values containing the individual filter elements. + + + + Convert this filter to its string equivalent. + + The string equivalent for this filter. + + + + Test a value to see if it is included by the filter. + + The value to test. + True if the value is included, false otherwise. + + + + Test a value to see if it is excluded by the filter. + + The value to test. + True if the value is excluded, false otherwise. + + + + Test a value to see if it matches the filter. + + The value to test. + True if the value matches, false otherwise. + + + + Compile this filter. + + + + + PathFilter filters directories and files using a form of regular expressions + by full path name. + See NameFilter for more detail on filtering. + + + + + Initialise a new instance of . + + The filter expression to apply. + + + + Test a name to see if it matches the filter. + + The name to test. + True if the name matches, false otherwise. + is used to get the full path before matching. + + + + ExtendedPathFilter filters based on name, file size, and the last write time of the file. + + Provides an example of how to customise filtering. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum to include. + The maximum to include. + + + + Initialise a new instance of ExtendedPathFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + The minimum to include. + The maximum to include. + + + + Test a filename to see if it matches the filter. + + The filename to test. + True if the filter matches, false otherwise. + The doesnt exist + + + + Get/set the minimum size/length for a file that will match this filter. + + The default value is zero. + value is less than zero; greater than + + + + Get/set the maximum size/length for a file that will match this filter. + + The default value is + value is less than zero or less than + + + + Get/set the minimum value that will match for this filter. + + Files with a LastWrite time less than this value are excluded by the filter. + + + + Get/set the maximum value that will match for this filter. + + Files with a LastWrite time greater than this value are excluded by the filter. + + + + NameAndSizeFilter filters based on name and file size. + + A sample showing how filters might be extended. + + + + Initialise a new instance of NameAndSizeFilter. + + The filter to apply. + The minimum file size to include. + The maximum file size to include. + + + + Test a filename to see if it matches the filter. + + The filename to test. + True if the filter matches, false otherwise. + + + + Get/set the minimum size for a file that will match this filter. + + + + + Get/set the maximum size for a file that will match this filter. + + + + + Provides simple " utilities. + + + + + Read from a ensuring all the required data is read. + + The stream to read. + The buffer to fill. + + + + + Read from a " ensuring all the required data is read. + + The stream to read data from. + The buffer to store data in. + The offset at which to begin storing data. + The number of bytes of data to store. + Required parameter is null + and or are invalid. + End of stream is encountered before all the data has been read. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + The progress handler delegate to use. + The minimum between progress updates. + The source for this event. + The name to use with the event. + This form is specialised for use within #Zip to support events during archive operations. + + + + Copy the contents of one to another. + + The stream to source data from. + The stream to write data to. + The buffer to use during copying. + The progress handler delegate to use. + The minimum between progress updates. + The source for this event. + The name to use with the event. + A predetermined fixed target value to use with progress updates. + If the value is negative the target is calculated by looking at the stream. + This form is specialised for use within #Zip to support events during archive operations. + + + + Initialise an instance of + + + + + WindowsPathUtils provides simple utilities for handling windows paths. + + + + + Initializes a new instance of the class. + + + + + Remove any path root present in the path + + A containing path information. + The path with the root removed if it was present; path otherwise. + Unlike the class the path isnt otherwise checked for validity. + + + + PkzipClassic embodies the classic or original encryption facilities used in Pkzip archives. + While it has been superceded by more recent and more powerful algorithms, its still in use and + is viable for preventing casual snooping + + + + + Generates new encryption keys based on given seed + + The seed value to initialise keys with. + A new key value. + + + + PkzipClassicCryptoBase provides the low level facilities for encryption + and decryption using the PkzipClassic algorithm. + + + + + Transform a single byte + + + The transformed value + + + + + Set the key schedule for encryption/decryption. + + The data use to set the keys from. + + + + Update encryption keys + + + + + Reset the internal state. + + + + + PkzipClassic CryptoTransform for encryption. + + + + + Initialise a new instance of + + The key block to use. + + + + Transforms the specified region of the specified byte array. + + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + The computed transform. + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + The number of bytes written. + + + + Gets a value indicating whether the current transform can be reused. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Cleanup internal state. + + + + + PkzipClassic CryptoTransform for decryption. + + + + + Initialise a new instance of . + + The key block to decrypt with. + + + + Transforms the specified region of the specified byte array. + + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + The computed transform. + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + The number of bytes written. + + + + Gets a value indicating whether the current transform can be reused. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Cleanup internal state. + + + + + Defines a wrapper object to access the Pkzip algorithm. + This class cannot be inherited. + + + + + Get / set the applicable block size in bits. + + The only valid block size is 8. + + + + Get an array of legal key sizes. + + + + + Generate an initial vector. + + + + + Get an array of legal block sizes. + + + + + Get / set the key value applicable. + + + + + Generate a new random key. + + + + + Create an encryptor. + + The key to use for this encryptor. + Initialisation vector for the new encryptor. + Returns a new PkzipClassic encryptor + + + + Create a decryptor. + + Keys to use for this new decryptor. + Initialisation vector for the new decryptor. + Returns a new decryptor. + + + + Encrypts and decrypts AES ZIP + + + Based on information from http://www.winzip.com/aes_info.htm + and http://www.gladman.me.uk/cryptography_technology/fileencrypt/ + + + + + Constructor + + The stream on which to perform the cryptographic transformation. + Instance of ZipAESTransform + Read or Write + + + + Reads a sequence of bytes from the current CryptoStream into buffer, + and advances the position within the stream by the number of bytes read. + + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Transforms stream using AES in CTR mode + + + + + Constructor. + + Password string + Random bytes, length depends on encryption strength. + 128 bits = 8 bytes, 192 bits = 12 bytes, 256 bits = 16 bytes. + The encryption strength, in bytes eg 16 for 128 bits. + True when creating a zip, false when reading. For the AuthCode. + + + + + Implement the ICryptoTransform method. + + + + + Returns the 2 byte password verifier + + + + + Returns the 10 byte AUTH CODE to be checked or appended immediately following the AES data stream. + + + + + Not implemented. + + + + + Gets the size of the input data blocks in bytes. + + + + + Gets the size of the output data blocks in bytes. + + + + + Gets a value indicating whether multiple blocks can be transformed. + + + + + Gets a value indicating whether the current transform can be reused. + + + + + Cleanup internal state. + + + + + An example class to demonstrate compression and decompression of GZip streams. + + + + + Decompress the input writing + uncompressed data to the output stream + + The readable stream containing data to decompress. + The output stream to receive the decompressed data. + Both streams are closed on completion if true. + + + + Compress the input stream sending + result data to output stream + + The readable stream to compress. + The output stream to receive the compressed data. + Both streams are closed on completion if true. + Block size acts as compression level (1 to 9) with 1 giving + the lowest compression and 9 the highest. + + + + This class contains constants used for gzip. + + + + + Magic number found at start of GZIP header + + + + + Flag bit mask for text + + + + + Flag bitmask for Crc + + + + + Flag bit mask for extra + + + + + flag bitmask for name + + + + + flag bit mask indicating comment is present + + + + + Initialise default instance. + + Constructor is private to prevent instances being created. + + + + GZipException represents exceptions specific to GZip classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This filter stream is used to decompress a "GZIP" format stream. + The "GZIP" format is described baseInputStream RFC 1952. + + author of the original java version : John Leuner + + This sample shows how to unzip a gzipped file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.GZip; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream inStream = new GZipInputStream(File.OpenRead(args[0]))) + using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + byte[] buffer = new byte[4096]; + StreamUtils.Copy(inStream, outStream, buffer); + } + } + } + + + + + + CRC-32 value for uncompressed data + + + + + Flag to indicate if we've read the GZIP header yet for the current member (block of compressed data). + This is tracked per-block as the file is parsed. + + + + + Flag to indicate if at least one block in a stream with concatenated blocks was read successfully. + This allows us to exit gracefully if downstream data is not in gzip format. + + + + + Creates a GZipInputStream with the default buffer size + + + The stream to read compressed data from (baseInputStream GZIP format) + + + + + Creates a GZIPInputStream with the specified buffer size + + + The stream to read compressed data from (baseInputStream GZIP format) + + + Size of the buffer to use + + + + + Reads uncompressed data into an array of bytes + + + The buffer to read uncompressed data into + + + The offset indicating where the data should be placed + + + The number of uncompressed bytes to be read + + Returns the number of bytes actually read. + + + + This filter stream is used to compress a stream into a "GZIP" stream. + The "GZIP" format is described in RFC 1952. + + author of the original java version : John Leuner + + This sample shows how to gzip a file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.GZip; + using ICSharpCode.SharpZipLib.Core; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream s = new GZipOutputStream(File.Create(args[0] + ".gz"))) + using (FileStream fs = File.OpenRead(args[0])) { + byte[] writeData = new byte[4096]; + Streamutils.Copy(s, fs, writeData); + } + } + } + } + + + + + + CRC-32 value for uncompressed data + + + + + Creates a GzipOutputStream with the default buffer size + + + The stream to read data (to be compressed) from + + + + + Creates a GZipOutputStream with the specified buffer size + + + The stream to read data (to be compressed) from + + + Size of the buffer to use + + + + + Sets the active compression level (1-9). The new level will be activated + immediately. + + The compression level to set. + + Level specified is not supported. + + + + + + Get the current compression level. + + The current compression level. + + + + Write given buffer to output updating crc + + Buffer to write + Offset of first byte in buf to write + Number of bytes to write + + + + Writes remaining compressed output data to the output stream + and closes it. + + + + + Finish compression and write any footer information required to stream + + + + + This class contains constants used for LZW + + + + + Magic number found at start of LZW header: 0x1f 0x9d + + + + + Maximum number of bits per code + + + + + Mask for 'number of compression bits' + + + + + Indicates the presence of a fourth header byte + + + + + Reserved bits + + + + + Block compression: if table is full and compression rate is dropping, + clear the dictionary. + + + + + LZW file header size (in bytes) + + + + + Initial number of bits per code + + + + + LzwException represents exceptions specific to LZW classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This filter stream is used to decompress a LZW format stream. + Specifically, a stream that uses the LZC compression method. + This file format is usually associated with the .Z file extension. + + See http://en.wikipedia.org/wiki/Compress + See http://wiki.wxwidgets.org/Development:_Z_File_Format + + The file header consists of 3 (or optionally 4) bytes. The first two bytes + contain the magic marker "0x1f 0x9d", followed by a byte of flags. + + Based on Java code by Ronald Tschalar, which in turn was based on the unlzw.c + code in the gzip package. + + This sample shows how to unzip a compressed file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.LZW; + + class MainClass + { + public static void Main(string[] args) + { + using (Stream inStream = new LzwInputStream(File.OpenRead(args[0]))) + using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + byte[] buffer = new byte[4096]; + StreamUtils.Copy(inStream, outStream, buffer); + // OR + inStream.Read(buffer, 0, buffer.Length); + // now do something with the buffer + } + } + } + + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Creates a LzwInputStream + + + The stream to read compressed data from (baseInputStream LZW format) + + + + + See + + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + + + Moves the unread data in the buffer to the beginning and resets + the pointers. + + + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Flag indicating wether this instance has been closed or not. + + + + + SharpZipBaseException is the base exception class for SharpZipLib. + All library exceptions are derived from this. + + NOTE: Not all exceptions thrown will be derived from this class. + A variety of other exceptions are possible for example + + + + Initializes a new instance of the SharpZipBaseException class. + + + + + Initializes a new instance of the SharpZipBaseException class with a specified error message. + + A message describing the exception. + + + + Initializes a new instance of the SharpZipBaseException class with a specified + error message and a reference to the inner exception that is the cause of this exception. + + A message describing the exception. + The inner exception + + + + This exception is used to indicate that there is a problem + with a TAR archive header. + + + + + Initialise a new instance of the InvalidHeaderException class. + + + + + Initialises a new instance of the InvalidHeaderException class with a specified message. + + Message describing the exception cause. + + + + Initialise a new instance of InvalidHeaderException + + Message describing the problem. + The exception that is the cause of the current exception. + + + + Used to advise clients of 'events' while processing archives + + + + + The TarArchive class implements the concept of a + 'Tape Archive'. A tar archive is a series of entries, each of + which represents a file system object. Each entry in + the archive consists of a header block followed by 0 or more data blocks. + Directory entries consist only of the header block, and are followed by entries + for the directory's contents. File entries consist of a + header followed by the number of blocks needed to + contain the file's contents. All entries are written on + block boundaries. Blocks are 512 bytes long. + + TarArchives are instantiated in either read or write mode, + based upon whether they are instantiated with an InputStream + or an OutputStream. Once instantiated TarArchives read/write + mode can not be changed. + + There is currently no support for random access to tar archives. + However, it seems that subclassing TarArchive, and using the + TarBuffer.CurrentRecord and TarBuffer.CurrentBlock + properties, this would be rather trivial. + + + + + Client hook allowing detailed information to be reported during processing + + + + + Raises the ProgressMessage event + + The TarEntry for this event + message for this event. Null is no message + + + + Constructor for a default . + + + + + Initalise a TarArchive for input. + + The to use for input. + + + + Initialise a TarArchive for output. + + The to use for output. + + + + The InputStream based constructors create a TarArchive for the + purposes of extracting or listing a tar archive. Thus, use + these constructors when you wish to extract files from or list + the contents of an existing tar archive. + + The stream to retrieve archive data from. + Returns a new suitable for reading from. + + + + Create TarArchive for reading setting block factor + + A stream containing the tar archive contents + The blocking factor to apply + Returns a suitable for reading. + + + + Create a TarArchive for writing to, using the default blocking factor + + The to write to + Returns a suitable for writing. + + + + Create a tar archive for writing. + + The stream to write to + The blocking factor to use for buffering. + Returns a suitable for writing. + + + + Set the flag that determines whether existing files are + kept, or overwritten during extraction. + + + If true, do not overwrite existing files. + + + + + Get/set the ascii file translation flag. If ascii file translation + is true, then the file is checked to see if it a binary file or not. + If the flag is true and the test indicates it is ascii text + file, it will be translated. The translation converts the local + operating system's concept of line ends into the UNIX line end, + '\n', which is the defacto standard for a TAR archive. This makes + text files compatible with UNIX. + + + + + Set the ascii file translation flag. + + + If true, translate ascii text files. + + + + + PathPrefix is added to entry names as they are written if the value is not null. + A slash character is appended after PathPrefix + + + + + RootPath is removed from entry names if it is found at the + beginning of the name. + + + + + Set user and group information that will be used to fill in the + tar archive's entry headers. This information is based on that available + for the linux operating system, which is not always available on other + operating systems. TarArchive allows the programmer to specify values + to be used in their place. + is set to true by this call. + + + The user id to use in the headers. + + + The user name to use in the headers. + + + The group id to use in the headers. + + + The group name to use in the headers. + + + + + Get or set a value indicating if overrides defined by SetUserInfo should be applied. + + If overrides are not applied then the values as set in each header will be used. + + + + Get the archive user id. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current user id. + + + + + Get the archive user name. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current user name. + + + + + Get the archive group id. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current group id. + + + + + Get the archive group name. + See ApplyUserInfoOverrides for detail + on how to allow setting values on a per entry basis. + + + The current group name. + + + + + Get the archive's record size. Tar archives are composed of + a series of RECORDS each containing a number of BLOCKS. + This allowed tar archives to match the IO characteristics of + the physical device being used. Archives are expected + to be properly "blocked". + + + The record size this archive is using. + + + + + Sets the IsStreamOwner property on the underlying stream. + Set this to false to prevent the Close of the TarArchive from closing the stream. + + + + + Close the archive. + + + + + Perform the "list" command for the archive contents. + + NOTE That this method uses the progress event to actually list + the contents. If the progress display event is not set, nothing will be listed! + + + + + Perform the "extract" command and extract the contents of the archive. + + + The destination directory into which to extract. + + + + + Extract an entry from the archive. This method assumes that the + tarIn stream has been properly set with a call to GetNextEntry(). + + + The destination directory into which to extract. + + + The TarEntry returned by tarIn.GetNextEntry(). + + + + + Write an entry to the archive. This method will call the putNextEntry + and then write the contents of the entry, and finally call closeEntry() + for entries that are files. For directories, it will call putNextEntry(), + and then, if the recurse flag is true, process each entry that is a + child of the directory. + + + The TarEntry representing the entry to write to the archive. + + + If true, process the children of directory entries. + + + + + Write an entry to the archive. This method will call the putNextEntry + and then write the contents of the entry, and finally call closeEntry() + for entries that are files. For directories, it will call putNextEntry(), + and then, if the recurse flag is true, process each entry that is a + child of the directory. + + + The TarEntry representing the entry to write to the archive. + + + If true, process the children of directory entries. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases the unmanaged resources used by the FileStream and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Closes the archive and releases any associated resources. + + + + + Ensures that resources are freed and other cleanup operations are performed + when the garbage collector reclaims the . + + + + + The TarBuffer class implements the tar archive concept + of a buffered input stream. This concept goes back to the + days of blocked tape drives and special io devices. In the + C# universe, the only real function that this class + performs is to ensure that files have the correct "record" + size, or other tars will complain. +

+ You should never have a need to access this class directly. + TarBuffers are created by Tar IO Streams. +

+
+
+ + + The size of a block in a tar archive in bytes. + + This is 512 bytes. + + + + The number of blocks in a default record. + + + The default value is 20 blocks per record. + + + + + The size in bytes of a default record. + + + The default size is 10KB. + + + + + Get the record size for this buffer + + The record size in bytes. + This is equal to the multiplied by the + + + + Get the TAR Buffer's record size. + + The record size in bytes. + This is equal to the multiplied by the + + + + Get the Blocking factor for the buffer + + This is the number of blocks in each record. + + + + Get the TAR Buffer's block factor + + The block factor; the number of blocks per record. + + + + Construct a default TarBuffer + + + + + Create TarBuffer for reading with default BlockFactor + + Stream to buffer + A new suitable for input. + + + + Construct TarBuffer for reading inputStream setting BlockFactor + + Stream to buffer + Blocking factor to apply + A new suitable for input. + + + + Construct TarBuffer for writing with default BlockFactor + + output stream for buffer + A new suitable for output. + + + + Construct TarBuffer for writing Tar output to streams. + + Output stream to write to. + Blocking factor to apply + A new suitable for output. + + + + Initialization common to all constructors. + + + + + Determine if an archive block indicates End of Archive. End of + archive is indicated by a block that consists entirely of null bytes. + All remaining blocks for the record should also be null's + However some older tars only do a couple of null blocks (Old GNU tar for one) + and also partial records + + The data block to check. + Returns true if the block is an EOF block; false otherwise. + + + + Determine if an archive block indicates the End of an Archive has been reached. + End of archive is indicated by a block that consists entirely of null bytes. + All remaining blocks for the record should also be null's + However some older tars only do a couple of null blocks (Old GNU tar for one) + and also partial records + + The data block to check. + Returns true if the block is an EOF block; false otherwise. + + + + Skip over a block on the input stream. + + + + + Read a block from the input stream. + + + The block of data read. + + + + + Read a record from data stream. + + + false if End-Of-File, else true. + + + + + Get the current block number, within the current record, zero based. + + Block numbers are zero based values + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Get the current block number, within the current record, zero based. + + + The current zero based block number. + + + The absolute block number = (record number * block factor) + block number. + + + + + Get the current record number. + + + The current zero based record number. + + + + + Get the current record number. + + + The current zero based record number. + + + + + Write a block of data to the archive. + + + The data to write to the archive. + + + + + Write an archive record to the archive, where the record may be + inside of a larger array buffer. The buffer must be "offset plus + record size" long. + + + The buffer containing the record data to write. + + + The offset of the record data within buffer. + + + + + Write a TarBuffer record to the archive. + + + + + WriteFinalRecord writes the current record buffer to output any unwritten data is present. + + Any trailing bytes are set to zero which is by definition correct behaviour + for the end of a tar stream. + + + + Close the TarBuffer. If this is an output buffer, also flush the + current block before closing. + + + + + This class represents an entry in a Tar archive. It consists + of the entry's header, as well as the entry's File. Entries + can be instantiated in one of three ways, depending on how + they are to be used. +

+ TarEntries that are created from the header bytes read from + an archive are instantiated with the TarEntry( byte[] ) + constructor. These entries will be used when extracting from + or listing the contents of an archive. These entries have their + header filled in using the header bytes. They also set the File + to null, since they reference an archive entry not a file.

+

+ TarEntries that are created from files that are to be written + into an archive are instantiated with the CreateEntryFromFile(string) + pseudo constructor. These entries have their header filled in using + the File's information. They also keep a reference to the File + for convenience when writing entries.

+

+ Finally, TarEntries can be constructed from nothing but a name. + This allows the programmer to construct the entry by hand, for + instance when only an InputStream is available for writing to + the archive, and the header information is constructed from + other information. In this case the header fields are set to + defaults and the File is set to null.

+ +
+
+ + + Initialise a default instance of . + + + + + Construct an entry from an archive's header bytes. File is set + to null. + + + The header bytes from a tar archive entry. + + + + + Construct a TarEntry using the header provided + + Header details for entry + + + + Clone this tar entry. + + Returns a clone of this entry. + + + + Construct an entry with only a name. + This allows the programmer to construct the entry's header "by hand". + + The name to use for the entry + Returns the newly created + + + + Construct an entry for a file. File is set to file, and the + header is constructed from information from the file. + + The file name that the entry represents. + Returns the newly created + + + + Determine if the two entries are equal. Equality is determined + by the header names being equal. + + The to compare with the current Object. + + True if the entries are equal; false if not. + + + + + Derive a Hash value for the current + + A Hash code for the current + + + + Determine if the given entry is a descendant of this entry. + Descendancy is determined by the name of the descendant + starting with this entry's name. + + + Entry to be checked as a descendent of this. + + + True if entry is a descendant of this. + + + + + Get this entry's header. + + + This entry's TarHeader. + + + + + Get/Set this entry's name. + + + + + Get/set this entry's user id. + + + + + Get/set this entry's group id. + + + + + Get/set this entry's user name. + + + + + Get/set this entry's group name. + + + + + Convenience method to set this entry's group and user ids. + + + This entry's new user id. + + + This entry's new group id. + + + + + Convenience method to set this entry's group and user names. + + + This entry's new user name. + + + This entry's new group name. + + + + + Get/Set the modification time for this entry + + + + + Get this entry's file. + + + This entry's file. + + + + + Get/set this entry's recorded file size. + + + + + Return true if this entry represents a directory, false otherwise + + + True if this entry is a directory. + + + + + Fill in a TarHeader with information from a File. + + + The TarHeader to fill in. + + + The file from which to get the header information. + + + + + Get entries for all files present in this entries directory. + If this entry doesnt represent a directory zero entries are returned. + + + An array of TarEntry's for this entry's children. + + + + + Write an entry's header information to a header buffer. + + + The tar entry header buffer to fill in. + + + + + Convenience method that will modify an entry's name directly + in place in an entry header buffer byte array. + + + The buffer containing the entry header to modify. + + + The new name to place into the header buffer. + + + + + Fill in a TarHeader given only the entry's name. + + + The TarHeader to fill in. + + + The tar entry name. + + + + + The name of the file this entry represents or null if the entry is not based on a file. + + + + + The entry's header information. + + + + + TarException represents exceptions specific to Tar classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + This class encapsulates the Tar Entry Header used in Tar Archives. + The class also holds a number of tar constants, used mostly in headers. + + + The tar format and its POSIX successor PAX have a long history which makes for compatability + issues when creating and reading files. + + This is further complicated by a large number of programs with variations on formats + One common issue is the handling of names longer than 100 characters. + GNU style long names are currently supported. + + This is the ustar (Posix 1003.1) header. + + struct header + { + char t_name[100]; // 0 Filename + char t_mode[8]; // 100 Permissions + char t_uid[8]; // 108 Numerical User ID + char t_gid[8]; // 116 Numerical Group ID + char t_size[12]; // 124 Filesize + char t_mtime[12]; // 136 st_mtime + char t_chksum[8]; // 148 Checksum + char t_typeflag; // 156 Type of File + char t_linkname[100]; // 157 Target of Links + char t_magic[6]; // 257 "ustar" or other... + char t_version[2]; // 263 Version fixed to 00 + char t_uname[32]; // 265 User Name + char t_gname[32]; // 297 Group Name + char t_devmajor[8]; // 329 Major for devices + char t_devminor[8]; // 337 Minor for devices + char t_prefix[155]; // 345 Prefix for t_name + char t_mfill[12]; // 500 Filler up to 512 + }; + + + + + The length of the name field in a header buffer. + + + + + The length of the mode field in a header buffer. + + + + + The length of the user id field in a header buffer. + + + + + The length of the group id field in a header buffer. + + + + + The length of the checksum field in a header buffer. + + + + + Offset of checksum in a header buffer. + + + + + The length of the size field in a header buffer. + + + + + The length of the magic field in a header buffer. + + + + + The length of the version field in a header buffer. + + + + + The length of the modification time field in a header buffer. + + + + + The length of the user name field in a header buffer. + + + + + The length of the group name field in a header buffer. + + + + + The length of the devices field in a header buffer. + + + + + The length of the name prefix field in a header buffer. + + + + + The "old way" of indicating a normal file. + + + + + Normal file type. + + + + + Link file type. + + + + + Symbolic link file type. + + + + + Character device file type. + + + + + Block device file type. + + + + + Directory file type. + + + + + FIFO (pipe) file type. + + + + + Contiguous file type. + + + + + Posix.1 2001 global extended header + + + + + Posix.1 2001 extended header + + + + + Solaris access control list file type + + + + + GNU dir dump file type + This is a dir entry that contains the names of files that were in the + dir at the time the dump was made + + + + + Solaris Extended Attribute File + + + + + Inode (metadata only) no file content + + + + + Identifies the next file on the tape as having a long link name + + + + + Identifies the next file on the tape as having a long name + + + + + Continuation of a file that began on another volume + + + + + For storing filenames that dont fit in the main header (old GNU) + + + + + GNU Sparse file + + + + + GNU Tape/volume header ignore on extraction + + + + + The magic tag representing a POSIX tar archive. (would be written with a trailing NULL) + + + + + The magic tag representing an old GNU tar archive where version is included in magic and overwrites it + + + + + Initialise a default TarHeader instance + + + + + Get/set the name for this tar entry. + + Thrown when attempting to set the property to null. + + + + Get the name of this entry. + + The entry's name. + + + + Get/set the entry's Unix style permission mode. + + + + + The entry's user id. + + + This is only directly relevant to unix systems. + The default is zero. + + + + + Get/set the entry's group id. + + + This is only directly relevant to linux/unix systems. + The default value is zero. + + + + + Get/set the entry's size. + + Thrown when setting the size to less than zero. + + + + Get/set the entry's modification time. + + + The modification time is only accurate to within a second. + + Thrown when setting the date time to less than 1/1/1970. + + + + Get the entry's checksum. This is only valid/updated after writing or reading an entry. + + + + + Get value of true if the header checksum is valid, false otherwise. + + + + + Get/set the entry's type flag. + + + + + The entry's link name. + + Thrown when attempting to set LinkName to null. + + + + Get/set the entry's magic tag. + + Thrown when attempting to set Magic to null. + + + + The entry's version. + + Thrown when attempting to set Version to null. + + + + The entry's user name. + + + + + Get/set the entry's group name. + + + This is only directly relevant to unix systems. + + + + + Get/set the entry's major device number. + + + + + Get/set the entry's minor device number. + + + + + Create a new that is a copy of the current instance. + + A new that is a copy of the current instance. + + + + Parse TarHeader information from a header buffer. + + + The tar entry header buffer to get information from. + + + + + 'Write' header information to buffer provided, updating the check sum. + + output buffer for header information + + + + Get a hash code for the current object. + + A hash code for the current object. + + + + Determines if this instance is equal to the specified object. + + The object to compare with. + true if the objects are equal, false otherwise. + + + + Set defaults for values used when constructing a TarHeader instance. + + Value to apply as a default for userId. + Value to apply as a default for userName. + Value to apply as a default for groupId. + Value to apply as a default for groupName. + + + + Parse an octal string from a header buffer. + + The header buffer from which to parse. + The offset into the buffer from which to parse. + The number of header bytes to parse. + The long equivalent of the octal string. + + + + Parse a name from a header buffer. + + + The header buffer from which to parse. + + + The offset into the buffer from which to parse. + + + The number of header bytes to parse. + + + The name parsed. + + + + + Add name to the buffer as a collection of bytes + + The name to add + The offset of the first character + The buffer to add to + The index of the first byte to add + The number of characters/bytes to add + The next free index in the + + + + Add name to the buffer as a collection of bytes + + The name to add + The offset of the first character + The buffer to add to + The index of the first byte to add + The number of characters/bytes to add + The next free index in the + + + + Add an entry name to the buffer + + + The name to add + + + The buffer to add to + + + The offset into the buffer from which to start adding + + + The number of header bytes to add + + + The index of the next free byte in the buffer + + + + + Add an entry name to the buffer + + The name to add + The buffer to add to + The offset into the buffer from which to start adding + The number of header bytes to add + The index of the next free byte in the buffer + + + + Add a string to a buffer as a collection of ascii bytes. + + The string to add + The offset of the first character to add. + The buffer to add to. + The offset to start adding at. + The number of ascii characters to add. + The next free index in the buffer. + + + + Put an octal representation of a value into a buffer + + + the value to be converted to octal + + + buffer to store the octal string + + + The offset into the buffer where the value starts + + + The length of the octal string to create + + + The offset of the character next byte after the octal string + + + + + Put an octal or binary representation of a value into a buffer + + Value to be convert to octal + The buffer to update + The offset into the buffer to store the value + The length of the octal string. Must be 12. + Index of next byte + + + + Add the checksum integer to header buffer. + + + The header buffer to set the checksum for + The offset into the buffer for the checksum + The number of header bytes to update. + It's formatted differently from the other fields: it has 6 digits, a + null, then a space -- rather than digits, a space, then a null. + The final space is already there, from checksumming + + The modified buffer offset + + + + Compute the checksum for a tar entry header. + The checksum field must be all spaces prior to this happening + + The tar entry's header buffer. + The computed checksum. + + + + Make a checksum for a tar entry ignoring the checksum contents. + + The tar entry's header buffer. + The checksum for the buffer + + + + The TarInputStream reads a UNIX tar archive as an InputStream. + methods are provided to position at each successive entry in + the archive, and the read each entry as a normal input stream + using read(). + + + + + Construct a TarInputStream with default block factor + + stream to source data from + + + + Construct a TarInputStream with user specified block factor + + stream to source data from + block factor to apply to archive + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value indicating whether the current stream supports seeking + This property always returns false. + + + + + Gets a value indicating if the stream supports writing. + This property always returns false. + + + + + The length in bytes of the stream + + + + + Gets or sets the position within the stream. + Setting the Position is not supported and throws a NotSupportedExceptionNotSupportedException + + Any attempt to set position + + + + Flushes the baseInputStream + + + + + Set the streams position. This operation is not supported and will throw a NotSupportedException + + The offset relative to the origin to seek to. + The to start seeking from. + The new position in the stream. + Any access + + + + Sets the length of the stream + This operation is not supported and will throw a NotSupportedException + + The new stream length. + Any access + + + + Writes a block of bytes to this stream using data from a buffer. + This operation is not supported and will throw a NotSupportedException + + The buffer containing bytes to write. + The offset in the buffer of the frist byte to write. + The number of bytes to write. + Any access + + + + Writes a byte to the current position in the file stream. + This operation is not supported and will throw a NotSupportedException + + The byte value to write. + Any access + + + + Reads a byte from the current tar archive entry. + + A byte cast to an int; -1 if the at the end of the stream. + + + + Reads bytes from the current tar archive entry. + + This method is aware of the boundaries of the current + entry in the archive and will deal with them appropriately + + + The buffer into which to place bytes read. + + + The offset at which to place bytes read. + + + The number of bytes to read. + + + The number of bytes read, or 0 at end of stream/EOF. + + + + + Closes this stream. Calls the TarBuffer's close() method. + The underlying stream is closed by the TarBuffer. + + + + + Set the entry factory for this instance. + + The factory for creating new entries + + + + Get the record size being used by this stream's TarBuffer. + + + + + Get the record size being used by this stream's TarBuffer. + + + TarBuffer record size. + + + + + Get the available data that can be read from the current + entry in the archive. This does not indicate how much data + is left in the entire archive, only in the current entry. + This value is determined from the entry's size header field + and the amount of data already read from the current entry. + + + The number of available bytes for the current entry. + + + + + Skip bytes in the input buffer. This skips bytes in the + current entry's data, not the entire archive, and will + stop at the end of the current entry's data if the number + to skip extends beyond that point. + + + The number of bytes to skip. + + + + + Return a value of true if marking is supported; false otherwise. + + Currently marking is not supported, the return value is always false. + + + + Since we do not support marking just yet, we do nothing. + + + The limit to mark. + + + + + Since we do not support marking just yet, we do nothing. + + + + + Get the next entry in this tar archive. This will skip + over any remaining data in the current entry, if there + is one, and place the input stream at the header of the + next entry, and read the header and instantiate a new + TarEntry from the header bytes and return that entry. + If there are no more entries in the archive, null will + be returned to indicate that the end of the archive has + been reached. + + + The next TarEntry in the archive, or null. + + + + + Copies the contents of the current tar archive entry directly into + an output stream. + + + The OutputStream into which to write the entry's data. + + + + + This interface is provided, along with the method , to allow + the programmer to have their own subclass instantiated for the + entries return from . + + + + + Create an entry based on name alone + + + Name of the new EntryPointNotFoundException to create + + created TarEntry or descendant class + + + + Create an instance based on an actual file + + + Name of file to represent in the entry + + + Created TarEntry or descendant class + + + + + Create a tar entry based on the header information passed + + + Buffer containing header information to create an an entry from. + + + Created TarEntry or descendant class + + + + + Standard entry factory class creating instances of the class TarEntry + + + + + Create a based on named + + The name to use for the entry + A new + + + + Create a tar entry with details obtained from file + + The name of the file to retrieve details from. + A new + + + + Create an entry based on details in header + + The buffer containing entry details. + A new + + + + Flag set when last block has been read + + + + + Size of this entry as recorded in header + + + + + Number of bytes read for this entry so far + + + + + Buffer used with calls to Read() + + + + + Working buffer + + + + + Current entry being read + + + + + Factory used to create TarEntry or descendant class instance + + + + + Stream used as the source of input data. + + + + + The TarOutputStream writes a UNIX tar archive as an OutputStream. + Methods are provided to put entries, and then write their contents + by writing to this stream using write(). + + public + + + + Construct TarOutputStream using default block factor + + stream to write to + + + + Construct TarOutputStream with user specified block factor + + stream to write to + blocking factor + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + true if the stream supports reading; otherwise, false. + + + + + true if the stream supports seeking; otherwise, false. + + + + + true if stream supports writing; otherwise, false. + + + + + length of stream in bytes + + + + + gets or sets the position within the current stream. + + + + + set the position within the current stream + + The offset relative to the to seek to + The to seek from. + The new position in the stream. + + + + Set the length of the current stream + + The new stream length. + + + + Read a byte from the stream and advance the position within the stream + by one byte or returns -1 if at the end of the stream. + + The byte value or -1 if at end of stream + + + + read bytes from the current stream and advance the position within the + stream by the number of bytes read. + + The buffer to store read bytes in. + The index into the buffer to being storing bytes at. + The desired number of bytes to read. + The total number of bytes read, or zero if at the end of the stream. + The number of bytes may be less than the count + requested if data is not avialable. + + + + All buffered data is written to destination + + + + + Ends the TAR archive without closing the underlying OutputStream. + The result is that the EOF block of nulls is written. + + + + + Ends the TAR archive and closes the underlying OutputStream. + + This means that Finish() is called followed by calling the + TarBuffer's Close(). + + + + Get the record size being used by this stream's TarBuffer. + + + + + Get the record size being used by this stream's TarBuffer. + + + The TarBuffer record size. + + + + + Get a value indicating wether an entry is open, requiring more data to be written. + + + + + Put an entry on the output stream. This writes the entry's + header and positions the output stream for writing + the contents of the entry. Once this method is called, the + stream is ready for calls to write() to write the entry's + contents. Once the contents are written, closeEntry() + MUST be called to ensure that all buffered data + is completely written to the output stream. + + + The TarEntry to be written to the archive. + + + + + Close an entry. This method MUST be called for all file + entries that contain data. The reason is that we must + buffer data written to the stream in order to satisfy + the buffer's block based writes. Thus, there may be + data fragments still being assembled that must be written + to the output stream before this entry is closed and the + next entry written. + + + + + Writes a byte to the current tar archive entry. + This method simply calls Write(byte[], int, int). + + + The byte to be written. + + + + + Writes bytes to the current tar archive entry. This method + is aware of the current entry and will throw an exception if + you attempt to write bytes past the length specified for the + current entry. The method is also (painfully) aware of the + record buffering required by TarBuffer, and manages buffers + that are not a multiple of recordsize in length, including + assembling records from small buffers. + + + The buffer to write to the archive. + + + The offset in the buffer from which to get bytes. + + + The number of bytes to write. + + + + + Write an EOF (end of archive) block to the tar archive. + The end of the archive is indicated by two blocks consisting entirely of zero bytes. + + + + + bytes written for this entry so far + + + + + current 'Assembly' buffer length + + + + + Flag indicating wether this instance has been closed or not. + + + + + Size for the current entry + + + + + single block working buffer + + + + + 'Assembly' buffer used to assemble data before writing + + + + + TarBuffer used to provide correct blocking factor + + + + + the destination stream for the archive contents + + + + + This is the Deflater class. The deflater class compresses input + with the deflate algorithm described in RFC 1951. It has several + compression levels and three different strategies described below. + + This class is not thread safe. This is inherent in the API, due + to the split of deflate and setInput. + + author of the original java version : Jochen Hoenicke + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Compression Level as an enum for safer use + + + + + The best and slowest compression level. This tries to find very + long and distant string repetitions. + + + + + The worst but fastest compression level. + + + + + The default compression level. + + + + + This level won't compress at all but output uncompressed blocks. + + + + + The compression method. This is the only method supported so far. + There is no need to use this constant at all. + + + + + Creates a new deflater with default compression level. + + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION, or DEFAULT_COMPRESSION. + + if lvl is out of range. + + + + Creates a new deflater with given compression level. + + + the compression level, a value between NO_COMPRESSION + and BEST_COMPRESSION. + + + true, if we should suppress the Zlib/RFC1950 header at the + beginning and the adler checksum at the end of the output. This is + useful for the GZIP/PKZIP formats. + + if lvl is out of range. + + + + Resets the deflater. The deflater acts afterwards as if it was + just created with the same compression level and strategy as it + had before. + + + + + Gets the current adler checksum of the data that was processed so far. + + + + + Gets the number of input bytes processed so far. + + + + + Gets the number of output bytes so far. + + + + + Flushes the current input block. Further calls to deflate() will + produce enough output to inflate everything in the current input + block. This is not part of Sun's JDK so I have made it package + private. It is used by DeflaterOutputStream to implement + flush(). + + + + + Finishes the deflater with the current input block. It is an error + to give more input after this method was called. This method must + be called to force all bytes to be flushed. + + + + + Returns true if the stream was finished and no more output bytes + are available. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method can also return true when the stream + was finished. + + + + + Sets the data which should be compressed next. This should be only + called when needsInput indicates that more input is needed. + If you call setInput when needsInput() returns false, the + previous input that is still pending will be thrown away. + The given byte array should not be changed, before needsInput() returns + true again. + This call is equivalent to setInput(input, 0, input.length). + + + the buffer containing the input data. + + + if the buffer was finished() or ended(). + + + + + Sets the data which should be compressed next. This should be + only called when needsInput indicates that more input is needed. + The given byte array should not be changed, before needsInput() returns + true again. + + + the buffer containing the input data. + + + the start of the data. + + + the number of data bytes of input. + + + if the buffer was Finish()ed or if previous input is still pending. + + + + + Sets the compression level. There is no guarantee of the exact + position of the change, but if you call this when needsInput is + true the change of compression level will occur somewhere near + before the end of the so far given input. + + + the new compression level. + + + + + Get current compression level + + Returns the current compression level + + + + Sets the compression strategy. Strategy is one of + DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact + position where the strategy is changed, the same as for + SetLevel() applies. + + + The new compression strategy. + + + + + Deflates the current input block with to the given array. + + + The buffer where compressed data is stored + + + The number of compressed bytes added to the output, or 0 if either + IsNeedingInput() or IsFinished returns true or length is zero. + + + + + Deflates the current input block to the given array. + + + Buffer to store the compressed data. + + + Offset into the output array. + + + The maximum number of bytes that may be stored. + + + The number of compressed bytes added to the output, or 0 if either + needsInput() or finished() returns true or length is zero. + + + If Finish() was previously called. + + + If offset or length don't match the array length. + + + + + Sets the dictionary which should be used in the deflate process. + This call is equivalent to setDictionary(dict, 0, dict.Length). + + + the dictionary. + + + if SetInput () or Deflate () were already called or another dictionary was already set. + + + + + Sets the dictionary which should be used in the deflate process. + The dictionary is a byte array containing strings that are + likely to occur in the data which should be compressed. The + dictionary is not stored in the compressed output, only a + checksum. To decompress the output you need to supply the same + dictionary again. + + + The dictionary data + + + The index where dictionary information commences. + + + The number of bytes in the dictionary. + + + If SetInput () or Deflate() were already called or another dictionary was already set. + + + + + Compression level. + + + + + If true no Zlib/RFC1950 headers or footers are generated + + + + + The current state. + + + + + The total bytes of output written. + + + + + The pending output. + + + + + The deflater engine. + + + + + This class contains constants used for deflation. + + + + + Set to true to enable debugging + + + + + Written to Zip file to identify a stored block + + + + + Identifies static tree in Zip file + + + + + Identifies dynamic tree in Zip file + + + + + Header flag indicating a preset dictionary for deflation + + + + + Sets internal buffer sizes for Huffman encoding + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Internal compression engine constant + + + + + Strategies for deflater + + + + + The default strategy + + + + + This strategy will only allow longer string repetitions. It is + useful for random data with a small character set. + + + + + This strategy will not look for string repetitions at all. It + only encodes with Huffman trees (which means, that more common + characters get a smaller encoding. + + + + + Low level compression engine for deflate algorithm which uses a 32K sliding window + with secondary compression from Huffman/Shannon-Fano codes. + + + + + Construct instance with pending buffer + + + Pending buffer to use + > + + + + Deflate drives actual compression of data + + True to flush input buffers + Finish deflation with the current input. + Returns true if progress has been made. + + + + Sets input data to be deflated. Should only be called when NeedsInput() + returns true + + The buffer containing input data. + The offset of the first byte of data. + The number of bytes of data to use as input. + + + + Determines if more input is needed. + + Return true if input is needed via SetInput + + + + Set compression dictionary + + The buffer containing the dictionary data + The offset in the buffer for the first byte of data + The length of the dictionary data. + + + + Reset internal state + + + + + Reset Adler checksum + + + + + Get current value of Adler checksum + + + + + Total data processed + + + + + Get/set the deflate strategy + + + + + Set the deflate level (0-9) + + The value to set the level to. + + + + Fill the window + + + + + Inserts the current string in the head hash and returns the previous + value for this hash. + + The previous hash value + + + + Find the best (longest) string in the window matching the + string starting at strstart. + + Preconditions: + + strstart + DeflaterConstants.MAX_MATCH <= window.length. + + + True if a match greater than the minimum length is found + + + + Hashtable, hashing three characters to an index for window, so + that window[index]..window[index+2] have this hash code. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + prev[index & WMASK] points to the previous index that has the + same hash code as the string starting at index. This way + entries with the same hash code are in a linked list. + Note that the array should really be unsigned short, so you need + to and the values with 0xffff. + + + + + Points to the current character in the window. + + + + + lookahead is the number of characters starting at strstart in + window that are valid. + So window[strstart] until window[strstart+lookahead-1] are valid + characters. + + + + + This array contains the part of the uncompressed stream that + is of relevance. The current character is indexed by strstart. + + + + + The current compression function. + + + + + The input data for compression. + + + + + The total bytes of input read. + + + + + The offset into inputBuf, where input data starts. + + + + + The end offset of the input data. + + + + + The adler checksum + + + + + This is the DeflaterHuffman class. + + This class is not thread safe. This is inherent in the API, due + to the split of Deflate and SetInput. + + author of the original java version : Jochen Hoenicke + + + + + Resets the internal state of the tree + + + + + Check that all frequencies are zero + + + At least one frequency is non-zero + + + + + Set static codes and length + + new codes + length for new codes + + + + Build dynamic codes and lengths + + + + + Get encoded length + + Encoded length, the sum of frequencies * lengths + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + + + + Write tree values + + Tree to write + + + + Pending buffer to use + + + + + Construct instance with pending buffer + + Pending buffer to use + + + + Reset internal state + + + + + Write all trees to pending buffer + + The number/rank of treecodes to send. + + + + Compress current buffer writing data to pending buffer + + + + + Flush block to output with no compression + + Data to write + Index of first byte to write + Count of bytes to write + True if this is the last block + + + + Flush block to output with compression + + Data to flush + Index of first byte to flush + Count of bytes to flush + True if this is the last block + + + + Get value indicating if internal buffer is full + + true if buffer is full + + + + Add literal to buffer + + Literal value to add to buffer. + Value indicating internal buffer is full + + + + Add distance code and length to literal and distance trees + + Distance code + Length + Value indicating if internal buffer is full + + + + Reverse the bits of a 16 bit value. + + Value to reverse bits + Value with bits reversed + + + + This class stores the pending output of the Deflater. + + author of the original java version : Jochen Hoenicke + + + + + Construct instance with default buffer size + + + + + Inflater is used to decompress data that has been compressed according + to the "deflate" standard described in rfc1951. + + By default Zlib (rfc1950) headers and footers are expected in the input. + You can use constructor public Inflater(bool noHeader) passing true + if there is no Zlib header information + + The usage is as following. First you have to set some input with + SetInput(), then Inflate() it. If inflate doesn't + inflate any bytes there may be three reasons: +
    +
  • IsNeedingInput() returns true because the input buffer is empty. + You have to provide more input with SetInput(). + NOTE: IsNeedingInput() also returns true when, the stream is finished. +
  • +
  • IsNeedingDictionary() returns true, you have to provide a preset + dictionary with SetDictionary().
  • +
  • IsFinished returns true, the inflater has finished.
  • +
+ Once the first output byte is produced, a dictionary will not be + needed at a later stage. + + author of the original java version : John Leuner, Jochen Hoenicke +
+
+ + + Copy lengths for literal codes 257..285 + + + + + Extra bits for literal codes 257..285 + + + + + Copy offsets for distance codes 0..29 + + + + + Extra bits for distance codes + + + + + These are the possible states for an inflater + + + + + This variable contains the current state. + + + + + The adler checksum of the dictionary or of the decompressed + stream, as it is written in the header resp. footer of the + compressed stream. + Only valid if mode is DECODE_DICT or DECODE_CHKSUM. + + + + + The number of bits needed to complete the current state. This + is valid, if mode is DECODE_DICT, DECODE_CHKSUM, + DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. + + + + + True, if the last block flag was set in the last block of the + inflated stream. This means that the stream ends after the + current block. + + + + + The total number of inflated bytes. + + + + + The total number of bytes set with setInput(). This is not the + value returned by the TotalIn property, since this also includes the + unprocessed input. + + + + + This variable stores the noHeader flag that was given to the constructor. + True means, that the inflated stream doesn't contain a Zlib header or + footer. + + + + + Creates a new inflater or RFC1951 decompressor + RFC1950/Zlib headers and footers will be expected in the input data + + + + + Creates a new inflater. + + + True if no RFC1950/Zlib header and footer fields are expected in the input data + + This is used for GZIPed/Zipped input. + + For compatibility with + Sun JDK you should provide one byte of input more than needed in + this case. + + + + + Resets the inflater so that a new stream can be decompressed. All + pending input and output will be discarded. + + + + + Decodes a zlib/RFC1950 header. + + + False if more input is needed. + + + The header is invalid. + + + + + Decodes the dictionary checksum after the deflate header. + + + False if more input is needed. + + + + + Decodes the huffman encoded symbols in the input stream. + + + false if more input is needed, true if output window is + full or the current block ends. + + + if deflated stream is invalid. + + + + + Decodes the adler checksum after the deflate stream. + + + false if more input is needed. + + + If checksum doesn't match. + + + + + Decodes the deflated stream. + + + false if more input is needed, or if finished. + + + if deflated stream is invalid. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + + + Sets the preset dictionary. This should only be called, if + needsDictionary() returns true and it should set the same + dictionary, that was used for deflating. The getAdler() + function returns the checksum of the dictionary needed. + + + The dictionary. + + + The index into buffer where the dictionary starts. + + + The number of bytes in the dictionary. + + + No dictionary is needed. + + + The adler checksum for the buffer is invalid + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + the input. + + + + + Sets the input. This should only be called, if needsInput() + returns true. + + + The source of input data + + + The index into buffer where the input starts. + + + The number of bytes of input to use. + + + No input is needed. + + + The index and/or count are wrong. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether IsNeedingDictionary(), + IsNeedingInput() or IsFinished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + The number of bytes written to the buffer, 0 if no further + output can be produced. + + + if buffer has length 0. + + + if deflated stream is invalid. + + + + + Inflates the compressed stream to the output buffer. If this + returns 0, you should check, whether needsDictionary(), + needsInput() or finished() returns true, to determine why no + further output is produced. + + + the output buffer. + + + the offset in buffer where storing starts. + + + the maximum number of bytes to output. + + + the number of bytes written to the buffer, 0 if no further output can be produced. + + + if count is less than 0. + + + if the index and / or count are wrong. + + + if deflated stream is invalid. + + + + + Returns true, if the input buffer is empty. + You should then call setInput(). + NOTE: This method also returns true when the stream is finished. + + + + + Returns true, if a preset dictionary is needed to inflate the input. + + + + + Returns true, if the inflater has finished. This means, that no + input is needed and no output can be produced. + + + + + Gets the adler checksum. This is either the checksum of all + uncompressed bytes returned by inflate(), or if needsDictionary() + returns true (and thus no output was yet produced) this is the + adler checksum of the expected dictionary. + + + the adler checksum. + + + + + Gets the total number of output bytes returned by Inflate(). + + + the total number of output bytes. + + + + + Gets the total number of processed compressed input bytes. + + + The total number of bytes of processed input bytes. + + + + + Gets the number of unprocessed input bytes. Useful, if the end of the + stream is reached and you want to further process the bytes after + the deflate stream. + + + The number of bytes of the input which have not been processed. + + + + + The current decode mode + + + + + Huffman tree used for inflation + + + + + Literal length tree + + + + + Distance tree + + + + + Constructs a Huffman tree from the array of code lengths. + + + the array of code lengths + + + + + Reads the next symbol from input. The symbol is encoded using the + huffman tree. + + + input the input source. + + + the next symbol, or -1 if not enough input is available. + + + + + This class is general purpose class for writing data to a buffer. + + It allows you to write bits as well as bytes + Based on DeflaterPending.java + + author of the original java version : Jochen Hoenicke + + + + + Internal work buffer + + + + + construct instance using default buffer size of 4096 + + + + + construct instance using specified buffer size + + + size to use for internal buffer + + + + + Clear internal state/buffers + + + + + Write a byte to buffer + + + The value to write + + + + + Write a short value to buffer LSB first + + + The value to write. + + + + + write an integer LSB first + + The value to write. + + + + Write a block of data to buffer + + data to write + offset of first byte to write + number of bytes to write + + + + The number of bits written to the buffer + + + + + Align internal buffer on a byte boundary + + + + + Write bits to internal buffer + + source of bits + number of bits to write + + + + Write a short value to internal buffer most significant byte first + + value to write + + + + Indicates if buffer has been flushed + + + + + Flushes the pending buffer into the given output array. If the + output array is to small, only a partial flush is done. + + The output array. + The offset into output array. + The maximum number of bytes to store. + The number of bytes flushed. + + + + Convert internal buffer to byte array. + Buffer is empty on completion + + + The internal buffer contents converted to a byte array. + + + + + A special stream deflating or compressing the bytes that are + written to it. It uses a Deflater to perform actual deflating.
+ Authors of the original java version : Tom Tromey, Jochen Hoenicke +
+
+ + + Creates a new DeflaterOutputStream with a default Deflater and default buffer size. + + + the output stream where deflated output should be written. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + default buffer size. + + + the output stream where deflated output should be written. + + + the underlying deflater. + + + + + Creates a new DeflaterOutputStream with the given Deflater and + buffer size. + + + The output stream where deflated output is written. + + + The underlying deflater to use + + + The buffer size in bytes to use when deflating (minimum value 512) + + + bufsize is less than or equal to zero. + + + baseOutputStream does not support writing + + + deflater instance is null + + + + + Finishes the stream by calling finish() on the deflater. + + + Not all input is deflated + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Allows client to determine if an entry can be patched after its added + + + + + Returns the 10 byte AUTH CODE to be appended immediately following the AES data stream. + + + + + Get/set the password used for encryption. + + When set to null or if the password is empty no encryption is performed + + + + Encrypt a block of data + + + Data to encrypt. NOTE the original contents of the buffer are lost + + + Offset of first byte in buffer to encrypt + + + Number of bytes in buffer to encrypt + + + + + Initializes encryption keys based on given . + + The password. + + + + Initializes encryption keys based on given password. + + + + + Deflates everything in the input buffers. This will call + def.deflate() until all bytes from the input buffers + are processed. + + + + + Gets value indicating stream can be read from + + + + + Gets a value indicating if seeking is supported for this stream + This property always returns false + + + + + Get value indicating if this stream supports writing + + + + + Get current length of stream + + + + + Gets the current position within the stream. + + Any attempt to set position + + + + Sets the current position of this stream to the given value. Not supported by this class! + + The offset relative to the to seek. + The to seek from. + The new position in the stream. + Any access + + + + Sets the length of this stream to the given value. Not supported by this class! + + The new stream length. + Any access + + + + Read a byte from stream advancing position by one + + The byte read cast to an int. THe value is -1 if at the end of the stream. + Any access + + + + Read a block of bytes from stream + + The buffer to store read data in. + The offset to start storing at. + The maximum number of bytes to read. + The actual number of bytes read. Zero if end of stream is detected. + Any access + + + + Flushes the stream by calling Flush on the deflater and then + on the underlying stream. This ensures that all bytes are flushed. + + + + + Calls and closes the underlying + stream when is true. + + + + + Writes a single byte to the compressed output stream. + + + The byte value. + + + + + Writes bytes from an array to the compressed stream. + + + The byte array + + + The offset into the byte array where to start. + + + The number of bytes to write. + + + + + This buffer is used temporarily to retrieve the bytes from the + deflater and write them to the underlying output stream. + + + + + The deflater which is used to deflate the stream. + + + + + Base stream the deflater depends on. + + + + + An input buffer customised for use by + + + The buffer supports decryption of incoming data. + + + + + Initialise a new instance of with a default buffer size + + The stream to buffer. + + + + Initialise a new instance of + + The stream to buffer. + The size to use for the buffer + A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. + + + + Get the length of bytes bytes in the + + + + + Get the contents of the raw data buffer. + + This may contain encrypted data. + + + + Get the number of useable bytes in + + + + + Get the contents of the clear text buffer. + + + + + Get/set the number of bytes available + + + + + Call passing the current clear text buffer contents. + + The inflater to set input for. + + + + Fill the buffer from the underlying input stream. + + + + + Read a buffer directly from the input stream + + The buffer to fill + Returns the number of bytes read. + + + + Read a buffer directly from the input stream + + The buffer to read into + The offset to start reading data into. + The number of bytes to read. + Returns the number of bytes read. + + + + Read clear text data from the input stream. + + The buffer to add data to. + The offset to start adding data at. + The number of bytes to read. + Returns the number of bytes actually read. + + + + Read a from the input stream. + + Returns the byte read. + + + + Read an in little endian byte order. + + The short value read case to an int. + + + + Read an in little endian byte order. + + The int value read. + + + + Read a in little endian byte order. + + The long value read. + + + + Get/set the to apply to any data. + + Set this value to null to have no transform applied. + + + + This filter stream is used to decompress data compressed using the "deflate" + format. The "deflate" format is described in RFC 1951. + + This stream may form the basis for other decompression filters, such + as the GZipInputStream. + + Author of the original java version : John Leuner. + + + + + Create an InflaterInputStream with the default decompressor + and a default buffer size of 4KB. + + + The InputStream to read bytes from + + + + + Create an InflaterInputStream with the specified decompressor + and a default buffer size of 4KB. + + + The source of input data + + + The decompressor used to decompress data read from baseInputStream + + + + + Create an InflaterInputStream with the specified decompressor + and the specified buffer size. + + + The InputStream to read bytes from + + + The decompressor to use + + + Size of the buffer to use + + + + + Gets or sets a flag indicating ownership of underlying stream. + When the flag is true will close the underlying stream also. + + The default value is true. + + + + Skip specified number of bytes of uncompressed data + + + Number of bytes to skip + + + The number of bytes skipped, zero if the end of + stream has been reached + + + The number of bytes to skip is less than or equal to zero. + + + + + Clear any cryptographic state. + + + + + Returns 0 once the end of the stream (EOF) has been reached. + Otherwise returns 1. + + + + + Fills the buffer with more data to decompress. + + + Stream ends early + + + + + Gets a value indicating whether the current stream supports reading + + + + + Gets a value of false indicating seeking is not supported for this stream. + + + + + Gets a value of false indicating that this stream is not writeable. + + + + + A value representing the length of the stream in bytes. + + + + + The current position within the stream. + Throws a NotSupportedException when attempting to set the position + + Attempting to set the position + + + + Flushes the baseInputStream + + + + + Sets the position within the current stream + Always throws a NotSupportedException + + The relative offset to seek to. + The defining where to seek from. + The new position in the stream. + Any access + + + + Set the length of the current stream + Always throws a NotSupportedException + + The new length value for the stream. + Any access + + + + Writes a sequence of bytes to stream and advances the current position + This method always throws a NotSupportedException + + Thew buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Any access + + + + Writes one byte to the current stream and advances the current position + Always throws a NotSupportedException + + The byte to write. + Any access + + + + Closes the input stream. When + is true the underlying stream is also closed. + + + + + Reads decompressed data into the provided buffer byte array + + + The array to read and decompress data into + + + The offset indicating where the data should be placed + + + The number of bytes to decompress + + The number of bytes read. Zero signals the end of stream + + Inflater needs a dictionary + + + + + Decompressor for this stream + + + + + Input buffer for this stream. + + + + + Base stream the inflater reads from. + + + + + The compressed size + + + + + Flag indicating wether this instance has been closed or not. + + + + + Contains the output from the Inflation process. + We need to have a window so that we can refer backwards into the output stream + to repeat stuff.
+ Author of the original java version : John Leuner +
+
+ + + Write a byte to this output window + + value to write + + if window is full + + + + + Append a byte pattern already in the window itself + + length of pattern to copy + distance from end of window pattern occurs + + If the repeated data overflows the window + + + + + Copy from input manipulator to internal window + + source of data + length of data to copy + the number of bytes copied + + + + Copy dictionary to window + + source dictionary + offset of start in source dictionary + length of dictionary + + If window isnt empty + + + + + Get remaining unfilled space in window + + Number of bytes left in window + + + + Get bytes available for output in window + + Number of bytes filled + + + + Copy contents of window to output + + buffer to copy to + offset to start at + number of bytes to count + The number of bytes copied + + If a window underflow occurs + + + + + Reset by clearing window so GetAvailable returns 0 + + + + + This class allows us to retrieve a specified number of bits from + the input buffer, as well as copy big byte blocks. + + It uses an int buffer to store up to 31 bits for direct + manipulation. This guarantees that we can get at least 16 bits, + but we only need at most 15, so this is all safe. + + There are some optimizations in this class, for example, you must + never peek more than 8 bits more than needed, and you must first + peek bits before you may drop them. This is not a general purpose + class but optimized for the behaviour of the Inflater. + + authors of the original java version : John Leuner, Jochen Hoenicke + + + + + Get the next sequence of bits but don't increase input pointer. bitCount must be + less or equal 16 and if this call succeeds, you must drop + at least n - 8 bits in the next call. + + The number of bits to peek. + + the value of the bits, or -1 if not enough bits available. */ + + + + + Drops the next n bits from the input. You should have called PeekBits + with a bigger or equal n before, to make sure that enough bits are in + the bit buffer. + + The number of bits to drop. + + + + Gets the next n bits and increases input pointer. This is equivalent + to followed by , except for correct error handling. + + The number of bits to retrieve. + + the value of the bits, or -1 if not enough bits available. + + + + + Gets the number of bits available in the bit buffer. This must be + only called when a previous PeekBits() returned -1. + + + the number of bits available. + + + + + Gets the number of bytes available. + + + The number of bytes available. + + + + + Skips to the next byte boundary. + + + + + Returns true when SetInput can be called + + + + + Copies bytes from input buffer to output buffer starting + at output[offset]. You have to make sure, that the buffer is + byte aligned. If not enough bytes are available, copies fewer + bytes. + + + The buffer to copy bytes to. + + + The offset in the buffer at which copying starts + + + The length to copy, 0 is allowed. + + + The number of bytes copied, 0 if no bytes were available. + + + Length is less than zero + + + Bit buffer isnt byte aligned + + + + + Resets state and empties internal buffers + + + + + Add more input for consumption. + Only call when IsNeedingInput returns true + + data to be input + offset of first byte of input + number of bytes of input to add. + + + + FastZipEvents supports all events applicable to FastZip operations. + + + + + Delegate to invoke when processing directories. + + + + + Delegate to invoke when processing files. + + + + + Delegate to invoke during processing of files. + + + + + Delegate to invoke when processing for a file has been completed. + + + + + Delegate to invoke when processing directory failures. + + + + + Delegate to invoke when processing file failures. + + + + + Raise the directory failure event. + + The directory causing the failure. + The exception for this event. + A boolean indicating if execution should continue or not. + + + + Fires the file failure handler delegate. + + The file causing the failure. + The exception for this failure. + A boolean indicating if execution should continue or not. + + + + Fires the ProcessFile delegate. + + The file being processed. + A boolean indicating if execution should continue or not. + + + + Fires the delegate + + The file whose processing has been completed. + A boolean indicating if execution should continue or not. + + + + Fires the process directory delegate. + + The directory being processed. + Flag indicating if the directory has matching files as determined by the current filter. + A of true if the operation should continue; false otherwise. + + + + The minimum timespan between events. + + The minimum period of time between events. + + The default interval is three seconds. + + + + FastZip provides facilities for creating and extracting zip files. + + + + + Defines the desired handling when overwriting files during extraction. + + + + + Prompt the user to confirm overwriting + + + + + Never overwrite files. + + + + + Always overwrite files. + + + + + Initialise a default instance of . + + + + + Initialise a new instance of + + The events to use during operations. + + + + Get/set a value indicating wether empty directories should be created. + + + + + Get / set the password value. + + + + + Get or set the active when creating Zip files. + + + + + + Get or set the active when creating Zip files. + + + + + Gets or sets the setting for Zip64 handling when writing. + + + The default value is dynamic which is not backwards compatible with old + programs and can cause problems with XP's built in compression which cant + read Zip64 archives. However it does avoid the situation were a large file + is added and cannot be completed correctly. + NOTE: Setting the size for entries before they are added is the best solution! + By default the EntryFactory used by FastZip will set fhe file size. + + + + + Get/set a value indicating wether file dates and times should + be restored when extracting files from an archive. + + The default value is false. + + + + Get/set a value indicating whether file attributes should + be restored during extract operations + + + + + Get/set the Compression Level that will be used + when creating the zip + + + + + Delegate called when confirming overwriting of files. + + + + + Create a zip file. + + The name of the zip file to create. + The directory to source files from. + True to recurse directories, false for no recursion. + The file filter to apply. + The directory filter to apply. + + + + Create a zip file/archive. + + The name of the zip file to create. + The directory to obtain files and directories from. + True to recurse directories, false for no recursion. + The file filter to apply. + + + + Create a zip archive sending output to the passed. + + The stream to write archive data to. + The directory to source files from. + True to recurse directories, false for no recursion. + The file filter to apply. + The directory filter to apply. + The is closed after creation. + + + + Extract the contents of a zip file. + + The zip file to extract from. + The directory to save extracted information in. + A filter to apply to files. + + + + Extract the contents of a zip file. + + The zip file to extract from. + The directory to save extracted information in. + The style of overwriting to apply. + A delegate to invoke when confirming overwriting. + A filter to apply to files. + A filter to apply to directories. + Flag indicating whether to restore the date and time for extracted files. + + + + Extract the contents of a zip file held in a stream. + + The seekable input stream containing the zip to extract from. + The directory to save extracted information in. + The style of overwriting to apply. + A delegate to invoke when confirming overwriting. + A filter to apply to files. + A filter to apply to directories. + Flag indicating whether to restore the date and time for extracted files. + Flag indicating whether the inputStream will be closed by this method. + + + + Defines factory methods for creating new values. + + + + + Create a for a file given its name + + The name of the file to create an entry for. + Returns a file entry based on the passed. + + + + Create a for a file given its name + + The name of the file to create an entry for. + If true get details from the file system if the file exists. + Returns a file entry based on the passed. + + + + Create a for a file given its actual name and optional override name + + The name of the file to create an entry for. + An alternative name to be used for the new entry. Null if not applicable. + If true get details from the file system if the file exists. + Returns a file entry based on the passed. + + + + Create a for a directory given its name + + The name of the directory to create an entry for. + Returns a directory entry based on the passed. + + + + Create a for a directory given its name + + The name of the directory to create an entry for. + If true get details from the file system for this directory if it exists. + Returns a directory entry based on the passed. + + + + Get/set the applicable. + + + + + WindowsNameTransform transforms names to windows compatible ones. + + + + + The maximum windows path name permitted. + + This may not valid for all windows systems - CE?, etc but I cant find the equivalent in the CLR. + + + + In this case we need Windows' invalid path characters. + Path.GetInvalidPathChars() only returns a subset invalid on all platforms. + + + + + Initialises a new instance of + + + + + + Initialise a default instance of + + + + + Gets or sets a value containing the target directory to prefix values with. + + + + + Gets or sets a value indicating wether paths on incoming values should be removed. + + + + + Transform a Zip directory name to a windows directory name. + + The directory name to transform. + The transformed name. + + + + Transform a Zip format file name to a windows style one. + + The file name to transform. + The transformed name. + + + + Test a name to see if it is a valid name for a windows filename as extracted from a Zip archive. + + The name to test. + Returns true if the name is a valid zip name; false otherwise. + The filename isnt a true windows path in some fundamental ways like no absolute paths, no rooted paths etc. + + + + Force a name to be valid by replacing invalid characters with a fixed value + + The name to make valid + The replacement character to use for any invalid characters. + Returns a valid name + + + + Gets or set the character to replace invalid characters during transformations. + + + + + Determines how entries are tested to see if they should use Zip64 extensions or not. + + + + + Zip64 will not be forced on entries during processing. + + An entry can have this overridden if required + + + + Zip64 should always be used. + + + + + #ZipLib will determine use based on entry values when added to archive. + + + + + The kind of compression used for an entry in an archive + + + + + A direct copy of the file contents is held in the archive + + + + + Common Zip compression method using a sliding dictionary + of up to 32KB and secondary compression from Huffman/Shannon-Fano trees + + + + + An extension to deflate with a 64KB window. Not supported by #Zip currently + + + + + BZip2 compression. Not supported by #Zip. + + + + + WinZip special for AES encryption, Now supported by #Zip. + + + + + Identifies the encryption algorithm used for an entry + + + + + No encryption has been used. + + + + + Encrypted using PKZIP 2.0 or 'classic' encryption. + + + + + DES encryption has been used. + + + + + RC2 encryption has been used for encryption. + + + + + Triple DES encryption with 168 bit keys has been used for this entry. + + + + + Triple DES with 112 bit keys has been used for this entry. + + + + + AES 128 has been used for encryption. + + + + + AES 192 has been used for encryption. + + + + + AES 256 has been used for encryption. + + + + + RC2 corrected has been used for encryption. + + + + + Blowfish has been used for encryption. + + + + + Twofish has been used for encryption. + + + + + RC4 has been used for encryption. + + + + + An unknown algorithm has been used for encryption. + + + + + Defines the contents of the general bit flags field for an archive entry. + + + + + Bit 0 if set indicates that the file is encrypted + + + + + Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) + + + + + Bit 3 if set indicates a trailing data desciptor is appended to the entry data + + + + + Bit 4 is reserved for use with method 8 for enhanced deflation + + + + + Bit 5 if set indicates the file contains Pkzip compressed patched data. + Requires version 2.7 or greater. + + + + + Bit 6 if set indicates strong encryption has been used for this entry. + + + + + Bit 7 is currently unused + + + + + Bit 8 is currently unused + + + + + Bit 9 is currently unused + + + + + Bit 10 is currently unused + + + + + Bit 11 if set indicates the filename and + comment fields for this file must be encoded using UTF-8. + + + + + Bit 12 is documented as being reserved by PKware for enhanced compression. + + + + + Bit 13 if set indicates that values in the local header are masked to hide + their actual values, and the central directory is encrypted. + + + Used when encrypting the central directory contents. + + + + + Bit 14 is documented as being reserved for use by PKware + + + + + Bit 15 is documented as being reserved for use by PKware + + + + + This class contains constants used for Zip format files + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See . + + + + + The version made by field for entries in the central header when created by this library + + + This is also the Zip version for the library when comparing against the version required to extract + for an entry. See ZipInputStream.CanDecompressEntry. + + + + + The minimum version required to support strong encryption + + + + + The minimum version required to support strong encryption + + + + + Version indicating AES encryption + + + + + The version required for Zip64 extensions (4.5 or higher) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of local entry header (excluding variable length fields at end) + + + + + Size of Zip64 data descriptor + + + + + Size of data descriptor + + + + + Size of data descriptor + + + + + Size of central header entry (excluding variable fields) + + + + + Size of central header entry + + + + + Size of end of central record (excluding variable fields) + + + + + Size of end of central record (excluding variable fields) + + + + + Size of 'classic' cryptographic header stored before any entry data + + + + + Size of cryptographic header stored before entry data + + + + + Signature for local entry header + + + + + Signature for local entry header + + + + + Signature for spanning entry + + + + + Signature for spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for temporary spanning entry + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for data descriptor + + + This is only used where the length, Crc, or compressed size isnt known when the + entry is created and the output stream doesnt support seeking. + The local entry cannot be 'patched' with the correct values in this case + so the values are recorded after the data prefixed by this header, as well as in the central directory. + + + + + Signature for central header + + + + + Signature for central header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central file header + + + + + Signature for Zip64 central directory locator + + + + + Signature for archive extra data signature (were headers are encrypted). + + + + + Central header digitial signature + + + + + Central header digitial signature + + + + + End of central directory record signature + + + + + End of central directory record signature + + + + + The original Zip specification (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) states + that file names should only be encoded with IBM Code Page 437 or UTF-8. + In practice, most zip apps use OEM or system encoding (typically cp437 on Windows). + Let's be good citizens and default to UTF-8 http://utf8everywhere.org/ + + + + + Default encoding used for string conversion. 0 gives the default system OEM code page. + Using the default code page isnt the full solution neccessarily + there are many variable factors, codepage 850 is often a good choice for + European users, however be careful about compatability. + + + + + Convert a portion of a byte array to a string. + + + Data to convert to string + + + Number of bytes to convert starting from index 0 + + + data[0]..data[count - 1] converted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + + dataconverted to a string + + + + + Convert a byte array to string + + The applicable general purpose bits flags + + Byte array to convert + + The number of bytes to convert. + + dataconverted to a string + + + + + Convert a byte array to string + + + Byte array to convert + + The applicable general purpose bits flags + + dataconverted to a string + + + + + Convert a string to a byte array + + + String to convert to an array + + Converted array + + + + Convert a string to a byte array + + The applicable general purpose bits flags + + String to convert to an array + + Converted array + + + + Initialise default instance of ZipConstants + + + Private to prevent instances being created. + + + + + Defines known values for the property. + + + + + Host system = MSDOS + + + + + Host system = Amiga + + + + + Host system = Open VMS + + + + + Host system = Unix + + + + + Host system = VMCms + + + + + Host system = Atari ST + + + + + Host system = OS2 + + + + + Host system = Macintosh + + + + + Host system = ZSystem + + + + + Host system = Cpm + + + + + Host system = Windows NT + + + + + Host system = MVS + + + + + Host system = VSE + + + + + Host system = Acorn RISC + + + + + Host system = VFAT + + + + + Host system = Alternate MVS + + + + + Host system = BEOS + + + + + Host system = Tandem + + + + + Host system = OS400 + + + + + Host system = OSX + + + + + Host system = WinZIP AES + + + + + This class represents an entry in a zip archive. This can be a file + or a directory + ZipFile and ZipInputStream will give you instances of this class as + information about the members in an archive. ZipOutputStream + uses an instance of this class when creating an entry in a Zip file. +
+
Author of the original java version : Jochen Hoenicke +
+
+ + + Creates a zip entry with the given name. + + + The name for this entry. Can include directory components. + The convention for names is 'unix' style paths with relative names only. + There are with no device names and path elements are separated by '/' characters. + + + The name passed is null + + + + + Creates a zip entry with the given name and version required to extract + + + The name for this entry. Can include directory components. + The convention for names is 'unix' style paths with no device names and + path elements separated by '/' characters. This is not enforced see CleanName + on how to ensure names are valid if this is desired. + + + The minimum 'feature version' required this entry + + + The name passed is null + + + + + Initializes an entry with the given name and made by information + + Name for this entry + Version and HostSystem Information + Minimum required zip feature version required to extract this entry + Compression method for this entry. + + The name passed is null + + + versionRequiredToExtract should be 0 (auto-calculate) or > 10 + + + This constructor is used by the ZipFile class when reading from the central header + It is not generally useful, use the constructor specifying the name only. + + + + + Creates a deep copy of the given zip entry. + + + The entry to copy. + + + + + Get a value indicating wether the entry has a CRC value available. + + + + + Get/Set flag indicating if entry is encrypted. + A simple helper routine to aid interpretation of flags + + This is an assistant that interprets the flags property. + + + + Get / set a flag indicating wether entry name and comment text are + encoded in unicode UTF8. + + This is an assistant that interprets the flags property. + + + + Value used during password checking for PKZIP 2.0 / 'classic' encryption. + + + + + Get/Set general purpose bit flag for entry + + + General purpose bit flag
+
+ Bit 0: If set, indicates the file is encrypted
+ Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating
+ Imploding:
+ Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used
+ Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise
+
+ Deflating:
+ Bit 2 Bit 1
+ 0 0 Normal compression was used
+ 0 1 Maximum compression was used
+ 1 0 Fast compression was used
+ 1 1 Super fast compression was used
+
+ Bit 3: If set, the fields crc-32, compressed size + and uncompressed size are were not able to be written during zip file creation + The correct values are held in a data descriptor immediately following the compressed data.
+ Bit 4: Reserved for use by PKZIP for enhanced deflating
+ Bit 5: If set indicates the file contains compressed patch data
+ Bit 6: If set indicates strong encryption was used.
+ Bit 7-10: Unused or reserved
+ Bit 11: If set the name and comments for this entry are in unicode.
+ Bit 12-15: Unused or reserved
+
+ + +
+ + + Get/Set index of this entry in Zip file + + This is only valid when the entry is part of a + + + + Get/set offset for use in central header + + + + + Get/Set external file attributes as an integer. + The values of this are operating system dependant see + HostSystem for details + + + + + Get the version made by for this entry or zero if unknown. + The value / 10 indicates the major version number, and + the value mod 10 is the minor version number + + + + + Get a value indicating this entry is for a DOS/Windows system. + + + + + Test the external attributes for this to + see if the external attributes are Dos based (including WINNT and variants) + and match the values + + The attributes to test. + Returns true if the external attributes are known to be DOS/Windows + based and have the same attributes set as the value passed. + + + + Gets the compatability information for the external file attribute + If the external file attributes are compatible with MS-DOS and can be read + by PKZIP for DOS version 2.04g then this value will be zero. Otherwise the value + will be non-zero and identify the host system on which the attributes are compatible. + + + + The values for this as defined in the Zip File format and by others are shown below. The values are somewhat + misleading in some cases as they are not all used as shown. You should consult the relevant documentation + to obtain up to date and correct information. The modified appnote by the infozip group is + particularly helpful as it documents a lot of peculiarities. The document is however a little dated. + + 0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems) + 1 - Amiga + 2 - OpenVMS + 3 - Unix + 4 - VM/CMS + 5 - Atari ST + 6 - OS/2 HPFS + 7 - Macintosh + 8 - Z-System + 9 - CP/M + 10 - Windows NTFS + 11 - MVS (OS/390 - Z/OS) + 12 - VSE + 13 - Acorn Risc + 14 - VFAT + 15 - Alternate MVS + 16 - BeOS + 17 - Tandem + 18 - OS/400 + 19 - OS/X (Darwin) + 99 - WinZip AES + remainder - unused + + + + + + Get minimum Zip feature version required to extract this entry + + + Minimum features are defined as:
+ 1.0 - Default value
+ 1.1 - File is a volume label
+ 2.0 - File is a folder/directory
+ 2.0 - File is compressed using Deflate compression
+ 2.0 - File is encrypted using traditional encryption
+ 2.1 - File is compressed using Deflate64
+ 2.5 - File is compressed using PKWARE DCL Implode
+ 2.7 - File is a patch data set
+ 4.5 - File uses Zip64 format extensions
+ 4.6 - File is compressed using BZIP2 compression
+ 5.0 - File is encrypted using DES
+ 5.0 - File is encrypted using 3DES
+ 5.0 - File is encrypted using original RC2 encryption
+ 5.0 - File is encrypted using RC4 encryption
+ 5.1 - File is encrypted using AES encryption
+ 5.1 - File is encrypted using corrected RC2 encryption
+ 5.1 - File is encrypted using corrected RC2-64 encryption
+ 6.1 - File is encrypted using non-OAEP key wrapping
+ 6.2 - Central directory encryption (not confirmed yet)
+ 6.3 - File is compressed using LZMA
+ 6.3 - File is compressed using PPMD+
+ 6.3 - File is encrypted using Blowfish
+ 6.3 - File is encrypted using Twofish
+
+ +
+ + + Get a value indicating whether this entry can be decompressed by the library. + + This is based on the and + wether the compression method is supported. + + + + Force this entry to be recorded using Zip64 extensions. + + + + + Get a value indicating wether Zip64 extensions were forced. + + A value of true if Zip64 extensions have been forced on; false if not. + + + + Gets a value indicating if the entry requires Zip64 extensions + to store the full entry values. + + A value of true if a local header requires Zip64 extensions; false if not. + + + + Get a value indicating wether the central directory entry requires Zip64 extensions to be stored. + + + + + Get/Set DosTime value. + + + The MS-DOS date format can only represent dates between 1/1/1980 and 12/31/2107. + + + + + Gets/Sets the time of last modification of the entry. + + + The property is updated to match this as far as possible. + + + + + Returns the entry name. + + + The unix naming convention is followed. + Path components in the entry should always separated by forward slashes ('/'). + Dos device names like C: should also be removed. + See the class, or + + + + + Gets/Sets the size of the uncompressed data. + + + The size or -1 if unknown. + + Setting the size before adding an entry to an archive can help + avoid compatability problems with some archivers which dont understand Zip64 extensions. + + + + Gets/Sets the size of the compressed data. + + + The compressed entry size or -1 if unknown. + + + + + Gets/Sets the crc of the uncompressed data. + + + Crc is not in the range 0..0xffffffffL + + + The crc value or -1 if unknown. + + + + + Gets/Sets the compression method. Only Deflated and Stored are supported. + + + The compression method for this entry + + + + + + + Gets the compression method for outputting to the local or central header. + Returns same value as CompressionMethod except when AES encrypting, which + places 99 in the method and places the real method in the extra data. + + + + + Gets/Sets the extra data. + + + Extra data is longer than 64KB (0xffff) bytes. + + + Extra data or null if not set. + + + + + For AES encrypted files returns or sets the number of bits of encryption (128, 192 or 256). + When setting, only 0 (off), 128 or 256 is supported. + + + + + AES Encryption strength for storage in extra data in entry header. + 1 is 128 bit, 2 is 192 bit, 3 is 256 bit. + + + + + Returns the length of the salt, in bytes + + + + + Number of extra bytes required to hold the AES Header fields (Salt, Pwd verify, AuthCode) + + + + + Process extra data fields updating the entry based on the contents. + + True if the extra data fields should be handled + for a local header, rather than for a central header. + + + + + Gets/Sets the entry comment. + + + If comment is longer than 0xffff. + + + The comment or null if not set. + + + A comment is only available for entries when read via the class. + The class doesnt have the comment data available. + + + + + Gets a value indicating if the entry is a directory. + however. + + + A directory is determined by an entry name with a trailing slash '/'. + The external file attributes can also indicate an entry is for a directory. + Currently only dos/windows attributes are tested in this manner. + The trailing slash convention should always be followed. + + + + + Get a value of true if the entry appears to be a file; false otherwise + + + This only takes account of DOS/Windows attributes. Other operating systems are ignored. + For linux and others the result may be incorrect. + + + + + Test entry to see if data can be extracted. + + Returns true if data can be extracted for this entry; false otherwise. + + + + Creates a copy of this zip entry. + + An that is a copy of the current instance. + + + + Gets a string representation of this ZipEntry. + + A readable textual representation of this + + + + Test a compression method to see if this library + supports extracting data compressed with that method + + The compression method to test. + Returns true if the compression method is supported; false otherwise + + + + Cleans a name making it conform to Zip file conventions. + Devices names ('c:\') and UNC share names ('\\server\share') are removed + and forward slashes ('\') are converted to back slashes ('/'). + Names are made relative by trimming leading slashes which is compatible + with the ZIP naming convention. + + The name to clean + The 'cleaned' name. + + The Zip name transform class is more flexible. + + + + + Basic implementation of + + + + + Defines the possible values to be used for the . + + + + + Use the recorded LastWriteTime value for the file. + + + + + Use the recorded LastWriteTimeUtc value for the file + + + + + Use the recorded CreateTime value for the file. + + + + + Use the recorded CreateTimeUtc value for the file. + + + + + Use the recorded LastAccessTime value for the file. + + + + + Use the recorded LastAccessTimeUtc value for the file. + + + + + Use a fixed value. + + The actual value used can be + specified via the constructor or + using the with the setting set + to which will use the when this class was constructed. + The property can also be used to set this value. + + + + Initialise a new instance of the class. + + A default , and the LastWriteTime for files is used. + + + + Initialise a new instance of using the specified + + The time setting to use when creating Zip entries. + + + + Initialise a new instance of using the specified + + The time to set all values to. + + + + Get / set the to be used when creating new values. + + + Setting this property to null will cause a default name transform to be used. + + + + + Get / set the in use. + + + + + Get / set the value to use when is set to + + + + + A bitmask defining the attributes to be retrieved from the actual file. + + The default is to get all possible attributes from the actual file. + + + + A bitmask defining which attributes are to be set on. + + By default no attributes are set on. + + + + Get set a value indicating wether unidoce text should be set on. + + + + + Make a new for a file. + + The name of the file to create a new entry for. + Returns a new based on the . + + + + Make a new for a file. + + The name of the file to create a new entry for. + If true entry detail is retrieved from the file system if the file exists. + Returns a new based on the . + + + + Make a new from a name. + + The name of the file to create a new entry for. + An alternative name to be used for the new entry. Null if not applicable. + If true entry detail is retrieved from the file system if the file exists. + Returns a new based on the . + + + + Make a new for a directory. + + The raw untransformed name for the new directory + Returns a new representing a directory. + + + + Make a new for a directory. + + The raw untransformed name for the new directory + If true entry detail is retrieved from the file system if the file exists. + Returns a new representing a directory. + + + + ZipException represents exceptions specific to Zip classes and code. + + + + + Initialise a new instance of . + + + + + Initialise a new instance of with its message string. + + A that describes the error. + + + + Initialise a new instance of . + + A that describes the error. + The that caused this exception. + + + + ExtraData tagged value interface. + + + + + Get the ID for this tagged data value. + + + + + Set the contents of this instance from the data passed. + + The data to extract contents from. + The offset to begin extracting data from. + The number of bytes to extract. + + + + Get the data representing this instance. + + Returns the data for this instance. + + + + A raw binary tagged value + + + + + Initialise a new instance. + + The tag ID. + + + + Get the ID for this tagged data value. + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Get /set the binary data representing this instance. + + The raw binary data representing this instance. + + + + The tag ID for this instance. + + + + + Class representing extended unix date time values. + + + + + Flags indicate which values are included in this instance. + + + + + The modification time is included + + + + + The access time is included + + + + + The create time is included. + + + + + Get the ID + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Test a value to see if is valid and can be represented here. + + The value to test. + Returns true if the value is valid and can be represented; false if not. + The standard Unix time is a signed integer data type, directly encoding the Unix time number, + which is the number of seconds since 1970-01-01. + Being 32 bits means the values here cover a range of about 136 years. + The minimum representable time is 1901-12-13 20:45:52, + and the maximum representable time is 2038-01-19 03:14:07. + + + + + Get /set the Modification Time + + + + + + + Get / set the Access Time + + + + + + + Get / Set the Create Time + + + + + + + Get/set the values to include. + + + + + Class handling NT date time values. + + + + + Get the ID for this tagged data value. + + + + + Set the data from the raw values provided. + + The raw data to extract values from. + The index to start extracting values from. + The number of bytes available. + + + + Get the binary data representing this instance. + + The raw binary data representing this instance. + + + + Test a valuie to see if is valid and can be represented here. + + The value to test. + Returns true if the value is valid and can be represented; false if not. + + NTFS filetimes are 64-bit unsigned integers, stored in Intel + (least significant byte first) byte order. They determine the + number of 1.0E-07 seconds (1/10th microseconds!) past WinNT "epoch", + which is "01-Jan-1601 00:00:00 UTC". 28 May 60056 is the upper limit + + + + + Get/set the last modification time. + + + + + Get /set the create time + + + + + Get /set the last access time. + + + + + A factory that creates tagged data instances. + + + + + Get data for a specific tag value. + + The tag ID to find. + The data to search. + The offset to begin extracting data from. + The number of bytes to extract. + The located value found, or null if not found. + + + + + A class to handle the extra data field for Zip entries + + + Extra data contains 0 or more values each prefixed by a header tag and length. + They contain zero or more bytes of actual data. + The data is held internally using a copy on write strategy. This is more efficient but + means that for extra data created by passing in data can have the values modified by the caller + in some circumstances. + + + + + Initialise a default instance. + + + + + Initialise with known extra data. + + The extra data. + + + + Get the raw extra data value + + Returns the raw byte[] extra data this instance represents. + + + + Clear the stored data. + + + + + Gets the current extra data length. + + + + + Get a read-only for the associated tag. + + The tag to locate data for. + Returns a containing tag data or null if no tag was found. + + + + Get the tagged data for a tag. + + The tag to search for. + Returns a tagged value or null if none found. + + + + Get the length of the last value found by + + This is only valid if has previously returned true. + + + + Get the index for the current read value. + + This is only valid if has previously returned true. + Initially the result will be the index of the first byte of actual data. The value is updated after calls to + , and . + + + + Get the number of bytes remaining to be read for the current value; + + + + + Find an extra data value + + The identifier for the value to find. + Returns true if the value was found; false otherwise. + + + + Add a new entry to extra data. + + The value to add. + + + + Add a new entry to extra data + + The ID for this entry. + The data to add. + If the ID already exists its contents are replaced. + + + + Start adding a new entry. + + Add data using , , , or . + The new entry is completed and actually added by calling + + + + + Add entry data added since using the ID passed. + + The identifier to use for this entry. + + + + Add a byte of data to the pending new entry. + + The byte to add. + + + + + Add data to a pending new entry. + + The data to add. + + + + + Add a short value in little endian order to the pending new entry. + + The data to add. + + + + + Add an integer value in little endian order to the pending new entry. + + The data to add. + + + + + Add a long value in little endian order to the pending new entry. + + The data to add. + + + + + Delete an extra data field. + + The identifier of the field to delete. + Returns true if the field was found and deleted. + + + + Read a long in little endian form from the last found data value + + Returns the long value read. + + + + Read an integer in little endian form from the last found data value. + + Returns the integer read. + + + + Read a short value in little endian form from the last found data value. + + Returns the short value read. + + + + Read a byte from an extra data + + The byte value read or -1 if the end of data has been reached. + + + + Skip data during reading. + + The number of bytes to skip. + + + + Internal form of that reads data at any location. + + Returns the short value read. + + + + Dispose of this instance. + + + + + Arguments used with KeysRequiredEvent + + + + + Initialise a new instance of + + The name of the file for which keys are required. + + + + Initialise a new instance of + + The name of the file for which keys are required. + The current key value. + + + + Gets the name of the file for which keys are required. + + + + + Gets or sets the key value + + + + + The strategy to apply to testing. + + + + + Find the first error only. + + + + + Find all possible errors. + + + + + The operation in progress reported by a during testing. + + TestArchive + + + + Setting up testing. + + + + + Testing an individual entries header + + + + + Testing an individual entries data + + + + + Testing an individual entry has completed. + + + + + Running miscellaneous tests + + + + + Testing is complete + + + + + Status returned returned by during testing. + + TestArchive + + + + Initialise a new instance of + + The this status applies to. + + + + Get the current in progress. + + + + + Get the this status is applicable to. + + + + + Get the current/last entry tested. + + + + + Get the number of errors detected so far. + + + + + Get the number of bytes tested so far for the current entry. + + + + + Get a value indicating wether the last entry test was valid. + + + + + Delegate invoked during testing if supplied indicating current progress and status. + + If the message is non-null an error has occured. If the message is null + the operation as found in status has started. + + + + The possible ways of applying updates to an archive. + + + + + Perform all updates on temporary files ensuring that the original file is saved. + + + + + Update the archive directly, which is faster but less safe. + + + + + This class represents a Zip archive. You can ask for the contained + entries, or get an input stream for a file entry. The entry is + automatically decompressed. + + You can also update the archive adding or deleting entries. + + This class is thread safe for input: You can open input streams for arbitrary + entries in different threads. +
+
Author of the original java version : Jochen Hoenicke +
+ + + using System; + using System.Text; + using System.Collections; + using System.IO; + + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + static public void Main(string[] args) + { + using (ZipFile zFile = new ZipFile(args[0])) { + Console.WriteLine("Listing of : " + zFile.Name); + Console.WriteLine(""); + Console.WriteLine("Raw Size Size Date Time Name"); + Console.WriteLine("-------- -------- -------- ------ ---------"); + foreach (ZipEntry e in zFile) { + if ( e.IsFile ) { + DateTime d = e.DateTime; + Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize, + d.ToString("dd-MM-yy"), d.ToString("HH:mm"), + e.Name); + } + } + } + } + } + + +
+ + + Delegate for handling keys/password setting during compresion/decompression. + + + + + Event handler for handling encryption keys. + + + + + Handles getting of encryption keys when required. + + The file for which encryption keys are required. + + + + Get/set the encryption key value. + + + + + Password to be used for encrypting/decrypting files. + + Set to null if no password is required. + + + + Get a value indicating wether encryption keys are currently available. + + + + + Opens a Zip file with the given name for reading. + + The name of the file to open. + The argument supplied is null. + + An i/o error occurs + + + The file doesn't contain a valid zip archive. + + + + + Opens a Zip file reading the given . + + The to read archive data from. + The supplied argument is null. + + An i/o error occurs. + + + The file doesn't contain a valid zip archive. + + + + + Opens a Zip file reading the given . + + The to read archive data from. + + An i/o error occurs + + + The stream doesn't contain a valid zip archive.
+
+ + The stream doesnt support seeking. + + + The stream argument is null. + +
+ + + Initialises a default instance with no entries and no file storage. + + + + + Finalize this instance. + + + + + Closes the ZipFile. If the stream is owned then this also closes the underlying input stream. + Once closed, no further instance methods should be called. + + + An i/o error occurs. + + + + + Create a new whose data will be stored in a file. + + The name of the archive to create. + Returns the newly created + is null + + + + Create a new whose data will be stored on a stream. + + The stream providing data storage. + Returns the newly created + is null + doesnt support writing. + + + + Get/set a flag indicating if the underlying stream is owned by the ZipFile instance. + If the flag is true then the stream will be closed when Close is called. + + + The default value is true in all cases. + + + + + Get a value indicating wether + this archive is embedded in another file or not. + + + + + Get a value indicating that this archive is a new one. + + + + + Gets the comment for the zip file. + + + + + Gets the name of this zip file. + + + + + Gets the number of entries in this zip file. + + + The Zip file has been closed. + + + + + Get the number of entries contained in this . + + + + + Indexer property for ZipEntries + + + + + Gets an enumerator for the Zip entries in this Zip file. + + Returns an for this archive. + + The Zip file has been closed. + + + + + Return the index of the entry with a matching name + + Entry name to find + If true the comparison is case insensitive + The index position of the matching entry or -1 if not found + + The Zip file has been closed. + + + + + Searches for a zip entry in this archive with the given name. + String comparisons are case insensitive + + + The name to find. May contain directory components separated by slashes ('/'). + + + A clone of the zip entry, or null if no entry with that name exists. + + + The Zip file has been closed. + + + + + Gets an input stream for reading the given zip entry data in an uncompressed form. + Normally the should be an entry returned by GetEntry(). + + The to obtain a data for + An input containing data for this + + The ZipFile has already been closed + + + The compression method for the entry is unknown + + + The entry is not found in the ZipFile + + + + + Creates an input stream reading a zip entry + + The index of the entry to obtain an input stream for. + + An input containing data for this + + + The ZipFile has already been closed + + + The compression method for the entry is unknown + + + The entry is not found in the ZipFile + + + + + Test an archive for integrity/validity + + Perform low level data Crc check + true if all tests pass, false otherwise + Testing will terminate on the first error found. + + + + Test an archive for integrity/validity + + Perform low level data Crc check + The to apply. + The handler to call during testing. + true if all tests pass, false otherwise + The object has already been closed. + + + + Test a local header against that provided from the central directory + + + The entry to test against + + The type of tests to carry out. + The offset of the entries data in the file + + + + The kind of update to apply. + + + + + Get / set the to apply to names when updating. + + + + + Get/set the used to generate values + during updates. + + + + + Get /set the buffer size to be used when updating this zip file. + + + + + Get a value indicating an update has been started. + + + + + Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + + + + + Begin updating this archive. + + The archive storage for use during the update. + The data source to utilise during updating. + ZipFile has been closed. + One of the arguments provided is null + ZipFile has been closed. + + + + Begin updating to this archive. + + The storage to use during the update. + + + + Begin updating this archive. + + + + + + + + Commit current updates, updating this archive. + + + + ZipFile has been closed. + + + + Abort updating leaving the archive unchanged. + + + + + + + Set the file comment to be recorded when the current update is commited. + + The comment to record. + ZipFile has been closed. + + + + Add a new entry to the archive. + + The name of the file to add. + The compression method to use. + Ensure Unicode text is used for name and comment for this entry. + Argument supplied is null. + ZipFile has been closed. + Compression method is not supported. + + + + Add a new entry to the archive. + + The name of the file to add. + The compression method to use. + ZipFile has been closed. + The compression method is not supported. + + + + Add a file to the archive. + + The name of the file to add. + Argument supplied is null. + + + + Add a file to the archive. + + The name of the file to add. + The name to use for the on the Zip file created. + Argument supplied is null. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + The compression method to use. + + + + Add a file entry with data. + + The source of the data for this entry. + The name to give to the entry. + The compression method to use. + Ensure Unicode text is used for name and comments for this entry. + + + + Add a that contains no data. + + The entry to add. + This can be used to add directories, volume labels, or empty file entries. + + + + Add a directory entry to the archive. + + The directory to add. + + + + Delete an entry by name + + The filename to delete + True if the entry was found and deleted; false otherwise. + + + + Delete a from the archive. + + The entry to delete. + + + + Write an unsigned short in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Write an unsigned int in little endian byte order. + + + + + Write a long in little endian byte order. + + + + + Get a raw memory buffer. + + Returns a raw memory buffer. + + + + Get the size of the source descriptor for a . + + The update to get the size for. + The descriptor size, zero if there isnt one. + + + + Get an output stream for the specified + + The entry to get an output stream for. + The output stream obtained for the entry. + + + + Class used to sort updates. + + + + + Compares two objects and returns a value indicating whether one is + less than, equal to or greater than the other. + + First object to compare + Second object to compare. + Compare result. + + + + Represents a pending update to a Zip file. + + + + + Copy an existing entry. + + The existing entry to copy. + + + + Get the for this update. + + This is the source or original entry. + + + + Get the that will be written to the updated/new file. + + + + + Get the command for this update. + + + + + Get the filename if any for this update. Null if none exists. + + + + + Get/set the location of the size patch for this update. + + + + + Get /set the location of the crc patch for this update. + + + + + Get/set the size calculated by offset. + Specifically, the difference between this and next entry's starting offset. + + + + + Releases the unmanaged resources used by the this instance and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Read an unsigned short in little endian byte order. + + Returns the value read. + + The stream ends prematurely + + + + + Read a uint in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Search for and read the central directory of a zip file filling the entries array. + + + An i/o error occurs. + + + The central directory is malformed or cannot be found + + + + + Locate the data for a given entry. + + + The start offset of the data. + + + The stream ends prematurely + + + The local header signature is invalid, the entry and central header file name lengths are different + or the local and entry compression methods dont match + + + + + Represents a string from a which is stored as an array of bytes. + + + + + Initialise a with a string. + + The textual string form. + + + + Initialise a using a string in its binary 'raw' form. + + + + + + Get a value indicating the original source of data for this instance. + True if the source was a string; false if the source was binary data. + + + + + Get the length of the comment when represented as raw bytes. + + + + + Get the comment in its 'raw' form as plain bytes. + + + + + Reset the comment to its initial state. + + + + + Implicit conversion of comment to a string. + + The to convert to a string. + The textual equivalent for the input value. + + + + An enumerator for Zip entries + + + + + An is a stream that you can write uncompressed data + to and flush, but cannot read, seek or do anything else to. + + + + + Gets a value indicating whether the current stream supports reading. + + + + + Write any buffered data to underlying storage. + + + + + Gets a value indicating whether the current stream supports writing. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Get the length in bytes of the stream. + + + + + Gets or sets the position within the current stream. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + The sum of offset and count is larger than the buffer length. + Methods were called after the stream was closed. + The stream does not support reading. + buffer is null. + An I/O error occurs. + offset or count is negative. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type indicating the reference point used to obtain the new position. + + The new position within the current stream. + + An I/O error occurs. + The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + Methods were called after the stream was closed. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + An I/O error occurs. + Methods were called after the stream was closed. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + An I/O error occurs. + The stream does not support writing. + Methods were called after the stream was closed. + buffer is null. + The sum of offset and count is greater than the buffer length. + offset or count is negative. + + + + A is an + whose data is only a part or subsection of a file. + + + + + Initialise a new instance of the class. + + The containing the underlying stream to use for IO. + The start of the partial data. + The length of the partial data. + + + + Read a byte from this stream. + + Returns the byte read or -1 on end of stream. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + + The sum of offset and count is larger than the buffer length. + Methods were called after the stream was closed. + The stream does not support reading. + buffer is null. + An I/O error occurs. + offset or count is negative. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + An I/O error occurs. + The stream does not support writing. + Methods were called after the stream was closed. + buffer is null. + The sum of offset and count is greater than the buffer length. + offset or count is negative. + + + + When overridden in a derived class, sets the length of the current stream. + + The desired length of the current stream in bytes. + The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + An I/O error occurs. + Methods were called after the stream was closed. + + + + When overridden in a derived class, sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type indicating the reference point used to obtain the new position. + + The new position within the current stream. + + An I/O error occurs. + The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + Methods were called after the stream was closed. + + + + Clears all buffers for this stream and causes any buffered data to be written to the underlying device. + + An I/O error occurs. + + + + Gets or sets the position within the current stream. + + + The current position within the stream. + An I/O error occurs. + The stream does not support seeking. + Methods were called after the stream was closed. + + + + Gets the length in bytes of the stream. + + + A long value representing the length of the stream in bytes. + A class derived from Stream does not support seeking. + Methods were called after the stream was closed. + + + + Gets a value indicating whether the current stream supports writing. + + false + true if the stream supports writing; otherwise, false. + + + + Gets a value indicating whether the current stream supports seeking. + + true + true if the stream supports seeking; otherwise, false. + + + + Gets a value indicating whether the current stream supports reading. + + true. + true if the stream supports reading; otherwise, false. + + + + Gets a value that determines whether the current stream can time out. + + + A value that determines whether the current stream can time out. + + + + Provides a static way to obtain a source of data for an entry. + + + + + Get a source of data by creating a new stream. + + Returns a to use for compression input. + Ideally a new stream is created and opened to achieve this, to avoid locking problems. + + + + Represents a source of data that can dynamically provide + multiple data sources based on the parameters passed. + + + + + Get a data source. + + The to get a source for. + The name for data if known. + Returns a to use for compression input. + Ideally a new stream is created and opened to achieve this, to avoid locking problems. + + + + Default implementation of a for use with files stored on disk. + + + + + Initialise a new instnace of + + The name of the file to obtain data from. + + + + Get a providing data. + + Returns a provising data. + + + + Default implementation of for files stored on disk. + + + + + Get a providing data for an entry. + + The entry to provide data for. + The file name for data if known. + Returns a stream providing data; or null if not available + + + + Defines facilities for data storage when updating Zip Archives. + + + + + Get the to apply during updates. + + + + + Get an empty that can be used for temporary output. + + Returns a temporary output + + + + + Convert a temporary output stream to a final stream. + + The resulting final + + + + + Make a temporary copy of the original stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The current stream. + Returns a stream suitable for direct updating. + This may be the current stream passed. + + + + Dispose of this instance. + + + + + An abstract suitable for extension by inheritance. + + + + + Initializes a new instance of the class. + + The update mode. + + + + Gets a temporary output + + Returns the temporary output stream. + + + + + Converts the temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + + Make a temporary copy of a . + + The to make a copy of. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The to open for direct update. + Returns a stream suitable for direct updating. + + + + Disposes this instance. + + + + + Gets the update mode applicable. + + The update mode. + + + + An implementation suitable for hard disks. + + + + + Initializes a new instance of the class. + + The file. + The update mode. + + + + Initializes a new instance of the class. + + The file. + + + + Gets a temporary output for performing updates on. + + Returns the temporary output stream. + + + + Converts a temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + Make a temporary copy of a stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The current stream. + Returns a stream suitable for direct updating. + If the is not null this is used as is. + + + + Disposes this instance. + + + + + An implementation suitable for in memory streams. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The to use + This constructor is for testing as memory streams dont really require safe mode. + + + + Get the stream returned by if this was in fact called. + + + + + Gets the temporary output + + Returns the temporary output stream. + + + + Converts the temporary to its final form. + + Returns a that can be used to read + the final storage for the archive. + + + + Make a temporary copy of the original stream. + + The to copy. + Returns a temporary output that is a copy of the input. + + + + Return a stream suitable for performing direct updates on the original source. + + The original source stream + Returns a stream suitable for direct updating. + If the passed is not null this is used; + otherwise a new is returned. + + + + Disposes this instance. + + + + + Holds data pertinent to a data descriptor. + + + + + Get /set the compressed size of data. + + + + + Get / set the uncompressed size of data + + + + + Get /set the crc value. + + + + + This class assists with writing/reading from Zip files. + + + + + Initialise an instance of this class. + + The name of the file to open. + + + + Initialise a new instance of . + + The stream to use. + + + + Get / set a value indicating wether the the underlying stream is owned or not. + + If the stream is owned it is closed when this instance is closed. + + + + Close the stream. + + + The underlying stream is closed only if is true. + + + + + Locates a block with the desired . + + The signature to find. + Location, marking the end of block. + Minimum size of the block. + The maximum variable data. + Eeturns the offset of the first byte after the signature; -1 if not found + + + + Write Zip64 end of central directory records (File header and locator). + + The number of entries in the central directory. + The size of entries in the central directory. + The offset of the dentral directory. + + + + Write the required records to end the central directory. + + The number of entries in the directory. + The size of the entries in the directory. + The start of the central directory. + The archive comment. (This can be null). + + + + Read an unsigned short in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Read an int in little endian byte order. + + Returns the value read. + + An i/o error occurs. + + + The file ends prematurely + + + + + Read a long in little endian byte order. + + The value read. + + + + Write an unsigned short in little endian byte order. + + The value to write. + + + + Write a ushort in little endian byte order. + + The value to write. + + + + Write an int in little endian byte order. + + The value to write. + + + + Write a uint in little endian byte order. + + The value to write. + + + + Write a long in little endian byte order. + + The value to write. + + + + Write a ulong in little endian byte order. + + The value to write. + + + + Write a data descriptor. + + The entry to write a descriptor for. + Returns the number of descriptor bytes written. + + + + Read data descriptor at the end of compressed data. + + if set to true [zip64]. + The data to fill in. + Returns the number of bytes read in the descriptor. + + + + This is an InflaterInputStream that reads the files baseInputStream an zip archive + one after another. It has a special method to get the zip entry of + the next file. The zip entry contains information about the file name + size, compressed size, Crc, etc. + It includes support for Stored and Deflated entries. +
+
Author of the original java version : Jochen Hoenicke +
+ + This sample shows how to read a zip file + + using System; + using System.Text; + using System.IO; + + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + public static void Main(string[] args) + { + using ( ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) { + + ZipEntry theEntry; + const int size = 2048; + byte[] data = new byte[2048]; + + while ((theEntry = s.GetNextEntry()) != null) { + if ( entry.IsFile ) { + Console.Write("Show contents (y/n) ?"); + if (Console.ReadLine() == "y") { + while (true) { + size = s.Read(data, 0, data.Length); + if (size > 0) { + Console.Write(new ASCIIEncoding().GetString(data, 0, size)); + } else { + break; + } + } + } + } + } + } + } + } + + +
+ + + Delegate for reading bytes from a stream. + + + + + The current reader this instance. + + + + + Creates a new Zip input stream, for reading a zip archive. + + The underlying providing data. + + + + Creates a new Zip input stream, for reading a zip archive. + + The underlying providing data. + Size of the buffer. + + + + Optional password used for encryption when non-null + + A password for all encrypted entries in this + + + + Gets a value indicating if there is a current entry and it can be decompressed + + + The entry can only be decompressed if the library supports the zip features required to extract it. + See the ZipEntry Version property for more details. + + + + + Advances to the next entry in the archive + + + The next entry in the archive or null if there are no more entries. + + + If the previous entry is still open CloseEntry is called. + + + Input stream is closed + + + Password is not set, password is invalid, compression method is invalid, + version required to extract is not supported + + + + + Read data descriptor at the end of compressed data. + + + + + Complete cleanup as the final part of closing. + + True if the crc value should be tested + + + + Closes the current zip entry and moves to the next one. + + + The stream is closed + + + The Zip stream ends early + + + + + Returns 1 if there is an entry available + Otherwise returns 0. + + + + + Returns the current size that can be read from the current entry if available + + Thrown if the entry size is not known. + Thrown if no entry is currently available. + + + + Reads a byte from the current zip entry. + + + The byte or -1 if end of stream is reached. + + + + + Handle attempts to read by throwing an . + + The destination array to store data in. + The offset at which data read should be stored. + The maximum number of bytes to read. + Returns the number of bytes actually read. + + + + Handle attempts to read from this entry by throwing an exception + + + + + Perform the initial read on an entry which may include + reading encryption headers and setting up inflation. + + The destination to fill with data read. + The offset to start reading at. + The maximum number of bytes to read. + The actual number of bytes read. + + + + Read a block of bytes from the stream. + + The destination for the bytes. + The index to start storing data. + The number of bytes to attempt to read. + Returns the number of bytes read. + Zero bytes read means end of stream. + + + + Reads a block of bytes from the current zip entry. + + + The number of bytes read (this may be less than the length requested, even before the end of stream), or 0 on end of stream. + + + An i/o error occured. + + + The deflated stream is corrupted. + + + The stream is not open. + + + + + Closes the zip input stream + + + + + ZipNameTransform transforms names as per the Zip file naming convention. + + The use of absolute names is supported although its use is not valid + according to Zip naming conventions, and should not be used if maximum compatability is desired. + + + + Initialize a new instance of + + + + + Initialize a new instance of + + The string to trim from the front of paths if found. + + + + Static constructor. + + + + + Transform a windows directory name according to the Zip file naming conventions. + + The directory name to transform. + The transformed name. + + + + Transform a windows file name according to the Zip file naming conventions. + + The file name to transform. + The transformed name. + + + + Get/set the path prefix to be trimmed from paths if present. + + The prefix is trimmed before any conversion from + a windows path is done. + + + + Force a name to be valid by replacing invalid characters with a fixed value + + The name to force valid + The replacement character to use. + Returns a valid name + + + + Test a name to see if it is a valid name for a zip entry. + + The name to test. + If true checking is relaxed about windows file names and absolute paths. + Returns true if the name is a valid zip name; false otherwise. + Zip path names are actually in Unix format, and should only contain relative paths. + This means that any path stored should not contain a drive or + device letter, or a leading slash. All slashes should forward slashes '/'. + An empty name is valid for a file where the input comes from standard input. + A null name is not considered valid. + + + + + Test a name to see if it is a valid name for a zip entry. + + The name to test. + Returns true if the name is a valid zip name; false otherwise. + Zip path names are actually in unix format, + and should only contain relative paths if a path is present. + This means that the path stored should not contain a drive or + device letter, or a leading slash. All slashes should forward slashes '/'. + An empty name is valid where the input comes from standard input. + A null name is not considered valid. + + + + + This is a DeflaterOutputStream that writes the files into a zip + archive one after another. It has a special method to start a new + zip entry. The zip entries contains information about the file name + size, compressed size, CRC, etc. + + It includes support for Stored and Deflated entries. + This class is not thread safe. +
+
Author of the original java version : Jochen Hoenicke +
+ This sample shows how to create a zip file + + using System; + using System.IO; + + using ICSharpCode.SharpZipLib.Core; + using ICSharpCode.SharpZipLib.Zip; + + class MainClass + { + public static void Main(string[] args) + { + string[] filenames = Directory.GetFiles(args[0]); + byte[] buffer = new byte[4096]; + + using ( ZipOutputStream s = new ZipOutputStream(File.Create(args[1])) ) { + + s.SetLevel(9); // 0 - store only to 9 - means best compression + + foreach (string file in filenames) { + ZipEntry entry = new ZipEntry(file); + s.PutNextEntry(entry); + + using (FileStream fs = File.OpenRead(file)) { + StreamUtils.Copy(fs, s, buffer); + } + } + } + } + } + + +
+ + + Creates a new Zip output stream, writing a zip archive. + + + The output stream to which the archive contents are written. + + + + + Creates a new Zip output stream, writing a zip archive. + + The output stream to which the archive contents are written. + Size of the buffer to use. + + + + Gets a flag value of true if the central header has been added for this archive; false if it has not been added. + + No further entries can be added once this has been done. + + + + Set the zip file comment. + + + The comment text for the entire archive. + + + The converted comment is longer than 0xffff bytes. + + + + + Sets the compression level. The new level will be activated + immediately. + + The new compression level (1 to 9). + + Level specified is not supported. + + + + + + Get the current deflater compression level + + The current compression level + + + + Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + + Older archivers may not understand Zip64 extensions. + If backwards compatability is an issue be careful when adding entries to an archive. + Setting this property to off is workable but less desirable as in those circumstances adding a file + larger then 4GB will fail. + + + + Write an unsigned short in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Write an int in little endian byte order. + + + + + Starts a new Zip entry. It automatically closes the previous + entry if present. + All entry elements bar name are optional, but must be correct if present. + If the compression method is stored and the output is not patchable + the compression for that entry is automatically changed to deflate level 0 + + + the entry. + + + if entry passed is null. + + + if an I/O error occured. + + + if stream was finished + + + Too many entries in the Zip file
+ Entry name is too long
+ Finish has already been called
+
+
+ + + Closes the current entry, updating header and footer information as required + + + An I/O error occurs. + + + No entry is active. + + + + + Writes the given buffer to the current entry. + + The buffer containing data to write. + The offset of the first byte to write. + The number of bytes to write. + Archive size is invalid + No entry is active. + + + + Finishes the stream. This will write the central directory at the + end of the zip file and flush the stream. + + + This is automatically called when the stream is closed. + + + An I/O error occurs. + + + Comment exceeds the maximum length
+ Entry name exceeds the maximum length +
+
+ + + The entries for the archive. + + + + + Used to track the crc of data added to entries. + + + + + The current entry being added. + + + + + Used to track the size of data for an entry during writing. + + + + + Offset to be recorded for each entry in the central header. + + + + + Comment for the entire archive recorded in central header. + + + + + Flag indicating that header patching is required for the current entry. + + + + + Position to patch crc + + + + + Position to patch size. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Interface.json b/采集器3.5框架封装包2023-10-26/采集器依赖包/Interface.json new file mode 100644 index 0000000..5f910d5 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/Interface.json @@ -0,0 +1,163 @@ +[ + { + "Name": "获取单条队列任务", + "Type": 1, + "Url": "http://172.16.105.42:9296/api/noviewtask/GetTask?collectid={0}", + "ParametersName": [ "collectid" ] + }, + { + "Name": "获取队列任务数量", + "Type": 1, + "Url": "http://172.16.7.35:9296/api/noviewtask/GetTaskTotal", + "ParametersName": [ "collectid" ] + }, + { + "Name": "上传采集成果", + "Url": "http://172.16.7.35:9291/api/downplatform/report", + "ParametersName": [ + "data" + ] + }, + { + "Name": "上传患者基础数据", + "Url": "http://172.16.7.35:9283/api/basic/report", + "ParametersName": [] + }, + { + "Name": "上传采集器心跳数据", + "Url": "http://172.16.7.35:9111/inspection/collector/setCollectors", + "ParametersName": [ "collectors", "urlMap" ] + }, + { + "Name": "上传虚拟机心跳数据", + "Url": "http://172.16.7.35:9111/inspection/virtual/setVirtual", + "ParametersName": [ + "cpuUtilization", + "memoryAllowance", + "memoryTotal", + "uplinkRate", + "descendingRate", + "url", + "ip", + "disks" + ] + }, + { + "Name": "任务作废", + "Url": "http://172.16.7.35:9291/api/down/CancelTask", + "ParametersName": [ "taskid" ] + }, + { + "Name": "上传服务器日志", + "Url": "http://172.16.7.35:9106/file/afCollectTask/taskException", + "ParametersName": [ + "level", + "description", + "exceptionInfo", + "createTime", + "screenBase64", + "taskId", + "beginTime", + "endTime", + "takeUpTime" + ] + }, + { + "Name": "上报任务完成", + "Url": "http://172.16.7.35:9106/file/afCollectTask/taskUpdate", + "ParametersName": [ + "taskId", + "startTime", + "endTime", + "consumingTime" + ] + }, + { + "Name": "OCR识别", + "Url": "http://127.0.0.1:8090/filepath", + "ParametersName": [ + "path", + "type" + ] + }, + { + "Name": "日志记录", + "Url": "http://192.168.200.89:9106/file/afCollectTask/taskException", + "ParametersName": [ + "level", + "description", + "exceptionInfo", + "createTime", + "screenBase64", + "taskId" + ] + }, + { + "Name": "获取部署情况", + "ParametersName": [] + }, + { + "Name": "终端上报部署情况", + "ParametersName": [ "deployPackInfo" ] + }, + { + "Name": "新增&更新部署文件", + "ParametersName": [ "cType", "fName", "fContentB64" ] + }, + { + "Name": "删除部署文件", + "ParametersName": [ "cType", "fName" ] + }, + { + "Name": "请求部署", + "ParametersName": [ "cType", "iTerminal" ] + }, + { + "Name": "发起部署", + "ParametersName": [ "cType", "packB64" ] + }, + { + "Name": "启动采集器", + "Url": "", + "ParametersName": [ "iTerminal", "spyKey" ] + }, + { + "Name": "停止采集器", + "ParametersName": [ "iTerminal", "spyKey" ] + }, + { + "Name": "写入配置", + "ParametersName": [ "type", "tName", "name", "value" ] + }, + { + "Name": "获取采集器配置", + "ParametersName": [] + }, + { + "Name": "下发任务", + "ParametersName": [ "cType", "taskData" ] + }, + { + "Name": "终端报告空闲", + "ParametersName": [ "recentCollected" ] + }, + { + "Name": "采集器报告空闲", + "ParametersName": [] + }, + { + "Name": "任务失败", + "ParametersName": [] + }, + { + "Name": "答复终端号", + "ParametersName": [ "iTerminal" ] + }, + { + "Name": "上传任务失败作废的错误信息", + "Url": "http://172.16.7.35:9296/api/collector/uploadExceptionInfo", + "ParametersName": [ + "data" + ] + } +] \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList.xml new file mode 100644 index 0000000..92a4dc1 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-BlackList.xml @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-WhiteList.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-WhiteList.xml new file mode 100644 index 0000000..5b169ed --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/Managers/Pop_UpCloser/Pop_UpCloser-WhiteList.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + HwndWrapper[WinningInp.exe;; + 登录 + + + + + + HwndWrapper[WinningInp.exe;; + CIS住院医生站 【无纸化项目打印】 + + + + + + WindowsForms10.Window.8.app.0 + 病历调阅 + 病历列表 + 打印当前页 + + + + WindowsForms10.Window.8.app.0. + Print + Print + + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Microsoft.mshtml.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/Microsoft.mshtml.dll new file mode 100644 index 0000000..70f26dc Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/Microsoft.mshtml.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Newtonsoft.Json.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/Newtonsoft.Json.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/OriginOperations.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/OriginOperations.dll new file mode 100644 index 0000000..e15c861 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/OriginOperations.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/OriginOperations.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/OriginOperations.pdb new file mode 100644 index 0000000..57e3cef Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/OriginOperations.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.dll new file mode 100644 index 0000000..4a86d24 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.pdb new file mode 100644 index 0000000..29e07f2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.xml new file mode 100644 index 0000000..2b2e18f --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/RabbitMQ.Client.xml @@ -0,0 +1,6929 @@ + + + + RabbitMQ.Client + + + + + Represents a TCP-addressable AMQP peer: a host name and port number. + + + Some of the constructors take, as a convenience, a System.Uri + instance representing an AMQP server address. The use of Uri + here is not standardised - Uri is simply a convenient + container for internet-address-like components. In particular, + the Uri "Scheme" property is ignored: only the "Host" and + "Port" properties are extracted. + + + + + Default Amqp ssl port. + + + + + Indicates that the default port for the protocol should be used. + + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + Ssl option. + + + + Creates a new instance of the . + + Hostname. + Port number. If the port number is -1, the default port number will be used. + + + + Construct an AmqpTcpEndpoint with "localhost" as the hostname, and using the default port. + + + + + Creates a new instance of the with the given Uri and ssl options. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Creates a new instance of the with the given Uri. + + + Please see the class overview documentation for information about the Uri format in use. + + + + + Clones the endpoint. + + A copy with the same hostname, port, and TLS settings + + + + Clones the endpoint using the provided hostname. + + Hostname to use + A copy with the provided hostname and port/TLS settings of this endpoint + + + + Retrieve or set the hostname of this . + + + + Retrieve or set the port number of this + AmqpTcpEndpoint. A port number of -1 causes the default + port number. + + + + Retrieve IProtocol of this . + + + + + Used to force the address family of the endpoint + + + + + Retrieve the SSL options for this AmqpTcpEndpoint. If not set, null is returned. + + + + + Construct an instance from a protocol and an address in "hostname:port" format. + + + If the address string passed in contains ":", it is split + into a hostname and a port-number part. Otherwise, the + entire string is used as the hostname, and the port-number + is set to -1 (meaning the default number for the protocol + variant specified). + Hostnames provided as IPv6 must appear in square brackets ([]). + + + + + Splits the passed-in string on ",", and passes the substrings to . + + + Accepts a string of the form "hostname:port, + hostname:port, ...", where the ":port" pieces are + optional, and returns a corresponding array of s. + + + + + Compares this instance by value (protocol, hostname, port) against another instance. + + + + + Implementation of hash code depending on protocol, hostname and port, + to line up with the implementation of . + + + + + Returns a URI-like string of the form amqp-PROTOCOL://HOSTNAME:PORTNUMBER. + + + This method is intended mainly for debugging and logging use. + + + + + Structure holding an AMQP timestamp, a posix 64-bit time_t. + + + When converting between an AmqpTimestamp and a System.DateTime, + be aware of the effect of your local timezone. In particular, + different versions of the .NET framework assume different + defaults. + + + We have chosen a signed 64-bit time_t here, since the AMQP + specification through versions 0-9 is silent on whether + timestamps are signed or unsigned. + + + + + + Construct an . + + Unix time. + + + + Unix time. + + + + + Provides a debugger-friendly display. + + + + Represents a version of the AMQP specification. + + + Vendor-specific variants of particular official specification + versions exist: this class simply represents the AMQP + specification version, and does not try to represent + information about any custom variations involved. + + + AMQP version 0-8 peers sometimes advertise themselves as + version 8-0: for this reason, this class's constructor + special-cases 8-0, rewriting it at construction time to be 0-8 instead. + + + + + + Construct an from major and minor version numbers. + + + Converts major=8 and minor=0 into major=0 and minor=8. Please see the class comment. + + + + + The AMQP specification major version number. + + + + + The AMQP specification minor version number. + + + + + Implement value-equality comparison. + + + + + Implement hashing as for value-equality. + + + + + Format appropriately for display. + + + The specification currently uses "MAJOR-MINOR" as a display format. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + A pluggable authentication mechanism. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + Represents Basic.GetOk responses from the server. + + Basic.Get either returns an instance of this class, or null if a Basic.GetEmpty was received. + + + + + Sets the new instance's properties from the arguments passed in. + + Delivery tag for the message. + Redelivered flag for the message + The exchange this message was published to. + Routing key with which the message was published. + The number of messages pending on the queue, excluding the message being delivered. + The Basic-class content header properties for the message. + + + + + Retrieves the Basic-class content header properties for this message. + + + + + Retrieves the body of this message. + + + + + Retrieve the delivery tag for this message. See also . + + + + + Retrieve the exchange this message was published to. + + + + + Retrieve the number of messages pending on the queue, excluding the message being delivered. + + + Note that this figure is indicative, not reliable, and can + change arbitrarily as messages are added to the queue and removed by other clients. + + + + + Retrieve the redelivered flag for this message. + + + + + Retrieve the routing key with which this message was published. + + + + Wrapper for a byte[]. May appear as values read from + and written to AMQP field tables. + + + The sole reason for the existence of this class is to permit + encoding of byte[] as 'x' in AMQP field tables, an extension + to the specification that is part of the tentative JMS mapping + implemented by QPid. + + + Instances of this object may be found as values held in + IDictionary instances returned from + RabbitMQ.Client.Impl.WireFormatting.ReadTable, e.g. as part of + IBasicProperties.Headers tables. Likewise, instances may be + set as values in an IDictionary table to be encoded by + RabbitMQ.Client.Impl.WireFormatting.WriteTable. + + + When an instance of this class is encoded/decoded, the type + tag 'x' is used in the on-the-wire representation. The AMQP + standard type tag 'S' is decoded to a raw byte[], and a raw + byte[] is encoded as 'S'. Instances of System.String are + converted to a UTF-8 binary representation, and then encoded + using tag 'S'. In order to force the use of tag 'x', instances + of this class must be used. + + + + + + Creates a new instance of the with null for its Bytes property. + + + + + Creates a new instance of the . + + The wrapped byte array, as decoded or as to be encoded. + + + + The wrapped byte array, as decoded or as to be encoded. + + + + Main entry point to the RabbitMQ .NET AMQP client + API. Constructs instances. + + + A simple example of connecting to a broker: + + + ConnectionFactory factory = new ConnectionFactory(); + // + // The next six lines are optional: + factory.UserName = ConnectionFactory.DefaultUser; + factory.Password = ConnectionFactory.DefaultPass; + factory.VirtualHost = ConnectionFactory.DefaultVHost; + factory.HostName = hostName; + factory.Port = AmqpTcpEndpoint.UseDefaultPort; + // + IConnection conn = factory.CreateConnection(); + // + IModel ch = conn.CreateModel(); + // + // ... use ch's IModel methods ... + // + ch.Close(Constants.ReplySuccess, "Closing the channel"); + conn.Close(Constants.ReplySuccess, "Closing the connection"); + + + The same example, written more compactly with AMQP URIs: + + + ConnectionFactory factory = new ConnectionFactory(); + factory.SetUri("amqp://localhost"); + IConnection conn = factory.CreateConnection(); + ... + + + Please see also the API overview and tutorial in the User Guide. + + + Note that the Uri property takes a string representation of an + AMQP URI. Omitted URI parts will take default values. The + host part of the URI cannot be omitted and URIs of the form + "amqp://foo/" (note the trailling slash) also represent the + default virtual host. The latter issue means that virtual + hosts with an empty name are not addressable. + + + + Default value for the desired maximum channel number, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for connection attempt timeout, in milliseconds. + + + + + Default value for the desired maximum frame size, with zero meaning unlimited (value: 0). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default value for desired heartbeat interval, in seconds, with zero meaning none (value: 60). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default password (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default user name (value: "guest"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + Default virtual host (value: "/"). + + PLEASE KEEP THIS MATCHING THE DOC ABOVE. + + + + The default AMQP URI SSL protocols. + + + + + The AMQP URI SSL protocols. + + + + + Default SASL auth mechanisms to use. + + + + + SASL auth mechanisms to use. + + + + + Set to false to disable automatic connection recovery. + Defaults to true. + + + + + Set to true will enable a asynchronous consumer dispatcher which is compatible with . + Defaults to false. + + + + The host to connect to. + + + + Amount of time client will wait for before re-trying to recover connection. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + Factory function for creating the + used to generate a list of endpoints for the ConnectionFactory + to try in order. + The default value creates an instance of the + using the list of endpoints passed in. The DefaultEndpointResolver shuffles the + provided list each time it is requested. + + + + + The port to connect on. + indicates the default for the protocol should be used. + + + + + Protocol used, only AMQP 0-9-1 is supported in modern versions. + + + + + Timeout setting for connection attempts (in milliseconds). + + + + + Timeout setting for socket read operations (in milliseconds). + + + + + Timeout setting for socket write operations (in milliseconds). + + + + + Ssl options setting. + + + + + Set to false to make automatic connection recovery not recover topology (exchanges, queues, bindings, etc). + Defaults to true. + + + + + Task scheduler connections created by this factory will use when + dispatching consumer operations, such as message deliveries. + + + + + Construct a fresh instance, with all fields set to their respective defaults. + + + + + Connection endpoint. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat timeout to use when negotiating with the server (in seconds). + + + + + When set to true, background thread will be used for the I/O loop. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + The uri to use for the connection. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + When the configured hostname was not reachable. + + + + + Create a connection to one of the endpoints provided by the IEndpointResolver + returned by the EndpointResolverFactory. By default the configured + hostname and port are used. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + When the configured hostname was not reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each hostname is tried in a random order until a successful connection is + found or the list is exhausted using the DefaultEndpointResolver. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of hostnames using the configured port. + By default each endpoint is tried in a random order until a successful connection is + found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of hostnames to use for the initial + connection and recovery. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using a list of endpoints. By default each endpoint will be tried + in a random order until a successful connection is found or the list is exhausted. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Create a connection using an IEndpointResolver. + + + The endpointResolver that returns the endpoints to use for the connection attempt. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + Open connection + + When no hostname was reachable. + + + + + Unescape a string, protecting '+'. + + + + + Set custom socket options by providing a SocketFactory. + + + + + Creates a new instance of the . + + Specifies the addressing scheme. + New instance of a . + + + + Useful default/base implementation of . + Subclass and override in application code. + + + Note that the "Handle*" methods run in the connection's thread! + Consider using , which exposes + events that can be subscribed to consumer messages. + + + + + Creates a new instance of an . + + + + + Constructor which sets the Model property to the given value. + + Common AMQP model. + + + + Retrieve the consumer tag this consumer is registered as; to be used when discussing this consumer + with the server, for instance with . + + + + + Returns true while the consumer is registered and expecting deliveries from the broker. + + + + + If our shuts down, this property will contain a description of the reason for the + shutdown. Otherwise it will contain null. See . + + + + + Signalled when the consumer gets cancelled. + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + + Default implementation - overridable in subclasses. + + This default implementation simply sets the + property to false, and takes no further action. + + + + + Convenience class providing compile-time names for standard exchange types. + + + Use the static members of this class as values for the + "exchangeType" arguments for IModel methods such as + ExchangeDeclare. The broker may be extended with additional + exchange types that do not appear in this class. + + + + + Exchange type used for AMQP direct exchanges. + + + + + Exchange type used for AMQP fanout exchanges. + + + + + Exchange type used for AMQP headers exchanges. + + + + + Exchange type used for AMQP topic exchanges. + + + + + Retrieve a collection containing all standard exchange types. + + + + + Handle one round of challenge-response. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Convenience class providing compile-time names for standard headers. + + + Use the static members of this class as headers for the + arguments for Queue and Exchange declaration or Consumer creation. + The broker may be extended with additional + headers that do not appear in this class. + + + + + x-max-priority header + + + + + x-max-length header + + + + + x-max-length-bytes header + + + + + x-dead-letter-exchange header + + + + + x-dead-letter-routing-key header + + + + + x-message-ttl header + + + + + x-expires header + + + + + alternate-exchange header + + + + + x-priority header + + + + + x-queue-mode header. + Available modes: "default" and "lazy" + + + + + x-queue-type header. + Available types: "quorum" and "classic"(default) + + + + + x-quorum-initial-group-size header. + Use to control the number of quorum queue members + + + + + x-single-active-consumer header. + Available modes: true and false(default). + Allows to have only one consumer at a time consuming from a queue + and to fail over to another registered consumer in case the active one is cancelled or dies + + + + + x-overflow header. + Available strategies: "reject-publish" and "drop-head"(default). + Allows to configure strategy when or hits limits + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Consumer interface. Used to + receive messages from a queue by subscription. + + + See IModel.BasicConsume, IModel.BasicCancel. + + + Note that the "Handle*" methods run in the connection's + thread! Consider using QueueingBasicConsumer, which uses a + SharedQueue instance to safely pass received messages across + to user threads. + + + + + + Retrieve the this consumer is associated with, + for use in acknowledging received messages, for instance. + + + + + Signalled when the consumer gets cancelled. + + + + + Called when the consumer is cancelled for reasons other than by a basicCancel: + e.g. the queue has been deleted (either by this channel or by any other channel). + See for notification of consumer cancellation due to basicCancel + + Consumer tag this consumer is registered. + + + + Called upon successful deregistration of the consumer from the broker. + + Consumer tag this consumer is registered. + + + + Called upon successful registration of the consumer with the broker. + + Consumer tag this consumer is registered. + + + + Called each time a message arrives for this consumer. + + + Does nothing with the passed in information. + Note that in particular, some delivered messages may require acknowledgement via . + The implementation of this method in this class does NOT acknowledge such messages. + + + + + Called when the model shuts down. + + Common AMQP model. + Information about the reason why a particular model, session, or connection was destroyed. + + + Common AMQP Basic content-class headers interface, + spanning the union of the functionality offered by versions + 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use . + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a + fresh instance are clear by default. + + + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + + Main interface to an AMQP connection. + + + + Instances of are used to create fresh + sessions/channels. The class is used to + construct instances. + Please see the documentation for ConnectionFactory for an example of usage. + Alternatively, an API tutorial can be found in the User Guide. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when + appropriate. + + + + + + If true, will close the whole connection as soon as there are no channels open on it; + if false, manual connection closure will be required. + + + DON'T set AutoClose to true before opening the first + channel, because the connection will be immediately closed if you do! + + + + + The maximum channel number this connection supports (0 if unlimited). + Usable channel numbers range from 1 to this number, inclusive. + + + + + A copy of the client properties that has been sent to the server. + + + + + Returns null if the connection is still in a state + where it can be used, or the cause of its closure otherwise. + + + + Applications should use the ConnectionShutdown event to + avoid race conditions. The scenario to avoid is checking + , seeing it is null (meaning the + was available for use at the time of the check), and + interpreting this mistakenly as a guarantee that the + will remain usable for a time. Instead, the + operation of interest should simply be attempted: if the + is not in a usable state, an exception will be + thrown (most likely , but may + vary depending on the particular operation being attempted). + + + + + + Retrieve the endpoint this connection is connected to. + + + + + The maximum frame size this connection supports (0 if unlimited). + + + + + The current heartbeat setting for this connection (0 for disabled), in seconds. + + + + + Returns true if the connection is still in a state where it can be used. + Identical to checking if equal null. + + + + + Returns the known hosts that came back from the + broker in the connection.open-ok method at connection + startup time. Null until the connection is completely open and ready for use. + + + + + The this connection is using to communicate with its peer. + + + + + A dictionary of the server properties sent by the server while establishing the connection. + This typically includes the product name and version of the server. + + + + + Returns the list of objects that contain information + about any errors reported while closing the connection in the order they appeared + + + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + Signalled when an exception occurs in a callback invoked by the connection. + + + This event is signalled when a ConnectionShutdown handler + throws an exception. If, in future, more events appear on + , then this event will be signalled whenever one + of those event handlers throws an exception, as well. + + + + + Raised when the connection is destroyed. + + + If the connection is already destroyed at the time an + event handler is added to this event, the event handler + will be fired immediately. + + + + + Abort this connection and all its channels. + + + Note that all active channels, sessions, and models will be closed if this method is called. + In comparison to normal method, will not throw + during closing connection. + This method waits infinitely for the in-progress close operation to complete. + + + + + Abort this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification) + + + A message indicating the reason for closing the connection + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + This method, behaves in a similar way as method with the + only difference that it explictly specifies a timeout given + for all the in-progress close operations to complete. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Abort this connection and all its channels and wait with a + timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Close this connection and all its channels. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete. This method will not return to the caller + until the shutdown is complete. If the connection is already closed + (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + + + + + Close this connection and all its channels. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP specification). + + + A message indicating the reason for closing the connection. + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + Note that all active channels, sessions, and models will be + closed if this method is called. It will wait for the in-progress + close operation to complete with a timeout. If the connection is + already closed (or closing), then this method will do nothing. + It can also throw when socket was closed unexpectedly. + If timeout is reached and the close operations haven't finished, then socket is forced to close. + + The timeout value is in milliseconds. + To wait infinitely for the close operations to complete use . + + + + + + Close this connection and all its channels + and wait with a timeout for all the in-progress close operations to complete. + + + The method behaves in the same way as , with the only + difference that the connection is closed with the given connection close code and message. + + The close code (See under "Reply Codes" in the AMQP 0-9-1 specification). + + + A message indicating the reason for closing the connection. + + + Operation timeout in milliseconds. + + + + + + Create and return a fresh channel, session, and model. + + + + + Handle incoming Connection.Blocked methods. + + + + + Handle incoming Connection.Unblocked methods. + + + + + Dictionary of client properties to be sent to the server. + + + + + Password to use when authenticating to the server. + + + + + Maximum channel number to ask for. + + + + + Frame-max parameter to ask for (in bytes). + + + + + Heartbeat setting to request (in seconds). + + + + + When set to true, background threads will be used for I/O and heartbeats. + + + + + Username to use when authenticating to the server. + + + + + Virtual host to access during this connection. + + + + + Sets or gets the AMQP Uri to be used for connections. + + + + + Given a list of mechanism names supported by the server, select a preferred mechanism, + or null if we have none in common. + + + + + Create a connection to the specified endpoint. + + + + + Create a connection to the specified endpoint. + + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + + + + Connects to the first reachable hostname from the list. + + List of host names to use + + Application-specific connection name, will be displayed in the management UI + if RabbitMQ server supports it. This value doesn't have to be unique and cannot + be used as a connection identifier, e.g. in HTTP API requests. + This value is supposed to be human-readable. + + + + + + Create a connection using a list of endpoints. + The selection behaviour can be overriden by configuring the EndpointResolverFactory. + + + List of endpoints to use for the initial + connection and recovery. + + Open connection + + When no hostname was reachable. + + + + + Advanced option. + + What task scheduler should consumer dispatcher use. + + + + + Amount of time protocol handshake operations are allowed to take before + timing out. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + + A decoded AMQP content header frame. + + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Return all AmqpTcpEndpoints in the order they should be tried. + + + + + A decoded AMQP method frame. + + + + AMQP methods can be RPC requests, RPC responses, exceptions + (ChannelClose, ConnectionClose), or one-way asynchronous + messages. Currently this information is not recorded in their + type or interface: it is implicit in the way the method is + used, and the way it is defined in the AMQP specification. A + future revision of the RabbitMQ .NET client library may extend + the IMethod interface to represent this information + explicitly. + + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + + Common AMQP model, spanning the union of the + functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + Extends the interface, so that the "using" + statement can be used to scope the lifetime of a channel when appropriate. + + + + + Channel number, unique per connections. + + + + + Returns null if the session is still in a state where it can be used, + or the cause of its closure otherwise. + + + + Signalled when an unexpected message is delivered + + Under certain circumstances it is possible for a channel to receive a + message delivery which does not match any consumer which is currently + set up via basicConsume(). This will occur after the following sequence + of events: + + ctag = basicConsume(queue, consumer); // i.e. with explicit acks + // some deliveries take place but are not acked + basicCancel(ctag); + basicRecover(false); + + Since requeue is specified to be false in the basicRecover, the spec + states that the message must be redelivered to "the original recipient" + - i.e. the same channel / consumer-tag. But the consumer is no longer + active. + + In these circumstances, you can register a default consumer to handle + such deliveries. If no default consumer is registered an + InvalidOperationException will be thrown when such a delivery arrives. + + Most people will not need to use this. + + + + Returns true if the model is no longer in a state where it can be used. + + + + + Returns true if the model is still in a state where it can be used. + Identical to checking if equals null. + + + + When in confirm mode, return the sequence number of the next message to be published. + + + + + Signalled when a Basic.Ack command arrives from the broker. + + + + + Signalled when a Basic.Nack command arrives from the broker. + + + + + All messages received before this fires that haven't been ack'ed will be redelivered. + All messages received afterwards won't be. + + + Handlers for this event are invoked by the connection thread. + It is sometimes useful to allow that thread to know that a recover-ok + has been received, rather than the thread that invoked . + + + + + Signalled when a Basic.Return command arrives from the broker. + + + + + Signalled when an exception occurs in a callback invoked by the model. + + Examples of cases where this event will be signalled + include exceptions thrown in methods, or + exceptions thrown in delegates etc. + + + + + Notifies the destruction of the model. + + + If the model is already destroyed at the time an event + handler is added to this event, the event handler will be fired immediately. + + + + + Abort this session. + + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + In comparison to normal method, will not throw + or or any other during closing model. + + + + + Abort this session. + + + The method behaves in the same way as , with the only + difference that the model is closed with the given model close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Acknowledge one or more delivered message(s). + + + + + Delete a Basic content-class consumer. + + + + Start a Basic content-class consumer. + + + + Retrieve an individual message, if + one is available; returns null if the server answers that + no messages are currently available. See also . + + + + Reject one or more delivered message(s). + + + + Publishes a message. + + + + Routing key must be shorter than 255 bytes. + + + + + + Configures QoS parameters of the Basic content-class. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + + Indicates that a consumer has recovered. + Deprecated. Should not be used. + + + + Reject a delivered message. + + + Close this session. + + If the session is already closed (or closing), then this + method does nothing but wait for the in-progress close + operation to complete. This method will not return to the + caller until the shutdown is complete. + + + + Close this session. + + The method behaves in the same way as Close(), with the only + difference that the model is closed with the given model + close code and message. + + The close code (See under "Reply Codes" in the AMQP specification) + + + A message indicating the reason for closing the model + + + + + + Enable publisher acknowledgements. + + + + + Creates a BasicPublishBatch instance + + + + + Construct a completely empty content header for use with the Basic content class. + + + + + Bind an exchange to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Like ExchangeBind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + Declare an exchange. + + The exchange is declared non-passive and non-internal. + The "nowait" option is not exercised. + + + + + Same as ExchangeDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + + Do a passive exchange declaration. + + + This method performs a "passive declare" on an exchange, + which verifies whether . + It will do nothing if the exchange already exists and result + in a channel-level protocol exception (channel closure) if not. + + + + + Delete an exchange. + + + + + Like ExchangeDelete but sets nowait to true. + + + + + Unbind an exchange from an exchange. + + + Routing key must be shorter than 255 bytes. + + + + + Like ExchangeUnbind but sets nowait to true. + + + + Routing key must be shorter than 255 bytes. + + + + + + Bind a queue to an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + Same as QueueBind but sets nowait parameter to true. + + + Routing key must be shorter than 255 bytes. + + + + + Declare a queue. + + + + Same as QueueDeclare but sets nowait to true and returns void (as there + will be no response from the server). + + + + Declare a queue passively. + + The queue is declared passive, non-durable, + non-exclusive, and non-autodelete, with no arguments. + The queue is declared passively; i.e. only check if it exists. + + + + + Returns the number of messages in a queue ready to be delivered + to consumers. This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Returns the number of consumers on a queue. + This method assumes the queue exists. If it doesn't, + an exception will be closed with an exception. + + The name of the queue + + + + Delete a queue. + + + Returns the number of messages purged during queue deletion. + uint.MaxValue. + + + + + Same as QueueDelete but sets nowait parameter to true + and returns void (as there will be no response from the server) + + + + + Purge a queue of messages. + + + Returns the number of messages purged. + + + + + Unbind a queue from an exchange. + + + + Routing key must be shorter than 255 bytes. + + + + + + Commit this session's active TX transaction. + + + + + Roll back this session's active TX transaction. + + + + + Enable TX mode for this session. + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + True if no nacks were received within the timeout, otherwise false. + How long to wait (at most) before returning + whether or not any nacks were returned. + + True if the method returned because + the timeout elapsed, not because all messages were ack'd or at least one nack'd. + + + Waits until all messages published since the last call have + been either ack'd or nack'd by the broker. Returns whether + all the messages were ack'd (and none were nack'd). Note, + throws an exception when called on a non-Confirm channel. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received, throws an + OperationInterrupedException exception immediately. + + + + + Wait until all published messages have been confirmed. + + + Waits until all messages published since the last call have + been ack'd by the broker. If a nack is received or the timeout + elapses, throws an OperationInterrupedException exception immediately. + + + + + Amount of time protocol operations (e.g. queue.declare) are allowed to take before + timing out. + + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + Start a Basic content-class consumer. + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false and immediate=false. + + + + + (Extension method) Convenience overload of BasicPublish. + + + The publication occurs with mandatory=false + + + + + (Spec method) Convenience overload of BasicPublish. + + + + + (Spec method) Declare a queue. + + + + + (Extension method) Bind an exchange to an exchange. + + + + + (Extension method) Like exchange bind but sets nowait to true. + + + + + (Spec method) Declare an exchange. + + + + + (Extension method) Like ExchangeDeclare but sets nowait to true. + + + + + (Spec method) Unbinds an exchange. + + + + + (Spec method) Deletes an exchange. + + + + + (Extension method) Like ExchangeDelete but sets nowait to true. + + + + + (Spec method) Binds a queue. + + + + + (Spec method) Deletes a queue. + + + + + (Extension method) Like QueueDelete but sets nowait to true. + + + + + (Spec method) Unbinds a queue. + + + + + Object describing various overarching parameters + associated with a particular AMQP protocol variant. + + + + + Retrieve the protocol's API name, used for printing, + configuration properties, IDE integration, Protocols.cs etc. + + + + + Retrieve the protocol's default TCP port. + + + + + Retrieve the protocol's major version number. + + + + + Retrieve the protocol's minor version number. + + + + + Retrieve the protocol's revision (if specified). + + + + + Construct a connection from a given set of parameters, + a frame handler, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, and automatic recovery settings. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and no automatic recovery. + The "insist" parameter is passed on to the AMQP connection.open method. + + + + + Construct a connection from a given set of parameters, + a frame handler, a client-provided name, and automatic recovery settings. + + + + + Construct a protocol model atop a given session. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + This interface is provided to make creation of test doubles + for easier. + + + + + + A marker interface for entities that are recoverable (currently connection or channel). + + + + + Common AMQP Stream content-class headers interface, + spanning the union of the functionality offered by versions 0-8, 0-8qpid, 0-9 and 0-9-1 of AMQP. + + + + The specification code generator provides + protocol-version-specific implementations of this interface. To + obtain an implementation of this interface in a + protocol-version-neutral way, use IModel.CreateStreamProperties(). + + + Each property is readable, writable and clearable: a cleared + property will not be transmitted over the wire. Properties on a fresh instance are clear by default. + + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Message header field table. + + + + + Message priority, 0 to 9. + + + + + Message timestamp. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Wrapper interface for standard TCP-client. Provides socket for socket frame handler class. + + Contains all methods that are currenty in use in rabbitmq client. + + + + Common interface for network (TCP/IP) connection classes. + + + + + Local port. + + + + + Remote port. + + + + + The name of the authentication mechanism, as negotiated on the wire. + + + + + Return a new authentication mechanism implementation. + + + + + Provides access to the supported implementations. + + + + + Protocol version 0-9-1 as modified by Pivotal. + + + + + Retrieve the current default protocol variant (currently AMQP_0_9_1). + + + + + Container for an exchange name, exchange type and + routing key, usable as the target address of a message to be published. + + + + The syntax used for the external representation of instances + of this class is compatible with QPid's "Reply-To" field + pseudo-URI format. The pseudo-URI format is + (exchange-type)://(exchange-name)/(routing-key), where + exchange-type is one of the permitted exchange type names (see + class ExchangeType), exchange-name must be present but may be + empty, and routing-key must be present but may be empty. + + + The syntax is as it is solely for compatibility with QPid's + existing usage of the ReplyTo field; the AMQP specifications + 0-8 and 0-9 do not define the format of the field, and do not + define any format for the triple (exchange name, exchange + type, routing key) that could be used instead. + + + + + + Regular expression used to extract the exchange-type, + exchange-name and routing-key from a string. + + + + + Creates a new instance of the . + + Exchange type. + Exchange name. + Routing key. + + + + Retrieve the exchange name. + + + + + Retrieve the exchange type string. + + + + + Retrieve the routing key. + + + + + Parse a out of the given string, + using the regex. + + + + + Reconstruct the "uri" from its constituents. + + + + + Represents Queue info. + + + + + Creates a new instance of the . + + Queue name. + Message count. + Consumer count. + + + + Consumer count. + + + + + Message count. + + + + + Queue name. + + + + + A implementation that + uses a to buffer incoming deliveries. + + + + Received messages are placed in the SharedQueue as instances + of . + + + Note that messages taken from the SharedQueue may need + acknowledging with . + + + When the consumer is closed, through BasicCancel or through + the shutdown of the underlying or , + the method is called, which causes any + Enqueue() operations, and Dequeue() operations when the queue + is empty, to throw EndOfStreamException (see the comment for ). + + + The following is a simple example of the usage of this class: + + + IModel channel = ...; + QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel); + channel.BasicConsume(queueName, null, consumer); + + // At this point, messages will be being asynchronously delivered, + // and will be queueing up in consumer.Queue. + + while (true) { + try { + BasicDeliverEventArgs e = (BasicDeliverEventArgs) consumer.Queue.Dequeue(); + // ... handle the delivery ... + channel.BasicAck(e.DeliveryTag, false); + } catch (EndOfStreamException ex) { + // The consumer was cancelled, the model closed, or the + // connection went away. + break; + } + } + + + + + + Creates a fresh , + initialising the property to null + and the property to a fresh . + + + + + Creates a fresh , with + set to the argument, and set to a fresh . + + + + + Creates a fresh , + initialising the + and properties to the given values. + + + + + Retrieves the that messages arrive on. + + + + + Overrides 's implementation, + building a instance and placing it in the Queue. + + + + + Overrides 's OnCancel implementation, + extending it to call the Close() method of the . + + + + + Information about the reason why a particular model, session, or connection was destroyed. + + + The and properties should be used to determine the originator of the shutdown event. + + + + + Construct a with the given parameters and + 0 for and . + + + + + Construct a with the given parameters. + + + + + Object causing the shutdown, or null if none. + + + + + AMQP content-class ID, or 0 if none. + + + + + Returns the source of the shutdown event: either the application, the library, or the remote peer. + + + + + AMQP method ID within a content-class, or 0 if none. + + + + + One of the standardised AMQP reason codes. See RabbitMQ.Client.Framing.*.Constants. + + + + + Informative human-readable reason text. + + + + + Override ToString to be useful for debugging. + + + + + Describes the source of a shutdown event. + + + + + The shutdown event originated from the application using the RabbitMQ .NET client library. + + + + + The shutdown event originated from the RabbitMQ .NET client library itself. + + + Shutdowns with this ShutdownInitiator code may appear if, + for example, an internal error is detected by the client, + or if the server sends a syntactically invalid + frame. Another potential use is on IConnection AutoClose. + + + + + The shutdown event originated from the remote AMQP peer. + + + A valid received connection.close or channel.close event + will manifest as a shutdown with this ShutdownInitiator. + + + + + Single entry object in the shutdown report that encapsulates description + of the error which occured during shutdown. + + + + + Description provided in the error. + + + + + object that occured during shutdown, or null if unspecified. + + + + + Represents an which does the actual heavy lifting to set up an SSL connection, + using the config options in an to make things cleaner. + + + + + Upgrade a Tcp stream to an Ssl stream using the SSL options provided. + + + + + Represents a configurable SSL option, used in setting up an SSL connection. + + + + + Constructs an SslOption specifying both the server cannonical name and the client's certificate path. + + + + + Constructs an with no parameters set. + + + + + Retrieve or set the set of ssl policy errors that are deemed acceptable. + + + + + Retrieve or set the path to client certificate. + + + + + Retrieve or set the path to client certificate. + + + + + An optional client specified SSL certificate selection callback. If this is not specified, + the first valid certificate found will be used. + + + + + An optional client specified SSL certificate validation callback. If this is not specified, + the default callback will be used in conjunction with the property to + determine if the remote server certificate is valid. + + + + + Retrieve or set the X509CertificateCollection containing the client certificate. + If no collection is set, the client will attempt to load one from the specified . + + + + + Flag specifying if Ssl should indeed be used. + + + + + Retrieve or set server's Canonical Name. + This MUST match the CN on the Certificate else the SSL connection will fail. + + + + + Retrieve or set the Ssl protocol version. + + + + + Framework for constructing various types of AMQP. Basic-class application messages. + + + + + By default, new instances of BasicMessageBuilder and its subclasses will have this much initial buffer space. + + + + + Construct an instance ready for writing. + + + The is used for the initial accumulator buffer size. + + + + + Construct an instance ready for writing. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's writing to BodyStream. + + + If no instance exists, one is created, + pointing at the beginning of the accumulator. If one + already exists, the existing instance is returned. The + instance is not reset. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Framework for analyzing various types of AMQP Basic-class application messages. + + + + + Construct an instance ready for reading. + + + + + Retrieve the associated with this instance. + + + + + Retrieve this instance's NetworkBinaryReader reading from . + + + If no NetworkBinaryReader instance exists, one is created, + pointing at the beginning of the body. If one already + exists, the existing instance is returned. The instance is + not reset. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + MIME type associated with QPid BytesMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Interface for constructing messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Write a section of a byte array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Write a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "BytesMessage" wire encoding. + + + + + Reads a given number ("count") of bytes from the message body, + placing them into "target", starting at "offset". + + + + + Reads a from the message body. + + + + + Reads a given number of bytes from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Interface for constructing messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Analyzes messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + Parses the message body into an instance. + + + + + Interface for constructing application messages. + + + Subinterfaces provide specialized data-writing methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the being used to construct the message body. + + + + + Retrieves the dictionary that will be used to construct the message header table. + It is of type . + + + + + Finish and retrieve the content body for transmission. + + + + + Finish and retrieve the content header for transmission. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Write a single byte into the message body, without encoding or interpretation. + + + + + Write a byte array into the message body, without encoding or interpretation. + + + + + Write a section of a byte array into the message body, without encoding or interpretation. + + + + + Interface for analyzing application messages. + + + Subinterfaces provide specialized data-reading methods. This + base interface deals with the lowest common denominator: + bytes, with no special encodings for higher-level objects. + + + + + Retrieve the message body, as a byte array. + + + + + Retrieve the being used to read from the message body. + + + + + Retrieves the content header properties of the message being read. Is of type . + + + + + Read a single byte from the body stream, without encoding or interpretation. + Returns -1 for end-of-stream. + + + + + Read bytes from the body stream into a section of + an existing byte array, without encoding or + interpretation. Returns the number of bytes read from the + body and written into the target array, which may be less + than the number requested if the end-of-stream is reached. + + + + + Interface for constructing messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Retrieves the dictionary that will be written into the body of the message. + + + + + Finish and retrieve the content body for transmission. + + + Calling this message clears Body to null. Subsequent calls will fault. + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "MapMessage" wire encoding. + + + + + MIME type associated with QPid MapMessages. + + + + + Construct an instance for reading. See . + + + + + Parses the message body into an instance. + + . + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "MapMessage" wire encoding. + + + + + + Utility class for extracting typed values from strings. + + + + + Creates the protocol violation exception. + + Type of the target. + The source. + Instance of the . + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of an . + + + + + + Attempt to parse a string representation of a . + + + + + + Attempt to parse a string representation of a . + + + + + + Constructs AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for writing. See . + + + + + Construct an instance for writing. See . + + + + + Returns the default MIME content type for messages this instance constructs, + or null if none is available or relevant. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a section of a byte array into the message body being assembled. + + + + + Writes a array into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + + + Writes a value into the message body being assembled. + + + + + Writes an value into the message body being assembled. + + + The only permitted types are bool, int, short, byte, char, + long, float, double, byte[] and string. + + + + + Writes objects using WriteObject(), one after the other. No length indicator is written. + See also . + + + + + Writes a value into the message body being assembled. + + + + + Writes a string value into the message body being assembled. + + + + + Analyzes AMQP Basic-class messages binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + MIME type associated with QPid StreamMessages. + + + + + Construct an instance for reading. See . + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a array from the message body. + The body contains information about the size of the array to read. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads a from the message body. + + + + + Reads an from the message body. + + + + + Reads array from the message body until the end-of-stream is reached. + + + + + Reads a from the message body. + + + + + Reads a from the message body. + + + + + Tags used in parsing and generating StreamWireFormatting message bodies. + + + + + Internal support class for use in reading and + writing information binary-compatible with QPid's "StreamMessage" wire encoding. + + + + + + + + + + + + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + Contains all the information about a message acknowledged + from an AMQP broker within the Basic content-class. + + + The sequence number of the acknowledged message, or + the closed upper bound of acknowledged messages if multiple + is true. + + + Whether this acknoledgement applies to one message + or multiple messages. + + + Contains all the information about a message delivered + from an AMQP broker within the Basic content-class. + + + Default constructor. + + + Constructor that fills the event's properties from + its arguments. + + + The content header of the message. + + + The message body. + + + The consumer tag of the consumer that the message + was delivered to. + + + The delivery tag for this delivery. See + IModel.BasicAck. + + + The exchange the message was originally published + to. + + + The AMQP "redelivered" flag. + + + The routing key used when the message was + originally published. + + + Contains all the information about a message nack'd + from an AMQP broker within the Basic content-class. + + + The sequence number of the nack'd message, or the + closed upper bound of nack'd messages if multiple is + true. + + + Whether this nack applies to one message or + multiple messages. + + + Ignore + Clients should ignore this field. + + + Contains all the information about a message returned + from an AMQP broker within the Basic content-class. + + + The content header of the message. + + + The message body. + + + The exchange the returned message was originally + published to. + + + The AMQP reason code for the return. See + RabbitMQ.Client.Framing.*.Constants. + + + Human-readable text from the broker describing the + reason for the return. + + + The routing key used when the message was + originally published. + + + Wrap an exception thrown by a callback. + + + Access helpful information about the context in + which the wrapped exception was thrown. + + + Access the wrapped exception. + + + Describes an exception that was thrown during the + library's invocation of an application-supplied callback + handler. + + + When an exception is thrown from a callback registered with + part of the RabbitMQ .NET client library, it is caught, + packaged into a CallbackExceptionEventArgs, and passed through + the appropriate IModel's or IConnection's CallbackException + event handlers. If an exception is thrown in a + CallbackException handler, it is silently swallowed, as + CallbackException is the last chance to handle these kinds of + exception. + + + Code constructing CallbackExceptionEventArgs instances will + usually place helpful information about the context of the + call in the IDictionary available through the Detail property. + + + + + + Event relating to connection being blocked. + + + + + Access the reason why connection is blocked. + + + + Event relating to a successful consumer registration + or cancellation. + + + Construct an event containing the consumer-tag of + the consumer the event relates to. + + + Access the consumer-tag of the consumer the event + relates to. + + + + Initializes a new instance of the class. + + The tag before. + The tag after. + + + + Gets the tag before. + + + + + Gets the tag after. + + + + Experimental class exposing an IBasicConsumer's + methods as separate events. + + + Constructor which sets the Model property to the + given value. + + + Event fired on HandleBasicDeliver. + + + Event fired on HandleBasicConsumeOk. + + + Event fired on HandleModelShutdown. + + + Event fired on HandleBasicCancelOk. + + + Fires the Unregistered event. + + + Fires the Registered event. + + + Fires the Received event. + + + Fires the Shutdown event. + + + + Event relating to flow control. + + + + + Access the flow control setting. + + + + + Initializes a new instance of the class. + + The name before. + The name after. + + + + Gets the name before. + + + + + Gets the name after. + + + + + Describes an exception that was thrown during + automatic connection recovery performed by the library. + + + + Thrown when the application tries to make use of a + session or connection that has already been shut + down. + + + Construct an instance containing the given + shutdown reason. + + + Thrown when the cause is an + authentication failure. + + + Thrown when no connection could be opened during a + ConnectionFactory.CreateConnection attempt. + + + Construct a BrokerUnreachableException. The inner exception is + an AggregateException holding the errors from multiple connection attempts. + + + Thrown when a SessionManager cannot allocate a new + channel number, or the requested channel number is already in + use. + + + + Indicates that there are no more free channels. + + + + + Indicates that the specified channel is in use + + The requested channel number + + + Retrieves the channel number concerned; will + return -1 in the case where "no more free channels" is + being signaled, or a non-negative integer when "channel is + in use" is being signaled. + + + Thrown when a connection to the broker fails + + + + Thrown when a session is destroyed during an RPC call to a + broker. For example, if a TCP connection dropping causes the + destruction of a session in the middle of a QueueDeclare + operation, an OperationInterruptedException will be thrown to + the caller of IModel.QueueDeclare. + + + + Construct an OperationInterruptedException with + the passed-in explanation, if any. + + + Construct an OperationInterruptedException with + the passed-in explanation and prefix, if any. + + + Retrieves the explanation for the shutdown. May + return null if no explanation is available. + + + Thrown to indicate that the peer didn't understand + the packet received from the client. Peer sent default message + describing protocol version it is using and transport parameters. + + + The peer's {'A','M','Q','P',txHi,txLo,major,minor} packet is + decoded into instances of this class. + + + + Fills the new instance's properties with the values passed in. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + The peer's high transport byte. + + + The peer's low transport byte. + + + Thrown when the likely cause is an + authentication failure. + + + Thrown to indicate that the peer does not support the + wire protocol version we requested immediately after opening + the TCP socket. + + + Fills the new instance's properties with the values passed in. + + + The client's AMQP specification major version. + + + The client's AMQP specification minor version. + + + The peer's AMQP specification major version. + + + The peer's AMQP specification minor version. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The message that describes the error. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Thrown when the model receives an RPC reply that it wasn't expecting. + + + + The unexpected reply method. + + + + Thrown when the model receives an RPC request it cannot satisfy. + + + + The name of the RPC request that could not be sent. + + + Thrown when the model cannot transmit a method field + because the version of the protocol the model is implementing + does not contain a definition for the field in + question. + + + The name of the unsupported field. + + + The name of the method involved. + + + Thrown when the wire-formatting code cannot encode a + particular .NET value to AMQP protocol format. + + + Construct a WireFormattingException with no + particular offender (i.e. null) + + + Construct a WireFormattingException with the given + offender + + + Object which this exception is complaining about; + may be null if no particular offender exists + + + + Application Id. + + + + + Intra-cluster routing identifier (cluster id is deprecated in AMQP 0-9-1). + + + + + MIME content encoding. + + + + + MIME content type. + + + + + Application correlation identifier. + + + + + Non-persistent (1) or persistent (2). + + + + + Message expiration specification. + + + + + Message header field table. Is of type . + + + + + Application message Id. + + + + + Sets to either persistent (2) or non-persistent (1). + + + + + Message priority, 0 to 9. + + + + + Destination to reply to. + + + + + Convenience property; parses property using , + and serializes it using . + Returns null if property cannot be parsed by . + + + + + Message timestamp. + + + + + Message type name. + + + + + User Id. + + + + + Clear the property. + + + + + Clear the property (cluster id is deprecated in AMQP 0-9-1). + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the property. + + + + + Clear the Type property. + + + + + Clear the property. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present (cluster id is deprecated in AMQP 0-9-1). + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the property is present. + + + + + Returns true if the Type property is present. + + + + + Returns true if the UserId property is present. + + + + Sets to either persistent (2) or non-persistent (1). + + + The numbers 1 and 2 for delivery mode are "magic" in that + they appear in the AMQP 0-8 and 0-9 specifications as part + of the definition of the DeliveryMode Basic-class property, + without being defined as named constants. + + + Calling this method causes to take on a value. + In order to reset to the default empty condition, call . + + + + + Thrown when the server sends a frame along a channel + that we do not currently have a Session entry in our + SessionManager for. + + + The channel number concerned. + + + + Retrieve the AMQP class ID of this content header. + + + + + Retrieve the AMQP class name of this content header. + + + + + Fill this instance from the given byte buffer stream. + + + + A type of . + + + + Returns a random item from the list. + + Element item type + Input list + + + + Subclass of ProtocolException representing problems + requiring a connection.close. + + + Socket read timeout, in milliseconds. Zero signals "infinity". + + + Socket write timeout, in milliseconds. Zero signals "infinity". + + + Read a frame from the underlying + transport. Returns null if the read operation timed out + (see Timeout property). + + + Not part of the public API. Extension of IModel to + include utilities and connection-setup routines needed by the + implementation side. + + This interface is used by the API autogeneration + process. The AMQP XML specifications are read by the spec + compilation tool, and after the basic method interface and + implementation classes are generated, this interface is + scanned, and a spec-version-specific implementation is + autogenerated. Annotations are used on certain methods, return + types, and parameters, to customise the details of the + autogeneration process. + + + + + + Sends a Connection.TuneOk. Used during connection + initialisation. + + + Handle incoming Basic.Ack methods. Signals a + BasicAckEvent. + + + Handle incoming Basic.CancelOk methods. + + + Handle incoming Basic.ConsumeOk methods. + + + Handle incoming Basic.Deliver methods. Dispatches + to waiting consumers. + + + Handle incoming Basic.GetEmpty methods. Routes the + information to a waiting Basic.Get continuation. + + Note that the clusterId field is ignored, as in the + specification it notes that it is "deprecated pending + review". + + + + Handle incoming Basic.GetOk methods. Routes the + information to a waiting Basic.Get continuation. + + + Handle incoming Basic.Nack methods. Signals a + BasicNackEvent. + + + Handle incoming Basic.RecoverOk methods + received in reply to Basic.Recover. + + + + Handle incoming Basic.Return methods. Signals a + BasicReturnEvent. + + + Handle an incoming Channel.Close. Shuts down the + session and model. + + + Handle an incoming Channel.CloseOk. + + + Handle incoming Channel.Flow methods. Either + stops or resumes sending the methods that have content. + + + Handle an incoming Connection.Blocked. + + + Handle an incoming Connection.Close. Shuts down the + connection and all sessions and models. + + + Handle an incoming Connection.OpenOk. + + + Handle incoming Connection.Secure + methods. + + + Handle an incoming Connection.Start. Used during + connection initialisation. + + + Handle incoming Connection.Tune + methods. + + + Handle an incominga Connection.Unblocked. + + + Handle incoming Queue.DeclareOk methods. Routes the + information to a waiting Queue.DeclareOk continuation. + + + Used to send a Basic.Cancel method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Consume method. The public + consume API calls this while also managing internal + datastructures. + + + Used to send a Basic.Get. Basic.Get is a special + case, since it can result in a Basic.GetOk or a + Basic.GetEmpty, so this level of manual control is + required. + + + Used to send a Basic.Publish method. Called by the + public publish method after potential null-reference issues + have been rectified. + + + Used to send a Channel.Close. Called during + session shutdown. + + + Used to send a Channel.CloseOk. Called during + session shutdown. + + + Used to send a Channel.FlowOk. Confirms that + Channel.Flow from the broker was processed. + + + Used to send a Channel.Open. Called during session + initialisation. + + + Used to send a Confirm.Select method. The public + confirm API calls this while also managing internal + datastructures. + + + Used to send a Connection.Close. Called during + connection shutdown. + + + Used to send a Connection.CloseOk. Called during + connection shutdown. + + + Used to send a Connection.Open. Called during + connection startup. + + + Used to send a Connection.SecureOk. Again, this is + special, like Basic.Get. + + + Used to send a Connection.StartOk. This is + special, like Basic.Get. + + + Used to send a Exchange.Bind method. Called by the + public bind method. + + + + Used to send a Exchange.Declare method. Called by the + public declare method. + + + + Used to send a Exchange.Delete method. Called by the + public delete method. + + + + Used to send a Exchange.Unbind method. Called by the + public unbind method. + + + + Used to send a Queue.Bind method. Called by the + public bind method. + + + Used to send a Queue.Declare method. Called by the + public declare method. + + + Used to send a Queue.Delete method. Called by the + public delete method. + + + Used to send a Queue.Purge method. Called by the + public purge method. + + + Essential information from an incoming Connection.Tune + method. + + + The peer's suggested channel-max parameter. + + + The peer's suggested frame-max parameter. + + + The peer's suggested heartbeat parameter. + + + + Gets the channel number. + + + + + Gets the close reason. + + + + + Single recipient - no need for multiple handlers to be informed of arriving commands. + + + + + Gets the connection. + + + + + Gets a value indicating whether this session is open. + + + + + Multicast session shutdown event. + + + + Small ISession implementation used only for channel 0. + + + Set channel 0 as quiescing + + Method should be idempotent. Cannot use base.Close + method call because that would prevent us from + sending/receiving Close/CloseOk commands + + + + Thrown when frame parsing code detects an error in the + wire-protocol encoding of a frame. + + For example, potential MalformedFrameException conditions + include frames too short, frames missing their end marker, and + invalid protocol negotiation headers. + + + + + Retrieves the class ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the method ID number of this method, as defined in the AMQP specification XML. + + + + + Retrieves the name of this method - for debugging use. + + + + Only used to kick-start a connection open + sequence. See + + + Broadcasts notification of the final shutdown of the model. + + + Do not call anywhere other than at the end of OnSessionShutdown. + + + Must not be called when m_closeReason == null, because + otherwise there's a window when a new continuation could be + being enqueued at the same time as we're broadcasting the + shutdown event. See the definition of Enqueue() above. + + + + + Handle incoming Connection.Tune + methods. + + + Instances of subclasses of subclasses + HardProtocolException and SoftProtocolException are thrown in + situations when we detect a problem with the connection-, + channel- or wire-level parts of the AMQP protocol. + + + Retrieve the reply code to use in a + connection/channel close method. + + + Retrieve the shutdown details to use in a + connection/channel close method. Defaults to using + ShutdownInitiator.Library, and this.ReplyCode and + this.Message as the reply code and text, + respectively. + + + Small ISession implementation used during channel quiescing. + + + Manages a queue of waiting AMQP RPC requests. + + + Currently, pipelining of requests is forbidden by this + implementation. The AMQP 0-8 and 0-9 specifications themselves + forbid pipelining, but only by the skin of their teeth and + under a somewhat generous reading. + + + + + Enqueue a continuation, marking a pending RPC. + + + Continuations are retrieved in FIFO order by calling Next(). + + + In the current implementation, only one continuation can + be queued up at once. Calls to Enqueue() when a + continuation is already enqueued will result in + NotSupportedException being thrown. + + + + + Interrupt all waiting continuations. + + + There's just the one potential waiter in the current + implementation. + + + + + Retrieve the next waiting continuation. + + + It is an error to call this method when there are no + waiting continuations. In the current implementation, if + this happens, null will be returned (which will usually + result in an immediate NullPointerException in the + caller). Correct code will always arrange for a + continuation to have been Enqueue()d before calling this + method. + + + + + Normal ISession implementation used during normal channel operation. + + + Called from CheckAutoClose, in a separate thread, + when we decide to close the connection. + + + If m_autoClose and there are no active sessions + remaining, Close()s the connection with reason code + 200. + + + Replace an active session slot with a new ISession + implementation. Used during channel quiescing. + + Make sure you pass in a channelNumber that's currently in + use, as if the slot is unused, you'll get a null pointer + exception. + + + + Subclass of ProtocolException representing problems + requiring a channel.close. + + + Thrown when our peer sends a frame that contains + illegal values for one or more fields. + + + + Thrown when the connection receives a frame that it wasn't expecting. + + + + + Thrown when the protocol handlers detect an unknown class + number or method number. + + + + The AMQP content-class ID. + + + The AMQP method ID within the content-class, or 0 if none. + + + Reads an AMQP "table" definition from the reader. + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t, + x and V types and the AMQP 0-9-1 A type. + + A . + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + Writes an AMQP "table" to the writer. + + + In this method, we assume that the stream that backs our + NetworkBinaryWriter is a positionable stream - which it is + currently (see Frame.m_accumulator, Frame.GetWriter and + Command.Transmit). + + + Supports the AMQP 0-8/0-9 standard entry types S, I, D, T + and F, as well as the QPid-0-8 specific b, d, f, l, s, t + x and V types and the AMQP 0-9-1 A type. + + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Heartbeat frame for transmission. Reusable across connections. + + + Another overload of a Protocol property, useful + for exposing a tighter type. + + + Explicit implementation of IConnection.Protocol. + + + Try to close connection in a graceful way + + + Shutdown reason contains code and text assigned when closing the connection, + as well as the information about what initiated the close + + + Abort flag, if true, signals to close the ongoing connection immediately + and do not report any errors if it was already closed. + + + Timeout determines how much time internal close operations should be given + to complete. Negative or Timeout.Infinite value mean infinity. + + + + + + Loop only used while quiescing. Use only to cleanly close connection + + + + + We need to close the socket, otherwise attempting to unload the domain + could cause a CannotUnloadAppDomainException + + + + Broadcasts notification of the final shutdown of the connection. + + + + Sets the channel named in the SoftProtocolException into + "quiescing mode", where we issue a channel.close and + ignore everything except for subsequent channel.close + messages and the channel.close-ok reply that should + eventually arrive. + + + + Since a well-behaved peer will not wait indefinitely before + issuing the close-ok, we don't bother with a timeout here; + compare this to the case of a connection.close-ok, where a + timeout is necessary. + + + We need to send the close method and politely wait for a + reply before marking the channel as available for reuse. + + + As soon as SoftProtocolException is detected, we should stop + servicing ordinary application work, and should concentrate + on bringing down the channel as quickly and gracefully as + possible. The way this is done, as per the close-protocol, + is to signal closure up the stack *before* sending the + channel.close, by invoking ISession.Close. Once the upper + layers have been signalled, we are free to do what we need + to do to clean up and shut down the channel. + + + + + + May be called more than once. Should therefore be idempotent. + + + + API-side invocation of connection abort. + + + API-side invocation of connection abort. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection abort with timeout. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close. + + + API-side invocation of connection.close with timeout. + + + API-side invocation of connection.close with timeout. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Autogenerated type. Private implementation class - do not use directly. + + + Protocol major version (= 0) + + + Protocol minor version (= 9) + + + Protocol revision (= 1) + + + Protocol API name (= :AMQP_0_9_1) + + + Default TCP port (= 5672) + + + (= 1) + + + (= 2) + + + (= 3) + + + (= 8) + + + (= 4096) + + + (= 206) + + + (= 200) + + + (= 311) + + + (= 313) + + + (= 320) + + + (= 402) + + + (= 403) + + + (= 404) + + + (= 405) + + + (= 406) + + + (= 501) + + + (= 502) + + + (= 503) + + + (= 504) + + + (= 505) + + + (= 506) + + + (= 530) + + + (= 540) + + + (= 541) + + + Autogenerated type. AMQP specification method "connection.start". + + + Autogenerated type. AMQP specification method "connection.start-ok". + + + Autogenerated type. AMQP specification method "connection.secure". + + + Autogenerated type. AMQP specification method "connection.secure-ok". + + + Autogenerated type. AMQP specification method "connection.tune". + + + Autogenerated type. AMQP specification method "connection.tune-ok". + + + Autogenerated type. AMQP specification method "connection.open". + + + Autogenerated type. AMQP specification method "connection.open-ok". + + + Autogenerated type. AMQP specification method "connection.close". + + + Autogenerated type. AMQP specification method "connection.close-ok". + + + Autogenerated type. AMQP specification method "connection.blocked". + + + Autogenerated type. AMQP specification method "connection.unblocked". + + + Autogenerated type. AMQP specification method "channel.open". + + + Autogenerated type. AMQP specification method "channel.open-ok". + + + Autogenerated type. AMQP specification method "channel.flow". + + + Autogenerated type. AMQP specification method "channel.flow-ok". + + + Autogenerated type. AMQP specification method "channel.close". + + + Autogenerated type. AMQP specification method "channel.close-ok". + + + Autogenerated type. AMQP specification method "exchange.declare". + + + Autogenerated type. AMQP specification method "exchange.declare-ok". + + + Autogenerated type. AMQP specification method "exchange.delete". + + + Autogenerated type. AMQP specification method "exchange.delete-ok". + + + Autogenerated type. AMQP specification method "exchange.bind". + + + Autogenerated type. AMQP specification method "exchange.bind-ok". + + + Autogenerated type. AMQP specification method "exchange.unbind". + + + Autogenerated type. AMQP specification method "exchange.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.declare". + + + Autogenerated type. AMQP specification method "queue.declare-ok". + + + Autogenerated type. AMQP specification method "queue.bind". + + + Autogenerated type. AMQP specification method "queue.bind-ok". + + + Autogenerated type. AMQP specification method "queue.unbind". + + + Autogenerated type. AMQP specification method "queue.unbind-ok". + + + Autogenerated type. AMQP specification method "queue.purge". + + + Autogenerated type. AMQP specification method "queue.purge-ok". + + + Autogenerated type. AMQP specification method "queue.delete". + + + Autogenerated type. AMQP specification method "queue.delete-ok". + + + Autogenerated type. AMQP specification method "basic.qos". + + + Autogenerated type. AMQP specification method "basic.qos-ok". + + + Autogenerated type. AMQP specification method "basic.consume". + + + Autogenerated type. AMQP specification method "basic.consume-ok". + + + Autogenerated type. AMQP specification method "basic.cancel". + + + Autogenerated type. AMQP specification method "basic.cancel-ok". + + + Autogenerated type. AMQP specification method "basic.publish". + + + Autogenerated type. AMQP specification method "basic.return". + + + Autogenerated type. AMQP specification method "basic.deliver". + + + Autogenerated type. AMQP specification method "basic.get". + + + Autogenerated type. AMQP specification method "basic.get-ok". + + + Autogenerated type. AMQP specification method "basic.get-empty". + + + Autogenerated type. AMQP specification method "basic.ack". + + + Autogenerated type. AMQP specification method "basic.reject". + + + Autogenerated type. AMQP specification method "basic.recover-async". + + + Autogenerated type. AMQP specification method "basic.recover". + + + Autogenerated type. AMQP specification method "basic.recover-ok". + + + Autogenerated type. AMQP specification method "basic.nack". + + + Autogenerated type. AMQP specification method "tx.select". + + + Autogenerated type. AMQP specification method "tx.select-ok". + + + Autogenerated type. AMQP specification method "tx.commit". + + + Autogenerated type. AMQP specification method "tx.commit-ok". + + + Autogenerated type. AMQP specification method "tx.rollback". + + + Autogenerated type. AMQP specification method "tx.rollback-ok". + + + Autogenerated type. AMQP specification method "confirm.select". + + + Autogenerated type. AMQP specification method "confirm.select-ok". + + + Autogenerated type. AMQP specification content header properties for content class "basic" + + + Base class for attributes for controlling the API + autogeneration process. + + + The specification namespace (i.e. version) that + this attribute applies to, or null for all specification + versions. + + + Causes the API generator to ignore the attributed method. + + Mostly used to declare convenience overloads of + various AMQP methods in the IModel interface. Also used + to omit an autogenerated implementation of a method which + is not required for one protocol version. The API + autogeneration process should of course not attempt to produce + an implementation of the convenience methods, as they will be + implemented by hand with sensible defaults, delegating to the + autogenerated variant of the method concerned. + + + Causes the API generator to generate asynchronous + receive code for the attributed method. + + + Causes the API generator to generate + exception-throwing code for, instead of simply ignoring, the + attributed method. + + + + + Informs the API generator which AMQP method field to + use for either a parameter in a request, or for a simple result + in a reply. + + + Informs the API generator which AMQP method to use for + either a request (if applied to an IModel method) or a reply + (if applied to an IModel method result). + + + This attribute, if placed on a parameter in an IModel + method, causes it to be interpreted as a "nowait" parameter for + the purposes of autogenerated RPC reply continuation management + and control. + + + This attribute, if placed on a method in IModel, + causes the method to be interpreted as a factory method + producing a protocol-specific implementation of a common + content header interface. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content header frame. + + + This attribute, if placed on a parameter in a + content-carrying IModel method, causes it to be sent as part of + the content body frame. + + + This attribute, placed on an IModel method, causes + what would normally be an RPC, sent with ModelRpc, to be sent + as if it were oneway, with ModelSend. The assumption that this + is for a custom continuation (e.g. for BasicConsume/BasicCancel + etc.) + + + + Simple wrapper around TcpClient. + + + + Manages a subscription to a queue. + + + This interface is provided to make creation of test doubles + for easier. + + + + + Implements a simple RPC client. + + + This class sends requests that can be processed by remote + SimpleRpcServer instances. + + + The basic pattern for accessing a remote service is to + determine the exchange name and routing key needed for + submissions of service requests, and to construct a + SimpleRpcClient instance using that address. Once constructed, + the various Call() and Cast() overloads can be used to send + requests and receive the corresponding replies. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + SimpleRpcClient client = + new SimpleRpcClient(ch, queueName); + client.TimeoutMilliseconds = 5000; // optional + + /// ... make use of the various Call() overloads + } + } + + + Instances of this class declare a queue, so it is the user's + responsibility to ensure that the exchange concerned exists + (using IModel.ExchangeDeclare) before invoking Call() or + Cast(). + + + This class implements only a few basic RPC message formats - + to extend it with support for more formats, either subclass, + or transcode the messages before transmission using the + built-in byte[] format. + + + + + + Construct an instance with no configured + Address. The Address property must be set before Call() or + Cast() are called. + + + Construct an instance that will deliver to the + default exchange (""), with routing key equal to the passed + in queueName, thereby delivering directly to a named queue + on the AMQP server. + + + Construct an instance that will deliver to the + named and typed exchange, with the given routing + key. + + + Construct an instance that will deliver to the + given address. + + + This event is fired whenever Call() detects the + disconnection of the underlying Subscription while waiting + for a reply from the service. + + See also OnDisconnected(). Note that the sending of a + request may result in OperationInterruptedException before + the request is even sent. + + + + This event is fired whenever Call() decides that a + timeout has occurred while waiting for a reply from the + service. + + See also OnTimedOut(). + + + + Retrieve or modify the address that will be used + for the next Call() or Cast(). + + This address represents the service, i.e. the destination + service requests should be published to. It can be changed + at any time before a Call() or Cast() request is sent - + the value at the time of the call is used by Call() and + Cast(). + + + + Retrieve the IModel this instance uses to communicate. + + + Retrieve the Subscription that is used to receive + RPC replies corresponding to Call() RPC requests. May be + null. + + + Upon construction, this property will be null. It is + initialised by the protected virtual method + EnsureSubscription upon the first call to Call(). Calls to + Cast() do not initialise the subscription, since no + replies are expected or possible when using Cast(). + + + + + Retrieve or modify the timeout (in milliseconds) + that will be used for the next Call(). + + + This property defaults to + System.Threading.Timeout.Infinite (i.e. -1). If it is set + to any other value, Call() will only wait for the + specified amount of time before returning indicating a + timeout. + + + See also TimedOut event and OnTimedOut(). + + + + + Sends a "jms/stream-message"-encoded RPC request, + and expects an RPC reply in the same format. + + + The arguments passed in must be of types that are + representable as JMS StreamMessage values, and so must the + results returned from the service in its reply message. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + + Sends a simple byte[] message, without any custom + headers or properties. + + + Delegates directly to Call(IBasicProperties, byte[]), and + discards the properties of the received reply, returning + only the body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[] message and IBasicProperties + header, returning both the body and headers of the received + reply. + + + Sets the "replyProperties" outbound parameter to the + properties of the received reply, and returns the byte[] + body of the reply. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Both sets "replyProperties" to null and returns null when + either the request timed out or we were disconnected + before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + Sends a byte[]/IBasicProperties RPC request, + returning full information about the delivered reply as a + BasicDeliverEventArgs. + + + This is the most general/lowest-level Call()-style method + on SimpleRpcClient. It sets CorrelationId and ReplyTo on + the request message's headers before transmitting the + request to the service via the AMQP server. If the reply's + CorrelationId does not match the request's CorrelationId, + ProtocolViolationException will be thrown. + + + Calls OnTimedOut() and OnDisconnected() when a timeout or + disconnection, respectively, is detected when waiting for + our reply. + + + Returns null if the request timed out or if we were + disconnected before a reply arrived. + + + The reply message, if any, is acknowledged to the AMQP + server via Subscription.Ack(). + + + + + + Sends an asynchronous/one-way message to the + service. + + + Close the reply subscription associated with this instance, if any. + + Simply delegates to calling Subscription.Close(). Clears + the Subscription property, so that subsequent Call()s, if + any, will re-initialize it to a fresh Subscription + instance. + + + + Signals that the Subscription we use for receiving + our RPC replies was disconnected while we were + waiting. + + Fires the Disconnected event. + + + + Signals that the configured timeout fired while + waiting for an RPC reply. + + Fires the TimedOut event. + + + + Implement the IDisposable interface, permitting + SimpleRpcClient instances to be used in using + statements. + + + Should initialise m_subscription to be non-null + and usable for fetching RPC replies from the service + through the AMQP server. + + + Retrieves the reply for the request with the given + correlation ID from our internal Subscription. + + Currently requires replies to arrive in the same order as + the requests were sent out. Subclasses may override this + to provide more sophisticated behaviour. + + + + Implements a simple RPC service, responding to + requests received via a Subscription. + + + This class interprets requests such as those sent by instances + of SimpleRpcClient. + + + The basic pattern for implementing a service is to subclass + SimpleRpcServer, overriding HandleCall and HandleCast as + appropriate, and then to create a Subscription object for + receiving requests from clients, and start an instance of the + SimpleRpcServer subclass with the Subscription. + + + string queueName = "ServiceRequestQueue"; // See also Subscription ctors + using (IConnection conn = new ConnectionFactory() + .CreateConnection(serverAddress)) { + using (IModel ch = conn.CreateModel()) { + Subscription sub = new Subscription(ch, queueName); + new MySimpleRpcServerSubclass(sub).MainLoop(); + } + } + + + Note that this class itself does not declare any resources + (exchanges, queues or bindings). The Subscription we use for + receiving RPC requests should have already declared all the + resources we need. See the Subscription constructors and the + Subscription.Bind method. + + + If you are implementing a service that responds to + "jms/stream-message"-formatted requests (as implemented by + RabbitMQ.Client.Content.IStreamMessageReader), override + HandleStreamMessageCall. Otherwise, override HandleSimpleCall + or HandleCall as appropriate. Asynchronous, one-way requests + are dealt with by HandleCast etc. + + + Every time a request is successfully received and processed + within the server's MainLoop, the request message is Ack()ed + using Subscription.Ack before the next request is + retrieved. This causes the Subscription object to take care of + acknowledging receipt and processing of the request message. + + + If transactional service is enabled, via SetTransactional(), + then after every successful ProcessRequest, IModel.TxCommit is + called. Making use of transactional service has effects on all + parts of the application that share an IModel instance, + completely changing the style of interaction with the AMQP + server. For this reason, it is initially disabled, and must be + explicitly enabled with a call to SetTransactional(). Please + see the documentation for SetTransactional() for details. + + + To stop a running RPC server, call Close(). This will in turn + Close() the Subscription, which will cause MainLoop() to + return to its caller. + + + Unless overridden, ProcessRequest examines properties in the + request content header, and uses them to dispatch to one of + the Handle[...]() methods. See the documentation for + ProcessRequest and each Handle[...] method for details. + + + + + + Create, but do not start, an instance that will + receive requests via the given Subscription. + + + The instance is initially in non-transactional mode. See + SetTransactional(). + + + Call MainLoop() to start the request-processing loop. + + + + + Returns true if we are in "transactional" mode, or + false if we are not. + + + Shut down the server, causing MainLoop() to return + to its caller. + + Acts by calling Close() on the server's Subscription object. + + + + Called by ProcessRequest(), this is the most + general method that handles RPC-style requests. + + + This method should map requestProperties and body to + replyProperties and the returned byte array. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall before encoding and returning the + reply. If the ContentType is any other value, the request + is passed to HandleSimpleCall instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by ProcessRequest(), this is the most + general method that handles asynchronous, one-way + requests. + + + The default implementation checks + requestProperties.ContentType, and if it is + "jms/stream-message" (i.e. the current value of + StreamMessageBuilder.MimeType), parses it using + StreamMessageReader and delegates to + HandleStreamMessageCall, passing in null as the + replyWriter parameter to indicate that no reply is desired + or possible. If the ContentType is any other value, the + request is passed to HandleSimpleCast instead. + + + The isRedelivered flag is true when the server knows for + sure that it has tried to send this request previously + (although not necessarily to this application). It is not + a reliable indicator of previous receipt, however - the + only claim it makes is that a delivery attempt was made, + not that the attempt succeeded. Be careful if you choose + to use the isRedelivered flag. + + + + + Called by the default HandleCall() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. It should fill in + replyProperties (or set it to null) and return a byte + array to send back to the remote caller as a reply + message. + + + + Called by the default HandleCast() implementation + as a fallback. + + If the MIME ContentType of the request did not match any + of the types specially recognised + (e.g. "jms/stream-message"), this method is called instead + with the raw bytes of the request. + + + + Called by HandleCall and HandleCast when a + "jms/stream-message" request is received. + + + The args array contains the values decoded by HandleCall + or HandleCast. + + + The replyWriter parameter will be null if we were called + from HandleCast, in which case a reply is not expected or + possible, or non-null if we were called from + HandleCall. Use the methods of replyWriter in this case to + assemble your reply, which will be sent back to the remote + caller. + + + This default implementation does nothing, which + effectively sends back an empty reply to any and all + remote callers. + + + + + Enters the main loop of the RPC service. + + + Retrieves requests repeatedly from the service's + subscription. Each request is passed to + ProcessRequest. Once ProcessRequest returns, the request + is acknowledged via Subscription.Ack(). If transactional + mode is enabled, TxCommit is then called. Finally, the + loop begins again. + + + Runs until the subscription ends, which happens either as + a result of disconnection, or of a call to Close(). + + + + + Process a single request received from our + subscription. + + + If the request's properties contain a non-null, non-empty + CorrelationId string (see IBasicProperties), it is assumed + to be a two-way call, requiring a response. The ReplyTo + header property is used as the reply address (via + PublicationAddress.Parse, unless that fails, in which case it + is treated as a simple queue name), and the request is + passed to HandleCall(). + + + If the CorrelationId is absent or empty, the request is + treated as one-way asynchronous event, and is passed to + HandleCast(). + + + Usually, overriding HandleCall(), HandleCast(), or one of + their delegates is sufficient to implement a service, but + in some cases overriding ProcessRequest() is + required. Overriding ProcessRequest() gives the + opportunity to implement schemes for detecting interaction + patterns other than simple request/response or one-way + communication. + + + + + Enables transactional mode. + + + Once enabled, transactional mode is not only enabled for + all users of the underlying IModel instance, but cannot be + disabled without shutting down the entire IModel (which + involves shutting down all the services depending on it, + and should not be undertaken lightly). + + + This method calls IModel.TxSelect, every time it is + called. (TxSelect is idempotent, so this is harmless.) + + + + + Implement the IDisposable interface, permitting + SimpleRpcServer instances to be used in using + statements. + + + Manages a subscription to a queue. + + + This convenience class abstracts away from much of the detail + involved in receiving messages from a queue. + + + Once created, the Subscription consumes from a queue (using a + EventingBasicConsumer). Received deliveries can be retrieved + by calling Next(), or by using the Subscription as an + IEnumerator in, for example, a foreach loop. + + + Note that if the "autoAck" option is enabled (which it is by + default), then received deliveries are automatically acked + within the server before they are even transmitted across the + network to us. Calling Ack() on received events will always do + the right thing: if "autoAck" is enabled, nothing is done on an + Ack() call, and if "autoAck" is disabled, IModel.BasicAck() is + called with the correct parameters. + + + + + Creates a new Subscription in "autoAck" mode, + consuming from a named queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode and the name of the queue. + + + Creates a new Subscription, with full control over + both "autoAck" mode, the name of the queue, and the consumer tag. + + + Retrieve the IBasicConsumer that is receiving the + messages from the server for us. Normally, you will not + need to access this property - use Next() and friends + instead. + + + Retrieve the consumer-tag that this subscription + is using. Will usually be a server-generated + name. + + + Returns the most recent value returned by Next(), + or null when either no values have been retrieved yet, the + end of the subscription has been reached, or the most + recent value has already been Ack()ed. See also the + documentation for Ack(). + + + Retrieve the IModel our subscription is carried by. + + + Returns true if we are in "autoAck" mode, where + calls to Ack() will be no-ops, and where the server acks + messages before they are delivered to us. Returns false if + we are in a mode where calls to Ack() are required, and + where such calls will actually send an acknowledgement + message across the network to the server. + + + Retrieve the queue name we have subscribed to. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + As per the IEnumerator interface definition, throws + InvalidOperationException if LatestEvent is null. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + If LatestEvent is non-null, passes it to + Ack(BasicDeliverEventArgs). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicAck with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Closes this Subscription, cancelling the consumer + record in the server. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, false, requeue). Causes LatestEvent to become + null. + + + If LatestEvent is non-null, passes it to + Nack(BasicDeliverEventArgs, multiple, requeue). Causes LatestEvent to become + null. + + + If we are not in "autoAck" mode, calls + IModel.BasicNack with the delivery-tag from ; + otherwise, sends nothing to the server. if is the same as LatestEvent + by pointer comparison, sets LatestEvent to null. + + + Passing an event that did not originate with this Subscription's + channel, will lead to unpredictable behaviour + + + + Retrieves the next incoming delivery in our + subscription queue. + + + Returns null when the end of the stream is reached and on + every subsequent call. End-of-stream can arise through the + action of the Subscription.Close() method, or through the + closure of the IModel or its underlying IConnection. + + + Updates LatestEvent to the value returned. + + + Does not acknowledge any deliveries at all (but in "autoAck" + mode, the server will have auto-acknowledged each event + before it is even sent across the wire to us). + + + + + Retrieves the next incoming delivery in our + subscription queue, or times out after a specified number + of milliseconds. + + + Returns false only if the timeout expires before either a + delivery appears or the end-of-stream is reached. If false + is returned, the out parameter "result" is set to null, + but LatestEvent is not updated. + + + Returns true to indicate a delivery or the end-of-stream. + + + If a delivery is already waiting in the queue, or one + arrives before the timeout expires, it is removed from the + queue and placed in the "result" out parameter. If the + end-of-stream is detected before the timeout expires, + "result" is set to null. + + + Whenever this method returns true, it updates LatestEvent + to the value placed in "result" before returning. + + + End-of-stream can arise through the action of the + Subscription.Close() method, or through the closure of the + IModel or its underlying IConnection. + + + This method does not acknowledge any deliveries at all + (but in "autoAck" mode, the server will have + auto-acknowledged each event before it is even sent across + the wire to us). + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item or the end of + the stream to become available. Usage of such a timeout is + equivalent to calling Next() with no arguments (modulo + predictable method signature differences). + + + + + Implementation of the IDisposable interface, + permitting Subscription to be used in using + statements. Simply calls Close(). + + + Implementation of the IEnumerable interface, for + permitting Subscription to be used in foreach + loops. + + + Implementation of the IEnumerator interface, for + permitting Subscription to be used in foreach + loops. + + + Does not acknowledge any deliveries at all. Ack() must be + called explicitly on received deliveries. + + + + + Dummy implementation of the IEnumerator interface, + for permitting Subscription to be used in foreach loops; + Reset()ting a Subscription doesn't make sense, so this + method always throws InvalidOperationException. + + + A thread-safe single-assignment reference cell. + + A fresh BlockingCell holds no value (is empty). Any thread + reading the Value property when the cell is empty will block + until a value is made available by some other thread. The Value + property can only be set once - on the first call, the + BlockingCell is considered full, and made immutable. Further + attempts to set Value result in a thrown + InvalidOperationException. + + + + Retrieve the cell's value, blocking if none exists + at present, or supply a value to an empty cell, thereby + filling it. + + + + Return valid timeout value + If value of the parameter is less then zero, return 0 + to mean infinity + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Retrieve the cell's value, waiting for the given + timeout if no value is immediately available. + + + If a value is present in the cell at the time the call is + made, the call will return immediately. Otherwise, the + calling thread blocks until either a value appears, or + operation times out. + + + If no value was available before the timeout, an exception + is thrown. + + + + + Miscellaneous debugging and development utilities. + + Not part of the public API. + + + + Print a hex dump of the supplied bytes to stdout. + + + Print a hex dump of the supplied bytes to the supplied TextWriter. + + + Prints an indented key/value pair; used by DumpProperties() + Recurses into the value using DumpProperties(). + + + Dump properties of objects to the supplied writer. + + + Used internally by class Either. + + + Models the disjoint union of two alternatives, a + "left" alternative and a "right" alternative. + Borrowed from ML, Haskell etc. + + + Private constructor. Use the static methods Left, Right instead. + + + Retrieve the alternative represented by this instance. + + + Retrieve the value carried by this instance. + + + Constructs an Either instance representing a Left alternative. + + + Constructs an Either instance representing a Right alternative. + + + A class for allocating integer IDs in a given range. + + + A class representing a list of inclusive intervals + Creates an IntAllocator allocating integer IDs within the inclusive range [start, end] + + + Allocate a fresh integer from the range, or return -1 if no more integers + are available. This operation is guaranteed to run in O(1) + + + Make the provided integer available for allocation again. This operation + runs in amortized O(sqrt(range size)) time: About every sqrt(range size) + operations will take O(range_size + number of intervals) to complete and + the rest run in constant time. + + No error checking is performed, so if you double Free or Free an integer + that was not originally Allocated the results are undefined. Sorry. + + + + Subclass of BinaryReader that reads integers etc in correct network order. + + + + Kludge to compensate for .NET's broken little-endian-only BinaryReader. + Relies on BinaryReader always being little-endian. + + + + + + Construct a NetworkBinaryReader over the given input stream. + + + + + Construct a NetworkBinaryReader over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryReader over a byte[]. + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Override BinaryReader's method for network-order. + + + + + Subclass of BinaryWriter that writes integers etc in correct network order. + + + +

+ Kludge to compensate for .NET's broken little-endian-only BinaryWriter. +

+ See also NetworkBinaryReader. +

+
+
+ + + Construct a NetworkBinaryWriter over the given input stream. + + + + + Construct a NetworkBinaryWriter over the given input + stream, reading strings using the given encoding. + + + + Helper method for constructing a temporary + BinaryWriter streaming into a fresh MemoryStream + provisioned with the given initialSize. + + + Helper method for extracting the byte[] contents + of a BinaryWriter over a MemoryStream, such as constructed + by TemporaryBinaryWriter. + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + + Override BinaryWriter's method for network-order. + + + + A thread-safe shared queue implementation. + + + A thread-safe shared queue implementation. + + + Flag holding our current status. + + + The shared queue. + + Subclasses must ensure appropriate locking discipline when + accessing this field. See the implementation of Enqueue, + Dequeue. + + + + Close the queue. Causes all further Enqueue() + operations to throw EndOfStreamException, and all pending + or subsequent Dequeue() operations to throw an + EndOfStreamException once the queue is empty. + + + Retrieve the first item from the queue, or block if none available + + Callers of Dequeue() will block if no items are available + until some other thread calls Enqueue() or the queue is + closed. In the latter case this method will throw + EndOfStreamException. + + + + Retrieve the first item from the queue, or return + nothing if no items are available after the given + timeout + + + If one or more items are present on the queue at the time + the call is made, the call will return + immediately. Otherwise, the calling thread blocks until + either an item appears on the queue, or + millisecondsTimeout milliseconds have elapsed. + + + Returns true in the case that an item was available before + the timeout, in which case the out parameter "result" is + set to the item itself. + + + If no items were available before the timeout, returns + false, and sets "result" to null. + + + A timeout of -1 (i.e. System.Threading.Timeout.Infinite) + will be interpreted as a command to wait for an + indefinitely long period of time for an item to become + available. Usage of such a timeout is equivalent to + calling Dequeue() with no arguments. See also the MSDN + documentation for + System.Threading.Monitor.Wait(object,int). + + + If no items are present and the queue is in a closed + state, or if at any time while waiting the queue + transitions to a closed state (by a call to Close()), this + method will throw EndOfStreamException. + + + + + Retrieve the first item from the queue, or return + defaultValue immediately if no items are + available + + + If one or more objects are present in the queue at the + time of the call, the first item is removed from the queue + and returned. Otherwise, the defaultValue that was passed + in is returned immediately. This defaultValue may be null, + or in cases where null is part of the range of the queue, + may be some other sentinel object. The difference between + DequeueNoWait() and Dequeue() is that DequeueNoWait() will + not block when no items are available in the queue, + whereas Dequeue() will. + + + If at the time of call the queue is empty and in a + closed state (following a call to Close()), then this + method will throw EndOfStreamException. + + + + + Place an item at the end of the queue. + + If there is a thread waiting for an item to arrive, the + waiting thread will be woken, and the newly Enqueued item + will be passed to it. If the queue is closed on entry to + this method, EndOfStreamException will be thrown. + + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Implementation of the IEnumerable interface, for + permitting SharedQueue to be used in foreach + loops. + + + Call only when the lock on m_queue is held. + + + + Implementation of the IEnumerator interface, for + permitting SharedQueue to be used in foreach loops. + + + Construct an enumerator for the given + SharedQueue. + + + Reset()ting a SharedQueue doesn't make sense, so + this method always throws + InvalidOperationException. + +
+
diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Spire.Pdf.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/Spire.Pdf.dll new file mode 100644 index 0000000..cf659e6 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/Spire.Pdf.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Spire.Pdf.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/Spire.Pdf.xml new file mode 100644 index 0000000..75d2a30 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/Spire.Pdf.xml @@ -0,0 +1,71934 @@ + + + + Spire.Pdf + + + + + Class LicenseProvider. + + + + + Provides a license by a license file path, which will be used for loading license. + + License file full path. + + + + Sets the license file name, which will be used for loading license. + + License file name. + + + + Gets the current license file name. + + The license file name, the default license file name is [license.elic.xml]. + + + + Provides a license by a license file object, which will be used for loading license. + + License file object. + + + + Provides a license by a license stream, which will be used for loading license. + + License data stream. + + + + Provides a license by a license key, which will be used for loading license. + + The value of the Key attribute of the element License of you license xml file. + + + + Clear all cached license. + + + + + Load the license provided by current setting to the license cache. + + + + + Load the license provided by current setting to the license cache. + + Runtime product type + + + + This method is not intended to be used directly from your code. + + + + + + + + + + Class TraceInfo. + + + + + Show trace info. + + The class name. + The method name. + The message. + + + + Signature formatter interface. + + + + + + Sign. + + The data to be signed. + The signature. + + + + Construct a new instance. + + The ocsp server url. + + + + Construct a new instance. + + OCSP response generator. + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Construct a new instance. + + The Timestamp server url. + + + + Construct a new instance. + + Timestamp generator. + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Represents the Certificate object. + + + + + Creates new PdfCertificate from an certificate. + + The X509Certificate object. + + + + Creates new PdfCertificate from PFX file. + + The path to pfx file. + The password for pfx file. + + + + Creates new PdfCertificate from PFX file. + + The path to pfx file. + The password for pfx file. + X509KeyStorageFlags storageFlags + + + + Signature data + + The data to pfx file. + + + + Signature data + + The data to pfx file. + The password for pfx file. + + + + Signature data + + The data to pfx file. + The password for pfx file. + X509KeyStorageFlags storageFlags + + + + Gets the certificates in all storages. + + + PdfCertificate array. + + + + + Finds the certificate by subject. + + The store name. + The certificate subject. + The certificate. + + + + Finds the certificate by issuer. + + The store name. + The certificate issuer. + The certificate. + + + + Finds the certificate by serial number. + + The certification system store type. + The certificate id. + + + + + Represents a digital signature used for signing a PDF document. + + + + + Get all certificates. + + + + + Gets the signature Appearance. + + A object defines signature`s appearance. + + + + Gets or sets signature location on the page. + + + + + Gets or sets bounds of signature. + + + + + Gets or sets information provided by the signer to enable a recipient to contact + the signer to verify the signature; for example, a phone number. + + + + + Gets or sets reason of signing. + + + + + Gets or sets the physical location of the signing. + + + + + Gets or sets a value indicating certificate document or not. + NOTE: Works only with Adobe Reader 7.0.8 or higher. + + certificate document if true. + + + + Gets or sets the permission for certificated document. + + The document permission. + + + + Gets signing certificate. + + + + + Sets the alignment of signature text + + + + + Gets a value indicating whether signature visible or not. + + Signature can be set as invisible when its size is set to empty. + + + + Get Signature Datetime + + + + + Set the sign name font. + Note: This font applys to sign name when the GraphicMode is SignNameOnly or SignNameAndSignDetail. + if not set, the default font will be applied. + + + + + Set font color for the signature info + if not set, the default is black + + + + + Set the SignDetails font. + Note: if not set, the default font will be applied. + + + + + Set signature info font + + + + + The name of the person or authority signing the document, usually called signer. + + + + + Digital Signature Common name label + + + + + The name of the person or authority signing the document. + + + + + Name label + + + + + Signature Distinguished Name label + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + Flag determine whether to display the labels + + + + + Show Digital Signature,Configuer Text + + + + + The Grapphic render/display mode. + + + + + Digital Signature Graphic Type + + + + + Digital Signature Configuer Graphic file Path + + + + + Signature Image Source + + + + + Digital Signature Configuer Graphic is filled bounds. + + + + + Set or get the sign image layout. + + + + + Digital Signature Reason Label + + + + + Digital Signature Date Label + + + + + Digital Signature ContactInfo Label + + + + + Digital Signature LocationInfo Label + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The pdf certificate. + Name of the signature. + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The Signature formatter. + Name of the signature. + + + + Initializes a new instance of the class. + + The current pdf page where signature will be replaced. + The pdf certificate. + The Signature formatter. + Name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The Signature formatter. + The name of the signature. + + + + Initializes a new instance of the class. + + The document, which has the page. + The page. + The certificate. + The signature formatter. + The name of the signature. + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The Signature formatter. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The signature formatter. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The document or loaded document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The document or loaded document, which has the page. + The page. + The certificate. + The name of the signature. + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Initializes a new instance of the class. + + The loaded document, which has the page. + The page. + The certificate. + The name of the signature. + The name of the loaded signature field + + + + Handle content stream and resources. + + The template. + + + + check thie validity of the signature + + + + + + Check if the document was altered after signed. True if modified; otherwise false. + + + + + + Set the Sign Name Width + + + + + + The handler which generate graphics. + + + The graphics context. + The visible region is (0,0,signature bounds width,signature bounds height). + + + + + Configure custom graphics. + + the handler which generate graphics. + + + + The handler which generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Configure timestamp which must conform to RFC 3161. + + TSA url + + + + Configure timestamp which must conform to RFC 3161. + + The tsa url. + The user(account) name. + The password. + + + + Configure timestamp which must conform to RFC 3161. + + the handler which generate timestamp token + + + + The handler which generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Configure OCSP which must conform to RFC 2560. + + + OCSP url. It it's null it will be taken from the checked cert. + + + Represents an additional collection of certificates that can be searched. + if null,only use windows cert store. + + + + + Configure OCSP which must conform to RFC 2560. + + + Represents an additional collection of certificates that can be searched + if null,only use windows cert store. + + the handler which generate OCSP response. + + + + A dictionary that can be used by a signature handler to record information that captures the state of the computer environment used for signing + + + + + Specifies length of the encryption key for encryption. + + + + + The key is 40 bit long. + + + + + The key is 128 bit long. + + + + + The key is 256 bit long. + + + + + Specifies the type of encryption algorithm used. + + + + + The encryption algorithm is RC4. + + + + + The encryption algorithm is AES. + + + + + Specifies the available permissions set for the signature. + + + + + Not all permissions + + + + + Default value is 2876. A common document contains all privileges + + + + + Print the document. + + + + + Edit content. + + + + + Copy content. + + + + + Add or modify text annotations, fill in interactive form fields. + + + + + Fill form fields. (Only for 128 bits key). + + + + + Copy accessibility content. + + + + + Assemble document permission. (Only for 128 bits key). + + + + + Full quality print. + + + + + Specifies the naming a system store. + + + + + A certificate store that holds certificates with associated private keys. + + + + + Root certificates. + + + + + Certification authority certificates. + + + + + Software Publisher Certificate. + + + + + Specifies the alignment type of signature text. + + + + + Specifies the signature text is aligned to Left. + + + + + Specifies the signature text is aligned to Center. + + + + + Specifies the signature text is aligned to Right. + + + + + Specifies the available permissions on certificated document. + + + + + Disallow any changes to the document. + + + + + Only allow form fill-in actions on this document. + + + + + Only allow commenting and form fill-in actions on this document. + + + + + Signature type + + + + + The layout determine how to display the sign image. + + + + + Default. + Sign image status without any modification. + + + + + Stretch the sign image. + + + + + Modes to determine what and how to dispay the signature infomation. + + + + + Default dispaly model. + Display signature details including signer,location,date,contact infomation and reason. + + + + + Only display the signature image. + + + + + Only display the sign name. + + + + + Diaply sign name and signature details. + + + + + Diaply signature image and signature details. + + + + + Signture Configuer Graphic type + + + + + No Show Picture Signature and Text Signature + + + + + draw Picture Signature + + + + + draw Text Signature + + + + + draw Picture Signature and Information + + + + + draw Text Signature and Information + + + + + draw Information and Picture Signature + + + + + Configuer Text,Show Sign content + + + + + The object that allows to compute the MD5 hash for the input data. + + + + + Whether or not to encrypt. + + If true ,do not encrypt or encrypt + + + + Convert string to byte array. + according to the iso 8859-1 codepage. + + The string + The result byte array + + + + Create owner password byte array. + + The userPassword + The ownerPassword + The owner password array + + + + Represents the security settings of the PDF document. + + + + + Gets the owner password. + + + + + Gets the user password. + + + + + Indicate whether this pdf document was encrypted originally or not. + + + + + Decrypt user password + + + + + Decrypt user password. + + The ownerPassword + + + + Decrypt all password. + + The ownerPassword + + + + Whether is encrypted. + + If has owner password return true or false + + + + To Encrypt the PDF document with open password. + Note:If set empty string value to open password, it indicates that the PDF document can be operated without providing corresponding password. + Note: the document owner password should not be exist. + + The open password + + + + To Encrypt the PDF document with permission password and permissions. + Note:The Permission password can't be empty string. + + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + + + + To Encrypt the PDF document and set the encryption key size and permissions. + Note:If set empty string value to open password or permission password, it indicates that the PDF document can be operated without providing corresponding password. + + The open password + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + The bit length of the encryption key + + + + + To Encrypt the PDF document with open password and permission password,and set the encryption key size and permissions. + Note:If set empty string value to open password or permission password, it indicates that the PDF document can be operated without providing corresponding password. + + The open password + The permission password + A set of flags specifying which operations are permitted when the document is opened with user access + The bit length of the encryption key + The original permissionPassword of the document + + + + Gets the document's permission flags + + + + + Gets the size of the key. + + + + + Initializes a new instance of the class. + + + + + Represents a calibrated gray color, based on a CalGray colorspace. + + + + + Initializes a new instance of the class. + + The color space. + + + + Gets or sets the gray level for this color. + + The gray level of this color. + The acceptable range for this value is [0.0 1.0]. + 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Represents a CalGray colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the black point. + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. Default value: [ 0.0 0.0 0.0 ]. + + + + Gets or sets the gamma. + + + + + Gets or sets the white point. + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. The numbers XW and ZW must be positive, and YW must be equal to 1.0. + + + + Represents a calibrated RGB color, based on a CalRGB colorspace. + + + + + Initializes a new instance of the class. + + The colorspace + + + + Gets or sets the Blue value. + + The blue level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest. + + + + Gets or sets the green level for this color. + + The green level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Gets or sets the red level for this color. + + The red level of this color. + The acceptable range for this value is [0.0 1.0]. 0.0 means the darkest color that can be achieved, and 1.0 means the lightest color. + + + + Representing a CalRGB colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the black point. + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the gamma. + + An array of three numbers [GR GG GB] specifying the gamma for the red, green, and blue components of the color space. + + + + Gets or sets the colorspace transformation matrix. + + An array of nine numbers [XA YA ZA XB YB ZB XC YC ZC] specifying the linear interpretation of the decoded A, B, and C components of the color space with respect to the final XYZ representation. + + + + Gets or sets the white point. + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. + + + + Represents the base class for all colorspaces. + + + + + Gets Pdf primitive representing the font. + + + + + Checks whether the object is similar to another object. + + The object to compare witht ehcurrent object. + True - if the objects have equal internals and can share them, False otherwise. + + + + Represents a device colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the DeviceColorSpaceType + + + + + Represents the extended color, based on a complex colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets the Colorspace + + + + + Represents an ICC color, based on an ICC colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the color components. + + An array of values that describe the color in the ICC colorspace. + The length of this array must match the value of ColorComponents property on the underlying ICC colorspace. + + + + Represents an ICC based colorspace.. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the alternate color space. + + The alternate color space to be used in case the one specified in the stream data is not supported. + + + + Gets or sets the color components. + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. As of PDF 1.4, this value must be 1, 3 or 4. + + + + Gets or sets the profile data. + + The ICC profile data. + + + + Gets or sets the range for color components. + + An array of 2 ColorComponents numbers [ min0 max0 min1 max1 ... ] specifying the minimum and maximum valid values of the corresponding color components. These values must match the information in the ICC profile. + + + + Set the Color Profile. + + ICC profile data. + + + + Represents an indexed color, based on an indexed colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + + + + Gets or sets the color index + + The index of the select color. + The acceptable range for this value is 0 - MaxColorIndex. + + + + Represents an indexed colorspace. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the base colorspace. + + The color space in which the values in the color table are to be interpreted. + + + + Gets or sets the index of the max color. + + The maximum index that can be used to access the values in the color table. + + + + Gets or sets the color table. + + The table of color components. + The color table data must be m * (maxIndex + 1) bytes long, where m is the number of color components in the base color space. Each byte is an unsigned integer in the range 0 to 255 that is scaled to the range of the corresponding color component in the base color space; that is, 0 corresponds to the minimum value in the range for that component, and 255 corresponds to the maximum. + + + + Gets the profile data. + + The profile data. + + + + Represents a calibrated Lab color, based on a Lab colorspace. + + + + + Initializes a new instance of the class. + + The ColorSpace. + + + + Gets or sets the a* component for this color. + + The a* component of this color. + The range for this value is defined by the Range property of the underlying Lab colorspace. + + + + Gets or sets the b* component for this color. + + The b* component of this color. + The range for this value is defined by the Range property of the underlying Lab colorspace. + + + + Gets or sets the l component for this color. + + The l component of this color. + The acceptable range for this value is [0.0 100.0]. 0.0 means the darkest color that can be achieved, and 100.0 means the lightest color. + + + + Represents a Lab colorspace + + + + + Initializes a new instance of the class. + + + + + Gets or sets BlackPoint + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the Range + + An array of three numbers [XB YB ZB] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse black point. + + + + Gets or sets the white point + + An array of three numbers [XW YW ZW] specifying the tristimulus value, in the CIE 1931 XYZ space, of the diffuse white point. + + + + Represents a separation color, based on a separation colorspace. + + + + + Initializes a new instance of the class. + + The colorspace. + The acceptable range for this value is [0.0 1.0]. 0.0 means the lightest color that can be achieved, and 1.0 means the darkest color. + + + + The acceptable range for this value is [0.0 1.0]. 0.0 means the lightest color that can be achieved, and 1.0 means the darkest color. + + + + + Represents a separation colorspace + + + + + Initializes a new instance of the PdfSeparationColorSpace class. + + The name of the colorant + The base color to be used + + + + The base color to be used. + + + + + Gets or sets the alternate color spaces. + + The alternate color space to be used when the destination device does not support separation colorspace. + + + + The name of the colorant. + + + + + Gets or sets the tint transform function for the this colorspace. + + Tint transform function for the colorspace. + + + + Get the profile data. + + The profile data + + + + original glyph bounds + + + + + glyph info has only essential layout detail (this is our extension) + + + + + TrueType outline, offset glyph points + + + + + + + + TrueType outline, transform normal + + + + + + + + + + TrueType outline glyph clone + + + + + + + + append data from src to dest, dest data will changed*** + + + + + + + Initializes a new instance of the class. + + + + + Gets the identity matrix. + + The identity matrix. + + + + Element (1,1) + + + + + Element (1,2) + + + + + Element (2,1) + + + + + Element (2,2) + + + + + Element (3,1) + + + + + Element (3,2) + + + + + Initializes a new instance of the struct. + + The value that will be assigned to all components. + + + + Initializes a new instance of the struct. + + The value to assign at row 1 column 1 of the matrix. + The value to assign at row 1 column 2 of the matrix. + The value to assign at row 2 column 1 of the matrix. + The value to assign at row 2 column 2 of the matrix. + The value to assign at row 3 column 1 of the matrix. + The value to assign at row 3 column 2 of the matrix. + + + + SharpFont's TrueType Interpreter + + + + + read float, 2.14 format + + + + + + + 16.16 float format + + + + + + + Description of Glyph. + + + + + Description of GlyphMatrix. + + + + + Max width value. + + + + + Description of IFont. + + + + + Description of Glyph. + + + + + Description of TrueTypeFont. + + + + + Get the outline glyph for glyph of a given character code and name. + + + + + + + Gets the path to determine wherther you need to move the point ,return results + + character path + int startIndex + int endIndex + + + + + Recalculate line values + + + + + Get metric data from Table_hmtx.longHorMetric table + + + + + + + Convert character original data to glyph + + + + + + + + + Converter GlyphData to path + + + + + + + + + modify glyphPointF + + + + + + + + + Convert to original data to glyphData + + + + + + + matrix apply to glyph + + + + + + + + Render a simple glyf + + int glyphId + Table_glyf.header header + + + + + Get a empty outlineGlyph + + + + + + It is east asian char? + + + + + + + Get the bytes count consume form char codes string. + + The code space range list + The bytes count. + + + + Get the part matched code space ranges. + + + The code sapce ranges + + + + + + + + + + + + get the name of a glyph from its encoding value (NOT the character + + + + + + + Writes short value into the font stream + + Short value to be written + + + + Writes integer value into the font stream + + Integer value to be written + + + + Writes string value into the font stream + + String value to be written + + + + Write the bytes into the font stream + + byte array to be written + + + + Values for platformID + + + + + + Values for platformSpecificID if platform is Mac + + + + + + Values for platformSpecificID if platform is Unicode + + + + + + Values for language ID if platform is Mac + + + + + + Values for nameID + + + + + + Font dictionary. + + + + + Get the origin subtyep. + + The origin subtyep. + + + + Recreate an new unicode char + + The old char + A new unicode char + + + + Get Cmap by MapName + + + + + + + This outputs individual glyph index to character code mapping for each char. + If you are doing any work on CMap, you need to open the resulting file in Adobe Reader, + select and copy text, paste it to notepad and see if it was correctly mapped to characters. + It is especially important to do so for TestUnicode.doc. + + + + + + + Get the glyph id. + + The character id + The glyph id + + + + Get the outline of a character given the character name or src char + + + + + + + + + + It is TYPE_CMAP or TYPE_ENCODING? + + + + + + Get a glyph outline by glyphId + + + + + + + Get a glyph outline by glyphId or name + + + + + + + + + + + + + + + + + + + + + + + + + custom coordinate point + + + + + a cache of glyphs indexed by character + + + + + Character Spacing width + + + + + Set Character Spacing width + + + + + Get the glyph for a given character code and name + + the character code of this glyph + the name of this glyph or null if unknown + the name of this glyph or null if unknown + TypeEncodingCmap type + a glyph for this character + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + + Releases or clear memory + + + + A class for performing LZW decoding. + + + Method to decode LZW compressed data. + The compressed data + Array to return the uncompressed data in + The number of rows the compressed data contains + The decoded data + + + Initialize the string table. + + + Write out the string just uncompressed. + the byte string for uncompressed write out + + + Add a new string to the string table. + + the byte string at the end of which the new string + will be written and which will be added to the string table + + the byte to be written to the end of the old string + + + Add a new string to the string table. + the byte string which will be added to the string table + + + Append newString to the end of oldString. + the byte string at the end of which the new string will be written + the byte to be written to the end of the old string + the byte string which is the sum of the new string and the old string + + + + The number of bits used to represent each color component + + + + + fail (by default) + + + + + return something successfully read + + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + + Summary description for DeflaterOutputStream. + + + + + Provides color caching + + + + + Provides color caching of last color + + + + + specify image quality level + + + + + default quality + + + + + high quality + + + + + find text ignorecase + + + + + Set find text + + + + + find text color + + + + + draw border pen + + + + + Initialize the page. + + The page + The needparsing + + + + Whether this page is blank. + + if blank ,return true,or false + + + + Whether this page content is blank. + + + + + + + Dispose the resources. + + + + + Dispose resource. + + The disposing + + + + Provides image render events + + + + + + + Converts an angle in degrees to radians. + + Double value of angle in degrees to convert. + The value of the angle in radians. + + + + Converts an angle in radians to degrees. + + Double value of angle in radians to convert. + The value of the angle in degrees. + + + + Bug3009,baseimage color and annot image color multiply,for annot + + + + + + + + bitmap ,rgb model to cmyk model + + + + + + + Apply the mask when the mask format is PdfArray. + + + + + + + + Apply the mask when the mask format is PdfString. + + + + + + + + According to Path to determine whether it is a straight line. If All points of X or Y are equal, then is is a straight line + + + + + + + Parse pdf array to rgb components. + + The pdf array + + + + Get Ff value from annotation dictionary + + The annotation dictionary + + + + + Get FT value from annotation dictionary + + The annotation dictionary + + + + + Parse annotation opt item to dictionary. + + The annotation dictionary + + + + + Get V value from annotation dictionary + + + + + + + More than two offsets + + string strOffset) + one offset + + + + Destructor + + + + + Clean up Memory + + + + + Creates the I font. + + Name of the font. + + + + + Match Font by fontName + + + + + + + + Add fake font to private list. + + + + + + Measure string width which the font dictionary has no width entry. + + The text string + The font size + The text sacle + The string width + + + + Get glyph by cid. + + The cid + The glyph + + + + Get the glyph id. + + The character ID + The glyph id + + + + Get descendant font. + + The descendant font + + + + Draw text of embed font to page + + Render object + + + + + + When the font has no encoding entry ,or the font descriptor`s symbolic flag + is set , which case should use the character code mapping glyph description + from the subtable + + if has no encoding entry or set symbolic flag return true + + + + Collects all the Pattern elements in the pdf document + + containing all the resources of the document + dictionary of Pattern elements + + + + Handle the text annotation widget multiline + + the anntation + the true type font + the rectangle + a text rectangle + + + + Get opttion value from PdfArray + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bug654 + + + + + + + + get PdfRecordCollection from resources + + + + + + + 根据dpi缩放后的图片 + + + + + + + + + Render inline image. + + + + + + + for Ap Resources + + + + + + + draw only a single comment + + + + + specify the quality level of decode image + + + + + specify if the Decoder if for SMask image + + + + + specify the quality level of decode image + + + + + get columns from DecodeParms + + + + + get colors from DecodeParms + + + + + Get decode arrays or softmask image from image dictionary + + + + + Get decode arrays or mask image from image dictionary + + + + + Gets Image mask. + + + + + Load image from stream. + + + + + + + Get element data from decode arrays + + + + + + + Stream stream,Bug_337 + + + + + + + Get the image decode array. + + The image decode array + + + + + + + + + + + + + + + Get deviceGray image for Filter LZWDecode + + + + + + + Get Bitmap Stream from DeviceGray Color Space + + PDFColorSpace colorspace + Stream data + int grayWidth + int grayHeight + bool mask + + + + + Get Bitmap Stream from DeviceGray Color Space + + image Stream + bool mask + + + + + Get color space name + + + + + + + + Parse colorspace. + + The colorspace + The list + + + + Get inline image colorspace. + + The colorspace + The pdf array + + + + + + + + + + + + Clip path + + + + + Determine whether there is Tj in front of Td,TD,cm,T* ,TL,Tw,Tc,Tz. if not ,you need to calculate the translation + + + + + Save the translation data + + + + + From BT,save the current Tm matrix + + + + + mapping Transform from user space to device space + + + + + mapping Transform from default user space to user space + + + + + Text leading + + + + + horizontal scaling + + + + + word spacing + + + + + Current text element + + + + + Character spacing. + + + + + Colorspace table of page resource + + + + + Pattern table of page resource + + + + + + + + + + Gets or sets the isprint. + + + + + set Box Rectangle,when dictionary FT=Tx + + + + + set FT type from form field + + + + + mapping Transform from user space to device space + + + + + Mapping transform from default user space to user space + + + + + pdf to image,reference bitmap + Bug3009,draw annot,annot is image and BM is Multiply,need backgroundimage and annot image is Multiply + + + + + Extract Signature As Images + + + + + + + Checking and processing number string. + + The curve + The points + + + + Set Rectangle from pdf command. + + + + + + Checking whether the string number is valid ,if true , processing the number. + + The number of string format + if vailded,return true,or false + + + + Checking whether the string number array is valid ,if true , processing the number. + + The array number of string format + if vailded,return true,or false + + + + Set Rectangle path from pdf command. + + + + + + set BBox for Form object. + + + + + + Apply Color + + + + + + + + + Checking and processing points. + + The points + The points + + + + Set page RotateAngle + + Current Pdf Page + + + + scale + + + + + + + + + + apply the line dash pattern + + the pen + + + + when the only one element in dash pattern is 0 the line should be unvisible . + + the dash pattern + first element is zero return true or false + + + + Get the dash pattern + + + + + Fixed zero of gaps for dash pattern,if the gap is zero,it will not be diaplayed in dash lines. + + the dash pattern + the dash offset + + + + Remove zero value of blank cap in dash pattern. + + the dash pattern + the dashOffset + + + + Set the property of pen + + the pen + the dash pattern + the dash offset + + + + Fixed zero of dashes for dash pattern.if the dash is zero,defalut value is one device pixel. + + the dash pattern + the dash offset + the pen + + + + Convert pdf dash pattern to .net dash pattern + + the scaled pen width + the dash pattern + the pen width + + + + execute do command + + + + + + Draw Type3Font + + + + + + + Get Resources obj from Xobject + + + + + + + draw page content + + + + + draw page annot + + + + + Modify Bug1801,pdf to xps(false),font whether need dispose + + + + + Get the pdf annotation. + + The annotation dictionary + The pdf annotation + + + + Parse signle annotation + + IPdfPrimitive obj + + + + + + + + + + + get form field object + + + + + + read ap content from Parent + + + + + + + + + Execute pdf command. + + + + + + Get image bounds. + + + + + initialize annot state + + + + + Render text element + + text elements + token type + + + + Render text to pdf drawing context. + + + + + + + + + whether enable highLight for formField + + + + + Incorrect entry written to dictionary(写入字典的条目不正确,少了一些项,导致绘制AP内容不正确),Bug335,107 + + + + + + highLight color for form field + + + + + draw only a single comment + + + + + Draw all annotations for the current page,and highlight + + + /// + + + + Draw one annotation for the current page,and highlight + + + + + + + + draw button for combox + + + + + + draw ComboButton for combobox annot + + + + + + + + + Draw border for must input box + + + + + + Draw highlight for form field + + + + + + Need to draw highlight? + + + + + + Is it read-only? + + + + + + + Is it required, must have a value. + + + + + + + Get annotation location + + + + + + + specify the quality level of render image + + + + + Determine whether there is Tj in front of Td,TD,cm,T* ,TL,Tw,Tc,Tz. if not ,you need to calculate the translation + + + + + Save the translation data + + + + + horizontal scaling + + + + + + + + + + specify the quality level of render image + + + + + Set rectangle path from pdf command. + + + + + + Apply Color Space,Bug-654 + + + + + + + Render the option content + + The xobject element + + + + Render OCGs contents + + The ocgs dictionary + The xobject element + + + + + + + Get form Field Name + + + + + + + Parse the element in MK entry of annotation + + The element in MK entry + + + + Draw ap dictioanry. + + The annotation element + The annotation type + The rect + + + + Get the pdf annotation. + + The annotation dictionary + The pdf annotation + + + + Is valid annotation type. + + The annotation type + The is high light + Whether is display the annotation + If valid,return true,or false + + + + + + + + + + + + read ap content from Parent + + + + + + + + + + + + + + + + Add hyperlinks. + + The annotation elements + + + + Execute pdf command. + + + + + + Render text + + The token type + The structure + The decode text + The increase width + + + + Render text element + + text elements + token type + + + + Calculate the bytes count that mapping single glyph + + The pdf font sturucture + The bytes count + + + + Render text to a single character + + The font structure + The decoded text + The increase width + + + + Render text to a string + + The pdf font structure + The decode text + The increase width + + + + Spilt undecode bytes string + + The decode string + The structure + An array of undecode byte + + + + whether to render text as a single character + + The font structure + if the text is written vertically,return true,or fales + + + + Gets the presenter. + + The presenter. + + + + Graphic stats + + + + + Gets or sets current colorsapce. + + + + + Gets or sets Stroking colorsapce. + + + + + Append hyperlink. + + The rectanglef + The url + + + + word spacing + + + + + word spacing + + + + + Render text embed font or installed system font + + + + + + + + + + + + + + + Dispose ImageBrush + + + + + used in pdf2xps when it has pattern + + + + + Create the brush + + The byte array of image for PsTextureBrush + Image transform + The presenter type + + + + + + Create the brush. + + The hatch style. + The fore color. + The back color. + The presenter type. + + + + + Dispose ImageBrush + + + + + Initializes a new instance of the BrushLayer + + The byte array of image for PsTextureBrush + Image Transform + + + + Initializes a new instance of the BrushLayer. + + A rectangular region that defines the starting and ending points of the gradient. + Start Color. + End Color. + + + + Initializes a new instance of the BrushLayer + + The hatch style. + The fore color. + The back color. + + + + Append hyper link. + + The hyper link + + + + Destructor + + + + + Clean up Memory + + + + + Loads fonts. + + + + + + + Font cache. + + + + + Global font cache. + + + + + Current instance font cache. + + + + + Taged objects(String,ArrayList). + + + + + Construct instance. + + + + + Destruct instance. + + + + + Dispose instance resources. + + + + + Clear cache(except global cache). + + + + + Store object with tag. + A tag can corresponds to multiple objects. + + The taged object. + The taged object identity. + The tag. + + + + Get the objects by a tag. + + The tag. + + The dictionary(id,tagedObject) corresponding to the tag. + If not matched,return null. + + + + + Get the objects by a tag. + + The taged object identity. + The tag. + The object corresponding to the id and tag. + + + + Add a ttfont to cache. + + The ttfont. + The font family name. + The cache duration. + + + + Add a ttfont to cache. + + The ttfont data. + The font name. + The cache duration. + + + + Add a ttfont to cache. + + The ttfont data. + The font name. + The cache duration. + whether fonts are embedded or not + + + + Fetch the ttfont. + + The font family name. + The font style. + The substitute font family name. + + if not exist matched(substituted) font,return any font. + + + + + Font cache duration. + + + + + Living in the runtime of the program. + + + + + Only living in instance. + + + + + Gets the char code + + + + + Represents 10 byte series of numbers is used to describe the visual characteristics of a given typeface. + + + + + Gets the bounding box in design units of the font. + + + + + Get mPostscriptTtFontKey + + + + + Destructor + + + + + Clean up Memory + + + + + See http://www.microsoft.com/typography/otspec/vhea.htm for more info. + + + + + Container for part of APS tree which is related to the logical structure element. + + + + + Language of the container content. + + + Probably it is not the best place to store the content language. + But for now it is the easiest way to output the text language the same way as MW does. + + + + + APS container id. + + + + + The font strikeout. + + + + + Gets the width of the outline. + + + The width of the outline. + + + + + Content of text box. + + + + + Compares the floating number. + + The value1. + The value2. + The accuracy. + return 0,val1 equal val2;return 1,val1 greater than val2;return -1,val1 less than val2; + + + + Compares the double number. + + The value1. + The value2. + The accuracy. + return 0,val1 equal val2;return 1,val1 greater than val2;return -1,val1 less than val2; + + + + Font used for the 0..127 characters. + + This value is not used as , + may be it's better to create separate enum for character hints. + + + + Font used for the East Asian characters. + Also known as East Asian. + + + + + Font used for the Complex Script characters. + + + + + Font used for characters that do not fall into any of the above ranges. + Also known as High ASCII. + + + + + Converts an APS path or a clipping region into XPS Abbreviated Syntax. + The technique is the same as in PdfPathBuilder, but Syntax of path is different + + + + + 20.1.2.2.25 nvCxnSpPr (Non-Visual Properties for a Connection Shape) + 20.1.2.2.26 nvGraphicFramePr (Non-Visual Properties for a Graphic Frame) + 20.1.2.2.27 nvGrpSpPr (Non-Visual Properties for a Group Shape) + 20.1.2.2.28 nvPicPr (Non-Visual Properties for a Picture) + 20.1.2.2.29 nvSpPr (Non-Visual Properties for a Shape) + + + + + Reads 'cNvPr' Non-Visual Drawing Properties. + + + + + Calculates position offset of the textbox content. + + + + + Applies simplified blur to the image. + + + + + Writes blend mode. + + The blend mode. + + + + Writes an image to the PDF stream. + + + + + Writes an image to the PDF stream. + + + + + Get the pdf image data. + + The pdf image data. + + + + Occurs when end page. + + + + + Represents the method that will handle an event that with event data. + + The source of the event + args that contains event data + + + + PdfRendererEndPageEventArgs is the class containg event data. + + + + + Represents the current Pdf documnet. + + + + + Represents the current Pdf page. + + + + + Whether the image data is pdf hatch data. + + The pdf image + If the image data is pdf hatch data,return true ,or false. + + + + 如果是泰文字符串,调整Glyphs中的Text。用于组合字符被拆分在三个或者两个Glyphs对象中的情况 + + + + + + 获取当前Glyphs的下一个Glyphs,两个Glyphs不一定在同一个Parent中 + + + + + + + 是否是主体字符,主体字符上下可以叠加符合要求的字符 + + + + + + + 是否是可以叠加于主体字符之上的字符[帽子字符] + + + + + + + 是否是声调字符,这种字符可以叠加在主体上,当主体字符上叠加了[帽子字符]时,叠加在帽子字符上 + + + + + + + 实现两个Glyphs的组合字符拼接 + + 当前glyphs,提供其Text结尾的字符 + 下一个可用的glyphs,提供其Text的开始字符 + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Ps.XmlDocumentBuilder,IsValidXmlChar(char c) + + + + + + + Reverse y position. + + + + + + + + + + + Gets a value indicating whether The blank distance to the left + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the top + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the right + of the glyph relative to the origin[0,0]. + + + + + Gets a value indicating whether The blank distance to the bottom + of the glyph relative to the origin[0,0]. + + + + + Gets the design width of the glygh. + + + + + Gets the actual width of the glygh. + + + + + Gets the left side bearing. + + + + + Gets the right side bearing. + + + + + Gets a value indicating whether this is empty. + + + + An identity transform is one in which the output coordinates are + always the same as the input coordinates. + If this transform is anything other than the identity transform, + the type will either be the constant GENERAL_TRANSFORM or a + combination of the appropriate flag bits for the various coordinate + conversions that this transform performs. + + + A translation moves the coordinates by a constant amount in x + and y without changing the length or angle of vectors. + + + A uniform scale multiplies the length of vectors by the same amount + in both the x and y directions without changing the angle between + vectors. + This flag bit is mutually exclusive with the TypeGeneralScale flag. + + + A general scale multiplies the length of vectors by different + amounts in the x and y directions without changing the angle + between perpendicular vectors. + This flag bit is mutually exclusive with the TypeUniformScale flag. + + + This constant is a bit mask for any of the scale flag bits. + + + This flag bit indicates that the transform defined by this object + performs a mirror image flip about some axis which changes the + normally right handed coordinate system into a left handed + system in addition to the conversions indicated by other flag bits. + A right handed coordinate system is one where the positive X + axis rotates counterclockwise to overlay the positive Y axis + similar to the direction that the fingers on your right hand + curl when you stare end on at your thumb. + A left handed coordinate system is one where the positive X + axis rotates clockwise to overlay the positive Y axis similar + to the direction that the fingers on your left hand curl. + There is no mathematical way to determine the angle of the + original flipping or mirroring transformation since all angles + of flip are identical given an appropriate adjusting rotation. + + + This flag bit indicates that the transform defined by this object + performs a quadrant rotation by some multiple of 90 degrees in + addition to the conversions indicated by other flag bits. + A rotation changes the angles of vectors by the same amount + regardless of the original direction of the vector and without + changing the length of the vector. + This flag bit is mutually exclusive with the TypeGeneralRotation flag. + + + This flag bit indicates that the transform defined by this object + performs a rotation by an arbitrary angle in addition to the + conversions indicated by other flag bits. + A rotation changes the angles of vectors by the same amount + regardless of the original direction of the vector and without + changing the length of the vector. + This flag bit is mutually exclusive with the + + + This constant is a bit mask for any of the rotation flag bits. + + + This constant indicates that the transform defined by this object + performs an arbitrary conversion of the input coordinates. + If this transform can be classified by any of the above constants, + the type will either be the constant TypeIdentity or a + combination of the appropriate flag bits for the various coordinate + conversions that this transform performs. + + + This constant is used for the internal state variable to indicate + that no calculations need to be performed and that the source + coordinates only need to be copied to their destinations to + complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the translation components of the matrix (m02 and m12) need + to be added to complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the scaling components of the matrix (m00 and m11) need + to be factored in to complete the transformation equation of + this transform. If the ApplyShear bit is also set then it + indicates that the scaling components are not both 0.0. If the + ApplyShear bit is not also set then it indicates that the + scaling components are not both 1.0. If neither the ApplyShear + nor the ApplyScale bits are set then the scaling components + are both 1.0, which means that the x and y components contribute + to the transformed coordinate, but they are not multiplied by + any scaling factor. + + + This constant is used for the internal state variable to indicate + that the shearing components of the matrix (m01 and m10) need + to be factored in to complete the transformation equation of this + transform. The presence of this bit in the state variable changes + the interpretation of the ApplyScale bit as indicated in its + documentation. + + + The X coordinate scaling element of the 3x3 + affine transformation matrix. + + + The X coordinate shearing element of the 3x3 + affine transformation matrix. + + + The X coordinate of the translation element of the + 3x3 affine transformation matrix. + + + The Y coordinate shearing element of the 3x3 + affine transformation matrix. + + + The Y coordinate scaling element of the 3x3 + affine transformation matrix. + + + The Y coordinate of the translation element of the + 3x3 affine transformation matrix. + + + This field keeps track of which components of the matrix need to + be applied when performing a transformation. + @see #ApplyIdentity + @see #ApplyTranslate + @see #ApplyScale + @see #ApplyShear + + + This field caches the current transformation type of the matrix. + @see #TypeIdentity + @see #TypeTranslation + @see #TypeUniformScale + @see #TypeGeneralScale + @see #TypeFlip + @see #TypeQuadrantRotation + @see #TypeGeneralRotation + @see #TypeGeneralTransform + @see #TypeUnknown + + + Manually recalculates the state of the transform when the matrix + changes too much to predict the effects on the state. + The following table specifies what the various settings of the + state field say about the values of the corresponding matrix + element fields. + Note that the rules governing the SCALE fields are slightly + different depending on whether the SHEAR flag is also set. +
+                                 SCALE            SHEAR          TRANSLATE
+                                m00/m11          m01/m10          m02/m12
+            
+             IDENTITY             1.0              0.0              0.0
+             TRANSLATE (TR)       1.0              0.0          not both 0.0
+             SCALE (SC)       not both 1.0         0.0              0.0
+             TR | SC          not both 1.0         0.0          not both 0.0
+             SHEAR (SH)           0.0          not both 0.0         0.0
+             TR | SH              0.0          not both 0.0     not both 0.0
+             SC | SH          not both 0.0     not both 0.0         0.0
+             TR | SC | SH     not both 0.0     not both 0.0     not both 0.0
+             
+
+ + This constant is used for the internal state variable to indicate + that the translation components of the matrix (m03, m13, m23) need + to be added to complete the transformation equation of this transform. + + + This constant is used for the internal state variable to indicate + that the scaling components of the matrix (m00, m11, m22) need + to be factored in to complete the transformation equation of + this transform. If the ApplyShear bit is also set then it + indicates that the scaling components are not all 0.0. If the + ApplyShear bit is not also set then it indicates that the + scaling components are not all 1.0. If neither the ApplyShear + nor the ApplyScale bits are set then the scaling components + are both 1.0, which means that the x, y and z components contribute + to the transformed coordinate, but they are not multiplied by + any scaling factor. + + + This constant is used for the internal state variable to indicate + that the shearing components of the matrix (m01, m02, m10, m12, m20, m21) + need to be factored in to complete the transformation equation of this + transform. The presence of this bit in the state variable changes the + interpretation of the ApplyScale bit as indicated in its documentation. + + + This constant is used for the internal state variable to indicate + that the projection components of the matrix (m30, m31, m32) need + to be factored in to complete the transformation equation of this + transform. + + + This constant is used for the internal state variable to indicate + that the overall scaling component of the matrix (m33) need to be + factored in to complete the transformation equation of this transform. + + + The X coordinate scaling element of the 4x4 + affine transformation matrix. + + + The YX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The XZ coordinate shearing element of the 4x4 + affine transformation matrix. + + + The X coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The YX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Y coordinate scaling element of the 4x4 + affine transformation matrix. + + + The YZ coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Y coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The ZX coordinate shearing element of the 4x4 + affine transformation matrix. + + + The ZY coordinate shearing element of the 4x4 + affine transformation matrix. + + + The Z coordinate scaling element of the 4x4 + affine transformation matrix. + + + The Z coordinate of the translation element of the + 4x4 affine transformation matrix. + + + The X projection element of the 4x4 + affine transformation matrix. + + + The Y projection element of the 4x4 + affine transformation matrix. + + + The Z projection element of the 4x4 + affine transformation matrix. + + + The overall scaling element of the 4x4 + affine transformation matrix. + + + This field keeps track of which components of the matrix need to + be applied when performing a transformation. + @see #ApplyIdentity + @see #ApplyTranslate + @see #ApplyScale + @see #ApplyShear + @see #ApplyProjection + @see #ApplyOverallScale + + + Manually recalculates the state of the transform when the matrix + changes too much to predict the effects on the state. + + + + Blend transparency whith background color. + + background color + + + + Get MacOS font folders. + + + + + + 电子签章版本号 + + + + + 版本号 + + + + + 版本持有器 + + + + + 版本号 + + + + + 没有构造的对象 + + + + + + + 版本解析 + + + + + 解析电子印章版本 + + 带解析数据,可以是字节串也可以是ASN1对象 + 带有版本的ASN1对象序列 + + + + 解析电子签章数据版本 + + 带解析数据,可以是字节串也可以是ASN1对象 + 带有版本的ASN1对象序列 + + + + 厂商自定义数据 + + + + + 自定义扩展字段标识 + + + + + 自定义扩展字段是否关键 + + 默认值FALSE + + + + + + 自定义扩展字段数据值 + + + + + 自定义属性字段序列 + + + + + 电子印章数据 + + + + + 印章信息 + + + + + 制章人对印章签名的信息 + + + + + 印章图片信息 + + + + + 图片类型 + + 代表印章图片类型,如 GIF、BMP、JPG、SVG等 + + + + + + 印章图片数据 + + + + + 图片显示宽度,单位为毫米(mm) + + + + + 图片显示高度,单位为毫米(mm) + + + + + 印章属性信息 + + + + + 单位印章类型 + + + + + 个人印章类型 + + + + + 印章类型 + + 1 - 单位印章 + 2 - 个人印章 + + + + + + 印章名称 + + + + + 签章人证书列表 + + + + + 印章制做日期 + + + + + 印章有效起始日期 + + + + + 印章有效终止日期 + + + + + 头信息 + + + + + 电子印章数据结构版本号,V4 + + + + + 电子印章数据标识符 + 固定值"ES" + + + + + 电子印章数据标识符 + + 固定值"ES" + + + + + + 电子印章数据版本号标识 + + + + + 电子印章厂商ID + + 在互联互通时,用于识别不同的软件厂商实现 + + + + + + 印章信息 + + + + + 头信息 + + + + + 电子印章标识符 + + 电子印章数据唯一标识编码 + + + + + + 印章属性信息 + + + + + 电子印章图片数据 + + + + + 自定义数据 + + + + + 电子签章数据 + + + + + 待电子签章数据 + + + + + 电子签章中签名值 + + + + + 印章签名信息 + + + + + 代表对电子印章数据进行签名的制章人证书 + + + + + 代表签名算法OID标识 + + 遵循 GM/T 006 + + + + + + 制章人的签名值 + + 制章人对电子印章格式中印章信息SES_SealInfo、制章人证书、签名算法标识符按 SEQUENCE方式组成的信息内容的数字签名 + + + + + + 待电子签章数据 + + + + + 版本信息 + + + + + 电子印章 + + + + + 签章时间信息 + + 可以是时间戳,也可以是UTCTIME时间; + + + + + + 原文杂凑值 + + + + + 原文数据的属性信息 + + 如文档ID、日期、段落、原文内容的字节数、指示信息、签章保护范围等 + + + 自行定义 + + + + + + 签章人对应的签名证书 + + + + + 签名算法标识符 + + + + + 签章者证书杂凑值列表 + + + + + 签章者证书杂凑值 + + + + + 签章者证书杂凑值 + + + + + 自定义类型 + + + + + 证书杂凑值 + + + + + 签章者证书列表 + + + + + 电子印章数据 + + + + + 印章信息 + + + + + 制章人证书 + + + + + 签名算法标识符 + + + + + 签名值 + + + + + 签章者证书信息列表 + + + + + 签章者证书列表 + + + + + 签章者证书杂凑值列表 + + + + + 印章属性 + + + + + 签章者证书信息类型: 1 - 数字证书类型 + + + + + 签章者证书信息类型: 2 - 数字证书杂凑值 + + + + + 印章类型 + + + + + 印章名称 + + + + + 签章者证书信息类型 + + + + + 签章者证书信息列表 + + SES_CertList + + + + + + 印章制做日期 + + + + + 印章有效起始日期 + + + + + 印章有效终止日期 + + + + + 印章信息 + + + + + 头信息 + + + + + 电子印章标识符 + + 电子印章数据唯一标识编码 + + + + + + 印章属性信息 + + + + + 电子印章图片数据 + + + + + 自定义数据 + + + + + 电子签章数据 + + + + + 签章信息 + + + + + 签章者证书 + + + + + 签名算法标识 + + + + + 签名值 + + + + + 对签名值的时间戳【可选】 + + + + + 签章信息 + + + + + 电子印章版本号,与电子印章版本号保持一致 + + + + + 电子印章 + + + + + 签章时间 + + + + + 原文杂凑值 + + + + + 原文数据的属性 + + + + + 自定义数据 【可选】 + + + + + 动作序列 + + 图 19 大纲节点结构 + + + + + + 【必选】 + 增加 到动作列表 + + 当此大纲节点被激活时将执行的动作,关于动作的描述详见第 14 章 + + + + 动作 + this + + + + 【必选】 + 获取 动作列表 + + 当此大纲节点被激活时将依次执行的动作,关于动作的描述详见第 14 章 + + + + 动作 + + + + 跳转的目的书签 + + 表 53 跳转动作属性 + + + + + + 【必选 属性】 + 设置 目标书签的名称,引用文档书签中的名称 + + 目标书签的名称 + this + + + + 【必选 属性】 + 获取 目标书签的名称,引用文档书签中的名称 + + 目标书签的名称 + + + + 目标区域 + + 图 75 目标区域结构 + + + + + + 【必选 属性】 + 设置 目标区域的描述方法 + + 目标区域的描述方法 + this + + + + 【必选 属性】 + 获取 目标区域的描述方法 + + 目标区域的描述方法 + + + + 【必选】 + 设置 引用跳转目标页面的标识 + + 引用跳转目标页面的标识 + this + + + + 【必选】 + 获取 引用跳转目标页面的标识 + + 引用跳转目标页面的标识 + + + + 【可选】 + 设置 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + this + + + + 【可选】 + 获取 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + + + + 【可选】 + 设置 目标区域右上角 x坐标 + + 默认值为 0 + + + + 目标区域右上角 x坐标 + this + + + + 【可选】 + 获取 目标区域右上角 x坐标 + + 默认值为 0 + + + + 目标区域右上角 x坐标 + + + + 【可选】 + 设置 目标区域左上角 y坐标 + + 默认值为 0 + + + + 目标区域左上角 y坐标 + this + + + + 【可选】 + 获取 目标区域左上角 x坐标 + + 默认值为 0 + + + + 目标区域左上角 x坐标 + + + + 【可选】 + 设置 目标区域右下角 y坐标 + + 默认值为 0 + + + + 目标区域右下角 y坐标 + this + + + + 【可选】 + 获取 目标区域右下角 y坐标 + + 默认值为 0 + + + + 目标区域右下角 y坐标 + + + + 【可选】 + 设置 目标区域页面缩放比例 + + 为 0 或不出现则按照但前缩放比例跳转,可取值范围[0.1 64.0] + + + + 目标区域页面缩放比例 + this + + + + 【可选】 + 获取 目标区域页面缩放比例 + + 为 0 或不出现则按照但前缩放比例跳转,可取值范围[0.1 64.0] + + + + 目标区域页面缩放比例 + + + + 申明目标区域的描述方法 + + 表 54 目标区域属性 + + + + + + 目标区域由左上角位置(Left,Top) + 以及页面缩放比例(Zoom)确定 + + + + + 适合整个窗口区域 + + + + + 适合窗口宽度,目标区域由Top确定 + + + + + 适合窗口高度,目标区域由Left确定 + + + + + 适合窗口内的目标区域,目标区域为 + (Left,Top,Right,Bottom)所确定的矩形区域 + + + + + 获取目标区域实例 + + 类型字符串 + 实例 + + + + 跳转动作表明同一个文档内的跳转,包括一个目的区域 + 或书签位置 + + 图 74 跳转动作结构 + + + + + + 【必选】 + 设置 跳转的目的区域 + + 跳转的目的区域 + this + + + + 【必选】 + 设置 跳转的目标书签 + + 跳转的目标书签 + this + + + + 【必选】 + 获取 跳转动作的目标 + + 可能是 CT_Dest 或 Bookmark,可以使用instanceof判断类型并转换 + + + + 跳转动作的目标 + + + + 用于描述Goto的目的地 + + + + + Movie 动作用于播放视频。 + + 图 79 播放视频动作属性 + + + + + + 【必选 属性】 + 设置 引用资源文件中定义的视频资源标识 + + 引用资源文件中定义的视频资源标识 + this + + + + 【必选 属性】 + 获取 引用资源文件中定义的视频资源标识 + + 引用资源文件中定义的视频资源标识 + + + + 【可选 属性】 + 设置 放映参数 + + 默认值为 Play + + + + 放映参数,参见 + this + + + + 【可选 属性】 + 获取 放映参数 + + 默认值为 Play + + + + 放映参数,参见 + + + + 放映参数属性 + + 表 59 放映参数属性 + + + + + + 播放 + + + + + 停止 + + + + + 暂停 + + + + + 继续 + + + + + 根据字符串类型获取 实例 + + 放映参数字符串 + 实例 + + + + 附件动作 + + 附件动作表明打开当前文档内的一个附件 + + + 图 76 附件动作结构 + + + + + + 【必选 属性】 + 设置 附件的标识(xs:IDREF) + + 附件的标识(xs:IDREF) + this + + + + 【必选 属性】 + 获取 附件的标识(xs:IDREF) + + 附件的标识(xs:IDREF) + + + + 【可选 属性】 + 设置 是否在新窗口中打开 + + true - 新窗口中打开 + this + + + + 【可选 属性】 + 获取 是否在新窗口中打开 + + true - 新窗口中打开 + + + + 动作类型 + + 表 51 动作类型属性 + + + + + + 播放音频动作 + + Sound 动作表明播放一段音频 + + + 图 78 播放音频动作结构 + + + + + + 【必选 属性】 + 设置 引用资源文件中的音频资源标识符 + + 引用资源文件中的音频资源标识符 + this + + + + 【必选 属性】 + 获取 引用资源文件中的音频资源标识符 + + 引用资源文件中的音频资源标识符 + + + + 【可选 属性】 + 设置 播放音量,取值范围[0,100] + + 播放音量,取值范围[0,100] + this + + + + 【可选 属性】 + 获取 播放音量,取值范围[0,100] + + 播放音量,取值范围[0,100] + + + + 【可选 属性】 + 设置 此音频是否需要同步播放 + + 如果此属性为 true,则 Synchronous 值无效 + + + 默认值为 false + + + + true - 同步; false - 异步 + this + + + + 【可选 属性】 + 获取 此音频是否需要同步播放 + + 如果此属性为 true,则 Synchronous 值无效 + + + 默认值为 false + + + + true - 同步; false - 异步 + + + + 【可选 属性】 + 设置 是否同步播放 + + true 表示后续动作应等待此音频播放结束后才能开始, + false 表示立刻返回并开始下一个动作 + + + + true - 同步顺序播放;false - 立刻返回开始下一个动作 + this + + + + 【可选 属性】 + 获取 是否同步播放 + + true 表示后续动作应等待此音频播放结束后才能开始, + false 表示立刻返回并开始下一个动作 + + + + true - 同步顺序播放;false - 立刻返回开始下一个动作 + + + + URI 动作 + + 图 77 URI动作属性 + + + + + + 【必选 属性】 + 设置 目标URI的位置 + + 目标URI的位置 + this + + + + 【必选 属性】 + 设置 目标URI的位置 + + 目标URI的位置 + + + + 【可选 属性】 + 设置 Base URI,用于相对地址 + + Base URI,用于相对地址 + this + + + + 【可选 属性】 + 设置 Base URI,用于相对地址 + + Base URI,用于相对地址 + + + + 动作类型结构 + + 图 73 动作类型结构 + + + + + + 【必选 属性】 + 设置 事件类型 + + 触发动作的条件,事件的具体类型见表 52 + + + + 事件类型 + this + + + + 【必选 属性】 + 获取 事件类型 + + 触发动作的条件,事件的具体类型见表 52 + + + + 事件类型 + + + + 【可选】 + 设置 多个复杂区域为该链接对象的启动区域 + + 该参数不出现时以所在图元或页面的外接矩形作为启动区域,见 9.3 + + + + 多个复杂区域为该链接对象的启动区域 + this + + + + 【可选】 + 获取 多个复杂区域为该链接对象的启动区域 + + 该参数不出现时以所在图元或页面的外接矩形作为启动区域,见 9.3 + + + + 多个复杂区域为该链接对象的启动区域 或 null + + + + 【必选】 + 设置 动作 + + 动作 + this + + + + 【必选】 + 获取 动作 + + 可通过 instanceof 判断动作的具体类型 + + + + 动作实体 + + + + 事件类型 + + 参照 52 事件类型 + + + + + + 文档打开 + + + + + 页面打开 + + + + + 单击区域 + + + + + 根据字符串获取匹配类型实例 + + 事件名称,只能是 DO,PO,CLICK + 实例 + 未知类型事件 + + + + 注释入口文件 + + 注释是板式文档形成后附加的图文信息,用户可通过鼠标和键盘 + 与进行交互。本标准中,页面内容与注释内容是份文件描述的。 + 文件的注释在注释列表文件中按照页面进行组织索引,注释的内容 + 在分页注释文件中描述。 + + + 15.1 注释入口文件 图 80 表 60 + + + + + + 【可选】 + 增加 注释所在页 + + 注释所在页 + this + + + + 根据ID获取页面注解 + + 页面ID + null或注释所在页 + + + + @Date 2021 04 20 19 20 + @return + + + + + 注释 + + 15.2 图 81 表 61 + + + + + + 【必选 属性】 + 设置 注释的标识 + + 注释的标识 + this + + + + 【必选 属性】 + 获取 注释的标识 + + 注释的标识 + + + + 【必选 属性】 + 设置 注释类型 + + 具体取值见 + + + + 注释类型 + this + + + + 【必选 属性】 + 获取 注释类型 + + 具体取值见 + + + + 注释类型 + + + + 【必选 属性】 + 设置 注释创建者 + + 注释创建者 + this + + + + 【必选 属性】 + 获取 注释创建者 + + 注释创建者 + + + + 【必选 属性】 + 设置 最近一次修改的时间 + + 最近一次修改的时间 + this + + + + 【必选 属性】 + 获取 最近一次修改的时间 + + 最近一次修改的时间 + + + + 【可选 属性】 + 设置 注释子类型 + + 注释子类型 + this + + + + 【可选 属性】 + 获取 注释子类型 + + 注释子类型 + + + + 【可选 属性】 + 设置 表示该注释对象是否显示 + + 默认值为 true + + + + 表示该注释对象是否显示,默认值为 true + this + + + + 【可选 属性】 + 获取 表示该注释对象是否显示 + + 默认值为 true + + + + 表示该注释对象是否显示,默认值为 true + + + + 【可选 属性】 + 设置 对象的Remark 信息是否随页面一起打印 + + 默认值为 true + + + + 对象的Remark 信息是否随页面一起打印 + this + + + + 【可选 属性】 + 设置 对象的Remark 信息是否随页面一起打印 + + 默认值为 true + + + + 对象的Remark 信息是否随页面一起打印 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不随页面缩放而同步缩放 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面缩放而同步缩放 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不随页面缩放而同步缩放 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面缩放而同步缩放 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不随页面旋转而旋转 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面旋转而旋转 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不随页面旋转而旋转 + + 默认值为 false + + + + 对象的 Remark 信息是否不随页面旋转而旋转 + + + + 【可选 属性】 + 设置 对象的 Remark 信息是否不能被用户更改 + + 默认值为 true + + + + 对象的 Remark 信息是否不能被用户更改 + this + + + + 【可选 属性】 + 获取 对象的 Remark 信息是否不能被用户更改 + + 默认值为 true + + + + 对象的 Remark 信息是否不能被用户更改 + + + + 【可选】 + 设置 注释说明内容 + + 注释说明内容 + this + + + + 【可选】 + 获取 注释说明内容 + + 注释说明内容 + + + + 【可选】 + 增加 注释参数 + + 键名 + 值 + this + + + + 【可选】 + 获取 一组注释参数 + + 注解参数映射表 + + + + 【必选】 + 设置 注释的静态显示效果 + + 使用页面块定义来描述 + + + + 注释的静态显示效果 + this + + + + 【必选】 + 获取 注释的静态显示效果 + + 使用页面块定义来描述 + + + + 注释的静态显示效果 + + + + 注释类型取值 + + 15.2 表 62 + + + + + 连接注释 + + + + + 路径注释,一般为图形对象,比如矩形、多边形、贝塞尔曲线等 + + + + + 高亮注释 + + + + + 签章注释 + + + + + 水印注释 + + + + + 注释所在页 + + 15.1 注释入口文件 图 80 表 60 + + + + + + 【必选 属性】 + 设置 引用注释所在页面的标识 + + 引用注释所在页面的标识 + this + + + + 【必选 属性】 + 获取 引用注释所在页面的标识 + + 引用注释所在页面的标识 + + + + 【必选】 + 设置 指向包内的分页注释文件 + + 指向包内的分页注释文件 + this + + + + 【必选】 + 获取 指向包内的分页注释文件 + + 指向包内的分页注释文件 + + + + 注释的静态呈现效果 + + 使用页面块定义来描述 + + + 15.2 图 81 表 61 + + + + + + 【必选】 + 设置 边界 + + 附录 A.4 + + + + 边界 + this + + + + 【必选】 + + 边界 + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 分页注释文件 + + 15.2 图 81 表 61 + + + + + + 【必选】 + 增加 注释对象 + + 注释对象 + this + + + + 【必选】 + 获取 注释对象列表 + + 注释对象列表 + + + + 附件列表 + + 附件列表文件的入口点在 7.5 文档根节点中定义。 + 一个OFD文件可以定义多个附件,附件列表结构如图 91 所示。 + + + 20.1 附件列表 图 91 表 72 + + + + + + 【可选】 + 增加 附件 + + 附件 + this + + + + 【可选】 + 增加 附件列表 + + 附件列表 + + + + 附件 + + 20.2 附件 图 92 表 73 + + + + + + 【必选 属性】 + 设置 附件标识 + + 附件标识 + this + + + + 【必选 属性】 + 获取 附件标识 + + 附件标识 + + + + 【必选 属性】 + 设置 附件名称 + + 附件名称 + this + + + + 【必选 属性】 + 获取 附件名称 + + 附件名称 + + + + 【可选 属性】 + 设置 附件格式 + + 附件格式 + this + + + + 【可选 属性】 + 获取 附件格式 + + 附件格式 + + + + 【可选 属性】 + 设置 创建时间 + + 创建时间 + this + + + + 【可选 属性】 + 获取 创建时间 + + 创建时间 + + + + 【可选 属性】 + 设置 修改时间 + + 修改时间 + this + + + + 【可选 属性】 + 获取 修改时间 + + 修改时间 + + + + 【可选 属性】 + 设置 附件大小 + + 以KB为单位 + + + + 附件大小,以KB为单位 + this + + + + 【可选 属性】 + 获取 附件大小 + + 以KB为单位 + + + + 附件大小,以KB为单位 + + + + 【可选 属相】 + 设置 附件是否可见 + + 默认值为 true + + + + 附件是否可见 + this + + + + 【可选 属相】 + 获取 附件是否可见 + + 默认值为 true + + + + 附件是否可见 + + + + 【可选 属性】 + 设置 附件用途 + + 默认值为 none + + + + 附件用途 + this + + + + 【可选 属性】 + 获取 附件用途 + + 默认值为 none + + + + 附件用途 + + + + 【可选】 + 设置 附件内容在包内的路径 + + 附件内容在包内的路径 + this + + + + 【可选】 + 获取 附件内容在包内的路径 + + 附件内容在包内的路径 + + + + 本标准支持书签,可以将常用位置定义为书签, + 文档可以包含一组书签。 + + 7.5 图 11 书签结构 + + + + + 书签名称 + 书签对应的文档版位置 + + + + 【必选 属性】 + 设置 书签名称 + + 书签名称 + this + + + + 【必选 属性】 + 获取 书签名称 + + 书签名称 + + + + 【必选】 + 设置 书签对应的文档版位置 + + 见表 54 + + + + 书签对应的文档版位置 + this + + + + 【必选】 + 获取 书签对应的文档版位置 + + 见表 54 + + + + 书签对应的文档版位置 + + + + 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + + + 【必选】 + 增加 书签 + + 书签 + this + + + + 【必选】 + 获取 书签列表 + + 书签列表 + + + + 文档公共数据结构 + + ————《GB/T 33190-2016》 图 6 + + + + + + 【必选】 + 设置 当前文档中所有对象使用标识的最大值。 + 初始值为 0。MaxUnitID主要用于文档编辑, + 在向文档增加一个新对象时,需要分配一个 + 新的标识符,新标识符取值宜为 MaxUnitID + 1, + 同时需要修改此 MaxUnitID值。 + + 对象标识符最大值 + this + + + + 【必选】 + 获取 当前文档中所有对象使用标识的最大值 + + 当前文档中所有对象使用标识的最大值0 + + + + 【必选】 + 设置 该文档页面区域的默认大小和位置 + + 文档页面区域的默认大小和位置 + this + + + + 【必选】 + 获取 该文档页面区域的默认大小和位置 + + 该文档页面区域的默认大小和位置 + + + + 【可选】 + 设置 公共资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9,字形和颜色空间等宜在公共资源文件中描述 + + + + 公共资源序列 + this + + + + 【可选】 + 获取 公共资源序列 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9,字形和颜色空间等宜在公共资源文件中描述 + + + + 公共资源序列路径 + + + + 【可选】 + 设置 文件资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9, + 绘制参数、多媒体和矢量图像等宜在文件资源文件中描述 + + + + 公共资源序列 + this + + + + 【可选】 + 获取 文件资源序列 路径 + + 公共资源序列,每个节点指向OFD包内的一个资源描述文件, + 源部分的描述键见 7.9, + 绘制参数、多媒体和矢量图像等宜在文件资源文件中描述 + + + + 文件资源序列 路径 + + + + 【可选】 + 增加 模板页序列 + + 为一些列的模板页的集合,模板页内容机构和普通页相同,描述将7.7 + + + + 模板页序列 + this + + + + 【可选】 + 获取 模板页序列 + + 为一些列的模板页的集合,模板页内容机构和普通页相同,描述将7.7 + + + + 模板页序列 (可能为空容器) + + + + 【可选】 + 设置 引用在资源文件中定义的颜色标识符 + + 有关颜色空间的描述见 8.3.1。如果不存在此项,采用RGB作为默认颜色空间 + + + + 颜色空间引用 + this + + + + 【可选】 + 获取 引用在资源文件中定义的颜色标识符 + + 有关颜色空间的描述见 8.3.1。如果不存在此项,采用RGB作为默认颜色空间 + + + + 颜色空间引用 + + + + 页面区域结构 + + ————《GB/T 33190-2016》 图 7 + + + + + + 页面物理区域 创建区域 + + 页面物理区域 左上角X坐标 + 页面物理区域 左上角Y坐标 + 页面物理区域 宽度 + 页面物理区域 高度 + + + + 【必选】 + 设置 页面物理区域 + + 左上角为页面坐标系的原点 + + + + 页面物理区域 + this + + + + 【必选】 + 设置 页面物理区域 + + 左上角为页面坐标系的原点 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【必选】 + 获取 页面物理区域 左上角为页面坐标系的原点 + + 页面物理区域 + + + + 【可选】 + 设置 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 显示区域 + this + + + + 【可选】 + 设置 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 显示区域 + + 页面内容实际显示或打印输出的区域,位于页面物理区域内, + 包含页眉、页脚、页心等内容 + + + [例外处理] 如果显示区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 显示区域 + + + + 【可选】 + 设置 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 版心区域 + this + + + + 【可选】 + 设置 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 版心区域 + + 文件的正文区域,位于显示区域内。 + 左上角坐标决定了其在显示区域内的位置 + + + [例外处理] 如果版心区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果版心区域完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 版心区域 + + + + 【可选】 + 设置 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 出血区域 + this + + + + 【可选】 + 设置 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 左上角X坐标 + 左上角Y坐标 + 宽度 + 高度 + this + + + + 【可选】 + 获取 出血区域 + + 超出设备性能限制的额外出血区域,位于页面物理区域外。 + 不出现时,默认值为页面物理区域 + + + [例外处理] 如果出血区域不完全位于页面物理区域内, + 页面物理区域外的部分则被忽略。如果显示出血完全位于页面物理区域外, + 则设置该页为空白页。 + + + + 出血区域 + + + + 文档根节点 + Document.xml + + ————《GB/T 33190-2016》 图 5 + + + + + + + 【必选】 + 设置 文档公共数据 + + 定义了页面区域、公共资源 + + + + 文档公共数据 + this + + + + 【必选】 + 获取 文档公共数据 + + 定义了页面区域、公共资源 + + + + 文档公共数据 + + + + 【必选】 + 设置 页树 + + 有关页树的描述键 7.6 + + + + 页树 + this + + + + 【必选】 + 获取 页树 + + 有关页树的描述键 7.6 + + + + 页树 + + + + 【可选】 + 设置 大纲 + + 大纲 + this + + + + 【可选】 + 获取 大纲 + + 大纲 + + + + 【可选】 + 设置 文档的权限声明 + + 文档的权限声明 + this + + + + 【可选】 + 获取 文档的权限声明 + + 文档的权限声明 + + + + 【可选】 + 设置 文档关联的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 文档关联的动作序列 + this + + + + 【可选】 + 获取 文档关联的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 文档关联的动作序列 + + + + 【可选】 + 设置 文档的视图首选项 + + 文档的视图首选项 + this + + + + 【可选】 + 获取 文档的视图首选项 + + 文档的视图首选项 + + + + 【可选】 + 设置 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + 文档的书签集 + this + + + + 【可选】 + 获取 文档的书签集,包含一组书签 + + 7.5 文档根节点 表 5 文档根节点属性 + + + + 文档的书签集 + + + + 【可选】 + 设置 指向注释列表的文件 + + 有关注释描述见第 15 章 + + + + 指向注释列表的文件路径 + this + + + + 【可选】 + 获取 指向注释列表的文件 + + 有关注释描述见第 15 章 + + + + 指向注释列表的文件路径 + + + + 【可选】 + 设置 指向自定义标引列表文件 + + 有关自定义标引描述见第 16 章 + + + + 指向自定义标引列表文件路径 + this + + + + 【可选】 + 获取 指向自定义标引列表文件 + + 有关自定义标引描述见第 16 章 + + + + 指向自定义标引列表文件路径 + + + + 【可选】 + 设置 指向附件列表文件 + + 有关附件描述见第 20 章 + + + + 指向附件列表文件路径 + this + + + + 【可选】 + 获取 指向附件列表文件 + + 有关附件描述见第 20 章 + + + + 指向附件列表文件路径 + + + + 【可选】 + 设置 指向扩展列表文件 + + 有关扩展列表文件见第 17 章 + + + + 指向扩展列表文件路径 + this + + + + 【可选】 + 设置 指向扩展列表文件 + + 有关扩展列表文件见第 17 章 + + + + 指向扩展列表文件路径 + + + + 本标准支持设置文档权限声明(Permission)节点,以达到文档防扩散等应用目的。 + 文档权限声明结构如 图 9 所示。 + + 7.5 小节 CT_Permission + + + + + + 【可选】 + 设置 是否允许编辑 + + 默认值为 true + + + + true - 允许编辑; false - 不允许编辑 + this + + + + 【可选】 + 获取 是否允许编辑 + + 默认值为 true + + + + true - 允许编辑; false - 不允许编辑 + + + + 【可选】 + 设置 是否允许添加或修改标注 + + 默认值为 true + + + + true - 允许添加或修改标注; false - 不允许添加或修改标注 + this + + + + 【可选】 + 获取 是否允许添加或修改标注 + + 默认值为 true + + + + true - 允许添加或修改标注; false - 不允许添加或修改标注 + + + + 【可选】 + 设置 是否允许导出 + + 默认值为 true + + + + true - 允许导出; false - 不允许导出 + this + + + + 【可选】 + 获取 是否允许导出 + + 默认值为 true + + + + true - 允许导出; false - 不允许导出 + + + + 【可选】 + 设置 是否允许进行数字签名 + + 默认值为 true + + + + true - 允许进行数字签名; false - 不允许进行数字签名 + this + + + + 【可选】 + 获取 是否允许进行数字签名 + + 默认值为 true + + + + true - 允许进行数字签名; false - 不允许进行数字签名 + + + + 【可选】 + 设置 是否允许添加水印 + + 默认值为 true + + + + true - 允许添加水印; false - 不允许添加水印 + this + + + + 【可选】 + 获取 是否允许添加水印 + + 默认值为 true + + + + true - 允许添加水印; false - 不允许添加水印 + + + + 【可选】 + 设置 是否允许截屏 + + 默认值为 true + + + + true - 允许截屏; false - 不允许截屏 + this + + + + 【可选】 + 获取 是否允许截屏 + + 默认值为 true + + + + true - 允许截屏; false - 不允许截屏 + + + + 【可选】 + 设置 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + + 打印权限 + this + + + + 【可选】 + 获取 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + + 打印权限 + + + + 【可选】 + 设置 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + + 有效期 + this + + + + 【可选】 + 获取 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + + 有效期 + + + + 打印权限 + + 具体的权限和份数设置由其属性 Printable 及 Copics 控制。若不设置 Print节点, + 则默认可以打印,并且打印份数不受限制 + + + 7.5 图 9 文档权限声明结构 + + + + + + 【可选 必选】 + 设置 是否允许被打印 + + 默认值为 true + + + + true - 允许被打印; false - 不允许被打印 + this + + + + 【可选 必选】 + 获取 是否允许被打印 + + 默认值为 true + + + + true - 允许被打印; false - 不允许被打印 + + + + 【可选 属性】 + 设置 打印份数 + + 在 Printable 为 true 时有效,若 Printable 为 true + 并且不设置 Copies 则打印份数不受限,若 Copies 的值为负值时, + 打印份数不受限,当 Copies 的值为 0 时,不允许打印,当 Copies的值 + 大于 0 时,则代表实际可打印的份数值。 + + + 默认值为 -1 + + + + 可打印的份数 + this + + + + 【可选 属性】 + 获取 打印份数 + + 在 Printable 为 true 时有效,若 Printable 为 true + 并且不设置 Copies 则打印份数不受限,若 Copies 的值为负值时, + 打印份数不受限,当 Copies 的值为 0 时,不允许打印,当 Copies的值 + 大于 0 时,则代表实际可打印的份数值。 + + + 默认值为 -1 + + + + 可打印的份数 + + + + 有效期 + + 该文档允许访问的期限,其具体期限取决于开始日期和 + 结束日期,其中开始日期不能晚于结束日期,并且开始日期和结束 + 日期至少出现一个。当不设置开始日期时,代表不限定开始日期, + 当不设置结束日期时代表不限定结束日期;当此不设置此节点时, + 表示开始和结束日期均不受限 + + + 7.5 图 9 文档权限声明结构 + + + + + + 【可选 属性】 + 设置 有效期开始日期 + + 有效期开始日期 + this + + + + 【可选 属性】 + 获取 有效期开始日期 + + 有效期开始日期 + + + + 【可选 属性】 + 设置 有效期结束日期 + + 有效期结束日期 + this + + + + 【可选 属性】 + 获取 有效期结束日期 + + 有效期结束日期 + + + + 视图首选项 + + 本标准支持设置文档视图首选项(VPreferences)节点,以达到限定文档初始化视图 + 便于阅读的目的。 + + + 7.5 图 10 视图首选项结构s + + + + + + 【可选】 + 设置 窗口模式 + + 可选的模式列表,请参考 + + + 默认值为 None + + + + 窗口模式 + this + + + + 【可选】 + 获取 窗口模式 + + 可选的模式列表,请参考 + + + 默认值为 None + + + + 窗口模式 + + + + 【可选】 + 设置 页面布局模式 + + 可选的模式请参考 + + + 默认值为 OneColumn + + + + 页面布局模式 + this + + + + 【可选】 + 获取 页面布局模式 + + 可选的模式请参考 + + + 默认值为 OneColumn + + + + 页面布局模式 + + + + 【可选】 + 设置 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + + 标题栏显示模式 + this + + + + 【可选】 + 获取 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + + 标题栏显示模式 + + + + 【可选】 + 设置 是否隐藏工具栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏工具栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 是否隐藏菜单栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏菜单栏 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 是否隐藏主窗口之外的其他窗口组件 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + this + + + + 【可选】 + 获取 是否隐藏主窗口之外的其他窗口组件 + + 默认值:false + + + + true - 隐藏; false - 不隐藏 + + + + 【可选】 + 设置 文档自动缩放模式 + + 参考值 + + + + 文档自动缩放模式 + this + + + + 【可选】 + 设置 文档的缩放率 + + 文档的缩放率 + this + + + + 【可选】 + 获取 具体的缩放处理方式和值 + + 具体的缩放处理方式和值 + + + + 页面布局 + + 7.5 表 9 视图首选项 + + + + + + 单页模式 + + + + + 单列模式 + + + + + 对开模式 + + + + + 对开连续模式 + + + + + 对开靠右模式 + + + + + 对开连续靠右模式 + + + + + 窗口模式 + + 7.5 表 9 视图首选项属性 + + + 默认值为 None + + + + + + 常规模式 + + + + + 开开后全文显示 + + + + + 同时呈现文档大纲 + + + + + 同时呈现缩略图 + + + + + 同时呈现语义结构 + + + + + 同时呈现图层 + + + + + 同时呈现附件 + + + + + 同时呈现书签 + + + + + 获取窗口模式实例 + + 模式名称 + 实例 + + + + 标题栏显示模式 + + 默认值为 FileName,当设置为 DocTitle但不存在 Title属性时, + 按照 FileName 处理 + + + 7.5 表 9 视图首选项 + + + + + + 文件名称 + + + + + 呈现元数据中的 Title 属性 + + + + + 文档的缩放率 + + 7.5 表 9 视图首选项 + + + + + + 设置 文档的缩放率 + + 文档的缩放率 + this + + + + 获取 文档的缩放率 + + 文档的缩放率 + + + + 自动缩放模式 + + 默认值为 Default + + + 7.5 表 9 视图首选项 + + + + + + 默认缩放 + + + + + 合适高度 + + + + + 合适宽度 + + + + + 合适区域 + + + + + 获取 自动缩放模式类型 + + 类型参考 + + 自动缩放模式类型 + + + + 获取工厂方式枚举的实例 + + 自动缩放模式类型 + 自动缩放模式 + + + + 缩放比例选择对象基类 + + + + + 文件对象入口,可以存在多个,以便在一个文档中包含多个版式文档 + + + + + 文档根节点文档名称 + + + + + 【必选】 + 设置文档元数据信息描述 + + 文档元数据信息描述 + this + + + + 【必选】 + 获取文档元数据信息描述 + + 文档元数据信息描述 或null + + + + 【可选】 + 设置指向文档根节点文档 + + 指向根节点文档路径 + this + + + + 【可选】 + 获取指向文档根节点文档路径 + + 指向文档根节点文档路径 + + + + 【可选】 + 获取 包含多个版本描述节点,用于定义文件因注释和其他改动产生的版本信息,见第19章 + + 版本序列 + this + + + + 【可选】 + 获取 包含多个版本描述序列 + + 包含多个版本描述序列 + + + + 【可选】 + 设置 指向该文档中签名和签章结构的路径 (见18章) + + 指向该文档中签名和签章结构的路径 + this + + + + 【可选】 + 获取 指向该文档中签名和签章结构的路径 + + 指向该文档中签名和签章结构的路径 + + + + 文档元数据信息描述 + + + + + 【必选】 + 设置文件标识符,标识符应该是一个UUID + + UUID文件标识 + this + + + + 随机产生一个UUID作为文件标识符 + + this + + + + 【必选】 + 采用UUID算法生成的由32个字符组成的文件标识。每个DocID在 + 文件创建或生成的时候进行分配。 + + 文件标识符 + + + + 【可选】 + 设置文档标题。标题可以与文件名不同 + + 标题 + this + + + + 【可选】 + 获取文档标题。标题可以与文件名不同 + + 档标题 + + + + 【可选】 + 设置文档作者 + + 文档作者 + this + + + + 【可选】 + 获取文档作者 + + 文档作者 + + + + 【可选】 + 设置文档主题 + + 文档主题 + this + + + + 【可选】 + 获取文档主题 + + 文档主题 + + + + 【可选】 + 设置文档摘要与注释 + + 文档摘要与注释 + this + + + + 【可选】 + 获取文档摘要与注释 + + 文档摘要与注释 + + + + 【可选】 + 设置文件创建日期 + + 文件创建日期 + this + + + + 【可选】 + 获取文件创建日期 + + 创建日期 + + + + 【可选】 + 设置文档最近修改日期 + + 文档最近修改日期 + this + + + + 【可选】 + 获取文档最近修改日期 + + 文档最近修改日期 + + + + 【可选】 + 文档分类,可取值如下: + + Normal——普通文档 + + + EBook——电子书 + + + ENewsPaper——电子报纸 + + + EMagzine——电子期刊 + + + 默认值为 Normal + + + + 文档分类 + this + + + + 【可选】 + 获取文档分类 + + 默认值为 Normal + + + + 文档分类 + + + + 【可选】 + 设置文档封面,此路径指向一个图片文件 + + 文档封面路径 + this + + + + 【可选】 + 获取文档封面,此路径指向一个图片文件 + + 文档封面路径 + + + + 【可选】 + 设置关键词集合 + 每一个关键词用一个"Keyword"子节点来表达 + + 关键词集合 + this + + + + 添加关键词 + + 关键词 + this + + + + 【可选】 + 获取关键词集合 + + 关键词集合或null + + + + 【可选】 + 设置创建文档的应用程序 + + 创建文档的应用程序 + this + + + + 【可选】 + 获取创建文档的应用程序 + + 创建文档的应用程序或null + + + + 【可选】 + 设置创建文档的应用程序版本信息 + + 创建文档的应用程序版本信息 + this + + + + 【可选】 + 获取创建文档的应用程序版本信息 + + 创建文档的应用程序版本信息或null + + + + 【可选】 + 设置用户自定义元数据集合。其子节点为 CustomData + + 用户自定义元数据集合 + this + + + + 【可选】 + 获取用户自定义元数据集合。其子节点为 CustomData + + 用户自定义元数据集合 + + + + 用户自定义元数据,可以指定一个名称及其对应的值 + + @author 权观宇 + @since 2019-10-01 07:38:27 + + + + + 自定元数据 + + 元数据名称 + 元数据值 + + + + 【必选】 + 获取元数据名称 + + 默认获取第一个属性作为元数据名称 + + + + 元数据名称(Name) + + + + 【必选 属性】 + 设置元数据名称 + 元数据名称(Name) + this + + + + 获取元数据值 + + 元数据值 + + + + 设置元数据的值 + + 元数据值 + this + + + + 用户自定义元数据集合。其子节点为 CustomData + + + + + 【必选】 + 增加用户自定义元数据 + + 用户自定义元数据名称 + 用户自定义元数据值 + this + + + + 【必选】 + 增加用户自定义元数据 + + 用户自定义元数据 + this + + + + 【必选】 + 获取自定义元数据集合 + + 自定义元数据集合 + + + + 获取用户自定义元数据值 + + 元数据名称 + 元数据值 + + + + 文档分类 + + + + + 普通文档 + + + + + 电子书 + + + + + 电子报纸 + + + + + 电子期刊 + + + + + * + 获取文档分类示例 + + 默认值: Normal + 文档分类值 + 实例 + + + + 关键词集合,每一个关键词用一个"Keyword"子节点来表达 + + 表 4 文档元数据属性 + + + + + + 【必选】 + 增加关键字 + + 关键字 + this + + + + @Date 2021 04 20 19 15 + @return + + + + + 主入口 + + OFD.xml + ————《GB/T 33190-2016》 图 3 + + + + + + 【必选】 + 文件格式的版本号 + + 固定值: 1.0kd + + + 参照表 3 + + + + + + 【必选】 + 文件格式子集类型,取值为"OFD",表明此文件符合本标准。 + + + + + 文件对象入口列表创建文档对象 + + 文件对象入口序列 + + + + 文件对象入口创建文档对象 + + 文件对象入口 + + + + 【必选 属性】文件格式版本号,取值为"1.0" + + 文件格式版本号 + + + + 【必选 属性】文件格式子集类型,取值为"OFD",表明此文件符合本标准。 + + OFD + + + + 【必选】增加文件对象入口。 + 文件对象入口,可以存在多个,以便在一个文档中包含多个版式文档 + + 文件对象入口 + this + + + + 【必选】 获取第一个文档入口 + + 文件对象入口(如果有多个则获取第一个) + + + + 获取指定序号的文档 + + 文档序号,从0起 + 文件对象入口(如果有多个则获取第一个) + + + + 获取所有文档入口 + + 所有文档入口 + + + + 大纲节点 + + 图 19 大纲节点结构 + + + + + + 【必选 属性】 + 设置 大纲节点标题 + + 大纲节点标题 + this + + + + 【必选 属性】 + 获取 大纲节点标题 + + 大纲节点标题 + + + + 【可选 属性】 + 设置 该节点下所有叶节点的数目参考值 + + 应该根据该节点下实际出现的子节点数为准 + + + 默认值为 0 + + + + 该节点下所有叶节点的数目参考值 + this + + + + 【可选 属性】 + 获取 该节点下所有叶节点的数目参考值 + + 应该根据该节点下实际出现的子节点数为准 + + + 默认值为 0 + + + + 该节点下所有叶节点的数目参考值 + + + + 【可选 属性】 + 在有子节点存在时有效,如果为 true, + 表示该大纲在初始状态下展开子节点; + 如果为 false,则表示不展开 + + 默认值为 true + + + + true - 展开; false - 不展开 + this + + + + 【可选 属性】 + 在有子节点存在时有效,如果为 true, + 表示该大纲在初始状态下展开子节点; + 如果为 false,则表示不展开 + + 默认值为 true + + + + true - 展开; false - 不展开 + + + + 【可选】 + 设置 当此大纲节点被激活时执行的动作序列 + + 动作序列 + this + + + + 【可选】 + 获取 当此大纲节点被激活时执行的动作序列 + + 动作序列,可能为null + + + + 【可选】 + 增加 大纲子节点 + + 该节点的子大纲节点。层层嵌套,形成树状结构 + + + + 大纲子节点 + this + + + + 【可选】 + 获取 该大纲下所有子节点 + + 该节点的子大纲节点。层层嵌套,形成树状结构 + + + + 该大纲下所有子节点 + + + + 大纲按照树形结构进行组织 + + 图 18 大纲节点结构 + + + + + + 【必选】 + 增加 大纲节点 + + 大纲节点 + this + + + + @Date 2021 04 20 19 13 + @return + + + + + 页面内容描述,该节点不存在是,表示空白页面 + + 7.7 页面对象 表 12 + + + + + + 【必选】 + 增加 层节点 + + 一页可以包含一个或多个层 + + + 注意:每个加入的层节点必须设置 ID属性。 + + + + 层节点 + this + 加入的图层对象(CT_Layer)没有设置ID属性 + + + + 【必选】 + 获取 层节点列表 + + 一页可以包含一个或多个层 + + + 注意:每个加入的层节点必须设置 ID属性。 + + + + 层节点 + + + + 模板页 + + ————《GB/T 33190-2016》 图 14 + + + + + + 【必选 属性】 + 设置 模板页的标识符,不能与已有标识符重复 + + 模板页的标识符 + this + + + + 【必选 属性】 + 获取 模板页的标识符,不能与已有标识符重复 + + 模板页的标识符 + + + + 【可选 属性】 + 设置 模板页名称 + + 模板页名称 + this + + + + 【可选 属性】 + 获取 模板页名称 + + 模板页名称 + + + + 【可选 属性】 + 设置 模板页的默认视图类型 + + 其类型描述和呈现顺序与 Layer中 Type的描述和处理一致,见表 15 + 如果页面引用的多个模板的次属性相同,则应根据引用的顺序来显示 + 先引用者先绘制 + + + 默认值为 Background + + + + 模板页的默认视图类型 + this + + + + 【可选 属性】 + 获取 模板页的默认视图类型 + + 其类型描述和呈现顺序与 Layer中 Type的描述和处理一致,见表 15 + 如果页面引用的多个模板的次属性相同,则应根据引用的顺序来显示 + 先引用者先绘制 + + + 默认值为 Background + + + + 模板页的默认视图类型 + + + + 【可选 属性】 + 设置 指向模板页内容描述文件 路径 + + 指向模板页内容描述文件 路径 + this + + + + 【可选 属性】 + 获取 指向模板页内容描述文件 路径 + + 指向模板页内容描述文件 路径 + + + + 复合对象 + + 见 第 13 章 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像标识 + + 引用资源文件中定义的矢量图像标识 + this + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像标识 + + 引用资源文件中定义的矢量图像标识 + + + + 页块结构 + + 可以嵌套 + + + 7.7 页对象 图 17 表 16 + + + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 【可选】 + 获取 当前页块内的所有页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + Tip: 从列表取出的元素可以使用instanceof 判断元素的类型 + + + + 当前页块内的所有页块 + + + + 图像对象 + + 见 10 + + + 带有播放视频动作时,见第 12 章 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 图形对象 + + 见 9.1 + + + 7.7 表 16 + + + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 文字对象 + + + + 对象ID + + + 对象ID + + + + 【必选 属性】 + 设置 对象ID + + 对象ID + this + + + + 【必选 属性】 + 获取 对象ID + + 对象ID + + + + 【可选 属性】 + 设置 层类型描述 + + 默认值为 Body + + + + 层类型 + this + + + + 【可选 属性】 + 获取 层类型描述 + + 默认值为 Body + + + + 层类型 + + + + 【可选 属性】 + 设置 图层的绘制参数,引用资源文件总定义的绘制参数标识 + + 资源文件总定义的绘制参数标识 + this + + + + 【可选 属性】 + 获取 图层的绘制参数,引用资源文件总定义的绘制参数标识 + + 资源文件总定义的绘制参数标识,null表示不存在 + + + + 用于表示页块类型的接口 + + 逻辑层面表示 + + + + + + + 前景层 + + + + + 正文层 + + + + + 背景层 + + + + + 获取图层类型实例 + + 图层类型字符串 + 图层类型 + + + + 获取图层次序 + + 图层次序 + + + + 页对象 + + 页对象支持模板页描述,每一页经常要重复显示的内容可统一在模板页中描述, + 文档可以包含多个模板页。通过使用模板页可以使重复显示的内容不必出现在 + 描述每一页的页面描述内容中,而只需通过 Template 节点进行应用。 + + + 7.7 图 13 页对象结构;表 12 页对象属性 + + + + + + 【可选】 + 设置 页面区域的大小和位置,仅对该页面有效。 + + 该节点不出现时则使用模板页中的定义,如果模板页不存在或模板页中 + 没有定义页面区域,则使用文件 CommonData 中的定义。 + + + + 页面区域的大小和位置 + this + + + + 【可选】 + 获取 页面区域的大小和位置,仅对该页面有效。 + + 该节点不出现时则使用模板页中的定义,如果模板页不存在或模板页中 + 没有定义页面区域,则使用文件 CommonData 中的定义。 + + + + 页面区域的大小和位置 + + + + 【可选】 + 设置 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + 页面使用的模板页 + this + + + 模板 + this + @deprecated + + + + 【可选】 + 获取 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + 页面使用的模板页 + + @Date 2021 04 20 19 11 + @return + + + + 页面使用的模板页(第一个) + @deprecated + + + + 【可选】 + 设置 页资源 + + 指向该页使用的资源文件 + + + + 页资源路径 + this + + + + 【可选】 + 获取 页资源 + + 指向该页使用的资源文件 + + + + 页资源路径列表 + @Date 2021 04 20 19 04 + + + + 【可选】 + 设置 页面内容描述,该节点不存在时,标识空白页 + + 页面内容 + this + + + + 【可选】 + 获取 页面内容描述,该节点不存在时,标识空白页 + + 页面内容 + + + + 【可选】 + 设置 与页面关联的动作序列。 + + 当存在多个 Action对象时,所有动作依次执行。 + + + 动作列表的动作与页面关联,事件类型为 PO(页面打开,见表 52 事件类型) + + + + 动作序列 + this + + + + 【可选】 + 设置 与页面关联的动作序列。 + + 当存在多个 Action对象时,所有动作依次执行。 + + + 动作列表的动作与页面关联,事件类型为 PO(页面打开,见表 52 事件类型) + + + + 动作序列 + + + + 页面使用的模板页 + + 模板页的内容和结构与普通页相同,定义在 CommonData + 指定的 XML 文件中。一个页可以使用多个模板页。该节点 + 使用是通过 TemplateID 来引用具体模板,并通过 ZOrder + 属性来控制模板在页面中的显示顺序。 + + + 注:在模板页的内容描述中该属性无效。 + + + + + + 【必选 属性】 + 设置 引用在文档共用数据(CommonData)中定义的模板标识符 + + 引用在文档共用数据(CommonData)中定义的模板标识符 + this + + + + 【必选 属性】 + 获取 引用在文档共用数据(CommonData)中定义的模板标识符 + + 引用在文档共用数据(CommonData)中定义的模板标识符 + + + + 【可选 属性】 + 设置 模板在页面中的呈现顺序 + + 控制模板在页面中的呈现顺序,其类型描述和呈现顺序与Layer中Type的描述和处理一直。 + + + 如果多个图层的此属性相同,则应根据其出现的顺序来显示,先出现者先绘制 + + + 默认值为 Background + + + + 模板在页面中的呈现顺序 + this + + + + 【可选 属性】 + 获取 模板在页面中的呈现顺序 + + 控制模板在页面中的呈现顺序,其类型描述和呈现顺序与Layer中Type的描述和处理一直。 + + + 如果多个图层的此属性相同,则应根据其出现的顺序来显示,先出现者先绘制 + + + 默认值为 Background + + + + 模板在页面中的呈现顺序 + + + + 页节点 + + 7.6 页树 表 11 页树属性 + + + + + 对象ID + 页面内容位置 + + + + 【必选 属性】 + 设置 页的标识符,不能与已有标识重复 + + 页的标识符 + this + + + + 【必选 属性】 + 获取 页的标识符,不能与已有标识重复 + + 页的标识符 + + + + 【必选 属性】 + 设置 页对象描述文件 + + 页对象描述文件路径 + this + + + + 【必选 属性】 + 获取 页对象描述文件 + + 页对象描述文件路径 + + + + 页树 + + 图 12 页树结构 + + + + + + + 【必选】 + 增加 叶节点 + + 一个页树中可以包含一个或多个叶节点,页顺序是 + 根据页树进行前序遍历时叶节点的顺序。 + + + + 叶节点 + this + + + + 获取页面数量 + + 页面数量 + + + + 【必选】 + 获取 叶节点序列 + + 一个页树中可以包含一个或多个叶节点,页顺序是 + 根据页树进行前序遍历时叶节点的顺序。 + + + + 叶节点序列 (大于等于 1) + + + + 获取指定页面 + 页面索引(页码 - 1) + 页节点 + + + + + 【必选 属性】 + 设置 多媒体类型 + + 支持位图图像、视频、音频 + + + + 多媒体类型 + this + + + + 【必选 属性】 + 获取 多媒体类型 + + 支持位图图像、视频、音频 + + + + 多媒体类型 + + + + 【可选 属性】 + 设置 资源的格式 + + 支持 BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页 + + + + 资源的格式 + this + + + + 【可选 属性】 + 获取 资源的格式 + + 支持 BMP、JPEG、PNG、TIFF及AVS等格式,其中TIFF格式不支持多页 + + + + 资源的格式 + + + + 【必选】 + 设置 指向 OFD包内的多媒体文件位置 + + 指向 OFD包内的多媒体文件位置 + this + + + + 【必选】 + 获取 指向 OFD包内的多媒体文件位置 + + 指向 OFD包内的多媒体文件位置 + + + + 多媒体格式。 + + 7.9 资源 图 21 表 19 + + + + + + 位图图像 + + + + + 音频 + + + + + 视频 + + + + + 资源文件抽象类型 + + 用于代指:绘制参数、颜色空间、字形、图像、音视频等资源的都为资源类型。 + + + + + + 资源 + + 资源是绘制图元时所需数据(如绘制参数、颜色空间、字形、图像、音视频等)的集合。 + 在页面中出现的资源数据内容都保存在容器的特定文件夹内,但其索引信息保存在资源文件中。 + 一个文档可能包含一个或多个资源文件。资源根据作用范围分为公共资源和页资源,公共资源文件 + 在文档根节点中进行制定,页资源文件在页对象中进行制定。 + + + 7.9 资源 图 20 + + + + + + 【必选 属性】 + 设置 此资源文件的通用数据存储路径。 + + BaseLoc属性的意义在于明确资源文件存储位置, + 比如 R1.xml 中可以指定 BaseLoc为"./Res", + 表明该资源文件中所有数据文件的默认存储位置在 + 当前路径的 Res 目录下。 + + + + 此资源文件的通用数据存储路径 + this + + + + 【必选 属性】 + 获取 此资源文件的通用数据存储路径。 + + BaseLoc属性的意义在于明确资源文件存储位置, + 比如 R1.xml 中可以指定 BaseLoc为"./Res", + 表明该资源文件中所有数据文件的默认存储位置在 + 当前路径的 Res 目录下。 + + + + 此资源文件的通用数据存储路径 + + + + 【可选】 + 添加 资源 + + 一个资源文件可描述0到多个资源 + + + + 资源 + this + + + + 获取字体资源文件 + + 字体资源列表 + + + + 【可选】 + 获取 资源列表 + + 一个资源文件可描述0到多个资源 + + + tip:可以使用instanceof判断是哪一种资源 + + + + 资源列表 + + + + 包含了一组颜色空间的描述 + + 7.9 图 20 表 18 + + + + + + 【必选】 + 增加 颜色空间描述 + + 必须要有ID属性 + + + + 颜色空间描述,必须要有ID属性 + this + + + + 【必选】 + 获取 颜色空间描述列表 + + 颜色空间描述列表 + + + + + 【必选】 + 增加 矢量图像资源描述 + + 必须要有ID属性 + + + + 矢量图像资源描述 + this + + + + 【必选】 + 获取 矢量图像资源描述序列 + + 必须要有ID属性 + + + + 矢量图像资源描述 + + + + + 【必选】 + 增加 绘制参数描述 + + 必须要有ID属性 + + + + 绘制参数描述 + this + + + + 【必选】 + 获取 绘制参数描述序列 + + 绘制参数描述 + + + + + 【必选】 + 添加 字形描述 + + 必须要有ID属性 + + + + 字形描述 + this + + + + 【必选】 + 获取 字形描述序列 + + 必须要有ID属性 + + + + 字形描述 + + + + 包含了一组文档所有多媒体的描述 + + 7.9 图 20 表 18 + + + + + + 【必选】 + 增加 多媒体资源描述 + + 必须含有ID属性 + + + + 多媒体资源描述 + this + + + + 【必选】 + 获取 多媒体资源描述列表 + + 必须含有ID属性 + + + + 多媒体资源描述 + + + + 简单类型基类,用于提供便捷的方法实例化元素 + + + + + 使用简单类型创建一个指定名称的元素 + + 指定名称 + 简单类型元素 + + + + 如果浮点数为整数,则省略小数 + 浮点数 + 没有小数点的整数字符串 + + + + 数组,以空格来分割元素。元素可以是除ST_Loc、 + ST_Array外的数据类型,不可嵌套 + + 示例: + 1 2.0 5.0 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 元素收容 + + + + + 获取一个单位矩阵变换参数 + + 单位CTM举证 + + + + 矩阵相乘 + + 矩阵数组 + 相乘后的结果矩阵 + + + + 获取 ST_Array 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 数组长度 + + 数组长度 + + + + 反序列化为矩阵数组 + + 矩阵 + + + + 矩形区域,以空格分割,前两个值代表了该矩形的 + 左上角的坐标,后两个值依次表示该矩形的宽和高, + 可以是整数或者浮点数,后两个值应大于0 + + 示例: + 10 10 50 50 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 左上角 x坐标 + + 从左 到 右 + + + + + + 左上角 y坐标 + + 从上 到 下 + + + + + + 宽度 + + + + + 高度 + + + + + 通用构造 + + 任意类型可序列化参数 + + + + 获取 ST_Box 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 获取左上角坐标定点 + + 左上角坐标 + + + + 标识,无符号整数,应在文档内唯一。0标识无效标识符 + + 示例: + 1000 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 标识符,默认为无符号标识符 + + + + + 获取 ST_ID 实例如果参数非法则返还null + + ID字符串 + 实例 或 null + + + + 获取引用ID + 引用ID + + + + 包结构内文件的路径,"."表示当前路径,".."表示符路径 + + 约定: + 1. "、"代表根节点; + 2. 未显示指定代表当前路径; + 3. 路径区分大小写 + + + 示例: + + /Pages/P1/Content.xml + ./Res/Book1.jpg + ../Pages/P1/Res.xml + Pages/P1/Rcs.xml + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 路径 + + + + + 获取路径实例 + + 路径字符串 + 实例或null + + + + 从实例中获取 路径 + + 元素 + 路径对象 + + + + 路径分割 + + 各个子路径 + + + + 获取父母路径 + + 父母路径字符串 + + + + 获取路径的文件名称 + + 文件名称 + + + + 路径拼接 + + 路径对象 + 拼接后路径 + + + + 路径拼接 + + 路径对象 + 拼接后路径 + + + + 是否以指定字符结尾 + + 指定字符 + true 指定字符结尾;false 不以指定字符结尾 + + + + 点坐标,以格分割,前者为 x值,后者为 y值,可以是整数或浮点数 + + 示例: + 0 0 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + X坐标 + + 从左 到 右 + + + + + + y坐标 + + 从上 到 下 + + + + + + 获取 ST_Pos 实例如果参数非法则返还null + + 数字字符串 + 实例 或 null + + + + 标识符引用,无符号整数,此标识符应为文档内已定义的标识符 + + 示例: + 1000 + + + ————《GB/T 33190-2016》 表 2 基本数据类型 + + + + + + 获取 ST_RefID 实例如果参数非法则返还null + + 被引用的ID字符串 + 实例 或 null + + + + + + 构造复合对象 + + 对象ID + 对象 + + + + 【必选 属性】 + 设置 引用资源文件中定义的矢量图像的标识 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + ,其类型为 CT_VectorG,其结构如 72 所示 + + + + 引用资源文件中定义的矢量图像的标识ID + this + + + + 【必选 属性】 + 获取 引用资源文件中定义的矢量图像的标识 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + ,其类型为 CT_VectorG,其结构如 72 所示 + + + + 引用资源文件中定义的矢量图像的标识ID + + + + 矢量图像 + + 复合对象引用的资源时 Res 中的矢量图像(CompositeGraphUnit) + + + + + + 【必选 属性】 + 设置 矢量图像的宽度 + + 超出部分做裁剪处理 + + + + 矢量图像的宽度 + this + + + + 【必选 属性】 + 获取 矢量图像的宽度 + + 超出部分做裁剪处理 + + + + 矢量图像的宽度 + + + + 【必选 属性】 + 设置 矢量图像的高度 + + 超出部分做裁剪处理 + + + + 矢量图像的高度 + this + + + + 【必选 属性】 + 获取 矢量图像的高度 + + 超出部分做裁剪处理 + + + + 矢量图像的高度 + + + + 【可选】 + 设置 缩略图 + + 指向包内的图像文件 + + + + 缩略图路径 + this + + + + 【可选】 + 获取 缩略图 + + 指向包内的图像文件 + + + + 缩略图路径 + + + + 【可选】 + 设置 替换图像 + + 用于高分辨率输出时将缩略图替换为此高分辨率的图像 + 指向包内的图像文件 + + + + 替换图像 + this + + + + 【可选】 + 获取 替换图像 + + 用于高分辨率输出时将缩略图替换为此高分辨率的图像 + 指向包内的图像文件 + + + + 替换图像 + + + + 【必选】 + 设置 内容的矢量描述 + + 内容的矢量描述 + this + + + + 【必选】 + 增加 内容的矢量描述 + + 内容的矢量描述 + this + + + + 【必选】 + 获取 内容的矢量描述 + + 内容的矢量描述 + + + + 自定义标引入口 + + 16 图 82 表 63 + + + + + + 【必选】 + 设置 自定义标引内容节点使用的类型标识 + + 自定义标引内容节点使用的类型标识 + this + + + + 【必选】 + 获取 自定义标引内容节点使用的类型标识 + + 自定义标引内容节点使用的类型标识 + + + + 设置 命名空间 + + 附录 A.9 CustomTags.xsd + + + + 命名空间 + this + + + + 获取 命名空间 + + 附录 A.9 CustomTags.xsd + + + + 命名空间 + + + + 【可选】 + 设置 指向自定义标引内容节点适用的Schema文件 + + 指向自定义标引内容节点适用的Schema文件 + this + + + + 【可选】 + 获取 指向自定义标引内容节点适用的Schema文件 + + 指向自定义标引内容节点适用的Schema文件 + + + + 【必选】 + 设置 指向自定义标引文件 + + 这类文件中通过"非接触方式"引用版式内容流中的图元和相关信息 + + 指向自定义标引文件 + this + + + + 【必选】 + 设置 指向自定义标引文件 + + 这类文件中通过"非接触方式"引用版式内容流中的图元和相关信息 + + 指向自定义标引文件 + + + + 自定义标引 + + 外部系统或用户可以添加自定义标记和信息,从而达到与其他系统、数据 + 进行交互的目的并扩展应用。一个文档可以带有多个自定义标引。 + + + 自定义标引列表的入口点在 7.5 文档根节点中定义。 + + + 标引索引文件,标引文件中通过ID引用于被引用标引对象 + 发生"非接触式(分离式)"关联。标引内容可任意扩展, + 但建议给出扩展内容的规范约束文件(schema)或命名空间。 + + 16 图 82 表 63 + + + + + + 【可选】 + 增加 自定义标引入口 + + 自定义标引入口 + this + + + + 【可选】 + 获取 自定义标引入口列表 + + 自定义标引入口列表 + + + + Initializes object by default error message. + + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + 扩展信息节点 + + 17 扩展信息 图 83 表 6 + + + + + + 【必选 属性】 + 设置 用于生成或解释该自定义对象数据的扩展应用程序名称 + + 用于生成或解释该自定义对象数据的扩展应用程序名称 + this + + + + 【必选 属性】 + 获取 用于生成或解释该自定义对象数据的扩展应用程序名称 + + 用于生成或解释该自定义对象数据的扩展应用程序名称 + + + + 【可选 属性】 + 设置 形成此扩展信息的软件厂商标识 + + 形成此扩展信息的软件厂商标识 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的软件厂商标识 + + 形成此扩展信息的软件厂商标识 + + + + 【可选 属性】 + 设置 形成此扩展信息的软件版本 + + 形成此扩展信息的软件版本 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的软件版本 + + 形成此扩展信息的软件版本 + + + + 【可选 属性】 + 设置 形成此扩展信息的日期时间 + + 形成此扩展信息的日期时间 + this + + + + 【可选 属性】 + 获取 形成此扩展信息的日期时间 + + 形成此扩展信息的日期时间 + + + + 【可选 属性】 + 设置 引用扩展项针对的文档项目的标识 + + 引用扩展项针对的文档项目的标识 + this + + + + 【可选 属性】 + 获取 引用扩展项针对的文档项目的标识 + + 引用扩展项针对的文档项目的标识 + + + + 【必选 属性】 + 增加 属性 + + 属性 + this + + + + 【必选 属性】 + 获取 属性列表 + + 属性列表 + + + + 【必选】 + 增加 扩展数据文件所在位置 + + 用于扩展大量信息 + + + + 扩展数据文件所在位置 + this + + + + @Date 2021 04 20 19 07 + @return + + + + + 【必选】 + 增加 扩展复杂属性 + + 使用xs:anyType,用于较复杂的扩展 + + + + 扩展复杂属性 + this + + + + 【必选】 + 获取 扩展复杂属性序列 + + 使用xs:anyType,用于较复杂的扩展 + + + + 扩展复杂属性序列 + + + + 扩展信息 + + 扩展信息列表的入口文件在 7.5 文档根节点中定义。 + 扩展信息列表文件的根节点名为 Extensions,其下 + 由 0 到多个扩展信息节点(Extension)组成,扩展 + 信息列表的根节点结构如图 83 所示。 + + + + 17 扩展信息 图 83 表 64 + + + + + + 【可选】 + 增加 扩展信息节点 + + 扩展信息节点 + this + + + + 【可选】 + 获取 扩展信息节点序列 + + 扩展信息节点 + + + + 扩展信息 + + "Name Type Value" 的数值组,用于简单的扩展 + + + 17 扩展信息 图 83 表 6 + + + + + + 【必选 属性】 + 设置 扩展属性名称 + + 扩展属性名称 + this + + + + 【必选 属性】 + 获取 扩展属性名称 + + 扩展属性名称 + + + + 【可选 属性】 + 设置 扩展属性值类型 + + 扩展属性值类型 + this + + + + 【可选 属性】 + 获取 扩展属性值类型 + + 扩展属性值类型 + + + + 【必选】 + 设置 属性值 + + 属性值 + this + + + + 【必选】 + 获取 属性值 + + 属性值 + + + + 图形轮廓数据 + + 由一系列的紧缩的操作符和操作数构成 + + + 9.1 表 35 36 + + + + + + 绘制数据队列 + + + + + 解析字符串构造数据队列 + + 紧缩字符串 + 数据队列 + + + + 刷新元素 + + 默认情况下,每次调用C都将会刷新元素内容 + + + + this + + + + 定义自绘制图形边线的起始点坐标 (x,y) + + 目标点 x + 目标点 y + this + + + + 当前点移动到制定点(x,y) + + 目标点 x + 目标点 y + this + + + + 从当前点连接一条指定点(x,y)的线段,并将当前点移动到制定点 + + 目标点 x + 目标点 y + this + + + + 从当前点连接一条到点(x2,y2)的二次贝塞尔曲线, + 并将当前点移动到点(x2,y2),此贝塞尔曲线使用 + 点(x1,y1)作为其控制点 + + 控制点 x + 控制点 y + 目标点 x + 目标点 y + this + + + + 从当前点连接一条到点(x3,y3)的三次贝塞尔曲线, + 并将当前点移动到点(x3,y3),此贝塞尔曲线使用点 + (x1,y1)和点(x2,y2)作为控制点 + + 控制点 x1 + 控制点 y1 + 控制点 x2 + 控制点 y2 + 目标点 x3 + 目标点 y3 + this + + + + 从当前点连接到点(x,y)的圆弧,并将当前点移动到点(x,y)。 + rx 表示椭圆的长轴长度,ry 表示椭圆的短轴长度。angle 表示 + 椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针, + large 为 1 时表示对应度数大于180°的弧,为 0 时表示对应 + 度数小于 180°的弧。sweep 为 1 时表示由圆弧起始点到结束点 + 是顺时针旋转,为 0 时表示由圆弧起始点到结束点是逆时针旋转。 + + 椭圆长轴长度 + 椭圆短轴长度 + 旋转角度,正值顺时针,负值逆时针 + 1 时表示对应度数大于 180°的弧,0 时表示对应度数小于 180°的弧 + sweep 为 1 时表示由圆弧起始点到结束点是顺时针旋转,为 0 时表示由圆弧起始点到结束点是逆时针旋转。 + 目标点 x + 目标点 y + this + + + + SubPath 自动闭合,表示将当前点和 SubPath 的起始点用线段直连连接 + + this + + + + 撤销上一步操作 + + this + + + + 序列化为操作序列 + + 操作序列 + + + + 复制路径对象 + + 复制之后的路径对象 + + + + 图形对象 + + 图形对象具有一般图元的一切属性和行为特征。 + + + 9.1 图形对象 图 46 表 35 + + + + + + + 构造路径对象 + + 对象ID + 对象 + + + + 【可选 属性】 + 设置 图形是否被沟边 + + true - 沟边;false - 不勾边 + this + + + + 【可选 属性】 + 获取 图形是否被沟边 + + true - 沟边;false - 不勾边 + + + + 【可选 属性】 + 设置 图形是否被填充 + + true - 填充; false - 不填充 + this + + + + 【可选 属性】 + 获取 图形是否被填充 + + true - 填充; false - 不填充 + + + + 【可选 属性】 + 设置 图形的填充规则 + + 当 Fill 属性存在时出现,可选值参考 + + + 默认值为 NonZero + + + + 图形的填充规则 + this + + + + 【可选 属性】 + 获取 图形的填充规则 + + 当 Fill 属性存在时出现,可选值参考 + + + 默认值为 NonZero + + + + 图形的填充规则 + + + + 【可选】 + 设置 沟边颜色 + + 默认为黑色 + + + + 沟边颜色,颜色定义请参考 8.3.2 基本颜色 + this + + + + 【可选】 + 获取 沟边颜色 + + 默认为黑色 + + + 沟边颜色,null表示为黑色,颜色定义请参考 8.3.2 基本颜色 + + + + 【可选】 + 设置 填充颜色 + + 默认为透明色 + + + + 填充颜色,颜色定义请参考 8.3.2 基本颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 默认为透明色 + + + + 填充颜色,颜色定义请参考 8.3.2 基本颜色 + + + + 【必选】 + 设置 图形轮廓数据 + + 由一系列紧缩的操作符和操作数构成 + + + + 图形轮廓数据 + this + + + + 【必选】 + 获取 图形轮廓数据 + + 由一系列紧缩的操作符和操作数构成 + + + + 图形轮廓数据字符串 + + + + 填充颜色 + + 9.1 表 35 + + + + + + 图形的填充规则 + + 9.1 表 35 图形对象描述 + + + + + + 勾边颜色 + + 9.1 表 35 + + + + + + 区域由一系列的分路径(Area)组成,每个路径都是闭合的 + + 图 49 区域结构 + + + + + + 【必选 属性】 + 设置 定义字图形的起始点坐标 + + 定义字图形的起始点坐标 + this + + + + 【必选 属性】 + 获取 定义字图形的起始点坐标 + + 定义字图形的起始点坐标 + + + + 【必选】 + 增加 绘制指令 + + 移动点、画线、画圆弧等 + + + + 绘制指令 + this + + + + 连续绘制 + + 绘制指令 + this + + + + 【必选】 + 获取 绘制指令序列(顺序决定了绘制图形) + + 移动点、画线、画圆弧等 + + + + 绘制指令序列 + + + + 图形也可以使用 XML 负载类型的方式进行描述,这种方式主要用于 + 区域(Region)。区域由一系列的分路径(Area)组成,每个路径都是闭合的. + + 图 49 区域结构 /// + + + + + 【必选】 + 为区域增加分路径 + + 路径 + this + + + + 【必选】 + 获取 区域中所有分路径 + + 区域中所有分路径 + + + + 圆弧 + + 图 56圆弧的结构 + + + + + + 【必选 属性】 + 设置 弧线方向是否顺时针 + + true 表示由圆弧起始点到结束点是顺时针,false 表示由圆弧起始点到结束点是逆时针 + + + 对于经过坐标系上指定两点,给定旋转角度和长短轴长度的椭圆,满足条件的可能有 2 个, + 对应的圆弧有 4 条,通过 LargeArc 属性可以排除 2 条,次属性从剩余的 2 条圆弧中确定 + 一条 + + + + true - 由圆弧起始点到结束点是顺时针;false - 由圆弧起始点到结束点是逆时针 + this + + + + 【必选 属性】 + 获取 弧线方向是否顺时针 + + true 表示由圆弧起始点到结束点是顺时针,false 表示由圆弧起始点到结束点是逆时针 + + + 对于经过坐标系上指定两点,给定旋转角度和长短轴长度的椭圆,满足条件的可能有 2 个, + 对应的圆弧有 4 条,通过 LargeArc 属性可以排除 2 条,次属性从剩余的 2 条圆弧中确定 + 一条 + + + + true - 由圆弧起始点到结束点是顺时针;false - 由圆弧起始点到结束点是逆时针 + + + + 【必选 属性】 + 设置 是否是大圆弧 + + true 表示此线型对应的位角度大于 180°的弧,false 表示对应度数小于 180°的弧 + + + 对于一个给定长、短轴的椭圆以及起始点和结束点,有一大一小两条圆弧, + 如果所描述线型恰好为 180°的弧,此属性的值不被参考,可由 SweepDirection 属性确定圆弧形状 + + + + true - 此线型对应的位角度大于 180°的弧;false - 对应度数小于 180°的弧 + this + + + + 【必选 属性】 + 获取 是否是大圆弧 + + true 表示此线型对应的位角度大于 180°的弧,false 表示对应度数小于 180°的弧 + + + 对于一个给定长、短轴的椭圆以及起始点和结束点,有一大一小两条圆弧, + 如果所描述线型恰好为 180°的弧,此属性的值不被参考,可由 SweepDirection 属性确定圆弧形状 + + + + true - 此线型对应的位角度大于 180°的弧;false - 对应度数小于 180°的弧 + + + + 【必选 属性】 + 设置 按 EllipseSize 绘制的椭圆在当前坐标系下旋转的角度, + 正值为顺时针,负值为逆时针 + + [异常处理] 如果角度大于 360°,则以 360°取模 + + + + 绘制的椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针 + this + + + + 【必选 属性】 + 获取 按 EllipseSize 绘制的椭圆在当前坐标系下旋转的角度, + 正值为顺时针,负值为逆时针 + + [异常处理] 如果角度大于 360°,则以 360°取模 + + + + 绘制的椭圆在当前坐标系下旋转的角度,正值为顺时针,负值为逆时针 + + + + 【必选 属性】 + 设置 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + this + + + + 【必选 属性】 + 设置 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 长短轴参数 + this + + + + 【必选 属性】 + 获取 长短轴 + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + [异常处理]如果数组长度超过 2,则只取前两个数值 + + + [异常处理]如果数组长度为 1,则认为这是一个园,该数值为圆的半径 + + + [异常处理]如果数组前两个数值中有一个为 0,或者数组为空,则圆弧退化为一条从当前点 + 到 EndPoint的线段 + + + [异常处理] + + + + 形如[200 100]的数组,2个浮点数值一次对应椭圆的长、短轴长度,较大的一个为长轴 + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + 圆弧结束点,下一个路径起点 + this + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + X坐标 + Y坐标 + this + + + + 【必选 属性】 + 设置 圆弧结束点,下一个路径起点 + + 不能与当前的绘制点为同一位置 + + + + 圆弧结束点,下一个路径起点 + + + + 自动闭合到当前路径的起始点,并以该点为当前点 + + 表 37 图形对象描述方法 + + + + + + 路径操作 + + 表 37 图形对象描述方法,如:移动、划线等 + + + + + 三次贝塞尔曲线 + + 图 53 三次贝塞尔曲线结构 + + + 三次贝塞尔曲线公式 + + B(t) = (1-t)^3(P0) + 3t(1-t)^2(P1) + 3t^2(1-t)(P2) + t^3(P3) t∈[0,1] + + + + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的第一个控制点 + + 三次贝塞尔曲线的第一个控制点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的第以个控制点 + + 三次贝塞尔曲线的第一个控制点 + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的第二个控制点 + + 三次贝塞尔曲线的第二个控制点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的第二个控制点 + + 三次贝塞尔曲线的第二个控制点 + + + + 【必选 属性】 + 设置 三次贝塞尔曲线的结束点,下一路径的起始点 + + 三次贝塞尔曲线的结束点,下一路径的起始点 + this + + + + 【必选 属性】 + 获取 三次贝塞尔曲线的结束点,下一路径的起始点 + + 三次贝塞尔曲线的结束点,下一路径的起始点 + + + + 线段 + + 图 51 线段结构 + + + + + + 【必选 属性】 + 设置 线段的结束点 + + 线段的结束点 + this + + + + 【必选 属性】 + 获取 线段的结束点 + + 线段的结束点 + + + + 移动节点 + + 用于表示到新的绘制点指令 + + + + + + 【必选 属性】 + 设置 移动后新的当前绘制点 + + 移动后新的当前绘制点 + this + + + + 【必选 属性】 + 获取 移动后新的当前绘制点 + + 移动后新的当前绘制点 + + + + 二次贝塞尔曲线结构 + + 图 52 二次贝塞尔曲线结构 + + 二次贝塞尔曲线公式 + + B(t) = (1 - t)^2 + 2t(1 - t)(P1) + t^2(P2) + t ∈ [0,1] + + + + + + + 【必选 属性】 + 设置 二次贝塞尔曲线的控制点 + + 二次贝塞尔曲线的控制点 + this + + + + 【必选 属性】 + 获取 二次贝塞尔曲线的控制点 + + 二次贝塞尔曲线的控制点 + + + + 【必选 属性】 + 设置 二次贝塞尔曲线的结束点 + + 二次贝塞尔曲线的结束点 + this + + + + 【必选 属性】 + 获取 二次贝塞尔曲线的结束点 + + 二次贝塞尔曲线的结束点 + + + + 图像边框 + + 10 表 43 + + + + + + 【可选 属性】 + 设置 边框线宽 + + 如果为 0 则表示边框不进行绘制 + + + 默认值为 0.353 mm + + + + 边框线宽 + this + + + + 【可选 属性】 + 获取 边框线宽 + + 如果为 0 则表示边框不进行绘制 + + + 默认值为 0.353 mm + + + + 边框线宽 + + + + 【可选 属性】 + 设置 边框水平角半径 + + 默认值为 0 + + + + 边框水平角半径 + this + + + + 【可选 属性】 + 获取 边框水平角半径 + + 默认值为 0 + + + + 边框水平角半径 + + + + 【可选 属性】 + 设置 边框垂直角半径 + + 默认值为 0 + + + + 边框垂直角半径 + this + + + + 【可选 属性】 + 获取 边框垂直角半径 + + 默认值为 0 + + + + 边框垂直角半径 + + + + 【可选 属性】 + 设置 边框虚线重复样式开始的位置 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + 默认值为 0 + + + + 边框虚线重复样式开始的位置 + this + + + + 【可选 属性】 + 获取 边框虚线重复样式开始的位置 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + 默认值为 0 + + + + 边框虚线重复样式开始的位置 + + + + 【属性 可选】 + 设置 边框虚线重复样式 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + + 边框虚线重复样式 + this + + + + 【属性 可选】 + 获取 边框虚线重复样式 + + 边框的起点位置为左上角,绕行方向为顺时针 + + + + 边框虚线重复样式 + + + + 【可选】 + 设置 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + 边框颜色 + this + + + + 【可选】 + 获取 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + 边框颜色,null表示为黑色 + + + + 边框颜色 + + 有关边框颜色描述见 8.3.2 基本颜色 + + + 默认为黑色 + + + + + + 图像 + + 10 图像 图 57 表 43 + + + + + + 【必选 属性】 + 设置 引用资源文件的定义多媒体的标识 + + 引用资源文件的定义多媒体的标识 + this + + + + 【必选 属性】 + 设置 引用资源文件的定义多媒体的标识 + + 引用资源文件的定义多媒体的标识 + + + + 【可选 属性】 + 设置 可替换图像 + + 引用资源文件中定义的多媒体的标识,由于某些情况 + 如高分辨率输出进行图像替换 + + + + 可替换图像标识 + this + + + + 【可选 属性】 + 获取 可替换图像引用 + + 引用资源文件中定义的多媒体的标识,由于某些情况 + 如高分辨率输出进行图像替换 + + + + 可替换图像标识引用 + + + + 【可选 属性】 + 设置 图像蒙版 + + 引用资源文件中定义的多媒体的标识,用作蒙板的图像应是 + 与 ResourceID 指向的图像相同大小的二值图 + + + + 图像蒙版资源引用 + this + + + + 【可选 属性】 + 获取 图像蒙版资源引用 + + 引用资源文件中定义的多媒体的标识,用作蒙板的图像应是 + 与 ResourceID 指向的图像相同大小的二值图 + + + + 图像蒙版资源引用 + + + + 【可选】 + 设置 图像边框 + + 图像边框 + this + + + + 构造图片对象 + + 对象ID + 对象 + + + + 【可选】 + 设置 图像边框 + + 图像边框 + + + + OFD通用 qualified name + + 只要名称相同并且命名空间前缀保持一致就认为是同一种 qualified name + + + + + OFD元素名称 + + + + Name相同并且,只要符合命名空间前缀相同那么 + 那么认定为是相等的qualified name + + 比较对象 + true 相同;false 不同 + + + + 文件根节点 + + XML文档使用的命名空间为 http://www.ofdspec.org/2016,其表示符应为 ofd; + 应在包内各XML文档的根节点申明 defaults:ofd。 + 元素节点应使用命名空间标识符,元素属性不使用命名空间标识符。 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + + 元素名称 + 获取OFD类型元素实例 + + + + 向元素中增加OFD元素 + + 元素名称 + 元素文本 + this + + + + 设置OFD参数 + + 如果参数已经存在则修改参数 + + + 如果属性值value为null,表示删除该类元素 + + + + 元素名称 + 元素文本 + this + + + + 设置 元素名称 + + 元素名称 + this + + + + 获取OFD的元素 + + OFD元素名称 + OFD元素或null + + + + 如果属性存在则删除 + + 属性名 + true 删除成功;false 删除失败,可能是由于属性不存在 + + + + 获取OFD元素中的文本 + + 元素名称 + 文本 + + + + 设置元素 + + 如果同类型元素已经存在,那么删除原有元素 + + + + 需要设置的元素 + this + + + + @Date 2021 04 20 19 18 + + @return + + + + 【可选】 + + 设置 OFD对象标识,无符号整数,应在文档内唯一。 + + + 0标识无效标识符 + + + + OFD对象标识 + this + + + + @Data 2021 4 20 18 53 + @return + + + + + 【可选】 + + 设置 OFD对象标识,无符号整数,应在文档内唯一。 + + + 0标识无效标识符 + + + + OFD对象标识,null表示对象标识不存在 + + + + OFD元素采用OFD的命名空间,所以直接调用代理对象 + + 元素全名(含有前缀) + + + + 简单类型元素对象,用于承载 Text + + + + + 创建一个带有文本元素 + + 元素名称 + 元素值对象(可toString 序列化为字符串) + + + + 需要继承的子类实现该方法,用于在代理对象是做类型检查 + + 元素全名(含有前缀) + + + + 如果属性存在则删除 + + 属性名 + true 删除成功;false 删除失败,可能是由于属性不存在 + + + + 裁剪区域 + + 用一个图形或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + 8.4 裁剪区 表 33 + + + + + + 【可选 属性】 + 设置 引用资源文件中的绘制参数的标识 + + 线宽、结合点和端点样式等绘制特性对裁剪效果会产生影响, + 有关绘制参数的描述见 8.2 + + + + 引用资源文件中的绘制参数的标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中的绘制参数的标识 + + 线宽、结合点和端点样式等绘制特性对裁剪效果会产生影响, + 有关绘制参数的描述见 8.2 + + + + 引用资源文件中的绘制参数的标识 + + + + 【可选 属性】 + 设置 变换矩阵 + + 针对对象坐标系,对Area下包含的 Path 和 Text 进行进一步的变换 + + + + 变换矩阵 + this + + + + 【可选 属性】 + 获取 变换矩阵 + + 针对对象坐标系,对Area下包含的 Path 和 Text 进行进一步的变换 + + + + 变换矩阵 + + + + 【必选】 + 设置 裁剪对象 + + 裁剪对象可以是 CT_Text、CT_Path + + + + 裁剪对象 + this + + + + 【必选】 + 获取 裁剪对象 + + 裁剪对象可以是 CT_Text、CT_Path + + + + 裁剪对象 + + + + 可裁剪对象 + + 实现该接口代表能够作为裁剪区域进行裁剪操作 + + + 可裁剪对象为: CT_Path、CT_Text + + + 8.5 图 44 表 33 + + + + + + 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip对象时,最终裁剪区为所有 Clip区域交集。 + + + 8.5 图元对象 图 45 表 34 + + + + + + 使用一个裁剪对象初始化裁剪序列 + + 裁剪对象 + + + + 【必选】 + 增加 图元对象的裁剪区域 + + 采用对象空间坐标系 + + + + 图元对象的裁剪区域 + this + + + + 【必选】 + 获取 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区为所有 Clip 区域的交集 + + + + 图元对象的裁剪区域序列 + + + + 裁剪区 + + 裁剪区由一组路径或文字构成,用以指定页面上的一个有效绘制区域,落在裁剪区 + 意外的部分不受绘制指令的影响。 + + + 一个裁剪区可由多个分路径(Area)组成,最终的裁剪范围是各个部分路径的并集。 + 裁剪区中的数据均相对于所修饰图元对象的外界矩形。 + + + 8.4 裁剪区 图 44 表 33 + + + + + + 【必选】 + 增加 裁剪区域 + + 用一个图形对象或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + + 裁剪区域 + this + + + + 【必选】 + 设置 裁剪区域 + + 用一个图形对象或文字对象来描述裁剪区的一个组成部分, + 最终裁剪区是这些区域的并集。 + + + + 裁剪区域 + + + + 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 + + + 默认值取值为 8 + + + + + + 每个颜色通道使用的位数 + + + + + 获取 每个颜色通道使用的位数 + + 每个颜色通道使用的位数 + + + + 获取实例 + + 比特数字符串 + 实例 + + + + 获取实例 + + 比特数 + 实例 + + + + 颜色空间 + + 本标准支持 GRAY、RGB、CMYK 颜色空间。除通过 + 设置各通道使用颜色空间内的任意颜色之外,还可 + 在颜色空间内定义调色板或指定相应颜色配置文件, + 通过设置索引值进行引用。 + + + 8.3 颜色 图 24 + + + + + 颜色类型 + + + 颜色类型 + 对象ID + + + + 【必选 属性】 + 设置 颜色空间的类型 + + 可选类型 + + + + 颜色空间的类型 + this + + + + 【必选 属性】 + 获取 颜色空间的类型 + + 可选类型 + + + + 颜色空间的类型 + + + + 【可选 属性】 + 设置 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 参考 + + + + 每个颜色通道使用的位数 + this + + + + 【可选 属性】 + 获取 每个颜色通道使用的位数 + + 有效取值为:1,2,4,8,16 参考 + + + + 每个颜色通道使用的位数 + + + + 【可选 属性】 + 设置 指向包内颜色配置文件 + + 指向包内颜色配置文件路径 + this + + + + 【可选 属性】 + 获取 指向包内颜色配置文件 + + 指向包内颜色配置文件路径 + + + + 【可选】 + 设置 调色板 + + 调色板中颜色的索引编号从 0 开始 + + + + 调色板 + this + + + + 【可选】 + 获取 调色板 + + 调色板中颜色的索引编号从 0 开始 + + + + 调色板 + + + + 调色板中预定义的颜色 + + 调色板中颜色的索引编号从 0 开始 + + + 8.3 颜色 表 25 + + + + + + 颜色表示: + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + + + + 设置 预定义的颜色 + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + this + + + + 获取 预定义的颜色 + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 设置预定义的颜色 + + + + 颜色空间的类型 + + 8.3.1 表 25 颜色空间属性 + + + + + + 灰度 + + + + + 红绿蓝 + + + + + 印刷颜色 + + + + + 获取实例 + 类型字符串 + 实例 + 未知的颜色空间类型 + + + + 调色板 + + 8.3 颜色 表 25 + + + 调色板中颜色的索引编号从 0 开始 + + + + + + 【必选】 + + 设置 调色板中的预定义颜色 + + + + 调色板中的预定义颜色 + this + + + + 获取 预定义位置颜色 + + 预定义位置颜色位置序号,0 开始 + 预定义位置颜色 + + + + 获取 预定义位置颜色 + + 预定义位置颜色位置序号,0 开始 + 预定义位置颜色 + + + + 【必选】 + + 获取 调色板中的预定义颜色 + + + 调色板中颜色的索引编号从 0 开始 + + + + tip:只读 + + + + 调色板中的预定义颜色列表 + + + + 颜色族 + + 用于标识属于颜色的一种,颜色可以是基本颜色、底纹和渐变 + + + 8.3.2 图 25 颜色结构 + + + + + + + 轴向渐变 + + 在轴向渐变中,颜色渐变沿着一条指定的轴线方向,轴线由起始点和结束点决定, + 与这条轴线垂直的直线上的点颜色相同。 + + + 当轴向渐变某个方向设定为延伸时(Extend 不等于 0),渐变应沿轴在该方向的延长线 + 延伸到超出裁剪区在该轴线的投影区域为止。当 MapType 为 Direct 时,延伸区域的 + 渲染颜色使用该方向轴点所在的段的颜色;否则,按照在轴线区域内的渲染规则进行渲染。 + + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 【可选 属性】 + 设置 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + this + + + + 【可选 属性】 + 获取 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + + + + 【可选 属性】 + 设置 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + this + + + + 【可选 属性】 + 获取 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + + + + 【可选 属性】 + 设置 轴线延长线方向是否继续绘制 + + 可选值参考 + + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制 + this + + + + 【可选 属性】 + 获取 轴线延长线方向是否继续绘制 + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制,选值参考 + + + + 【必选 属性】 + 设置 轴线起始点 + + 轴线起始点 + this + + + + 【必选 属性】 + 获取 轴线起始点 + + 轴线起始点 + + + + 【必选 属性】 + 设置 轴线结束点 + + 轴线结束点 + this + + + + 【必选 属性】 + 设置 轴线结束点 + + 轴线结束点 + + + + 【必选】 + 增加 段 + + 段 + this + + + + 【必选】 + 获取 段列表 + + 段列表 + + + + 基本颜色 + + 本标准中定义的颜色是一个广义的概念,包括基本颜色、底纹和渐变 + + + 基本颜色支持两种指定方式:一种是通过设定颜色个通道值指定颜色空间的某个颜色, + 另一种是通过索引值取得颜色空间中的一个预定义颜色。 + + + 由于不同颜色空间下,颜色通道的含义、数目各不相同,因此对颜色空间的类型、颜色值的 + 描述格式等作出了详细的说明,见表 27。BitsPerComponent(简称 BPC)由效时, + 颜色通道值的取值下限是 0,上限由 BitsPerComponent 决定,取值区间 [0, 2^BPC - 1] + 内的整数,采用 10 进制或 16 进制的形式表示,采用 16 进制表示时,应以"#"加以标识。 + 当颜色通道的值超出了相应区间,则按照默认颜色来处理。 + + + 8.3.2 基本颜色 图 25 表 26 + + + + + + 颜色族中的颜色 + + + + RGB颜色值 + + 其中颜色空间(CT_ColorSpace)的通道使用位数(BitsPerComponent)为 8 + + + 采用10进制表示方式 + + + + 红色 0~255 + 绿色 0~255 + 蓝色 0~255 + RGB 颜色 + + + + 【可选 属性】 + 设置 颜色值 + + 指定了当前颜色空间下各通道的取值。Value 的取值应 + 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, + 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 + 出现时,改颜色各通道的值全部为 0 + + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 颜色值 + this + + + + 【可选 属性】 + 获取 颜色值 + + 指定了当前颜色空间下各通道的取值。Value 的取值应 + 符合"通道 1 通道 2 通道 3 ..."格式。此属性不出现时, + 应采用 Index 属性从颜色空间的调色板中的取值。二者都不 + 出现时,改颜色各通道的值全部为 0 + + + 颜色表示: + + + Gray - 通过一个通道来表明灰度值;例如 "#FF 255" + + + RGB - 包含3个通道,一次是红、绿、蓝;例如 "#11 #22 #33"、"17 34 51" + + + CMYK - 包含4个通道,依次是青、黄、品红、黑;例如 "#11 #22 #33 # 44"、"17 34 51 68" + + + + 颜色值 + + + + 【可选 属性】 + 设置 调色板中颜色的编号,非负整数 + + 将从当前颜色空间的调色板中取出相应索引的预定义颜色用来描绘。 + 索引从 0 开始 + + + + 调色板中颜色的编号 + this + + + + 【可选 属性】 + 获取 调色板中颜色的编号,非负整数 + + 将从当前颜色空间的调色板中取出相应索引的预定义颜色用来描绘。 + 索引从 0 开始 + + + + 调色板中颜色的编号,null表示不存在 + + + + 【可选 属性】 + 设置 引用资源文件中颜色空间的标识 + + 默认值为文档设定的颜色空间 + + + + 颜色空间的标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中颜色空间的标识 + + 默认值为文档设定的颜色空间 + + + + 颜色空间的标识,为null是请从文档中获取设定的颜色空间,参照表 6 DefaultCS + + + + 【可选 属性】 + 设置 颜色透明度 + + 范围在 0~255 之间取值。 + + + 默认为 255,完全不透明。 + + + + 颜色透明度 + this + + + + 【可选 属性】 + 获取 颜色透明度 + + 范围在 0~255 之间取值。 + + + 默认为 255,完全不透明。 + + + + 颜色透明度 0~255 + + + + 【可选】 + 设置 颜色 + + 颜色族 + this + + + + 设置 Pattern + + 样式 + this + + + + 【可选】 + 获取 颜色 + + 颜色族, null表示不存在 + + + + + 高洛德渐变 + + 高洛德渐变的基本原理是指定三个带有可选颜色的顶点,在其构成的三角形区域内 + 采用高洛德算法绘制渐变图形。 + + + 8.3.4.4 高洛德渐变 图 41 表 31 + + + + + + 【可选 属性】 + 设置 在渐变控制点所确定的部分是否填充 + + 默认值为 false(0) + + + + false - 不填充; true - 填充 + this + + + + 【可选 属性】 + 获取 在渐变控制点所确定的部分是否填充 + + 默认值为 false (0) + + + + false - 不填充; true - 填充 + + + + 【必选】 + 增加 渐变控制点 + + 至少出现三个 + + + + 渐变控制点 + this + + + + 【必选】 + 获取 渐变控制点列表 + + 至少出现三个 + + + + 渐变控制点列表 + + + + 【可选】 + 设置 渐变范围外的填充颜色 + + 应使用基本颜色 + + + + 渐变范围外的填充颜色,应使用基本颜色 + this + + + + 【可选】 + 获取 渐变范围外的填充颜色 + + 应使用基本颜色 + + + + 渐变范围外的填充颜色,应使用基本颜色 + + + + 网格高洛德渐变 + + 网格高洛德渐变是高洛德渐变的一种特殊形式, + 允许定义 4 个以上的控制点,按照每行固定的网格数(VerticesPerRow) + 形成若干行列,相邻的 4 个控制点定义一个网格单元,在 + 一个网格单元内 EdgeFlag 固定为 1,网格单元及多个单元组成的网格区域的规则如图42所示。 + + + 8.3.4.5 图 43 表 32 + + + + + + 【必选 属性】 + 设置 渐变区域内每行的网格数 + + 渐变区域内每行的网格数 + this + + + + 【必选 属性】 + 获取 渐变区域内每行的网格数 + + 渐变区域内每行的网格数 + + + + 【必选】 + 增加 渐变控制点 + + 至少出现四个 + + + + 渐变控制点,至少出现四个 + this + + + + 径向渐变 + + 8.3.4.3 径向渐变 图 35 表 30 + + + 径向渐变定义了两个离心率和倾斜角度均相同的椭圆,并在椭圆边缘连线 + 区域内进行渐变绘制的方法。具体算法是,先由起始点椭圆中心点开始绘制 + 一个起始点颜色的空心矩形,随后沿着中心点连线不断绘制离心率与倾角角度 + 相同的空心椭圆,颜色由起始点颜色逐渐渐变为结束点颜色,椭圆大小由起始点 + 椭圆主键变为结束点椭圆。 + + + 当轴向渐变某个方向设定为延伸时(Extend 不等于 0),渐变应沿轴在该方向的延长线 + 延伸到超出裁剪区在该轴线的投影区域为止。当 MapType 为 Direct 时,延伸区域的 + 渲染颜色使用该方向轴点所在的段的颜色;否则,按照在轴线区域内的渲染规则进行渲染。 + + + + + + + 【可选 属性】 + 设置 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + this + + + + 【可选 属性】 + 获取 渐变绘制的方式 + + 可选值参考 + + + + 绘制方向 + + + + 【可选 属性】 + 设置 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + this + + + + 【可选 属性】 + 获取 轴线一个渐变区间的长度 + + 当 MapType 的值不等于 Direct 时出现 + + + 默认值为轴线长度 + + + + 轴线一个渐变区间的长度 + + + + 【可选 属性】 + 设置 两个椭圆的离心率 + + 椭圆焦距与长轴的比值,取值范围是 [0, 1.0) + + + 默认值为 0,在这种情况下退化为圆 + + + + 两个椭圆的离心率,取值范围是 [0, 1.0) + this + + + + 【可选 属性】 + 获取 两个椭圆的离心率 + + 椭圆焦距与长轴的比值,取值范围是 [0, 1.0) + + + 默认值为 0,在这种情况下退化为圆 + + + + 两个椭圆的离心率,取值范围是 [0, 1.0),默认值为 0 + + + + 【可选 属性】 + 设置 两个椭圆的倾斜角度 + + 椭圆长轴与 x 轴正向的夹角,单位为度 + + + 默认值为 0 + + + + 两个椭圆的倾斜角度 + this + + + + 【可选 属性】 + 获取 两个椭圆的倾斜角度 + + 椭圆长轴与 x 轴正向的夹角,单位为度 + + + 默认值为 0 + + + + 两个椭圆的倾斜角度 + + + + 【必选 属性】 + 设置 起始椭圆的的中心点 + + 起始椭圆的的中心点 + this + + + + 【必选 属性】 + 获取 起始椭圆的的中心点 + + 起始椭圆的的中心点 + + + + 【必选 属性】 + 设置 结束椭圆的的中心点 + + 结束椭圆的的中心点 + this + + + + 【必选 属性】 + 获取 结束椭圆的的中心点 + + 结束椭圆的的中心点 + + + + 【可选 属性】 + 设置 起始椭圆的长半轴 + + 默认值为 0 + + + + 起始椭圆的长半轴长度 + this + + + + 【可选 属性】 + 获取 起始椭圆的长半轴 + + 默认值为 0 + + + + 起始椭圆的长半轴长度 + + + + 【必选 属性】 + 设置 结束椭圆的长半轴 + + 结束椭圆的长半轴长度 + this + + + + 【必选 属性】 + 设置 结束椭圆的长半轴 + + 结束椭圆的长半轴长度 + + + + 【可选 属性】 + 设置 轴线延长线方向是否继续绘制 + + 可选值参考 + + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制 + this + + + + 【可选 属性】 + 获取 轴线延长线方向是否继续绘制 + + 默认值为 不向两侧继续绘制渐变 + + + + 轴线延长线方向是否继续绘制,选值参考 + + + + 【必选】 + 增加 段 + + 段 + this + + + + 【必选】 + 获取 段列表 + + 段列表 + + + + 三角单元切换的方向标志 + + 8.1.4.4 表 31 附录A.13 + + + + + + 轴线延长线方向是否继续绘制 + + 可选值为 0、1、2、3 + + + 0:不向两侧继续绘制渐变 + + + 1: 在结束点至起始点延长线方向绘制渐变 + + + 2:在起始点至结束点延长线方向绘制渐变 + + + 3:向两侧延长线方向绘制渐变 + + + 默认值为 0 + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 不向两侧继续绘制渐变 + + 默认值 + + + + + 在结束点至起始点延长线方向绘制渐变 + + + + + 在起始点至结束点延长线方向绘制渐变 + + + + + 向两侧延长线方向绘制渐变 + + + + + 类型值 + + + + + 渐变绘制的方式 + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + + 默认值 Direct + + + + + 渐变控制点,至少出现三个 + + 8.6.4.4 表 31 附录 A.13 P125 + + + + + + 【必选 属性】 + 设置 控制点水平位置 + + 控制点水平位置 + this + + + + 【必选 属性】 + 获取 控制点水平位置 + + 控制点水平位置 + + + + 【必选 属性】 + 设置 控制点垂直位置 + + 控制点垂直位置 + this + + + + 【必选 属性】 + 获取 控制点垂直位置 + + 控制点垂直位置 + + + + 【可选 属性】 + 设置 三角单元切换的方向标志 + + 三角单元切换的方向标志 + this + + + + 【可选 属性】 + 获取 三角单元切换的方向标志 + + 三角单元切换的方向标志 + + + + 【必选】 + 设置 控制点对应的颜色 + + 应使用基本颜色 + + + + 控制点对应的颜色,应使用基本颜色 + this + + + + 【必选】 + 获取 控制点对应的颜色 + + 应使用基本颜色 + + + + 控制点对应的颜色,应使用基本颜色 + + + + 颜色段 + + 至少出现两个 + + + 8.3.4.2 轴向渐变 图 29、30 表 29 + + + + + 段颜色 + + + 段坐标 + 段颜色 + + + + 【可选 属性】 + 设置 渐变段颜色位置参数 + + 用于确定 StartPoint 和 EndPoint 中的各颜色的位置值, + 取值范围是 [0, 1.0],各颜色的 Position 值应根据颜色出现 + 的顺序递增第一个 Segment 的 Position 属性默认值为 0,最后 + 一个 Segment 的 Position 属性默认值为 1.0,当不存在时, + 在空缺的区间内平局分配。 + + + 举例: Segment 个数等于 2 且不出现 Position 属性时, + 按照"0 1.0"处理;Segment 个数等于 3 且不出现 Position 属性时, + 按照"0 0.5 1.0"处理;Segment 个数等于 5 且不出现 Position 属性时, + 按照"0 0.25 0.5 0.75 1.0" 处理。 + + + + 渐变位置参数 + this + + + + 【可选 属性】 + 获取 渐变段颜色位置参数 + + 用于确定 StartPoint 和 EndPoint 中的各颜色的位置值, + 取值范围是 [0, 1.0],各颜色的 Position 值应根据颜色出现 + 的顺序递增第一个 Segment 的 Position 属性默认值为 0,最后 + 一个 Segment 的 Position 属性默认值为 1.0,当不存在时, + 在空缺的区间内平局分配。 + + + 举例: Segment 个数等于 2 且不出现 Position 属性时, + 按照"0 1.0"处理;Segment 个数等于 3 且不出现 Position 属性时, + 按照"0 0.5 1.0"处理;Segment 个数等于 5 且不出现 Position 属性时, + 按照"0 0.25 0.5 0.75 1.0" 处理。 + + + + 渐变位置参数 + + + + 【必选】 + 设置 该段的颜色 + + 应是基本颜色 + + + + 该段的颜色,应是基本颜色 + this + + + + 【必选】 + 获取 该段的颜色 + + 应是基本颜色 + + + + 该段的颜色,应是基本颜色 + + + + 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + CellContent 作为底纹对象的绘制单元,使用一种和外界没有 + 任何关联的独立的坐标空间:坐上角(0,0)为原点,X 轴向右增长, + Y 轴向下增长,单位为毫米。 + + + + + + + 【可选 属性】 + 设置 引用资源文件中缩略图图像的标识符 + + 引用资源文件中缩略图图像的标识符 + this + + + + 【可选】 + 增加 页块 + + 一个页块中可以嵌套其他页块,可含有0到多个页块 + + + + 页块实例 + this + + + + 【可选 属性】 + 获取 引用资源文件中缩略图图像的标识符 + + 引用资源文件中缩略图图像的标识符 + + + + 底纹 + + 底纹是复杂颜色的一种,用于图形和文字的填充以及沟边处理。 + + + 8.3.3 底纹 图 26 表 28 + + + + + + 【必选 属性】 + 设置 底纹单元宽度 + + 底纹单元宽度 + this + + + + 【必选 属性】 + 获取 底纹单元宽度 + + 底纹单元宽度 + + + + 【必选 属性】 + 获取 底纹单元高度 + + 底纹单元高度 + this + + + + 【必选 属性】 + 获取 底纹单元高度 + + 底纹单元高度 + + + + 【可选 属性】 + 设置 X 方向底纹单元间距 + + 默认值为底纹单元的宽度。 + + + 若设定值小于底纹单元的宽度时,应按默认值处理 + + + + X 方向底纹单元间距 + this + + + + 【可选 属性】 + 设置 X 方向底纹单元间距 + + 默认值为底纹单元的宽度。 + + + 若设定值小于底纹单元的宽度时,应按默认值处理 + + + + X 方向底纹单元间距 + + + + 【可选 属性】 + 设置 Y 方向底纹单元间距 + + 默认值为底纹单元的高度。 + + + 若设定值小于底纹单元的高度时,应按默认值处理 + + + + Y 方向底纹单元间距 + this + + + + 【可选 属性】 + 获取 Y 方向底纹单元间距 + + 默认值为底纹单元的高度。 + + + 若设定值小于底纹单元的高度时,应按默认值处理 + + + + Y 方向底纹单元间距 + + + + 【可选 属性】 + 设置 底纹单元的翻转方式 + + 默认值为 Normal + + + 参考 + + + + 底纹单元的翻转方式 + this + + + + 【可选 属性】 + 获取 底纹单元的翻转方式 + + 默认值为 Normal + + + 参考 + + + + 底纹单元的翻转方式 + + + + 【可选 属性】 + 设置 底纹单元起始位置 + + 默认值为 Object:相对于对象坐标原点 + + + + 底纹单元起始位置 + this + + + + 【可选 属性】 + 设置 底纹单元起始位置 + + 默认值为 Object:相对于对象坐标原点 + + + + 底纹单元起始位置 + + + + 【可选 属性】 + 设置 底纹单元的变换矩阵 + + 用于某些需要对底纹单元进行平移旋转变换的场合, + 默认为单位矩阵;底纹呈现时先做 XStep、YStep 排列, + 然后一起做 CTM 处理 + + + + 底纹单元的变换矩阵 + this + + + + 【可选 属性】 + 获取 底纹单元的变换矩阵 + + 用于某些需要对底纹单元进行平移旋转变换的场合, + 默认为单位矩阵;底纹呈现时先做 XStep、YStep 排列, + 然后一起做 CTM 处理 + + + + 底纹单元的变换矩阵 + + + + 【必选】 + 设置 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + + 底纹单元 + this + + + + 【必选】 + 获取 底纹单元 + + 用底纹填充目标区域时,所使用的单元对象 + + + + 底纹单元 + + + + 翻转绘制效果 + + 8.3.4 渐变 图 28 + + + + + + 普通重复 + + 具体效果见 图 28 Normal + + + + + + 竖轴对称翻转 + + 具体效果见 图 28 Column + + + + + + 横轴对称翻转 + + 具体效果见 图 28 Row + + + + + + 十字轴对称翻转 + + 具体效果见 图 28 Row And Column + + + + + + 获取 翻转绘制效果 实例 + + 效果名称 + 翻转绘制效果 + + + + 底纹单元起始绘制位置 + + 8.3.4 表 28 RelativeTo + + + + + + 相对于页面坐标的原点 + + + + + 相对于对象坐标系的原点 + + + + + 获取 底纹单元起始绘制位置 + + 绘制位置字符串 + 底纹单元起始绘制位置 + + + + 图元对象 + + 图元对象是版式文档中页面上呈现内容的最基本单元, + 所有页面显示内容。包括文字、图形、图像等,都属于 + 图元对象,或是图元对象的组合。 + + + 8.5 图元对象 图 45 表 34 + + + + + + 【必选 属性】 + 设置 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形 + this + + + + 【必选 属性】 + 设置 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形X坐标 + 外接矩形Y坐标 + 外接矩形宽度 + 外接矩形高度 + this + + + + 【必选 属性】 + 获取 外接矩形 + + 采用当前空间坐标系(页面坐标或其他容器坐标),当图 + 元绘制超出此矩形区域时进行裁剪。 + + + + 外接矩形 + + + + 【可选 属性】 + 设置 图元对象的名字 + + 图元对象的名字 + this + + + + 【可选 属性】 + 获取 + + 图元对象的名字,可能为null + + + + 【可选 属性】 + 设置 图元是否可见 + + true - 可见;false - 不见 + this + + + + 【可选 属性】 + 获取 图元是否可见 + + true - 可见;false - 不见 + + + + 【可选 属性】 + 设置 对空间内的图元变换矩阵 + + 变换矩阵 + this + + + + 【可选 属性】 + 获取 对空间内的图元变换矩阵 + + 变换矩阵 + + + + 【可选 属性】 + 设置 引用资源文件中的绘制参数标识 + + 绘制参数标识 + this + + + + 【可选 属性】 + 获取 引用资源文件中的绘制参数标识 + + 绘制参数标识 + + + + 【可选 属性】 + 设置 绘制路径时使用的线宽 + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 绘制路径时使用的线宽 + this + + + + 【可选 属性】 + 获取 绘制路径时使用的线宽 + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 绘制路径时使用的线宽,可能为null + + + + 【可选 属性】 + 设置 线端点样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线端点样式 + this + + + + 【可选 属性】 + 获取 线端点样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线端点样式 + + + + 【可选 属性】 + 设置 线条连接样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条连接样式 + this + + + + 【可选 属性】 + 获取 线条连接样式 + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条连接样式 + + + + 【可选 属性】 + 设置 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + Join的截断值长度 + this + + + + 【可选 属性】 + 获取 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + Join的截断值长度 + + + + 【可选 属性】 + 设置 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线开始位置 + this + + + + 【可选 属性】 + 获取 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线开始位置 + + + + 【可选 属性】 + 设置 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + this + + + + 【可选 属性】 + 获取 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + 见 8.2 绘制参数 + + + 如果图元对象有 DrawParam 属性时,则用此值覆盖 DrawParam 中对应的值 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + + + + 【可选 属性】 + 设置 图元对象透明度 + + 取值区间为 [0,255] + + + 默认为 0 + + + + 图元对象透明度,取值区间为 [0,255] + this + + + + 【可选 属性】 + 获取 图元对象透明度 + + 取值区间为 [0,255] + + + 默认为 255 + + + + 图元对象透明度,取值区间为 [0,255] + + + + 【可选】 + 设置 图元对象的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 图元对象的动作序列 + this + + + + 【可选】 + 设置 图元对象的动作序列 + + 当存在多个 Action 对象时,所有动作依次执行 + + + + 图元对象的动作序列 + + + + 【可选】 + 设置 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区域为所有 Clip 区域的交集。 + + + + 图元对象的裁剪区域序列 + this + + + + 【可选】 + 设置 图元对象的裁剪区域序列 + + 采用对象空间坐标系 + + + 当存在多个 Clip 对象时,最终裁剪区域为所有 Clip 区域的交集。 + + + + 图元对象的裁剪区域序列 + + + + 绘制参数 + + 绘制参数是一组用于控制绘制渲染效果的修饰参数的集合。 + 绘制参数可以被不同的图元对象所共享。 + + + 绘制参数可以继承已有的绘制参数,被继承的绘制参数称为 + 该参数的"基础绘制参数"。 + + + 图元对象通过绘制参数的标识符引用绘制参数。图元对象在引用 + 绘制参数的同时,还可以定义自己的绘制属性,图元自有的绘制属性 + 将覆盖引用的绘制参数中的同名属性。 + + + 绘制参数可通过引用基础绘制参数的方式形成嵌套,对单个绘制参数而言, + 它继承了其基础绘制参数中的所有属性,并且可以重定义其基础绘制参数中的属性。 + + + 绘制参数的作用顺序采用就近原则,即当多个绘制参数作用于同一个对象并且这些绘制参数 + 中具有相同的要素时,采用与被作用对象关系最为密切的绘制参数的要素对其进行渲染。 + 例如,当图元已经定义绘制参数时,则按定义属性进行渲染;当图元未定义绘制参数时, + 应首先按照图元定义的绘制参数进行渲染;图元未定义绘制参数时应采用所在图层的默认绘制参数 + 渲染;当图元和所在图层都没有定义绘制参数时,按照各绘制属性的默认值进行渲染。 + + + 8.2 绘制参数结构 图 22 + + + + + + 【可选 属性】 + 设置 基础绘制参数,引用资源文件中的绘制参数的标识符 + + 引用资源文件中的绘制参数的标识符 + this + + + + 【可选 属性】 + 获取 基础绘制参数,引用资源文件中的绘制参数的标识符 + + 引用资源文件中的绘制参数的标识符 + + + + 【可选 属性】 + 设置 线宽 + + 非负浮点数,指定了绘制路径绘制时线的宽度。由于 + 某些设备不能输出一个像素宽度的线,因此强制规定 + 当线宽大于 0 时,无论多小都至少要绘制两个像素的宽度; + 当线宽为 0 时,绘制一个像素的宽度。由于线宽为 0 定义与 + 设备相关,所以不推荐使用线宽为 0。 + + + 默认值为 0.353 mm + + + + 线宽 + this + 线宽必须是非负浮点数 + + + + 【可选 属性】 + 获取 线宽 + + 非负浮点数,指定了绘制路径绘制时线的宽度。由于 + 某些设备不能输出一个像素宽度的线,因此强制规定 + 当线宽大于 0 时,无论多小都至少要绘制两个像素的宽度; + 当线宽为 0 时,绘制一个像素的宽度。由于线宽为 0 定义与 + 设备相关,所以不推荐使用线宽为 0。 + + + 默认值为 0.353 mm + + + + 线宽 + + + + 【可选 属性】 + 设置 线条连接样式 + + 可选样式参照,线条连接样式的取值和显示效果之间的关系见表 + + + + 线条连接样式 + this + + + + 【可选 属性】 + 获取 线条连接样式 + + 可选样式参照,线条连接样式的取值和显示效果之间的关系见表 + + + + 线条连接样式 + + + + 【可选 属性】 + 设置 线端点样式 + + 可选样式参照,线条端点样式取值与效果之间关系见表 24 + + + + 线端点样式 + this + + + + 【可选 属性】 + 设置 线端点样式 + + 可选样式参照,线条端点样式取值与效果之间关系见表 24 + + + 默认值为 Butt + + + + 线端点样式 + + + + 【可选 属性】 + 设置 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + + 线条虚线开始位置 + this + + + + 【可选 属性】 + 获取 线条虚线开始位置 + + 默认值为 0 + + + 当 DashPattern 不出现时,该参数无效 + + + + 线条虚线开始位置 + + + + 【可选 属性】 + 设置 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + this + + + + 【可选 属性】 + 获取 线条虚线的重复样式 + + 数组中共含两个值,第一个值代表虚线的线段的长度, + 第二个值代表虚线间隔的长度。 + + + 默认值为空。 + + + 线条样式的控制效果见表 23 + + + + 线条虚线的重复样式的数组中共含两个值,第一个值代表虚线的线段的长度,第二个值代表虚线间隔的长度。 + + + + 【可选 属性】 + 设置 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + + Join的截断值长度 + this + + + + 【可选 属性】 + 获取 Join的截断值 + + Join为 Miter 时小角度结合点长度的截断值,默认值为 3.528。 + 当 Join 不等于 Miter 时该参数无效。 + + + + Join的截断值长度 + + + + 【可选】 + 设置 填充颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为透明色。关于颜色的描述见 8.3 + + + + 填充颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为透明色。关于颜色的描述见 8.3 + + + + 填充颜色 + + + + 【可选】 + 设置 勾边颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为黑色。关于颜色的描述见 8.3 + + + + 勾边颜色 + this + + + + 【可选】 + 获取 勾边颜色 + + 用以填充路径形成的区域以及文字轮廓内的区域, + 默认值为黑色。关于颜色的描述见 8.3 + + + + 勾边颜色 + + + + 线端点样式 + + 指定一条线的端点样式。 + + + 线条端点样式取值与效果之间关系见表 24 + + 默认值为 Butt + + + + + + 根据类型字符串获取类型枚举 + + 默认值:Miter + + + + 类型字符串 + 枚举实例 + 未知的线端点样式 + + + + 线条连接样式 + + 指定了两个线的端点结合时采用的样式 + + + 线条连接样式的取值和显示效果之间的关系见表 22 + + + + + + 根据类型字符串获取类型枚举 + + 默认值:Miter + + + + 类型字符串 + 枚举实例 + 未知线条连接样式 + + + + 电子印章信息 + + 18.2.1 图 86 表 67 + + + + + + 【必选】 + 设置 指向包内的安全电子印章文件路径 + + 遵循密码领域的相关规范 + + + + 指向包内的安全电子印章文件路径 + this + + + + 【必选】 + 获取 指向包内的安全电子印章文件路径 + + 遵循密码领域的相关规范 + + + + 指向包内的安全电子印章文件路径 + + + + 签名的外观 + + 一个数字签名可以跟一个或多个外观描述关联,也可以不关联任何外观, + 其关联方式如图 88所示。 + + + 18.2.3 图 88 表 69 + + + + + + 【必选 属性】 + 设置 签章注释的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签章注释的标识 + this + + + + 【必选 属性】 + 获取 签章注释的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签章注释的标识 + + + + 【必选 属性】 + 设置 引用外观注释所在的页面的标识符 + + 引用外观注释所在的页面的标识符 + this + + + + 【必选 属性】 + 获取 引用外观注释所在的页面的标识符 + + 引用外观注释所在的页面的标识符 + + + + 【必选 属性】 + 设置 签章注释的外观边框位置 + + 可用于签章注释所在页面内的定位 + + + + 签章注释的外观边框位置 + this + + + + 【必选 属性】 + 获取 签章注释的外观边框位置 + + 可用于签章注释所在页面内的定位 + + + + 签章注释的外观边框位置 + + + + 【可选 属性】 + 设置 签章注释的外观裁剪设置 + + 签章注释的外观裁剪设置 + this + + + + 【可选 属性】 + 获取 签章注释的外观裁剪设置 + + 签章注释的外观裁剪设置 + + + + 针对一个文件的摘要节点 + + 18.2.2 签名的范围 图 87 表 68 + + + + + + 【必选 属性】 + 设置 指向包内的文件,使用绝对路径 + + 指向包内的文件,使用绝对路径 + this + + + + 【必选 属性】 + 获取 指向包内的文件,使用绝对路径 + + 指向包内的文件,使用绝对路径 + + + + 【必选】 + 设置 对包内文件进行摘要计算值的杂凑值 + + 所得的二进制摘要值进行 base64 编码 + + + + 对包内文件进行摘要计算值的杂凑值 + this + + + + 【必选】 + 获取 对包内文件进行摘要计算值的杂凑值 + + 对包内文件进行摘要计算值的杂凑值 + + + + 签名的范围 + + 18.2.2 签名的范围 图 87 表 68 + + + + + + 【可选 属性】 + 设置 摘要方法 + + 视应用场景的不同使用不同的摘要方法。 + 用于各行业应用时,应使用符合行业安全贵方的算法。 + + + + 摘要方法 + this + + + + 【可选 属性】 + 获取 摘要方法 + + 视应用场景的不同使用不同的摘要方法。 + 用于各行业应用时,应使用符合行业安全贵方的算法。 + + + + 摘要方法 + + + + 【必选】 + 增加 针对一个文件的摘要节点 + + 针对一个文件的摘要节点 + this + + + + 检查是否包含文件 + + 文件绝对路径 + true - 含有文件;false - 不含 + + + + 【必选】 + 获取 针对一个文件的摘要节点列表 + + 针对一个文件的摘要节点列表 + + + + 数字签名或安全签章在类表中的注册信息,依次签名或签章对应一个节点 + + 18.1 签名列表 图 85 表 66 + + + + + + 【必选 属性】 + 设置 签名或签章的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签名或签章的标识 + this + + + + 【必选 属性】 + 获取 签名或签章的标识 + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 签名或签章的标识 + + + + 【可选 属性】 + 设置 签名节点的类型 + + 可选值参考 + + + 默认值为Seal + + + + 签名节点的类型 + this + + + + 【可选 属性】 + 获取 签名节点的类型 + + 可选值参考 + + + 默认值为Seal + + + + 签名节点的类型 + + + + 【必选 属性】 + 设置 指向包内的签名描述文件 + + 指向包内的签名描述文件 + this + + + + 【必选 属性】 + 获取 指向包内的签名描述文件 + + 指向包内的签名描述文件 + + + + 签名列表根节点 + + 签名列表问价你的入口点在 7.4 主入口中定义。 + 签名列表文件中可以包含多个签名(例如联合发文等情况),见图 85。 + 当允许下次继续添加签名时,该文件不会被包含到本次签名的 + 保护文件列表(References)中。 + + + 18.1 签名列表 图 85 表 66 + + + + + + 【可选 属性】 + 设置 安全标识的最大值 + + 作用与文档入口文件 Document.xml 中的 MaxID相同, + 为了避免在签名时影响文档入口文件,采用了与ST_ID不一样 + 的ID编码方式。 + + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 安全标识的最大值 + this + + + + 【可选 属性】 + 获取 安全标识的最大值 + + 作用与文档入口文件 Document.xml 中的 MaxID相同, + 为了避免在签名时影响文档入口文件,采用了与ST_ID不一样 + 的ID编码方式。 + + + 推荐使用"sNNN"的编码方式,NNN从1开始 + + + + 安全标识的最大值 + + + + 【可选】 + 增加 数字签名或安全签章在类表中的注册信息 + + 数字签名或安全签章在类表中的注册信息 + this + + + + 【可选】 + 获取 数字签名或安全签章在类表中的注册信息序列 + + 数字签名或安全签章在类表中的注册信息序列 + + + + 签名节点的类型 + + 目前规定了两个可选值 + + + 18.1 签名列表 图 85 表 66 + + + + + + 安全签章 + + 默认值 + + + + + + 纯数字签名 + + + + + 创建签名时所用的签章组件提供者信息 + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选 属性】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + this + + + + 【必选 属性】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的版本 + + 创建签名时所使用的签章组件的版本 + this + + + + 【可选 属性】 + 获取 创建签名时所使用的签章组件的版本 + + 创建签名时所使用的签章组件的版本 + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的制造商 + + 创建签名时所使用的签章组件的制造商 + this + + + + 【可选 属性】 + 设置 创建签名时所使用的签章组件的制造商 + + 创建签名时所使用的签章组件的制造商 + + + + 签名描述文件的根节点 + + OFD的数字签名通过对描述文件的保护间接实现对OFD原文的保护。 + 签名结构中的签名信息(SignedInfo)是这一过程中的关键点, + 其中记录了当次数字签名保护的所有文件的二进制摘要信息,同时 + 将安全算法提供者、签名算法、签名时间、和所应用的安全印章等 + 信息也包含在此节点内。签名描述文件同时包含了签名值将要存放的 + 包内位置,一旦对该文件实施签名保护,则其对应的包内文件原文 + 以及本次签名对应的附加信息都将不可改动,从而实现依次数字签名 + 对整个原文内容的保护。签名描述文件的主要结构描述见图 86。 + + + 文件摘要文件根节点为 Signature,其子节点 SignedInfo 对应元素说明见表 67。 + + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选】 + 设置 签名要保护的原文及本次签名的相关信息 + + 签名要保护的原文及本次签名的相关信息 + this + + + + 【必选】 + 获取 签名要保护的原文及本次签名的相关信息 + + 签名要保护的原文及本次签名的相关信息 + + + + 【必选】 + 设置 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + this + + + + 【必选】 + 获取 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + 指向安全签名提供者所返还的针对签名描述文件计算所得的签名值文件 + + + + 签名要保护的原文及本次签名相关的信息 + + 18.2.1 文件摘要 图 86 表 67 + + + + + + 【必选】 + 设置 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + this + + + + 【必选】 + 获取 创建签名时所用的签章组件提供者信息 + + 创建签名时所用的签章组件提供者信息 + + + + 【可选】 + 设置 签名方法 + + 记录安全模块返回的签名算法代码,以便验证时使用 + + + + 签名方法 + this + + + + 【可选】 + 设置 签名方法 + + 记录安全模块返回的签名算法代码,以便验证时使用 + + + + 签名方法 + + + + 【可选】 + 设置 签名时间 + + 记录安全模块返回的签名时间,以便验证时使用 + + + + 签名时间 + this + + + + 【可选】 + 设置 签名时间 + + 记录安全模块返回的签名时间,以便验证时使用 + + + + 签名时间 + + + + 【必选】 + 设置 包内文件计算所得的摘要记录列表 + + 一个受本次签名保护的包内文件对应一个 Reference节点 + + + + 包内文件计算所得的摘要记录列表 + this + + + + 【必选】 + 设置 包内文件计算所得的摘要记录列表 + + 一个受本次签名保护的包内文件对应一个 Reference节点 + + + + 包内文件计算所得的摘要记录列表 + + + + 【可选】 + 增加 本签名关联的外观(用OFD中的注解表示) + + 该节点可出现多次 + + + + 本签名关联的外观 + this + + + + 【可选】 + 获取 本签名关联的外观(用OFD中的注解表示)序列 + + 该节点可出现多次 + + + + 本签名关联的外观序列 + + + + 【可选】 + 设置 电子印章信息 + + 电子印章信息 + this + + + + 【可选】 + 设置 电子印章信息 + + 电子印章信息 + + + + 摘要算法 + + + + + 默认值 + + + + + 变换描述 + + 当存在字形变换时,TextCode对象中使用字形变换节点(CGTransform)描述字符编码 + 和字形索引之间的关系。 + + + 11.4.1 变换描述 图 66 表 48 + + + + + + 【必选 属性】 + 设置 TextCode 中字符编码的起始位置 + + 从 0 开始 + + + + TextCode 中字符编码的起始位置 + this + + + + 【必选 属性】 + 获取 TextCode 中字符编码的起始位置 + + 从 0 开始 + + + + TextCode 中字符编码的起始位置 + + + + 【可选 属性】 + 设置 变换关系中字符的数量 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字符的数量,数值应大于等于 1,否则属于错误描述 + this + + + + 【可选 属性】 + 获取 变换关系中字符的数量 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字符的数量,数值应大于等于 1,否则属于错误描述 + + + + 【可选 属性】 + 设置 变换关系中字形索引的个数 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字形索引的个数 + this + + + + 【可选 属性】 + 设置 变换关系中字形索引的个数 + + 该数值应大于等于 1,否则属于错误描述 + + + 默认为 1 + + + + 变换关系中字形索引的个数 + + + + 【可选】 + 设置 变换后的字形索引列表 + + 变换后的字形索引列表 + this + + + + 【可选】 + 获取 变换后的字形索引列表 + + 变换后的字形索引列表 + + + + 字形适用的字符分类 + + 用于匹配替代字形 + + + 11.1 表 44 + + + 附录 A.5 CT_Font + + + + + + 符号 + + + + + 默认值 + + + + + 字形名 + + + + 【必选 属性】 + 设置 字形名 + + 字形名 + this + + + + 【必选 属性】 + 获取 字形名 + + 字形名 + + + + 【可选 属性】 + 设置 字形族名 + + 用于匹配代替字形 + + + + 字形族名 + this + + + + 【可选 属性】 + 获取 字形族名 + + 用于匹配代替字形 + + + + 字形族名 + + + + 【可选 属性】 + 设置 字形适用的字符分类 + + 可选值参考 + + + + 字形适用的字符分类 + this + + + + 【可选 属性】 + 获取 字形适用的字符分类 + 可选值参考 + + 字形适用的字符分类 + + + + 【可选 属性】 + 设置 是否是斜体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 斜体; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是斜体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 斜体; false - 正常 + + + + 【可选 属性】 + 设置 是否是粗字体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 粗体; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是粗字体 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 粗体; false - 正常 + + + + 【可选 属性】 + 设置 是否是带衬线字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 带衬线;false - 正常 + this + + + + 【可选 属性】 + 获取 是否是带衬线字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 带衬线;false - 正常 + + + + 【可选 属性】 + 设置 是否是等宽字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 等宽字形;false - 正常 + this + + + + 【可选 属性】 + 设置 是否是等宽字形 + + 用于匹配替代字形 + + + 默认值是 false + + + + true - 等宽字形;false - 正常 + + + + 【可选】 + 设置 指向内嵌字形文件 + + 嵌入字形文件应使用 OpenType 格式 + + + + 指向内嵌字形文件路径 + this + + + + 【可选】 + 获取 指向内嵌字形文件 + + 嵌入字形文件应使用 OpenType 格式 + + + + 指向内嵌字形文件路径 + + + + 文字定位 + + 文字对象使用严格的文字定位信息进行定位 + + + 11.3 文字定位 图 61 表 46 + + + + + + 设置文字内容 + + 内容 + this + + + + 获取文字内容 + + 文字内容 + + + + 设置坐标 + + 横坐标 + 纵坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 X 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 X 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 X 坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 X 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 X 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 X 坐标;null表示采用上一个 TextCode 的 X 值 + + + + 【可选 属性】 + 设置 第一个文字的字形原点在对象坐标系下的 Y 坐标 + + 当 Y 不出现,则采用上一个 TextCode 的 Y 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形原点在对象坐标系下的 Y 坐标 + this + + + + 【可选 属性】 + 设置 第一个文字的字形在对象坐标系下的 Y 坐标 + + 当 X 不出现,则采用上一个 TextCode 的 Y 值,文字对象中的一个 + TextCode 的属性必选 + + + + 第一个文字的字形在对象坐标系下的 Y 坐标;null表示采用上一个 TextCode 的 Y 值 + + + + 【可选 属性】 + 设置 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值 + this + + + + 【可选 属性】 + 设置 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值数值 + this + + + + 【可选 属性】 + 获取 文字之间在 X 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 X 方向的偏移值 + + + DeltaX 不出现时,表示文字的绘制点在 X 方向不做偏移。 + + + + 文字之间在 X 方向上的偏移值;null表示不偏移 + + + + 【可选 属性】 + 设置 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移值;null表示不偏移 + this + + + + 【可选 属性】 + 设置 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移数值 + this + + + + 【可选 属性】 + 获取 文字之间在 Y 方向上的偏移值 + + double 型数值队列,列表中的每个值代表一个文字与前一个 + 文字之间在 Y 方向的偏移值 + + + DeltaY 不出现时,表示文字的绘制点在 Y 方向不做偏移。 + + + + 文字之间在 Y 方向上的偏移值;null表示不偏移 + + + + 解析delta的值,处理g的格式 + + @return + + + + 文字对象 + + 11.2 文字对象 图 59 表 45 + + + + + + 获取文字对象 + + 文字对象ID + 文字对象 TextObject + + + + 构造文字对象 + + 对象ID + 对象 + + + + 【必选 属性】 + 设置 引用资源文件中定义的字形标识 + + 引用字形资源文件路径 + this + + + + 【必选 属性】 + 设置 引用资源文件中定义的字形标识 + + ID + this + + + + 【必选 属性】 + 获取 引用资源文件路径 + + 引用字形资源文件路径 + + + + 【必选 属性】 + 设置 字号,单位为毫米 + + 字号,单位为毫米 + this + + + + 【必选 属性】 + 获取 字号,单位为毫米 + + 字号,单位为毫米 + + + + 【可选 属性】 + 设置 是否勾边 + + 默认值为 false + + + + true - 勾边;false - 不勾边 + this + + + + 【可选 属性】 + 获取 是否勾边 + + 默认值为 false + + + + true - 勾边;false - 不勾边 + + + + 【可选 属性】 + 设置 是否填充 + + 默认值为 true + + + + true - 填充;false - 不填充 + this + + + + + 【可选 属性】 + 设置 勾边宽度 + + 勾边宽度 + this + + + + 【可选 属性】 + 设置 字形在水平方向的缩放比 + + 默认值为 1.0 + + + 例如:当 HScale 值为 0.5 时表示实际显示的字宽为原来字宽的一半。 + + + + 字形在水平方向的缩放比 + this + + + + 【可选 属性】 + 获取 字形在水平方向的缩放比 + + 默认值为 1.0 + + + 例如:当 HScale 值为 0.5 时表示实际显示的字宽为原来字宽的一半。 + + + + 字形在水平方向的缩放比 + + + + 【可选 属性】 + 指定 阅读方向 + + 指定了文字排列的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 阅读方向,可选值为 + this + + + + 【可选 属性】 + 获取 阅读方向 + + 指定了文字排列的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 阅读方向,可选值为 + + + + 【可选 属性】 + 指定 字符方向 + + 指定了文字放置的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 字符方向,可选值为 + this + + + + 【可选 属性】 + 获取 字符方向 + + 指定了文字放置的方向,描述见 11.3 文字定位 + + + 默认值为 0 + + + + 字符方向,可选值为 + + + + 【可选 属性】 + 设置 文字对象的粗细值 + + 默认值为 400 + + + + 文字对象的粗细值,可选值 + this + + + + 【可选 属性】 + 设置 文字对象的粗细值 + + 默认值为 400 + + + + 文字对象的粗细值,可选值 + + + + 【可选 属性】 + 设置 是否是斜体样式 + + 默认值为 false + + + + true - 斜体样式; false - 正常 + this + + + + 【可选 属性】 + 获取 是否是斜体样式 + + 默认值为 false + + + + true - 斜体样式; false - 正常 + + + + 【可选】 + 设置 填充颜色 + + 默认为黑色 + + + 填充颜色 + this + + + + 【可选】 + 获取 填充颜色 + + 默认为黑色 + + + 填充颜色,null表示黑色 + + + + 【可选】 + 设置 勾边颜色 + + 默认为透明色 + + + + 勾边颜色 + this + + + + 【可选】 + 获取 勾边颜色 + + 默认为透明色 + + + + 勾边颜色,null为透明色 + + + + 【可选】 + 增加 指定字符编码到字符索引之间的变换关系 + + 描述见 11.4 字符变换 + + + + 字符编码到字符索引之间的变换关系 + this + + + + 【可选】 + 获取 指定字符编码到字符索引之间的变换关系序列 + + 描述见 11.4 字符变换 + + + + 字符编码到字符索引之间的变换关系序列 + + + + 【必选】 + 增加 文字内容 + + 也就是一段字符编码串 + + + 如果字符编码不在XML编码方式的字符范围之内,应采用"\"加四位 + 十六进制数的格式转义;文字内容中出现的空格也需要转义 + 若 TextCode 作为占位符使用时一律采用 ¤ (\u00A4)占位 + + + + 文字内容 + this + + + + 【必选】 + 获取 文字内容序列 + + 也就是一段字符编码串 + + + 如果字符编码不在XML编码方式的字符范围之内,应采用"\"加四位 + 十六进制数的格式转义;文字内容中出现的空格也需要转义 + 若 TextCode 作为占位符使用时一律采用 ¤ (\u00A4)占位 + + + + 文字内容序列 + + + + 方向角度 + + 11.3 文字定位 表 47 + + + + + + 可选旋转角度 0、90、180、270 + + + + + 旋转角度 + + + + + 文字对象的粗细值 + + 11.3 表 45 + + + + + + 可选值为 + 100,200,300,400,500,600,700,800,900 + + + + + 默认值 + + + + + 获取字体粗细值 + + 粗细值 + + + + 版本 + + 版本信息在独立的文件中描述,如图 90 所示。 + 版本定义结构中列出了一个 OFD 文档版本中所需的所有文件。 + + + 19.2 版本 图 90 表 71 + + + + + + 【属性 必选】 + 设置 版本标识符 + + 版本标识符 + this + + + + 【属性 必选】 + 获取 版本标识符 + + 版本标识符 + + + + 【属性 可选】 + 设置 该文件适用的格式版本 + + 该文件适用的格式版本 + this + + + + 【属性 可选】 + 获取 该文件适用的格式版本 + + 该文件适用的格式版本,null表示不存在 + + + + 【属性 可选】 + 设置 版本名称 + + 版本名称 + this + + + + 【属性 可选】 + 获取 版本名称 + + 版本名称,null表示不存在 + + + + 【属性 可选】 + 设置 创建时间 + + 创建时间 + this + + + + 【属性 可选】 + 获取 创建时间 + + 创建时间 + + + + 【必选】 + 设置 版本包含的文件列表 + + 版本包含的文件列表 + this + + + + 【必选】 + 获取 版本包含的文件列表 + + 版本包含的文件列表 + + + + 【必选】 + 设置 该版本的入口文件 + + 该版本的入口文件 + this + + + + 【必选】 + 获取 该版本的入口文件 + + 该版本的入口文件 + + + + 文件列表文件描述 + + 19.2 表 71 + + + + + 文件列表文件标识 + 文件列表文件描述 + + + + 【必选 属性】 + 设置 文件列表文件标识 + + 文件列表文件标识 + this + + + + 【必选 属性】 + 获取 文件列表文件标识 + + 文件列表文件标识 + + + + 【必选】 + 设置 文件列表文件描述 + + 文件列表文件描述 + this + + + + 【必选】 + 获取 文件列表文件描述 + + 文件列表文件描述 + + + + 版本包含的文件列表 + + 19.2 标 71 + + + + + + 【必选】 + 增加 文件列表文件描述 + + 文件列表文件描述 + this + + + + 【必选】 + 增加 文件列表文件描述 + + 文件列表文件标识 + 文件列表文件描述 + this + + + + 【必选】 + 获取 文件列表文件描述列表 + + 文件列表文件描述列表 + + + + 表 70 版本描述入口 + + + + + 创建版本描述入口 + + 默认为默认版本(Current="false") + 版本标识(不含特殊字符字符串) + 版本号 + 指向包内的版本描述文件 + + + + 【必选】 + 设置版本标识 + + 版本标识 (不含特殊字符,字符串) + this + + + + 【必选】 + 获取版本标识 + 版本标识 + + + + 【必选】 + 设置 版本号 + + 版本号 + this + + + + 【必选】 + 获取 版本号 + + 版本号, -1 表示没有 + + + + 【可选】 + 获取 是否是默认版本 + + 默认值:false + + + + true 表示是默认版本 + + + + 【可选】 + 设置 是否是默认版本 + + true 表示是默认版本 + this + + + + 【必选】 + 设置 指向包内的版本描述文件 + + 版本描述文件路径 + this + + + + 【必选】 + 设置 指向包内 的版本描述文件 + + 版本描述文件路径 + + + + 一个OFD文档可能有多个版本 + + 版本序列 + + + 图 89 版本结构列表 + + + + + + 【必选】 + 增加 版本描述入口 + + 版本描述入口 + this + + + + 【必选】 + 获取 版本描述入口列表 + + 版本描述入口列表 + + + + 静态变量 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 命名空间 URI,《GB/T_33190-2016》 7.1 命名空间 + + + + + 元素节点应使用命名空间标识符 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + OFD命名空间 + + + + + 通用的OFD命名空间前缀 + + + + + 使用命名空间为 http://www.ofdspec.org/2016,其表示符应为 ofd。 + ————《GB/T 33190-2016》 7.1 命名空间 + + + + + xs:date 类型日期格式化 + + + + + xs:dateTime 类型时间日期格式化 + + + + + OFD索引文件 + + + + + 文档容器名称前缀 + + + + + 文档的根节点描述文件名称 + + + + + 文档公共资源索引描述文件名称 + + + + + 文档自身资源索引描述文件名称 + + + + + 注释入口文件名称 + + + + + 附件入口文件名称 + + + + + OFD文档主入口文件名称 + + + + + + + + + + + + + + + + + + + + + + + + + 页面容器名称前缀 + + + + + 页面描述文件名称 + + + + + 记录了资源描述文件名称 + + + + + 记录了页面关联的注解对象 + + + + + 签名容器名称前缀 + + + + + 电子印章文件名 + + + + + 签名/签章 描述文件名 + + + + + 签名值文件名 + + + + + 签名列表文件名称 + + + + + Ofd文档对象 + + + + + odf文档阅读器 + + + + + 文档根节点对象,Document.xml + + + + + ofd文档所有页面 + + + + + 资源管理器 + + + + + 资源管理器 + + + + + 资源定位器 + + + + + ofd文档所有页面 + + + + + Initializes a new instance of the class. + + + + + + Get the document info. + + + + + 获取页面物理大小 + + 如果页面没有定义页面区域,则使用文件 CommonData中的定义 + + + + 页面对象 + 页面大小 + + + + 根据模板ID获取页对象 + + + + + + + Initializes a new instance of the class. + + + + + Convert a path data to a list of PsPathFigure. + + The Path data. + A list of PsPathFigure + + + + Convert line points to PsPolyLineSegment. + + The start point of the line. + The points of the line. + The PsPolyLineSegment + + + + Convert bezier curve points to PsBezierSegment. + + The start point of the bezier curve. + The points of the bezier curve. + The PsBezierSegment + + + + Convert elliptical arc points to ApsArcSegment. + + The start point of the elliptical arc. + The points of the elliptical arc. + The ApsArcSegment + + + + Get the center point of an elliptical arc. + + The start point of the elliptical arc. + The points of the elliptical arc. + The center point. + + + + Split a path data to a list of path commands. + + The Path data. + A list of path commands + + + + 指示指定的字符串是 null 还是空字符串 ("") or (" "). + + + + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd image to ps object. + + The text object. + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd path to ps object. + + The path object. + + + + The process context. + + + + + The image renderer. + + + + + The text renderer. + + + + + The path renderer. + + + + + Initializes a new instance of the class. + + + + + Render a list of ofd pages to ps pages. + + The list of ps pages. + + + + Render a ofd page to ps page. + + The ofd page to be rendered. + A ps page. + + + + Render ofd layers. + + The list of layer. + + + + Render ofd page blocks. + + The list of block. + + + + Render ofd annotation. + + The annot. + + + + Render ofd stamp annotation. + + The stamp annot. + + + The ofd document. + + + + 获取PS图片对象 + + 引用ID + The image stream. + + + + 获取PS图片对象 + + 引用ID + A ps image object. + + + + Get ps font + + 引用ID + fontStyle + The font size. + A ps font. + + + + 获取矢量图形 + + 资源ID + 矢量图形,不存在返回null + + + + Get ofd color space. + + 引用ID + A color space object. + + + + Get ofd font + + 引用ID + + + + + The process context. + + + + + Initializes a new instance of the class. + + + + + Render ofd text object to ps object. + + The text object. + + + + Render ofd text code to ps object. + + + + + + + + + + + + + + + + + + 获取最终写入的字符编码 + + + + + + + + 获取文本的字体样式 + + The ofd font. + + + + + 获取文本偏移位子 + + + + + + The ofd document. + + + + 根据模板ID获取页对象 + + + + + + + Convert ofd color to ps color. + + The ofd color. + A ps color. + + + + Convert ofd color to ps brush. + + The ofd color. + A ps brush. + + + + Convert ofd axialShd to ps brush. + + The ofd axialShd. + The rectangle. + A ps brush. + + + + Convert ofd radialShd to ps brush. + + The ofd radialShd. + A ps brush. + + + + Convert ofd pattern to ps brush. + + The ofd pattern. + A ps brush. + + + + Converts a ofd font to TtfFont + + + + + The process context. + + + + + The ofd source font. + + + + + The new embedded TTFFont. + + + + + Initializes a new instance of the class. + + + + + 构建所有页面下的字体 + + + + + + 构建当前Page下的字体 + + + + + + 构建Layers节点下的字体 + + + + + + 构建PageBlocks节点下的字体 + + + + + + Builds the font of the current text + + + + + + Build font by font data. + + + + + + Create TTFont by ofd embedded font. + + The ofd source font. + The new TTFFont + + + + Create TTFont by ofd non-embedded font. + + The ofd source font. + The new TTFont + + + + ofd字体数据写入新的ttf字体 + + The source font. + The new ttf font. + The text object. + + + + Create a cff font by font data. + + The font data. + The cff font. + + + + Create a type1 font by font data. + + The font data. + The type1 font. + + + + Create a ttf font by font data. + + + The ttf font. + + + + Is Type1 Font? + + + + + + + Save the TTFFont to the TTFont + + + + + 一对一关系,检查textObject.CGTransforms与textCode的映射关系是否正确,某些情况下不能使用textCode作为写入的字符编码 + + + + + + + Fetch font name. + + + + + + + + + + + + + + + + + + + + + + + + + + + Create ps image. + + The image bytes + The ps image + + + + Reverse y position. + + + + + + 文档容器 + + + + + 表示第几份文档,从0开始 + + + + + 获取文档索引 + + 文档编号(用于表示第几个) ,从0起 + + + + 获取文档的根节点 + + + + + 获取文档公共资源索引 + + + + + 获取文档自身资源索引对象 + + + + + 获取注释列表对象 + + + + + 获取资源容器 + + + + + 获取 数字签名存储目录 + + + + + + + + + + + + 设置 文档公共资源索引 + + 文档公共资源索引 + this + + + + 设置注释列表对象 + + 注释列表对象 + 注释列表对象 + + + + 设置 文档自身资源索引 + + 文档自身资源索引 + this + + + + 设置 文档的根节点 + + 文档的根节点 + this + + + + 获取 资源文件夹 + + 如果资源文件不存在则创建 + + + + this + + + + 获取 数字签名存储目录 + + 如果数字签名存储目录不存在则创建 + + + + 数字签名存储目录 + + + + 获取 页面存储目录 + + 如果页面存储目录则会创建 + + + + 页面存储目录 + + + + 增加资源 + + 资源 + this + + + + OFD文档对象 + + 请显示的调用Close或clean方法清除工作过程中的文件和目录 + + + + + + OFD文档主入口文件名称 + + + + + 最大文档索引 + 1 + + + + + 新建一个OFD文档 + + OFD文档 + + + + 指定路径创建或读取OFD文档容器 + + 如果容器文档已经存在,那么读取 + + + 如果文档不存在那么创建一个文档 + + + + + + + 容器初始化 + + + + + 获取 + + 文档主入口文件对象 + + + + 设置 文档主入口文件对象 + + 文档主入口文件对象 + this + + + + 新建一个文档容器 + + 新建的文档容器 + + + + 获取指定Index的文档 + + 如果文档不存在那么创建 + + + + index + 文档容器 + + + + 通过文档索引获取文档容器 + + 文档索引 + 文档容器 + + + + 获取第一个文档容器作为默认 + + 第一个文档容器 + + + + 页面目录容器 + + + + + 代表OFD中第几页 + + index 从 0 开始取 + + + + + + 获取页面索引 + + + + + 获取页面资源描述文件 + + 页面资源描述文件 + + + + 获取分页注释文件 + + 分页注释文件 + + + + 获取资源文件虚拟容器 + + 获取资源目录 + + + + 获取页面描述对象 + + 页面描述 + + + + 设置页面描述 + + 页面描述 + this + + + + 向页面中增加页面资源 + + 资源 + this + + + + 设置页面资源描述对象 + + 页面资源描述对象 + this + + + + 设置分页注释文件 + + 分页注释文件 + this + + + + 获取页面资源目录 + + 如果目录不存在则创建 + + + + 资源目录容器 + + + + 页面容器 + + + + + 最大页面索引 + 1 + + index + 1 + + + + + + + + + + + + 初始化容器 + + + + + 创建一个新的页面容器 + + 页面容器 + + + + 获取索引的页面容器 + + 页码 = index + 1 + + + + 索引(从0开始) + 指定索引页面容器 + + + + 资源目录 + + + + + 向目录中加入资源 + + 加入的资源将会被复制到指定目录,与原有资源无关 + + + + 资源 + this + + + + + + + + + + + 签名资源容器 + + + + + 表示第几个签名 + + + + 第几个签名,从1开始 + + + + 获取 电子印章文件 + + 电子印章文件 + + + + 获取 签名值文件 + + 签名值文件 + + + + 获取 签名/签章 描述文件 + + 签名/签章 描述文件 + + + + 设置 签名/签章 描述文件 + + 签名/签章 描述文件 + this + + + + 设置签名值文件 + + 签名值文件 + this + + + + 签名容器 + + + + + 签名Index最大值 + 1 + + 也就是签名容器数量,因为签名容器Index从0起算 + + + + + + 获取 签名列表文件 + + + + + 初始化容器 + + + + + 设置 签名列表文件 + + 签名列表文件 + this + + + + 创建一个签名/章虚拟容器 + + 签名/章虚拟容器 + + + + 获取指定签名容器 + + 第几个签名 + 签名容器 + + + + 虚拟容器对象 + + + + + + 文件根路径(完整路径包含当前文件名) + + + + + 目录名称 + + + + + 所属容器 + + + + + 文件缓存 + + + + + 用于保存读取到的文件的Hash + 因为读取操作导致文档加载到缓存, + 但是文件在flush时候,反序列丢失格式字符等 + 导致文件改动。 + + + + + 目录中的虚拟容器缓存 + + + + + 获取当前容器完整路径 + @return 容器完整路径(绝对路径) + + + + + + + + + + 获取虚拟容器的名称 + + 名称 + + + + 获取在容器中的绝对路径 + + 绝对路径对象 + + + + 获取该容器所属容器 + + 所属容器对象 + + + + 向虚拟容器中加入文件 + + 文件路径对象 + this + + + + 向虚拟容器加入对象 + + 文件名 + 元素对象 + this + + + + 通过文件名获取元素对象 + + 文件名 + 元素对象(不含代理) + + + + 计算获取的对象的序列化Hash值 + + 文档对象 + Hash + + + + 判断文件是否改动 + + 文件名 + 文件对象 + true - 已经被改动;false - 未改动 + + + + 获取容器中的文件对象 + + 文件名称 + 文件路径对象 + + + + + + 判断文件或对象是否存在 + + 文件名称 + true - 存在;false - 不存在 + + + + 删除整个虚拟容器 + + + + + 将缓存中的对象写入到文件系统中 + + + + + 从缓存中刷新指定容器到文件系统中 + + 容器名称 + this + + + + 从缓存将指定对象写入到文件系统中 + + 文件名称 + this + + + + 元素杯子 + + 对象序列化和反序列化工具 + + + 反序列化 向杯子中注入水 + + + 序列化把杯子中的水倒出 + + + + + + 从文件加载反序列化元素对象 + + 文件路径对象 + 反序列化的元素对象 + + + + 错误OFD文件结构和文档格式异常 + @since 2020-04-17 03:29:28 + + + + + 内容抽取器 + + + + + 解析结果接收器 + + + + + 构造文字抽取器 + + OFD解析器 + + + + 抽取指定页面内的所有文字 + + 页码,从1开始 + 页面内容的所有文本内容序列 + + + + 页块处理 + + 文本列表 + 页块列表 + + + + 获取OFD内的所有文本内容 + + OFD中所有文本内容 + + + + 遍历所有页面 + + 接受 + + + + DeltaX和DeltaY工具 + + + + + 获取Delta数据 + + OFD数组对象 + 文本长度 + 一组坐标偏移值 + + + + ofd解析器 + + + + + 资源管理器 + + + + + 因一些ofd文件无法使用ZipUtil解压缩,可以让用户自己在外面解压缩好后,传入根目录创建 + 例如用户可以使用unzip或者unar等命令行方式解压缩 + + 已经解压的OFD根目录位置,因此通过参数控制是否删除目录。 + 退出时是否删除 unzippedPathRoot 文件, true - 退出时删除;false - 不删除 + + + + 初始化reader + + + + + 获取资源管理器 + + 资源管理器获取到的对象均为只读对象 + + + + 资源管理器 + + + + 文档异常 + + + + + 错误路径异常 + @since 2020-04-09 20:05:29 + + + + + 关键字抽取 + + + + + 每毫米的point单位 + 1 point / 2.83464567 ≈ 0.35277778 mm + + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字列表 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字 + 要检索的页码,从1开始,不超过最大页码 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 获取关键字坐标列表(坐标单位毫米mm) + + OFD解析器 + 关键字列表 + 要检索的页码,从1开始,不超过最大页码 + 关键字坐标列表 + 文件不存在异常 + 文档解析异常 + + + + 检查后缀匹配 + + 待匹配文本 + 关键字 + 是/否 匹配 + + + + 处理后缀匹配断字断行文本定位关键字 + + 关键字字符串 + 映射对象 + 文本定位列表 + 关键字位置列表 + TextCode位置 + TextCode文本起始位置 + 第一个文字定位 + + + + 处理前缀匹配断字断行文本定位关键字 + + 关键字字符串 + 映射对象 + 文本定位列表 + 关键字位置列表 + 定位起始位置 + 第一个文字定位 + + + + 检索下一个文本定位节点 + + 关键字字符串 + 文本定位列表 + 合并的TextCode列表 + 文本资源映射对象 + TextCode位置 + 最先匹配字符串 + 第一个匹配文字 + + + + 处理正常关键字 + + 关键字 + 映射对象 + 为转移列表 + 文字定位 + 文本索引 + + + + 获取CTM后的关键字位置 + + 文字定位 + 文本索引 + 文本资源 + 文字对象 + CTM对象 + X偏移 + Y偏移 + 文本长度 + 关键字位置 + + + + 合并坐标 + + 坐标列表 + 矩形框 + + + + 坐标转换 + + 矩阵数组 + 原始X + 原始Y + 计算后位置 + + + + 获取Matrix数据 + + ctm对象 + 矩阵对象 + + + + 合并关键字位置对象 + + 关键字 + 第一个关键字起始匹配位置 + 检索到的关键字列表 + 合并列表 + 外接矩形映射 + + + + 合并Box + + 盒子列表 + + + + 获取获取模板字典 + + 资源定位器 + Document File路径 + 文档对象 + 文件不存在异常 + 文档解析异常 + + + + 创建关键字位置对象 + + 文字定位对象 + 文本索引 + 页码 + 文字对象 + 字体属性 + X偏移 + Y偏移 + 文本长度 + 关键字对象 + + + + 获取文本宽度,单位毫米(mm) + + 文字索引 + 文本长度 + X偏移量 + 文字字号 + 文本宽度 + + + + 获取字体 + + 文字对象 + 字形对象 + 字体对象 + + + + 获取左下角位置 + + 矩形框 + 文字定位 + X偏移 + Y偏移 + 文字索引 + 左下角坐标 + + + + 预处理数据 + + OFD解析器 + 文本列表 + 外接矩形映射 + 字体映射对象 + 模板数据 + 页码 + + + + 页面块处理 + + 文本列表 + 外接矩形映射 + 字体映射对象 + 页码 + 页块列表 + + + + 获取字体映射对象 + + 资源定位器 + Document File路径 + 文档对象 + 文件不存在异常 + 文档解析异常 + + + + 关键字位置 + + @author minghu-zhang + @since 16:25 2020/9/26 + + + + + 关键字所在页码 + + + + + 矩形区域 + + + + + 所属关键字 + + + + + 文本资源 + @since 16:25 2020/9/25 + + + + + 页码 + + + + + 字体对象 + + + + + 文字对象 + + + + + @since 2020/9/25 + + + + + @since 2020/8/11 + + + + + @since 2020/8/11 + + + + + @author dltech21 + @since 2020/8/11 + + + + + @author dltech21 + @since 2020/8/11 + + + + + OFD解析器 + + + + + OFD虚拟容器对象 + + + + + 资源定位器 + + 解析路径获取资源 + + + + + + 是否已经关闭文档 + + + + + 构造一个 OFDReader + + OFD文件位置,例如:"/home/user/myofd.ofd" + OFD文件操作IO异常 + + + + 构造一个 OFDReader + + OFD文件输入流 + OFD文件操作IO异常 + + + + 因一些ofd文件无法使用ZipUtil解压缩,可以让用户自己在外面解压缩好后,传入根目录创建 + 例如用户可以使用unzip或者unar等命令行方式解压缩,因此通过参数控制是否删除目录。 + + 已经解压的OFD根目录位置 + 退出时是否删除 unzippedPathRoot 文件, true - 退出时删除;false - 不删除 + + + + 获取文档虚拟容器 + + OFD文档虚拟容器 + + + + 获取默认文档Doc_0中的签名列表文件的绝对路径 + + 签名列表文件绝对路径 + 错误OFD结构和文件格式导致结构无法解析 + + + + 获取默认的签名列表对象 + + 签名列表对象 + + + + 文档是否包含数字签名 + + true - 含有;false - 不含; + + + + 获取注解列表文件对象 + + 如果文档中没有注释文件,那么返还null + + + + 注解列表文件对象或null + + + + 获取OFD含有的总页面数量 + + 总页数 + + + + 获取页面信息 + + 页码,从1开始 + 页面信息 + + + + 获取页面物理大小 + + 如果页面没有定义页面区域,则使用文件 CommonData中的定义 + + + + 页面对象 + 页面大小 + + + + 通过页面页码获取页面对象 + + 页码,从1起 + 页面对象 + + + + 获取页面的对象ID + + 页码 + 对象ID + + + + 获取资源定位器 + + 资源定位器 + + + + 获取附件对象 + + 附件名称 + 如果附件或附件记录不存在,那么返还null + 文档结构损坏 + + + + 获取附件对象 + + 该方法不会恢复资源定位器 + + + + 附件名称 + 资源定位器 + 附件对象 + + + + 关闭文档 + + 删除工作区 + + + + 工作区删除异常 + + + + 页面信息 + + + + + 页面的物理大小 + + + + + 页面底层对象 + + + + + 页面在OFD中的对象ID + + + + + 页码,从1起 + + + + + 页面的绝对路径 + + + + + 资源定位器 + + 通过给与的资源地址获取对应的资源文件或对象 + + + + + + 路径匹配正则列表 + + + + + 资源容器 + + 该容器带有缓存功能 + + + + + + 当前目录 + + + + + 保存的路径栈 + + 每次调用Save都会入栈 + + + + + + * + 通过虚拟容器创建资源加载器 + + 创建资源加载器的同时切换路径至虚拟容器的目录 + + 虚拟容器 + + + + 保存当前工作路径 + + this + + + + 还原原有工作区 + + 如果没有保存过工作区,那么不会造成任何影响 + + + + this + + + + 转换路径对象为绝对路径字符串 + + 路径对象 + 绝对路径字符串 + + + + 路径转换为绝对路径 + + 容器路径 + 绝对路径字符串 + + + + 重置工作路径 + + 重置后将回到根路径 + + + + this + + + + 切换到制定的虚拟容器目录下 + + 虚拟容器 + this + + + + 改变目录 Change Directory + + 路径位置 + this + 路径不存在 + + + + 改变目录 Change Directory + + 路径最后如果是目录也不加 "/" + + + + 路径位置 + 已有工作目录 + this + 路径不存在 + + + + 判断路径是否存在 + + 路径集合 + true -存在,false - 不存在 + + + + 判断路径是否存在 + + 工作路径 + true -存在,false - 不存在 + + + + 打印工作目录 Print Work Directory + + 路径最后如果是目录也不加 "/" + + + + 工作目录路径 + + + + 打印工作目录 Print Work Directory + + 工作目录 + 工作目录路径 + + + + 获取以当前路径为基础的容器内绝对路径 + + 目标路径 + 容器内绝对路径 + + + + + + 获取路径下的文件 + + 路径 + 系统文件路径 + 文件或路径不存在 + + + + 通过路径获取容器 + + 路径序列 + 虚拟容器 + 路径不存在 + + + + 根据路径获取虚拟容器对象 + + 获取的同时会缓存整个容器链路 + + + + 容器目录 + 虚拟容器 + 路径不存在 + + + + 资源管理器 + + 使用ID随机访问文档中出现的资源对象 + + + 包括 公共资源序列(PublicRes) 和 文档资源序列(DocumentRes) + + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + + + 颜色空间 + + + + + 绘制参数 + + + + + 字形 + + + + + 多媒体对象 + + + + + 矢量图像 + + + + + 创建资源管理器 + + 选择默认文档(Doc_0)进行资源的加载 + + + + OFD解析器 + + + + 指定文档创建资源管理器 + + OFD解析器 + 文档序号,从0起 + + + + 获取绘制参数 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 绘制参数,不存在返回null + + + + 获取多媒体对象 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 多媒体对象,不存在返回null + + + + 获取图片资源的图片对象 + + 引用ID + 图片流 + IO异常 + + + + 获取图片对象的图像 + + 如果图片存在蒙板,那么返回蒙板后的图像 + + + + 图片对象 + 图片流(蒙板后) + 图片操作IO异常 + + + + 获取 字形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 字形,不存在返回null + + + + 获取颜色空间 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 颜色空间,不存在返回RGB + + + + 获取矢量图形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 资源ID + 矢量图形,不存在返回null + + + + 加载指定文档的资源 + + 由于每个文档的ID体系都是独立的, + + + 所以资源也是独立的,因此每次加载都会对上一个文档的资源进行清理。 + + + + 文档序号,从0起 + this + 文件读写异常 + 文档解析异常 + + + + 多文档资源加载 + + 文件读写异常 + 文档解析异常 + + + + 加载文档中的资源 + + 文档描述信息 + 文件读写异常 + 文档解析异常 + + + + 加载资源文文件中描述的资源对象 + + 该方法不应该抛出异常所有异常均应该被忽略以便程序继续执行 + + + + 资源加载器 + 资源文件位置 + + + + 获取资源的绝对地址 + + 资源加载器 + 资源文件的通用存储路径 + 资源文件路径 + 资源文件绝对地址 + + + + 获取文档中所有 颜色空间 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 颜色空间列表 + + + + 获取文档中所有 绘制参数 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 绘制参数 + + + + 获取文档中所有 字形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 字形 + + + + 获取文档中所有 媒体对象 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 媒体对象 + + + + 获取文档中所有 矢量图形 + + 注意:资源管理器提供的资源对象均为只读对象(副本),不允许对资源进行修改。 + + + + 矢量图形 + + + + 印章ofd的解析器 + + + + + 图片处理工具 + @since 2021-04-10 18:31:03 + + + + + 蒙版抠图 + + 根据mask中像素的颜色将原图中的像素抠掉 + + + + 原始图片 + 蒙板图片 + 扣去背景的图片对象 + + + + 创建图片 + + 图形宽度 + 图像高度 + 是否透明 + + + + 计算灰度 + + 红色通道 + 绿色通道 + 蓝色通道 + + + + 命名空间清理类 + + 用于清理已经存在的命名空间 + + @author libra19911018 + @since 2020-10-15 19:38:15 + + + + + + 命名空间变更 + @since 2020-10-15 20:01:20 + + + + + This is a abstract class base processor, it provides common functions. + + linwei + + + + pretreatment of picture + + input file stream + first node + picture location + xml namespace manager + result stream + + + + This is the interface of pre and post processors + + linwei + + + + interface for compression adapter + + linwei + + + + compress or decompress + + true if succeeded + false if failed + exceptions happen + + + + input file name + + + + + output file name + + + + + This interface defines the exposed interface of Translator + + linwei + + + Thrown whenever an error occurs during the build. + linwei + + + Thrown whenever an error occurs during the build. + linwei + + + + An XmlUrlResolver for zip packaged files + + sunqingzhi, linwei + + + + Zip archiving states + + linwei, sunqingzhi + + + + Not archiving + + + + + Waiting for an entry + + + + + Processing an entry + + + + + An XmlWriter implementation for serializing the xml stream to a zip archive. + All the necessary information for creating the archive and its entries is picked up + from the incoming xml stream and must conform to the following specification : + + TODO : XML schema + + example : + + <pzip:archive pzip:target="path"> + <pzip:entry pzip:target="relativePath"> + <-- xml fragment --< + </pzip:entry> + <-- other zip entries --< + </pzip:archive> + + + + + + The zip archive + + + + + A delegate XmlWriter that actually feeds the zip output stream. + + + + + The delegate settings + + + + + 源文件 + + + + + Source attribute of the currently processed binary file + + + + + 所有需要处理的二进制文件 + + + + + Constructor + + + + + Delegates WriteStartElement calls when the element's prefix does not + match a zip command. + + + + + + + + Delegates WriteEndElement calls when the element's prefix does not + match a zip command. + Otherwise, close the archive or flush the delegate writer. + + + + + copy binary data (currently, only picture) in to zip archive + + + + + Simple representation of elements or attributes nodes + + + + + An XmlUrlResolver for embedded resources. + + sunqingzhi, linwei + + + + This class is used to hold contants. + + linwei + linyaohu + + + + OOX file type + + linyaohu + + + + Translator factory which can judeg the input file type and initialize + + linyaohu + + + + check uof file type + + source file name + document type + + + + The event arguments passed between TranslatorLib and Add-in + + linwei + + + + This is a abstract class base Translator, it provides common functions. + + linwei + linyaohu + + + + main transform which needs the orginal File + + transform direction + xsl location + original File + File after pretreatment + output file + + + + zip the big xml file + + input xml file + zip file + + + + pretreatment of picture + + input file stream + first node + picture location + xml namespace manager + result stream + + + + pretreatment of custom xml data,OOXM to UOF + + input file stream + first node + name space manager + result stream + + + + get the embeded chart data + + chart type node (eg:c:barChart) + name space + chart data + + + + get the series name + + series node + name space + series name + + + + get the category name + + series node + name space + category name + + + + get the series' name + + chart xml file + series' name + + + + get the categories name + + chart xml file + categories name + + + + Check the chart cotains how many chart Types (Combo type) + + chart file + name space manager + chart type nodes + + + + get the title's text + + a:p + name sapce + title + + + + This class is used to handle the post processing for UOF.Currently, + we just replace the picture element with base64 content. + + sunqingzhi, linwei + + + + Zip archiving states + + linwei, sunqingzhi + + An XmlWriter implementation for serializing the xml stream to a zip archive. + All the necessary information for creating the archive and its entries is picked up + from the incoming xml stream and must conform to the following specification : + + TODO : XML schema + + example : + + <pzip:archive pzip:target="path"> + <pzip:entry pzip:target="relativePath"> + <-- xml fragment --< + </pzip:entry> + <-- other zip entries --< + </pzip:archive> + + + + + + The zip archive + + + + + A delegate XmlWriter that actually feeds the zip output stream. + + + + + The delegate settings + + + + + 源文件 + + + + + Source attribute of the currently processed binary file + + + + + 所有需要处理的二进制文件 + + + + + Constructor + + + + + Delegates WriteStartElement calls when the element's prefix does not + match a zip command. + + + + + + + + Delegates WriteEndElement calls when the element's prefix does not + match a zip command. + Otherwise, close the archive or flush the delegate writer. + + + + + copy binary data (currently, only picture) in to zip archive + + + + + Simple representation of elements or attributes nodes + + + + Thrown whenever an error occurs during the build. + + + Constructs an exception with no descriptive information. + + + Constructs an exception with a descriptive message. + The error message that explains the reason for the exception. + + + Constructs an exception with a descriptive message and a reference to the instance of the Exception that is the root cause of the this exception. + The error message that explains the reason for the exception. + An instance of Exception that is the cause of the current Exception. If is non-null, then the current Exception is raised in a catch block handling innerException. + + + Initializes a new instance of the exception class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Thrown whenever an error occurs during the build. + + + Constructs an exception with no descriptive information. + + + Constructs an exception with a descriptive message. + The error message that explains the reason for the exception. + + + Constructs an exception with a descriptive message and a reference to the instance of the Exception that is the root cause of the this exception. + The error message that explains the reason for the exception. + An instance of Exception that is the cause of the current Exception. If is non-null, then the current Exception is raised in a catch block handling innerException. + + + Initializes a new instance of the exception class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + ZipFactory provides instances of IZipReader and IZipWriter. + + + + + Provides an instance of IZipWriter. + + The path of the ZIP file to create. + + + + + Provides an instance of IZipReader. + + The path of the ZIP file to read. + + + + + ZipReader defines an abstract class to read entries from a ZIP file. + + + + + Get an entry from a ZIP file. + + The relative path of the entry in the ZIP + file. + A stream containing the uncompressed data. + + + + Close the ZIP file. + + + + + ZipWriter defines an abstract class to write entries into a ZIP file. + To add a file, first call AddEntry with the relative path, then + write the content of the file into the stream. + + + + + Adds an entry to the ZIP file (only writes the header, to write + the content use Stream methods). + + The relative path of the entry in the ZIP + file. + + + + Resolves a path by interpreting "." and "..". + + The path to resolve. + The resolved path. + + + is the palette index for pixel 3 of row 1 (i1 is lsb; i3 is msb). + + + + Initializes new PCL font definition object. + + + + + + Write font with PCL XL Font Formats. + + PCL writer. + + + + PCL font. + + TTFont + + + + Write font with PCL XL Font Formats. + + PCL writer. + + + + Constructor + + Pcl document writer. + + + + Write font with PCL XL Font Formats. + + + + + Write font with PCL XL Font Formats. + + + + + PCL only support point unit "Int16",but PsPath support point unit "Float". + 1.When filling region is very small,overlap to line("Int16" to "Float"). + If only fill(no stroke),PsPath disappear. + Bug_127/220/316/354/499,BaselineFile_8 + 2.Glyph position loss precison. + So,by scaling,advoid precison loss. + + + + + Font segment identifier. + + + + + Global TrueType Data + + + + + Null segment + + + + + Returns the encoding associated with the specified code page identifier. + + The code page identifier of the preferred encoding. + The encoding that is associated with the specified code page. + + + + Returns the encoding associated with the specified code page name. + + The code page name of the preferred encoding. + The encoding that is associated with the specified code page. + + + + + + + + + + + + Creates a font, using font definition ( that contains font type and font files ) + + + + + + + + Creates a font, using font definition and ttfReader + + + + + + + + Parses font from fontReader and fontDefinition + + + + + + + + Parse for fontSource + + + + + + Parse font form fontDefinitions and ttfReader + + + + + + + Parse for font + + + + + Parse for fontReader + + + + + + Parse for font + + + + + + + + + + + + + + Encodes table data to ASCII hexadecimal string. + + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Xps.ApsGlyphsIndicesToXpsReader + + + + + Reference Spire.Pdf.General.Paper.Drawing.Rendering.Ps.XmlDocumentBuilder,IsValidXmlChar(char c) + + + + + + + Get the char width + + The index + The char width + + + + Get the text rise + + The text rise + + + + check character range + + + + + + + Encode the font name,Because the font has illegal characters, Postscript does not know + + + + + + + Writes text followed by new line characters. + The string must contain only 7 bit characters. + + + + + Edge softness. + + Target image. + Width. + Height. + + + + + bug4304中,当圆弧起始点和终点在同一矩形区域,且该圆弧角度大于180度,说明该曲线的圆弧角度大于270,在绘制0区域时,由于cut点在曲线的起始点, + 在计算曲线时会漏掉该区域大于270度到曲线终点这部分曲线,该方法重新计算该部分曲线 + + + + + + + + + + 将unicode字符串转为普通字符串 + + + + + + + Whether was replaced. + + + + + Add segment. + + The record + The value + + + + Modify the segment. + + The value + + + + Adjust the paragraph after replace. + + The input segments + The replaceed text width + + + + Get charcodes. + + The unicodeString + The char code + + + + Re set text show operator. + + The text range + + + + Get the bytes per char. + + The bytes count + + + + Whether need adjust space. + + The curent segment + The pre segment + if need return ture or false + + + + To chars string + + The hex code + The string + + + + Get the font size. + + + + + + Resetting the text manager. + + The current string + + + + Add the segment before. + + The before record + The shift + + + + Add the after segment. + + The after record + The after segment + + + + Add segment. + + The record + The pdf string + + + + Modify the segment. + + The value + + + + Get charcodes. + + The unicodeString + The char code + + + + Unicode string to charcodes. + + The unicode strings + The charcodes + + + + Get unicode string. + + The bytes + The unicode string + + + + Get unicode string. + + The bytes + it is process escape character? + The unicode string + + + + Add segment. + + The record + The val + + + + Modify the segment. + + The value + + + + Get charcodes. + + The unicodeString + The char code + + + + Adjust paragraph after replaced. + + The inputsgment + The width + + + + Re set text show operator. + + The text range + + + + Specified the text extract area. + + + + + Whether is use simple extraction. + + + + + Whether is extract all texts. + + + + + Whether is use simple extraction. + default vale: false. + + + + + Whether is extract all texts. + default vale: false. + + + + + Specified the text extract area. + default vale: RectangleF.Empty. + + + + + Initialize a instance. + + + + + Initializes new instance of the + object for the specified text formatting mode. + + The isSimpleExtraction + The isExtractAllText + The extractArea + + + + rather than a steaming layout, a Pdf document is made up of several location-fixed blocks,each of which has its own font and font size + Defines different modes which can be used while converting pdf document into text. See class. + + + + + Filter the text rangles. + + The text ranges + The fitered text ranges + + + + Whether the segment is visible. + + The segment + If visible ,return true,or false + + + + Show hidden text? + + + + + Whether is show hidden texts. + default vale: false. + + + + + the current path + + + + + the current clip path + + + + + the current path location + + + + + Controls options for hiding text + + + + + Controls options for hiding text + + + + + Parses command queue and get current page all path + + + + + save to the current dictionary + + + + + 执行裁剪 + + + + + Determines whether the current text is hidden + + + + + + + Delete physical segment. + + The segment + + + + Controls options for hiding text + + + + + Show hidden text? + + + + + Index of do command + + + + + Index of each command + + + + + the current page all path + + + + + Initializes a new instance of the class. + + + + + Gets od Sets,show hidden text? + + + + + Gets od Sets,Index of do command + + + + + Gets od Sets,Index of each command + + + + + Add clip path + + + + + + Get clip paths + + + + + + The horizontal scal of current text + + + + + Get or set the horizontal scal + + + + + Set the horizontal scal value to textElement + + The text element + The font + + + + write embedFont tag + + + + + + Whether the text inside the rectangle is the hyperlink text. + + The rectangle + if inside return true or false + + + + Hand hyper glyph. + + The new position + The new size + The glyphs + The text + + + + Create new hyper glyph. + + The new position + The new size + The glyphs + The text + + + + Hand new line. + + The new position + + + + Clear current hyper glyph. + + + + + Whether the text is on same horizontal line. + + The ps matrix + if the text is on same horizontal line return true,or false + + + + Get the ps font. + + The ps glyphs + ps font + + + + Whether this page is a large page + + if current page`s width big than 1584 or height big than 1584,return ture or false + + + + Crop the ps image. + + The ps path + The ps image + The ps image + + + + Get the image clip rectanglef. + + The ps path + The rectangle array list + + + + Get the visible clip region. + + The ps path + The visible clip region + + + + Visit hyper link. + + The hyper link + + + + html Split Page Number + + + + + + + + + + html write javascript + + + + + Sort text block. + + The text block + + + + compare whether two color values are the same + + true if the same or false + + + + The class representing a result of searching designated text from PDF page. + + + + + Current text actual font name + + + + + Current text original font name + + + + + Get the actual font name + + + + + Get the original font name + + + + + Gets search text of this System.String structure. + + + + + Gets match text of this System.String structure. + + + + + Gets text which is including the searched text of this System.String structure. + + + + + Gets all the text of the line where covers the searched text of this System.String structure . + + + + + Gets page which is including the searched text of this Spire.Pdf.PdfPageBase structure. + + + + + Gets index of page which is including the searched text of this System.Int32 structure. + + + + + Gets the position of the searched text of this System.Drawing.PointF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the positions of the searched text of this System.Drawing.PointF structure. + + + + + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the size of the searched text of this System.Drawing SizeF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the sizes of the searched text of this System.Drawing SizeF structure. + + + + + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + Used by find text cross line + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + if the MatchText in more lines( >=2 ),the results can not contain by one Rectangle. + So we need a list to save data. + Gets the bounds of the searched text of this System.Drawing RectangleF structure. + + + + + Highlight the seached text. + + + + + Highlight the seached text. + + The hight light color. + + + + apply hight light of the seached text + + + + + Apply hight light of the seached text + + Hight light color + + + + Processing Rectangle. + + The textRect + The processed rectangle + + + + apply hight light of the seached text + + + + + apply hight light of the seached text,with unicode + + + + + + + apply hight light of the seached text + + + + + apply hight light of the seached text,with unicode + + + + + + + The class representing all the resuls of searching designated text from PDF page + + + + + Setting find text Parameters + + + + + Do not select any parameters. + + + + + Full word matching. + + + + + Ignore English character case. + + + + + Find text Cross line + The target text in one line or more(>=2) lines. + It will be remove in the future because it will be set as default ; + + + + + Regular expression matching. + + + + + Representing the way how to find text which a target text. + + + + + Find text in a page with a table. + + The page + The find areas. + The target text + The way to find + The result find text + + + + Split text ranges by a list of rectangle. + + All text ranges + The list of rectangle. + A list of split result. + + + + Find text in a page + + The page + The find area. if the value is RectangleF.Empty, area is the whole page. + The target text + The way to find + The result find text + + + + Find all text in a page + + The page + All text find in the page. + + + + Convert text coordinate, the lower-left corner is the origin of coordinates. + + The page + + + + Revert text coordinate, revert to the original page coordinate. + + The page + + + + Sort text range list by coordinate, and contact all text. + + + + + Match TextFind in the range of rectangle from the given PDF Page. + the coordinate origin is top left corner of the page. + + Provide a rangle to match textFind. + The match TextFinds. + + + Abstract base class for code point mapping classes (1-byte character encodings). + + + Code point that is used if no code point for a specific character has been found. + + + Unicode value indicating the the character is "not a character". + + + Main constructor. + @param name the name of the encoding + @param table the table ([code point, unicode scalar value]+) with the mapping + + + Extended constructor. + @param name the name of the encoding + @param table the table ([code point, unicode scalar value]+) with the mapping + @param charNameMap all character names in the encoding (a value of null will be converted + to ".notdef") + + + Builds the internal lookup structures based on a given table. + @param table the table ([code point, unicode scalar value]+) with the mapping + + + {@inheritDoc} + + + {@inheritDoc} + + + Returns the main Unicode value that is associated with the given code point in the encoding. + Note that multiple Unicode values can theoretically be mapped to one code point in the + encoding. + @param idx the code point in the encoding + @return the Unicode value (or \uFFFF (NOT A CHARACTER) if no Unicode value is at that point) + + + {@inheritDoc} + + + Returns the index of a character/glyph with the given name. Note that this + method is relatively slow and should only be used for fallback operations. + @param charName the character name + @return the index of the character in the encoding or -1 if it doesn't exist + + + {@inheritDoc} + + + {@inheritDoc} + + + The characters in WinAnsiEncoding + + + Return the glyphname from a string, + eg, glyphToString("\\") returns "backslash" + + + Return the string representation of a glyphname, + eg stringToGlyph("backslash") returns "\\" + + + + Compression method enumeration + + + + Uncompressed storage + + + Deflate compression method + + + + UnitConvertor + + + + + Gets column name according to column index. + + + + + + + 判断是否是阿拉伯数字 + + + + + + + filter character + + + + + + + [Content_Types].xml + + + + + xl/workbook.xml + + + + + xl/_rels/workbook.xml.rels + + + + + xl/sharedStrings.xml + + + + + xl/worksheets/sheet.xml + + + + + docProps/app.xml + + + + + _rels/.rels + + + + + docProps/core.xml + + + + + xl/theme/theme1.xml + + + + + xl/styles.xml + + + + + xl/worksheets/_rels/sheet.xml.rels + + + + + xl/drawings/drawing.xml + + + + + xl/drawings/_rels/drawing.xml.rels + + + + + all xml file to StringBuilder + + + + + set cell value index + + + + + all xml file to zip stream + + + + + Initializes a new instance of the class. + + + + + create sheet.xml + + + + + all drawing.xml file + + + + + create drawing.xml + + + + + begin drawing + + + + + end drawing + + + + + add image id + + + + + all image save to dictionary + + + + + add image,absolute + + + + + + + + + + add image,relative + + + + + + + + + + + + + + begin sheet + + + + + end sheet + + + + + + + + + + + + + + + save and compress all xml file to stream + + + + + + compress to zip file + + + + + dispose + + + + + write pageobject to xlsx + + + + + Unit Convertor + + + + + + + + + + save xlsx file to stream + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + pageObjects write xlsx + + + + + + + 获取行列编号(A1,A2,A2....) + + + + + + + + 单元格内容是否为空 + + + + + + + 单元格内容是否是数字 + + + + + + + 获取当前集合中文本最大高度 + + + + + + + 获取当前行的最大高度 + + + + + + + + 获取当前行的最大高度 + + + + + + + 获取当前行的最大高度 + + + + + + + 每一列额外增加的宽度值 + + + + + 每一行额外增加的宽度值 + + + + + 获取当前sheet列宽 + + + + + + + 每一列需要额外增加的宽度值 + + + + + + + 每一列需要加宽的值 + + + + + + + pageObjects write xlsx + + + + + + + + 写入border样式,返回引用的样式Id号 + + + + + + + 写入background样式,返回引用的样式Id号 + + + + + + + 把边框样式Id,填充背景样式Id,是否自动换行写入样式表中CellXfs节点,返回CellXfs节点引用的Id号 + + + + + + + + + + 获取当前列的文本在SharedStrings.xml中的字符串 + + + + + + + + + + 获取单元格内所有文本的SharedStrings.xml字符串 + + + + + + + + + + + 获取当前行所有文本的SharedStrings.xml字符串 + + + + + + + + + + 每一行的文本对象按Y坐标排列 + + + + + + + 获取当前文本的SharedStrings.xml字符串 + + + + + + + + 获取空格字符串 + + + + + + + + + 获取空格宽度 + + + + + + + + 根据空格字符串得到样式 + + + + + + + + 获取两行文本之间隔多少个空行 + + + + + + + + + enter line,换行 + + 需要换多少行 + 字符大小 + + + + + 获取所有已经被合并的行列 + + + + + + + 横向合并列,返回合并列的范围 + + + + + + + 纵向合并行,返回合并行的范围 + + + + + + + + 合并行 + + + + + + + + + 查找当前列是否被合并,返回合并的范围 + + + + + + + + + + + 查找当前列是否被合并,返回合并的范围 + + + + + + + + + 根据行列所引查找对象 + + + + + + + + + 合并单元格的文本 + + + + + + + 合并单元格的文本 + + + + + + + 单元格默认宽度 + + + + + 单元格默认高度 + + + + + 按相对位置写入图片 + + + + + + + + + 按绝对位置写入图片 + + + + + + 计算图片开始位置y在logicSheet表中的开始行索引 + + + + + + + + 计算图片开始位置y坐标点和与开始行的偏移位置 + + + + + + + + 计算图片在logicSheet表中的结束行索引 + + + + + + + + 计算图片结束位置y坐标点和与结束行的偏移位置 + + + + + + + + 计算图片在logicSheet表中的开始列索引 + + + + + + + + 计算图片开始位置x坐标点和与开始列的偏移位置 + + + + + + + + 计算图片在logicSheet表中的结束列索引 + + + + + + + + 计算图片结束位置X坐标点和与结束列的偏移位置 + + + + + + + + 按相对位置写入图片 + + + + + + + + 反转逻辑sheet,改变Y坐标起始点,从左上角开始 + + + + + + + LogicSheet最后一行没有内容,移出最后一行 + + + + + + + LogicSheet最后一行没有内容,移出最后一行 + + + + + + + 根据旧的逻辑列创建新的逻辑列 + + + + + + + 根据每一行增加的高度,更新逻辑行的高度,起始点,结束点 + 根据每一列增加的宽度,更新逻辑列的宽度,起始点,结束点 + + + + + + + 根据每一行增加的高度,更新逻辑行的高度,起始点,结束点 + + + + + + + 根据每一列增加的宽度,更新逻辑列的宽度,起始点,结束点 + + + + + + + + + + + + + + + + current file path + + + + + namespace used by xml + + + + + override theme1.xml + + + + + override styles.xml + + + + + override image/jpeg + + + + + Default image/png + + + + + Default Extension rels + + + + + Default Extension xml + + + + + override workbook.xml + + + + + override app.xml + + + + + override core.xml + + + + + override sharedStrings.xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + sheet index for create sheet + + + + + add a sheet.xml + + + + + + Drawing id for add image + + + + + add a drawing.xmlk + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + sheet count + + + + + close xml last node + + + + + sheet count + + + + + Initializes a new instance of the class. + + + + + add app.xml content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + author + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add core.xml content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + cNvPr node Id + + + + + add image,absolute + + + + + + + + + + + add image,relative + + + + + + + + + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + relationship id for reference image + + + + + add a relationship for reference image + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add value for cell + + + + + + + update all cell count + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + 文本各种字体样式,统计总数 + + + + + 文本各种字体样式,集合对象 + + + + + 单元格背景各种样式,统计总数 + + + + + 单元格边框各种样式,统计总数 + + + + + 单元格边框各种样式,集合对象 + + + + + 单元格背景各种样式,集合对象 + + + + + 单元格引用CellXfs中的节点,统计总数 + + + + + 单元格引用CellXfs中的节点,集合对象 + + + + + 设置字体样式 + + + + + + + + + + 获取设置字体样式字符串 + + + + + + 从单元格边框样式集合中,获取相同样式的索引 + + + + + + + 从单元格背景样式集合中,获取相同样式的索引 + + + + + + + 从单元格边框样式集合中,获取所有的样式字符串 + + + + + + + + + + + + + + + + 从单元格背景样式集合中,获取所有的样式字符串 + + + + + + 增加一条单元格样式引用记录 + + + + + + + + + + + 获取单元格样式所有的引用记录 + + + + + + add content styles.xml + + + + + close node + + + + + 单元格字体样式类 + + + + + 单元格字体名称 + + + + + 单元格字体样式 + + + + + 单元格字体大小 + + + + + 单元格字体颜色 + + + + + 单元格字体在样式表中的索引 + + + + + 单元格字体名称 + + + + + 单元格字体样式 + + + + + 单元格字体大小 + + + + + 单元格字体颜色 + + + + + 单元格字体在样式表中的索引 + + + + + 比较是否是相同的样式 + + + + + + + 单元格在样式表中引用的节点 + + + + + 单元格在样式表中引用的节点,索引值 + + + + + 字体样式的索引值 + + + + + 背景样式的索引值 + + + + + 边框样式的索引值 + + + + + 是否自动换行 + + + + + 文本默认居左 + + + + + 单元格在样式表中引用的节点,索引值 + + + + + 字体样式的索引值 + + + + + 背景样式的索引值 + + + + + 边框样式的索引值 + + + + + 是否自动换行 + + + + + 文本默认居左 + + + + + 比较是否是相同的样式 + + + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add themeElements content + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add a sheet.xml + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + open sheet.xml + + + + + 添加宽度xml标签 + + + + + 更新宽度表Cols + + + + + + 为单元格引用一个样式 + + + + + + + 为单元格引用一个样式 + + + + + + + + + + + + + + 忽烈错误的单元格 + + + + + 合并了某些单元格 + + + + + 添加行,设置行高 + + + + + + + 结束行 + + + + + 开始sheet + + + + + 结束sheet + + + + + 合并的单元格写入mergeCells节点 + + + + + + close node + + + + + 忽烈错误的单元格写入ignoredErrors节点 + + + + + current file path + + + + + namespace used by xml + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + add drawing reference for image + + + + + + + close node + + + + + current file path + + + + + namespace used by xml + + + + + add theme1.xml refences + + + + + add styles.xml refences + + + + + add sharedStrings.xml refences + + + + + close xml last node + + + + + Relationship index + + + + + Initializes a new instance of the class. + + + + + add a relationship node + + + + + + + close node + + + + + xml version + + + + + StringBuilder + + + + + enter line + + + + + current file path + + + + + current StringBuilder stream + + + + + Initializes a new instance of the class. + + + + + + append content + + + + + + Replace string + + + + + + + close node + + + + + + override ToString(); + + + + + + Gets or sets current file path + + + + + Gets current StringBuilder stream + + + + + 字符串在此实例中的第一个匹配项的从零开始的索引 + + + + + + + 将字符串插入到此实例中的指定字符位置 + + + + + + + current file path + + + + + namespace used by xml + + + + + references app.xml file + + + + + references core.xml file + + + + + references workbook.xml file + + + + + close xml last node + + + + + Initializes a new instance of the class. + + + + + close xml + + + + Force deflate algotithm even if it inflates the stored file. Off by default. + + + + Represents an entry in Zip file directory + + + + Compression method + + + Full path and filename as stored in Zip + + + Original file size + + + Compressed file size + + + Offset of header information inside Zip storage + + + Offset of file inside Zip storage + + + Size of header information + + + 32-bit checksum of entire file + + + Last modification time of file + + + User comment for file + + + True if UTF8 encoding for filename and comments, false if default (CP 437) + + + Overriden method + Filename in Zip + + + + Line orientation + + + + + Cell data type + + + + + Border direction + + + + + Cell border line style + + + + + Specifies the type of horizontal text alignment. + + + + + Specifies the text is aligned to Left. + + + + + Specifies the text is aligned to Center. + + + + + Specifies the text is aligned to Right. + + + + + Specifies the type of Vertical alignment. + + + + + Specifies the element is aligned to Top. + + + + + Specifies the element is aligned to Middle. + + + + + Specifies the element is aligned to Bottom. + + + + + Represents sound embedded into pdf document. + + + + Name of the file. + + + + Gets or sets the sampling rate, in samples per second (in Hz). + + + + + Gets or sets the number of bits per sample value per channel. + + + + + Gets or sets the encoding format for the sample data. + + + + + Gets or sets the number of sound channels. + + + + The name of the file. + + + + Gets the element. + + + + + The interface defines a 1-byte character encoding (with 256 characters). + + + Returns the encoding's name. + @return the name of the encoding + + + Maps a Unicode character to a code point in the encoding. + @param c the Unicode character to map + @return the code point in the encoding or 0 (=.notdef) if not found + + + Returns the array of character names for this encoding. + @return the array of character names + (unmapped code points are represented by a ".notdef" value) + + + Returns a character array with Unicode scalar values which can be used to map encoding + code points to Unicode values. Note that this does not return all possible Unicode values + that the encoding maps. + @return a character array with Unicode scalar values + + + + The encoding format for the sample data. + + + + + Unspecified or unsigned values in the range 0 to 2^B - 1. + + + + + Twos-complement values. + + + + + M-lawencoded samples. + + + + + A-lawencoded samples. + + + + + The number of sound channels. + + + + + One channel. + + + + + Two channels. + + + + + Enumeration that represents fit mode. + + + + + Display the page designated by page, with the coordinates (left, top) positioned + at the top-left corner of the window and the contents of the page magnified + by the factor zoom. A NULL value for any of the parameters left, top, or + zoom specifies that the current value of that parameter is to be retained unchanged. + A zoom value of 0 has the same meaning as a NULL value. + + + + + Display the page designated by page, with its contents magnified just enough + to fit the entire page within the window both horizontally and vertically. If + the required horizontal and vertical magnification factors are different, use + the smaller of the two, centering the page within the window in the other + dimension. + + + + + Display the page designated by page, with the vertical coordinate top positioned + at the top edge of the window and the contents of the page magnified + just enough to fit the entire width of the page within the window. + + + + + Display the page designated by page, with its contents magnified just enough + to fit the rectangle specified by the coordinates left,bottom,right,and top + entirely within the window both horizontally and vertically. + + + + + Pdf version 1-7 ,on page 675 + + + + + Represents an anchor in the document where bookmarks or annotations can direct when clicked. + + + + + The zero based page number. + + + + + Initializes a new instance of the class. + + The page. + + + + Initializes a new instance of the class. + + The page. + The location. + + + + Initializes a new instance of the class. + + The page. + The rectangle. + + + + Initializes a new instance of PdfDestination. + + The zero based page number. + The location in the page based on the lower-left coordinate system. + The zoom factor. + + + + Gets or sets zoom factor. + + + + + Gets or sets a page where the destination is situated. + + + + + Gets or sets mode of the destination. + + + + + Gets or sets a location of the destination. + + + + + Gets or sets a rectangle of the destination. + + + + + Gets a value indicating whether this instance is valid. + + true if this instance is valid; otherwise, false. + + + + Gets pdf primitive representing this object. + + + + + Represents specification of embedded file. + + + + file name + + + Name of the file. + The data. + + + Name of the file. + The stream. + + + + + + + Gets or sets the data. + + The data. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the MIME type of the embedded file. + + The MIME type of the embedded file. + + + + Gets or sets creation date. + + Creation date. + + + + Gets or sets modification date. + + Modification date. + + + + Gets or sets attachment relationship. + + Attachment relationship + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Set the corresponding field value by field name. + + Custom field name. + The corresponding field value. + + + + Modify embeddedFile data + + + + + + Attachment relationship type. + + + + + If this document specification is the original source material + for the associated content. + + + + + If this document specification represents the information used + to generate a visual rendering. + + + + + If this document specification is an alternative representation + of the content(such as audio). + + + + + If this document specification represents a supplemental representation + of the original source or data that may be easier to process. + + + + + When the relationship is unknown or cannot be described using one + of the other values. + + + + + Represents base class for file specification objects. + + + + Name of the file. + + + + Gets or sets the name of the file. + + The name of the file. + + + + Gets the element. + + + + + + Exception of this type is raised when the document contains object which are not + supported by current document standard. + + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Exception of this type is raised when annotation object is used incorrectly. + + + + + Initializes object with default error message. + + + + + Initializes object with default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object with specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + General exception class. + + + + + Initializes object by default error message. + + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + Base PDF document exception. + + + + + Initializes object by default error message. + + + + + Initializes object by default error message and inner + exception object. + + The inner exception. + + + + Initializes object by specified error message. + + User defined error message. + + + + Initializes object by specified error message and inner + exception object. + + User defined error message. + The inner exception. + + + + CalGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + CalRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Pdf color space class + + + + + Create ICC profile stream. + + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The ICC profile stream. + + + + + + Create color space. + If can't parse the colorSpaceObj, then return a PdfNotSupportedColorSpace instance. + + The color space IPdfPrimitive Obj. + The color space. + + + + The color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a list of color to target color space. + + The color list components. + The target color space. + The color list components in target color space. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceCMYK color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceN color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + DeviceRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Construct an new instance. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + ICCBased color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + color space by alternate + + + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + The components num. + + + + + The components num. + + + + + The maximum value in the range for component. + + + + + The minimum value in the range for component. + + + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + Constructors + + + The number of color components in the color space described by the ICC profile data. + This number must match the number of components actually in the ICC profile. + As of PDF 1.4, N must be 1, 3, or 4. + + + PdfColorSpace alternateColorSpace + + + An array of 2 × N numbers [ min0 max0 min1 max1 … ] specifying the minimum and maximum valid values + of the corresponding color components. These values must match the information in the ICC profile. + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Indexed color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table obj. + the color table bytes. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table bytes. + the color table. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + the base color space in which the values in the color table are to be interpreted. + + + + + specifies the maximum valid index value + which the color table is to be indexed by integers in the range 0 to hival. + + + + + the color table which provides the mapping between index values and + the corresponding colors in the base color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace baseColorSpace + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Lab color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + An array of four numbers [ amin amax bmin bmax ] specifying + the range of valid values for the a* and b* (B and C) components of the color space. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Not support color space. + + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Pattern color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Constructors + + PdfColorSpace source object + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + Separation color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + + Whether support conversion to target color space. + + The target color space. + True,supported; Otherwise,False. + + + + Convert a color to target color space. + + The color components. + The target color space. + The color components in target color space. + + + + the pdf document convert to docx document,set the options + + + + + Represents first-page cross-reference table and tailer in file structure. + + + + + Initializes a new instance of the class. + + + + + + + + + + The object number of the first object in the first embedded file stream group. + + + + + The location of the first object in the first embedded file stream group. + + + + + The number of embedded file stream groups referenced by this hint table. + + + + + The number of bits needed to represent the highest object number + corresponding to an embedded file stream object. + + + + + The number of bits needed to represent the greatest number + of objects in an embedded file stream group. + + + + + The number of bits needed to represent the greatest length + of an embedded file stream group, in bytes. + + + + + The number of bits needed to represent the greatest number + of shared object references in any embedded file stream group. + + + + + Per-page entries. + + + + + + + + + + The object number of the first object in the group. + + + + + The location of the first object in the group. + + + + + The number of objects in the group. + + + + + The length of the object group in bytes. + + + + + The number of shared object references. + + + + + The number of bits needed to represent the numerically greatest + shared object identifier used by the objects in the group. + + + + + Starting with item 7, each of the remaining items in this table + is a shared object identifier—that is, an index into the shared object + hint table (described in Section F.3.2, “Shared Object Hint Table”). + + + + + + + + + + The object number of the first object in the group. + + + + + The location of the first object in the group. + + + + + The number of objects in the group. + + + + + The length of the object group in bytes. + + + + + The hint table base. + + + + + The page offset hint table provides information required for locating each page. + + + + + The least number of objects in a page (including the page object itself). + + + + + The location of the first page’s page object. + + + + + The number of bits needed to represent the difference between the greatest + and least number of objects in a page. + + + + + The least length of a page in bytes. This is the least length from the beginning + of a page object to the last byte of the last object used by that page. + + + + + The number of bits needed to represent the difference between the greatest + and least length of a page, in bytes. + + + + + The least offset of the start of any content stream, relative to the beginning + of its page. (See implementation note 183 in Appendix H.) + + + + + The number of bits needed to represent the difference between the greatest + and least offset to the start of the content stream. (See implementation note 183 in Appendix H.) + + + + + The least content stream length. (See implementation note 184 in Appendix H.) + + + + + The number of bits needed to represent the difference between the greatest + and least content stream length. (See implementation note 184 in Appendix H.) + + + + + The number of bits needed to represent the greatest number of shared object references. + + + + + The number of bits needed to represent the numerically greatest shared object + identifier used by the pages (discussed further in Table F.4, item 4). + + + + + The number of bits needed to represent the numerator of the fractional position + for each shared object reference. For each shared object referenced from a page, + there is an indication of where in the page’s content stream the object is first + referenced. That position is given as the numerator of a fraction, whose denominator + is specified once for the entire document (in the next item in this table). The + fraction is explained in more detail in Table F.4, item 5. + + + + + The denominator of the fractional position for each shared object reference. + + + + + Page entries. + + + + + Add page entry. + + + + + + + Add page entry. + + + + + + + Get page object number. + + + + + + + Get page length. + + + + + + + The shared object hint table gives information required to locate shared objects. + + + + + The object number of the first object in the shared objects section (part 8). + + + + + The location of the first object in the shared objects section. + + + + + The number of shared object entries for the first page (including nonshared + objects, as noted above). + + + + + The number of shared object entries for the shared objects section, including + the number of shared object entries for the first page (that is, the value of item 3). + + + + + The number of bits needed to represent the greatest number of objects in a + shared object group. (See also implementation note 185 in Appendix H.) + + + + + The least length of a shared object group in bytes. + + + + + The number of bits needed to represent the difference between the greatest + and least length of a shared object group, in bytes. + + + + + Shared object group entries. + + + + + Add group entry. + + + + + + + + + + + + The object number of the first thumbnail image (that is, + the thumbnail image that is described by the first entry in the thumbnails section). + + + + + The location of the first thumbnail image. + + + + + The number of pages that have thumbnail images. + + + + + The number of bits needed to represent the greatest number of + consecutive pages that do not have a thumbnail image. + + + + + The least length of a thumbnail image in bytes. + + + + + The number of bits needed to represent the difference + between the greatest and least length of a thumbnail image. + + + + + The least number of objects in a thumbnail image. + + + + + The number of bits needed to represent the difference + between the greatest and least number of objects in a thumbnail image. + + + + + The object number of the first object in the thumbnail shared objects section (a subsection of part 9). + This section includes objects (color spaces, for example) that are referenced from + some or all thumbnail objects and are not referenced from any other objects. + The thumbnail shared objects are undifferentiated; + there is no indication of which shared objects are referenced from any given page’s thumbnail image. + + + + + The location of the first object in the thumbnail shared objects section. + + + + + The number of thumbnail shared objects. + + + + + The length of the thumbnail shared objects section in bytes. + + + + + Per-page entries. + + + + + Add per-page entry. + + + + + + + Get the frist object info. + + + + + The number list of consecutive pages that do not have a thumbnail image. + + + + + The length list of a thumbnail image in bytes. + + + + + The number list of objects in a thumbnail image. + + + + + The length of objects in bytes. + + + + + Represents linearization parameter dictionary in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Write linearization parameter dictionary to file stream. + + The file stream. + The file length. + The hint stream position and offset.[offset1 length1 offset2 length2] (part 5) + The object number of frist page's page object (part 6) + The offset of end of frist page. + The offset of frist entry in main cross-reference table(part 11). + + + + Represents main cross-reference table and tailer in file structure. + + + + + Represent the offset of the white-space character preceding + the first entry of the main cross-reference table,relative to + the beginning of the file. + + + + + Represent the offset of the object number 0; + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents overflow hint stream in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents linearized document. + + + + + Initializes a new instance of the class. + + + + + + + + + + Register a new object information. + + The object. + The object info. + + + + Gets object information about an object. + + The object. + The object information. + + + + Represents all elements in linearized document. + + + + + + + + + + Initializes a new instance of the class. + + + + + Represents one part in file structure. + + + + + Get document structure. + + + + + + + + + + Get object information. + + + + + + + + + + Save a pdf object. + + + + + Write a pdf object information to the stream. + + + + + Write a pdf string information to the stream. + + + + + Write a pdf array information to the stream. + + + + + Write a pdf reference information to the stream. + + + + + Write a pdf stream information to the stream. + + + + + Write a pdf dictionary information to the stream. + + + + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Gets the dictionary of the page. + + + + + Gets all objects in the page. + + + + + Gets all objects in the page. + + + + + Gets the dictionary of the page. + + + + + Initializes a new instance of the class. + + The page object. + + + + Add inheritable property to page dictionary. + + The page dictionary. + The ancestors dictionary. + + + + Analyze page all objects. + + The page dictionary. + + + + Analyze page annots. + + The page dictionary. + + + + Analyze page beads. + + The page dictionary. + + + + Analyze page resources. + + The page dictionary. + + + + Find pdf object. + + The record. + The associated resources with the content stream. + The font dictionary. + + + + Whether the object is image. + + The object. + Tf the object is image, true. Otherwise,false + + + + Represents header in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Represents first-page section in file structure. + + + + + Get the page index. + + + + + Get the page index. + + + + + Get all objects. + + + + + Get shared object info groups. + + + + + Analyze objects. + + + + + Represents primary hint stream in file structure. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Build the stream content. + + The first page section part. + The remaining pages part. + The shared objects part. + The other objects part. + The stream length. + + + + Build page offset hint table. + + The first page section part. + The remaining pages part. + The table length. + + + + Build shared object hint table. + + The first page section part. + The shared objects part. + The table length. + + + + Build Thumbnail hint table. + + The other objects part. + The table length. + + + + Represents remaining pages in file structure. + + + + + Get all objects. + + + + + Get remaining page objects info Map. + + + + + Get remaining page reference shared objects Map. + + + + + Get remaining page annots objects Map. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Analyze objects. + + + + + Represents document catalog and document-level objects in file structure. + + + + + Get all objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Organize pdf objects. + + + + + Represents shared objects in file structure. + + + + + Get all objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Alloacte contiguous object number. + + + + + Analyze shared objects. + + + + + Represents other objects in file structure. + + + + + Get all objects. + + + + + Get document information all dependent objects. + + + + + Initializes a new instance of the class. + + The document structure. + The linearized Document. + + + + Analyze objects. + + + + + Add pages object. + + + + + Remove pages dictionary inheritable properties + + The pages dictionary. + + + + Whether the object is Page node. + + The pdf object. + If the object is a page node, true. Otherwise,false + + + + Whether the object is catalog. + + The pdf object. + If the object is a catalog, true. Otherwise,false + + + + Update dependent indirect objects. + + The dependent indirect objects. + A node object. + + + + Update outlines dependent indirect objects. + + The dependent indirect objects. + A node object. + + + + Group object. + + + + + Get the min value from an array. + + The array. + The min value. + + + + Get the max value from an array. + + The array. + The max value. + + + + Get the max value from a list array. + + The list. + The max value. + + + + Object cliper class + + + + + 裁剪后需要删除的对象 + + + + + Initializes a new instance of the class. + + + + + + Clip object + + + + + + 对文本进行剪切 + + + + + + 对横线进行剪切 + + + + + + 对竖线进行剪切 + + + + + + 对Path路径进行剪切 + + + + + + 对图片进行剪切 + + + + + + Curve object + + + + + 宽度 + + + + + 高度 + + + + + 线宽 + + + + + 曲线颜色 + + + + + set clip rect + + + + + 曲线的数据 + + + + + Content width + + + + + Content height + + + + + Line width + + + + + set clip rect + + + + + line color + + + + + Curve data + + + + + Graphics Object + + + + + Object start point + + + + + Object start point + + + + + Object extractor + + + + + The origin document. + + + + + Ps转换器 + + + + + 页面大小 + + + + + Initializes a new instance of the class. + + + + + + Get the current page all object + + + + + + + Get the document all page all object + + + + + + Get the document all page size + + + + + + The pdf document. + + + + + Reverse y position. + + + + + y value + + + + + Image index in xlsx + + + + + ImageObject + + + + + Save get data from ps + + + + + UnitConvertor + + + + + Get object from ps + + + + + Cell fill path data + + + + + clip rectangle,save to stack + + + + + if IsNegative is true,flip clip rectangle,save to stack + + + + + The page rotate + + + + + Initializes a new instance of the class. + + + + + Get GraphicsObject from Ps model + + + + + + Reverse y position. + + + + + clip rectangle,save to stack + + + + + if IsNegative is true,flip clip rectangle,save to stack + + + + + Start visit page + + + + + + End visit page + + + + + + Start visit canvas + + + + + + Start visit arc segment + + + + + + Visit image + + + + + + Image index in xlsx + + + + + End visit canvas + + + + + + Visit glyphs,get text + + + + + + Start visit path + + + + + End visit path + + + + + + Start visit path line + + + + + + End visit path line + + + + + + Start visit poly line + + + + + + Visit poly bezier line + + + + + + Visit bezier line + + + + + + Visit line + + + + + + Horizontal line object + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Content width + + + + + height + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Image object + + + + + 图片宽度 + + + + + 图片高度 + + + + + 图片 + + + + + Image file extension + + + + + It is clip and scale image + + + + + gets or sets the affine matrix transformation to the local coordinate space. + + + + + set clip rect + + + + + clip image rectangle + + + + + Image clip x position + + + + + Content width + + + + + Content height + + + + + It is image object + + + + + Image file extension + + + + + It is clip and scale image + + + + + gets or sets the affine matrix transformation to the local coordinate space. + + + + + set clip rect + + + + + logic sheet creator + + + + + 逻辑sheet,是sheet表的抽象 + + + + + 表格对象 + + + + + path对象 + + + + + 横线对象 + + + + + 竖线对象 + + + + + 所有的线条对象(包含TableObject中的线条对象) + + + + + 图片对象 + + + + + 文本对象 + + + + + 文本对象 + + + + + 从表格对象提取每一行的文本对象 + + + + + 段落的对象 + + + + + Pdf document to xlsx document,page content layout + + + + + 页面大小 + + + + + Initializes a new instance of the class. + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + + + + set object to logicSheet + + + + + 判断布局方式 + + + + + + + 以相近值起点,判断当前坐标是否在相近值的范围内 + + + 线条端点附近的列坐标 + 线条端点坐标 + 是否是线条结束位置 + + + + + 获取逻辑Sheet + + + + + + 把表格对象设置到逻辑表Sheet + + + + + 把表格对象设置到逻辑表Sheet + + + + + + 把表格对象中的行,设置到逻辑表中的行 + + + + + + + 按线条布局方式,把表格对象中的列,设置到逻辑表中的列 + + + + + + + + + 设置表格列的border到LogicColumn + + + + + + + + + 按文本布局方式,把表格对象中的列,设置到逻辑表中的列 + + + + + + + + + 表格对象中列的顶部或底部设置到逻辑表中的列 + + + + + + + + + 设置Path对象到LogicSheet + + + + + 设置Path对象到LogicSheet + + + + + + 设置横线对象到LogicSheet + + + + + 设置横线对象到LogicSheet + + + + + + 根据线条对象创建BorderObject + + + + + + + 设置竖线对象到LogicSheet + + + + + 设置竖线对象到LogicSheet + + + + + + 根据线条对象创建BorderObject + + + + + + + 设置段落对象到LogicSheet + + + + + 设置段落对象到LogicSheet + + + + + + 设置段落对象到LogicRow + + + + + + + 按行设置文本到LogicSheet + + + + + 设置表格对象中的文本到LogicSheet + + + + + 设置文本对象到LogicSheet + + + + + + 判断文本是否跨列,如果跨列,把后一列的文本追加到前一列,两列中间的Border设置为null,表示处于合并状态 + + + + + 判断当前两列是否在表格对象范围内 + + + + + + + + + + 把前后一列的文本添加到前一列 + + + + + + + 判断是否存在线条 + + + + + + + + + 判断是否是一个单独的Tj文本 + + + + + + + 获取表格对象 + + + + + + 所有的线条对象(包含TableObject中的线条对象) + + + + + + 按文本方式布局,单元格内文本存在多行多列,需要拆分为多行多列,获取表格对象中每一行的文本对象 + + + + + + 从表格对象清空所有文本对象 + + + + + 分行,只合并紧挨着的字符和文本 + + + + + + + 简单合并文本,只合并当前行紧挨着的字符和文本 + + + + + + + 获取文本对象 + + + + + + 获取段落对象 + + + + + + 获取图片对象 + + + + + + 获取横线对象 + + + + + + 获取竖线对象 + + + + + + 获取Path对象 + + + + + + 页面大小 + + + + + + 布局参数 + + + + + + 是否支持换行 + + + + + + 是否是空sheet + + + + + + 段落对象 + + + + + 获取段落的矩形范围 + + + + + 当前段落包含的文本 + + + + + 设置当前段落包含的文本 + + + + + + 设置当前段落包含的文本 + + + + + + + 获取当前段落包含的文本 + + + + + 获取段落的矩形范围 + + + + + + + + + + + + Path object + + + + + Content width + + + + + Content height + + + + + Path line width + + + + + set clip rect + + + + + fill data + + + + + fill background color + + + + + border color + + + + + Avoid directly modifying values in the array returned by this property. + For standard dashes it returns a static array. If you modify values in it, it will affect all pens with this pattern. + + + + + Content width + + + + + Content height + + + + + Path line width + + + + + set clip rect + + + + + fill data + + + + + fill background color + + + + + Cell border color + + + + + Avoid directly modifying values in the array returned by this property. + For standard dashes it returns a static array. If you modify values in it, it will affect all pens with this pattern. + + + + + Recognizer base class + + + + + Input graphics objects. + + + + + Input graphics objects. + + + + + Initializes a new instance of the class. + + + + + + Clear graphicsObject + + + + + StraightLine megre class + + + + + 第一根线条结束点与第二根线条开始点间距多少,就认为是相交的,设一个常数控制,合并为一根线 + + + + + 两根平行线之间相隔多少,就认为是同一根线的,设一个常数控制,合并为一根线 + + + + + only for to xlsx + + + + + Initializes a new instance of the class. + + + + + + Recognize all lines the current page,only for to xlsx + + + + + + + Recognize all lines the current page + + + + + + 第一根线条结束点与第二根线条开始点间距多少,就认为是相交的,合并为一根线 + + + + + + 两根平行线之间相隔多少,就认为是同一根线的,合并为一根线 + + + + + + 识别线条,拆出表格线 + + + + + + + 获取边框样式 + + + + + + + 把Path转成四根线条 + + + + + + + + + + 开始合并当前页面的线条 + + + + + + + 合并横线,按横向方向合并(多根横线y坐标值相同的情况,合并成一根或多根横线) + + + + + + + 合并横线,按纵向方向合并(多根横线存在y坐标值相近的情况,合并成一根或多根横线) + + + + + + + 起始点X不相同的情况下,前面一根横线结束点与当前横线起始点间距在一个常数范围内,合并成一根或多根横线 + + + + + + + 在Y相同,起始点X相同的情况下,也存在多根横线,这种情况先合并成一根横线 + + + + + + + 合并两根横线为一根横线 + + + + + + + + + 合并剪切范围 + + + + + + + + y坐标值相近的横线合并成一根或多根横线,相近有一个范围区间,yCoordinateStart开始,yCoordinateEnd结束 + + + + + + + + + 在起始点y相似或相近的情况下,按起始点X相同的线分别存入集合 + + + + + + + + + 合并竖线,按纵向方向合并(多根竖线X坐标值相同的情况,合并成一根或多根竖线) + + + + + + + 合并竖线,按横向方向合并(多根竖线存在x坐标值相近的情况,合并成一根或多根竖线) + + + + + + + 起始点Y不相同的情况下,前面一根竖线结束点与当前竖线起始点间距在一个常数范围内,合并成一根或多根竖线 + + + + + + + 在X相同,起始点Y相同的情况下,也存在多根竖线,这种情况先合并成一根竖线 + + + + + + + 合并两根竖线为一根竖线 + + + + + + + + + 合并剪切范围 + + + + + + + + x坐标值相近的竖线合并成一根或多根竖线,相近有一个范围区间,xCoordinateStart开始,xCoordinateEnd结束 + + + + + + + + + 在起始点x相似或相近的情况下,按起始点y相同的竖线分别存入集合 + + + + + + + + + Text object + + + + + Returns cell spacing of this font (points). + This is a vertical distance between baselines of the two glyphs. + + + + + the text size + + + + + the text + + + + + the font style + + + + + the font size + + + + + the font name + + + + + the text color + + + + + merge text after,the second text origin laction + + + + + merge text after,the second text size + + + + + the text clip rect + + + + + the affine matrix transformation to the local coordinate space + + + + + the size of each character + + + + + Returns cell spacing of this font (points). + This is a vertical distance between baselines of the two glyphs. + + + + + the char size + + + + + the text + + + + + the font style + + + + + the font size + + + + + the font name + + + + + the text color + + + + + the text clip rect + + + + + the affine matrix transformation to the local coordinate space. + + + + + the size of each character + + + + + merge text after,the second text origin laction + + + + + merge text after,the second text size + + + + + + + + + + + Vertical line object + + + + + set clip rect + + + + + line color + + + + + end point + + + + + Cell border line style + + + + + Content height + + + + + width + + + + + line color + + + + + end point + + + + + set clip rect + + + + + Cell border line style + + + + + the page index + + + + + the page size + + + + + The origin PdfDocumentBase. + + + + + 识别为chart后剩余的对象 + + + + + Initializes a new instance of the class. + + + + + + + + + 抽取chart的内容 + + + + + 计算当前path又包含多少个path + + + + + + + 判断是否包含曲线 + + + + + + + 筛选出chart的范围 + + + + + + + + + + + + + 获得对象的范围 + + + + + + + 从图片截取当前页面的chart的内容 + + + + + + + + Define a cross row and column merge range class,Used to merge cells + + + + + 开始行所引值 + + + + + 结束行所引值 + + + + + 开始列所引值 + + + + + 结束列所引值 + + + + + + + + + + 开始行所引值 + + + + + + 开始行所引值 + + + + + + 结束行所引值 + + + + + + 结束行所引值 + + + + + + 开始列所引值 + + + + + + 开始列所引值 + + + + + + 结束列所引值 + + + + + + 结束列所引值 + + + + + + 获取合并行列的xml字符串 + + + + + + 当前已经合并的行列是否包含当前单元格 + + + + + + + + Gets column name according to column index. + + + + + + all page convert to signle sheet + + + + + 每一页的页面对象 + + + + + 每一页的页面大小 + + + + + Initializes a new instance of the class. + + + + + + + Convert to stream + + + + + + + 合并所有页面的对象,每一页对象的Y坐标不断追加 + + + + + + 更新TableObject对象的Y坐标 + + + + + + + 更新PathObject对象的Y坐标 + + + + + + + 更新HLineObject对象的Y坐标 + + + + + + + 更新VLineObject对象的Y坐标 + + + + + + + 更新TextObject对象的Y坐标 + + + + + + + 更新ParagraphsObject对象的Y坐标 + + + + + + + 更新ImageObject对象的Y坐标 + + + + + + + 相近数值的起始,结束范围 + 比如数据: -1, 10, 15, 16, 17, 18, 29, 30, 31, 48, 49, 50, 61, 62, 80 + 前后相邻的数字小于5,认为是相近的数字 + 处理后得到结果: + 第1段数据:m_Start=-1,m_End=-1; + 第2段数据:m_Start=10,m_End=10; + 第3段数据:m_Start=15,m_End=18; + 第4段数据:m_Start=29,m_End=31; + 第5段数据:m_Start=48,m_End=50; + 第6段数据:m_Start=61,m_End=62; + 第7段数据:m_Start=80,m_End=80; + 这样每一段范围数字处理成同一行,或同一列 + + + + + 前后间隔某一个值认为是相近的数字 + + + + + 相近数值的开始范围 + + + + + 相近数值的结束范围 + + + + + 设置相近数值的开始范围 + + + + + + 设置相近数值的结束范围 + + + + + + 前后间隔某一个值认为是相近的数字 + + + + + + 获取相近数值的开始范围 + + + + + + 获取相近数值的结束范围 + + + + + + 前后间隔某一个值认为是相近的数字 + + + + + + 单元格横向起点,结束点,或两点之间距离;单元格纵向起点,结束点,或两点之间距离 + + + + + 当前行的Y坐标起始点 + + + + + 当前行的Y坐标结束点 + + + + + 当前行的所引,1开始 + + + + + 当前行包含的列 + + + + + + + + + + + + Get y coordinate point for row top + + + + + + Set y coordinate point for row top + + + + + + Get y coordinate point for row bottom + + + + + + Set y coordinate point for row bottom + + + + + + Get row index + + + + + + Set row index + + + + + + Add new Column + + + + + + + + + + + + + Get all Columns + + + + + + Get logicColumn by columnIndex + + + + + + + Get row height + + + + + + 当前行内容是否为空 + + + + + + 单元格横向起点,结束点,或两点之间距离;单元格纵向起点,结束点,或两点之间距离 + + + + + 当前列的左边的X起始点 + + + + + 当前列的右边的X结束点 + + + + + 当前列所在行的索引值,1开始 + + + + + 当前列的索引值,0开始 + + + + + 当前列的顶部边框 + + + + + 当前列的底部边框 + + + + + 当前列的左边框 + + + + + 当前列的右边框 + + + + + 当前列的背景色 + + + + + 当前列的text对象集合 + + + + + 当前列的Paragraphs对象 + + + + + Set x point to the left of the colume + + + + + + Get x point to the left of the colume + + + + + + Set x point to the right of the colume + + + + + + Get x point to the right of the colume + + + + + + Set row Index + + + + + + Get row Index + + + + + + Set Column Index + + + + + + Get Column Index + + + + + + Get the top border + + + + + + Set the top border + + + + + + Get the bottom border + + + + + + Set the bottom border + + + + + + Get the left border + + + + + + Set the left border + + + + + + Get the right border + + + + + + Set the right border + + + + + + Get the background color + + + + + + Set the background color + + + + + + Add text object to column + + + + + + Add text object to column + + + + + + Add paragraphs object to column + + + + + + Get all graphics object + + + + + + Get paragraphs object + + + + + + Get column width + + + + + + Get column text width + + + + + + 获取当前列最右边文本的结束X坐标点 + + + + + + 获取当前列最左边文本的X坐标点 + + + + + + 获取当前列文本的最大fontSize + + + + + + + + + + + + 当前列内容是否为空 + + + + + + + + + + + + + + + + 当前表格所有行 + + + + + 当前表格所有行 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 获取第一行的所有列 + + + + + + + + + + + + + + + + + + + + + + + + + + 最大行索引 + + + + + + 最大列索引 + + + + + + LogicSheet的范围 + + + + + + + + + + + + logic sheet creator + + + + + 页面对象 + + + + + 线条X坐标点相近数值的起始,结束范围 + + + + + 线条Y坐标点相近数值的起始,结束范围 + + + + + Initializes a new instance of the class. + + + + + + 创建逻辑sheet + + + + + + 线条X坐标点相近数值的起始,结束范围 + + + + + + 线条Y坐标点相近数值的起始,结束范围 + + + + + + 获取所有列的X坐标 + + + + + + + 获取所有行的Y坐标 + + + + + + + 按线条方式布局,获取文本,线条的X坐标位置,包含表格线条,path线条和单个线条 + + + + + 按线条方式布局,获取文本,线条的Y坐标位置,包含表格线条,path线条和单个线条 + + + + + 按文本方式布局,获取文本,线条的X坐标位置,包含表格线条,path线条和单个线条 + + + + + 按文本方式布局,获取文本,线条的Y坐标位置,包含表格线条,path线条和单个线条 + + + + + 所有表格线的横坐标值 + + + + + + 所有path线条的横坐标值 + + + + + + 所有线条的横坐标值 + + + + + + 所有表格线的纵坐标值 + + + + + + 所有path线条的纵坐标值 + + + + + + 所有线条的Y坐标值 + + + + + + 创建逻辑列 + + + + + + + 把部分对象的X坐标值加入逻辑列,进行布局 + + + + + + + + + 把对象的X坐标值加入逻辑列,进行布局 + + + + + + + + + 创建逻辑行 + + + + + + + 把对象的Y坐标值加入逻辑行,进行布局 + + + + + + + + + 把对象的Y坐标值加入逻辑行,进行布局 + + + + + + + + + + 把HLineObject VLineObject PathObject对象的X坐标值加入逻辑列 + + + + + + + + + 把HLineObject VLineObject PathObject对象的Y坐标值加入逻辑行 + + + + + + + + + 把所有文本对象的X坐标值加入逻辑列 + + + + + + + + 把表格对象中的TextObject对象的X坐标值加入逻辑列 + + + + + + + + 把TextObject对象的X坐标值加入逻辑列 + + + + + + + + 把所有文本对象的Y坐标值加入逻辑行 + + + + + + + + 把表格对象中的TextObject对象的Y坐标值加入逻辑行 + + + + + + + + 获取表格对象每一行文本的Y坐标 + + + + + + + + + 获取每一行文本的Y坐标 + + + + + + + + 把TextObject对象的Y坐标值加入逻辑行 + + + + + + + + 获取表格对象以外的区域 + + + + + + + 获取线条坐标点相近数值的起始值 + + + + + + + + 获取表格顶部部分文本的X的坐标值 + + + + + + + + 获取表格底部部分文本的X的坐标值 + + + + + + + + 把X坐标按表格列分段 + + + + + 如果X坐标位置靠得很近,消除重复项 + + 坐标点 + 小于等于某个值,认为是重复的 + + + + + 下一个数字减上一个数字大于parameter值的索引 + + + 坐标点 + 小于等于某个值,认为是重复的 + + + + + 如果Y坐标位置靠得很近,消除重复项 + + + + + + + + 下一个数字减上一个数字大于parameter值的索引 + + + + + + + + + 获取当前集合中所有文本的矩形范围 + + + + + + + Border object + + + + + 单元格Border线宽 + + + + + 单元格Border颜色 + + + + + Cell border line style + + + + + Get border width + + + + + + Set border width + + + + + + Set border style + + + + + + Get border color + + + + + + Set border color + + + + + + Column object + + + + + 当前列的左边的X起始点 + + + + + 当前列的右边的X结束点 + + + + + 当前列所在行的索引值,1开始 + + + + + 当前列的索引值,0开始 + + + + + 当前列的顶部边框 + + + + + 当前列的底部边框 + + + + + 当前列的左边框 + + + + + 当前列的右边框 + + + + + 当前列的背景色 + + + + + 当前列的文本集合 + + + + + Set x point to the left of the colume + + + + + + Get x point to the left of the colume + + + + + + Set x point to the right of the colume + + + + + + Get x point to the right of the colume + + + + + + Set row Index + + + + + + Get row Index + + + + + + Set Column Index + + + + + + Get Column Index + + + + + + Get the top border + + + + + + Set the top border + + + + + + Get the bottom border + + + + + + Set the bottom border + + + + + + Get the left border + + + + + + Set the left border + + + + + + Get the right border + + + + + + Set the right border + + + + + + Get the background color + + + + + + Add text object to column + + + + + + Add path object to column + + + + + + Add background color to column + + + + + + Get all text object + + + + + + Get column width + + + + + + Merge text + + + + + + Row object + + + + + 当前行的Y坐标起始点 + + + + + 当前行的Y坐标结束点 + + + + + 当前行的所引,1开始 + + + + + 当前行包含的列 + + + + + Get y coordinate point for row top + + + + + + Set y coordinate point for row top + + + + + + Get y coordinate point for row bottom + + + + + + Set y coordinate point for row bottom + + + + + + Get row index + + + + + + Set row index + + + + + + Add new Column + + + + + + + Get all Columns + + + + + + Get row height + + + + + + Table Object + + + + + 线条最小宽度 + + + + + 存放当前表格的横线对象 + + + + + 存放当前表格的竖线对象 + + + + + 存放当前表格的Path对象 + + + + + 当前表格所有行 + + + + + 当前表格矩形区域 + + + + + 存放当前表格的文本对象 + + + + + Add horizontal Lines in the current table + + + + + Return all horizontal Lines in the current table + + + + + + Add vertical Lines in the current table + + + + + Return all vertical Lines in the current table + + + + + + Add pathObject in the current table + + + + + Return all pathObject in the current table + + + + + + Whether to contains obj in the current table? + + + + + + + Get the table Rect + + + + + + 与表格相交,但是属于表格范围外部的对象 + + + + + + Get all rows + + + + + + 返回每一行的起始点,结束点,高度 + + + + + + 返回每一列的起始点,结束点,宽度 + + + + + + 设置横线到列对象 + + + + + + + + + 设置竖线到列对象 + + + + + + + Fill text into table + + + + + + Fill text into table + + + + + + Which column is the text in the table + + + + + + + Which column is the text in the table + + + + + + + + Which column is the path in the table + + + + + + + + Merge cell + + + + + 根据行列所引查找对象 + + + + + + + + 获取总列数 + + + + + + 返回表格内所有文本对象 + + + + + + 返回表格内所有文本对象 + + + + + + Tables recognizer + + + + + 横线与竖线连接处,间距小于某个值,认为是相交的 + + + + + 表格对象集合 + + + + + Initializes a new instance of the class. + + + + + + Recognize table object + + + + + + + Get other graphics object than table + + + + + + 横线与竖线连接处,间距小于某个值,认为是相交的 + + + + + + 获取所有存在相交的横线 + + + + + 获取所有存在相交的竖线 + + + + + + 获取所有的文本对象 + + + + + + 获取所有的Path对象 + + + + + + 获取表格对象 + + + + + + + + 分析线条,得到表格对象 + + + + + + + + 合并成一个表格 + + + + + + + 合并成一个表格 + + + + + + + + 是否存在交叉 + + + + + + + + 竖线与横线是否交叉 + + + + + + + + 横线是否与表格相交 + + + + + + + + 竖线是否与表格相交 + + + + + + + + 判断是否是一个表格 + + + + + + + 处理表格顺序,先按表格左上角Y坐标从上到下,再按表格左上角X坐标从左到右排序 + + + + + + + 按表格左上角X坐标从左到右排序 + + + + + + + 把文本填入表格 + + + + + + + 把文本填入表格 + + + + + + + 把path填入表格 + + + + + + + 把path填入表格 + + + + + + + 合并单元格 + + + + + + 段落识别 + + + + + + + + + + + + + + + + + Get other graphics object than table + + + + + + 获取当前行,文本Y坐标最小的值 + + + + + + + 获取当前行,文本高度最大的值 + + + + + + + text recognizer + + + + + 存放当前页面所有的线条(横线)对象 + + + + + 存放当前页面所有的线条(竖线)对象 + + + + + 串联字符串数组的所有元素,其中在每个元素之间使用指定的分隔符. + + + + + 串联每一行,其中在每一行之间使用指定的分隔符. + + + + + Initializes a new instance of the class. + + graphicsObject + separatorChar + newlineChar + + + + Recognize text,简单识别,当前行紧挨着的字符和文本已经被合并了,进一步把每一行的多个文本进行合并 + + + + + + 简单识别,只合并当前行紧挨着的字符和文本 + + + + + + 获取每一行的文本对象 + + + + + + 过滤掉不需要显示的文本(旋转文本) + + + + + + + 过滤掉重叠文本 + + + + + 获取所有的横线 + + + + + + 获取所有的竖线 + + + + + + 获取所有文本对象 + + + + + + 获取除文本对象以外的所有对象 + + + + + + 按X方向,获取x1和x2之间所有的文本对象 + + + + + + + + + 按Y方向,获取y1和y2之间所有的文本对象 + + + + + + + + + 把字典转换成集合 + + + + + + + 把集合中的文本对象按文本坐标X值重新组织 + + + + + + + 把集合中的文本对象按文本坐标Y值重新组织 + + + + + + + 分别获取每一行的文本对象 + + + + + + + 按横线分段后,分别获取每一行的文本对象 + + + + + + + 把srcdictionary字典并入到destdictionary字典 + + + + + + + 把集合textObjects并入到destdictionary字典 + + + + + + + 获取字典的最大key + + + + + + + + + + + + + + 获取集合中文本最大的高度 + + + + + + + 把紧挨着的字符和文本进行合并 + + + + + + + 在同一行,起始点X相同的情况下,也存在重叠文本,合并成一个文本 + + + + + + + 重叠文本,合并成一个文本 + + + + + + + 合并两个文本,第二个文本对象合并到第一个文本对象 + + + + + + + + 拼接前后两段字符串 + + + + + + + 判断两个文本之间是否有线条,存在线条返回true,不存在线条返回false + + + + + + + + 判断竖线是否从两个文本之间穿过 + + + + + + + + y位置处是否有横线 + + + + + + + 在同一行,起始点X相同的情况下,也存在重叠文本,合并成一个文本 + + + + + + + 重叠文本中选择一个合适的文本 + + + + + + + X坐标大概重叠的文本 + + + + + + + X坐标相似,最后一段文本 + + + + + + + + Common method + + + + + 在布局中多个文本靠得很近,会造成重复性的多列,设一个常数控制 + + + + + 在布局中多个文本靠得很近,会造成重复性的多行,设一个常数控制 + + + + + 在布局中多个线条靠得很近,会造成重复性的多列,设一个常数控制 + + + + + 在布局中多个线条靠得很近,会造成重复性的多行,设一个常数控制 + + + + + 字体为Arial,大小为1的情况下,空格宽度大约为0.277F,单位point + + + + + 字体为Arial,大小为1的情况下,空格高度大约为1.15F,单位point + + + + + + + + + + Get font name + + + + + + + Check whether it is number + + + + + + + 判断是否是贝塞儿曲线 + + + + + + + Descending sort + + + + + + + Descending sort + + + + + + + 根据number相近值的范围进行分段 + + + + + + + + 根据number相近值的范围进行分段 + + + + + + + + 添加从左往右标识. + + + + + + + 判断是否在当前行 + + + + + + + + + + 判断是否在当前列 + + + + + + + + + 比较颜色 + + + + + + + + Convert PsPath to RectangleF + + + + + + + PDF-based ISO standards require that integer values in a PDF do not exceed the range of integer values in 32 bit systems. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 是否转到多个sheet + + + + + + + 是否显示重叠文本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 对图片只做剪切,不缩放图片,把剪贴范围的比例缩放到和原始图片比例一致,再剪贴图片,这样避免图片模糊 + + + + + + + 设置图片在原文档原始的剪切范围,起始,结束位置,高宽 + + + + + + + 对图片做剪切,先把图片比列缩放到和剪贴范围的比例(100%)一致,再剪贴图片,图片会存在模糊情况 + + + + + + This class provides support for converting ofd into pdf or image. + + + + + Gets the document page count. + + + + + Initializes a new instance of the class. + + The path to source ofd file. + + + + Initializes a new instance of the class. + + The ofd file stream. + + + + Save ofd document to pdf. + + A relative or absolute path for the file. + + + + Save ofd document to pdf. + + The pdf file stream. + + + + Saves OFD document page as image + + Page index + Returns page as Image + + + + Saves OFD document page as image + + Page index + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + The embedded font conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to embedded font document. + + The out file path. + + + + Convert to embedded font document. + + The out stream. + + + + The embedded font builder. + + + + + Construct an new provider + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + This class provides support for converting PDF into an XPS Document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Converts a range of the pdf document to word. + + The pdf document. + The word stream. + The start index. + the end index. + + + + Converts the specified pdf document to word. + + The pdf document. + The word stream. + + + + Convert to doc/docx document. + + The out file stream. + + + + Convert to doc/docx document. + + The out file stream. + Is docs or doc. + + + + Convert to doc/docx document. + + The out file name. + + + + Convert to doc/docx document. + + The out file name. + Is docs or doc. + + + + Creates the PDF document. + + + + + + Adds the document properties. + + The doc properties. + + + + Draws to PDF. + + The images. + The PdfNewDocument. + + + + Convert pdf document to excel. + + The pdf document. + The out stream. + + + + Convert pdf document to excel. + + The pdf documentBase. + The start index. + The end index. + The out stream. + + + + Get Recognize Objects + + + + + + + + + 是否转到多个sheet + + + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to linearized pdf document. + + The out file path. + + + + Convert to linearized pdf document. + + The out stream. + + + + Construct a new instance. + + + + + + The Pdf/X1A:2001 standard provider. + + + + + The embedded font builder. + + + + + the text color builder + + + + + the image color builder + + + + + The transparency builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A1A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + The transparency builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A1B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + The transparency builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A2U standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3A standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3B standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The Pdf/A3U standard provider. + + + + + The pdf standard options. + + + + + The embedded font builder. + + + + + The device independent color space builder. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The pdf standard options. + + + + + Force convert. + + + + + Other image color modes convert to cmyk mode + + + + + Handle image instructions current resources,rgb color to cmyk color for image + + + + + + + + Handle image instructions current resources,rgb color to cmyk color for image + + + + + + + + + Check if it is a image resource + + + + + + + It is contains mask image resource + + + + + + + It is contains smask image resource + + + + + + + Converter image data to cmyk mode + + + + + + Create inline image to new dictionary + + + + + + + + Creates a new image dictionary,by the specified image dictionary + + + + + + + + + add image dictionary to resources,by specified resource name + + + + + + + + Find resource by specified resource name + + The resource name. + The associated resources with the The content stream. + The image dictionary. + + + + Convert image color space to cmyk color space. + + The image samples. + The image width. Byte boundaries are ignored, except that each row of sample data must begin on a byte boundary. + If the number of data bits per row is not a multiple of 8, the end of the row is padded with extra bits to fill out the last byte + The number of bits used to represent each color component. + The color space. + + The image samples with cmyk color space and bitsPerComponent is 8. + + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + Document utils. + + + + + Repair document page tree. + + The pdf processing context. + + + + Repair document embedded files. + + The pdf element. + The pdf processing context. + + + + Remove document embedded files. + + The pdf processing context. + + + + Remove document JavaScript actions. + + The pdf processing context. + + + + Remove document permissions. + + The pdf processing context. + + + + Remove document outlines. + + The pdf processing context. + + + + Remove document catalog "AA" entry. + + The pdf processing context. + + + + Remove document openAction. + + The pdf processing context. + + + + Remove document Names. + + The pdf processing context. + + + + Remove document spiderInfo. + + The pdf processing context. + + + + Remove document structTreeRoot. + + The pdf processing context. + + + + Remove document needAppearances. + + The pdf processing context. + + + + Add default RGB profile outputIntents if catalog has no outputIntents. + + The pdf processing context. + + true, if exist outputIntents, replace with default RGB OutputIntents. + false, if exist outputIntents, return. + + + + + Create default CMYK profile outputIntents. + + The document catalog. + The pdf processing context. + + true, if exist outputIntents, replace with default CMYK OutputIntents. + false, if exist outputIntents, return. + + + + + Create output intent dictionary describing the color characteristics of output devices. + + The output intent subtype + + A human-readable text string containing additional information or comments + about the intended target device or production condition. + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The output intent dictionary. + + + + Annotations utils. + + + + + Apply standard to annotations. + + The pdf element. + The pdf processing context. + Permitted annotation type list. + + + + Other color modes convert to cmyk mode + + + + + Stroking color space stack. + + + + + Nonstroking color space stack. + + + + + Current stroking color space. + + + + + Current nonstroking color space. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle color space/color instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Parse color operands in instruction. + + The color operands. + The color space. + The color components. + + + + Convert cmyk components to operands in instruction. + + The cmyk components + The color operands in instruction + + + + File structure utils. + + + + + Fonts utils. + + + + + Graphics utils. + + + + + Remove jpeg2000 filter. + + The pdf element. + The pdf processing context. + + + + Apply standard to optional content group. + + The pdf processing context. + + + + Remove optional content group. + + The pdf processing context. + + + + Remove prohibited entries with Image. + An Image dictionary shall not contain the "Alternates" key or the "OPI" key. + If an image dictionary contains the "Interpolate" key, its value shall be false. + + The pdf element. + The pdf processing context. + + + + remove color space in the resources + + + + + + + Interactive forms utils. + + + + + Add empty AP dictionary if field has no ap. + + The pdf element. + The pdf processing context. + + + + Remove signature field value. + + The pdf element. + The pdf processing context. + + + + Logical structure utils. + + + + + Indicates that the file conforms to the tagged PDF conventions. + + The pdf processing context. + + + + Create struct tree root. + + The pdf processing context. + + + + Find all page objects. + + The page tree. + All page objects. + + + + Process page box(MediaBox,TrimBox) + + + + + + + Only remove structParents from current page dictionary + + + + + + + Pdf metadata utils. + + + + + Predefined properties in document info. + + + + Serializes an XMPMeta object as RDF into an OutputStream. + a metadata object + an OutputStream to write the serialized RDF to. + + + + Remove custom properties. + + The pdf processing context. + + + + Generate standard metadata. + + The pdf processing context. + + + + Generate default standard metadata. + + The default standard metadata. + + + + Generate standard metadata. + + The origin metadata. + The default standard metadata.. + + + + Clone properties. + + The namespace URI. + The origin metadata. + The target metadata. + + + + Ensure document information dictionary entries and + their analogous XMP properties shall be equivalent. + + The metadata stream. + The document information dictionary. + + + + Get the date of ISO8601 format. + + the date in the format D:YYYYMMDDHHmmSSOHH'mm' + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Transparency utils. + + + + + Remove transparency group. + A "Group" object with an "S" key with a value of Transparency + shall not be included in a form XObject. + + The pdf element. + The pdf processing context. + + + + Remove graphics state transparency. + + The associated resources with the The content stream. + + + + Remove SMask. + + The associated resources with the The content stream. + + + + Remove image SMask. + + The associated resources with the The content stream. + + + + Pdf color space class + + + + + Create ICC profile stream. + + The icc profile resource name. + The number of color components in the color space described by the ICC profile. + The ICC profile stream. + + + + + Get min value. + + The values. + The min value. + + + + Create color space. + If can't parse the colorSpaceObj, then return a PdfNotSupportedColorSpace instance. + + The color space IPdfPrimitive Obj. + The color space. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Not support color space. + + + + + DeviceGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + DeviceRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + DeviceCMYK color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Whether support conversion to cmyk color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Whether support conversion to Gray color. + + True,supported; Otherwise,False. + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + CalGray color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + CalRGB color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Lab color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + ICCBased color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + color space colorspace by alternate + + + + + Constructors + + + + + Constructors + + PdfColorSpace alternateColorSpace + + + + Is conversion to cmyk supported + + true/false + + + + Pattern color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Indexed color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table obj. + the color table bytes. + + + + Read color table. + + the base color space. + specifies the maximum valid index value. + the color table bytes. + the color table. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + the base color space in which the values in the color table are to be interpreted. + + + + + specifies the maximum valid index value + which the color table is to be indexed by integers in the range 0 to hival. + + + + + the color table which provides the mapping between index values and + the corresponding colors in the base color space. + + + + + The components num. + + + + + the maximum value in the range for component. + + + + + the minimum value in the range for component. + + + + + Constructors + + PdfColorSpace baseColorSpace + + + + Is conversion to cmyk supported + + true/false + + + + Convert to cmyk color. + + The color components. + The cmyk color components. + + + + Separation color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + DeviceN color space. + + + + + Try to parse color space. + + The color space IPdfPrimitive Obj. + The color space. + True if success to parse; otherwise,False. + + + + The device independent color space builder. + + + + + The ICC profile for DeviceGray. + + + + + The ICC profile for DeviceRGB. + + + + + The ICC profile for DeviceCMYK. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle device color space which associated to instructions. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle device color space which associated to resources. + + The content stream. + The associated resources with the The content stream. + + + + Handle device color space which associated to "ColorSpace" resources. + + The associated "ColorSpace" resources with the The content stream. + + + + Handle device color space which associated to "XObject" resources. + + The associated "XObject" resources with the The content stream. + + + + Add ICCBased color space resource. + + The resource name. + The ICCBased color space. + The associated resources with the The content stream. + + + + Convert color space to device-independent. + + The color space. + The device-independent color space + + If the color space is device color space or exist device color space, + then convert to device-independent color space, return true. + Otherwise,return false. + + + + + Convert color space to device-independent. + + The color space. + The device-independent color space + + If the color space is device color space or exist device color space, + then convert to device-independent color space, return true. + Otherwise,return false. + + + + + Create the ICCBased color space for DeviceCMYK. + + The ICCBased color space for DeviceCMYK. + + + + Create the ICCBased color space for DeviceRGB. + + The ICCBased color space for DeviceRGB. + + + + Create the ICCBased color space for DeviceGray. + + The ICCBased color space for DeviceGray. + + + + The pdf embedded font builder. + + + + + Current font dictionary. + + + + + Font dictionary stack. + + + + + Current font structure. + + + + + Font structure stack. + + + + + Key: The font dictionary, Value: The font structure. + + + + + Key: The font structure., Value: The ttf font. + + + + + Key: The font structure., Value: The char code to unicode mapping. + + + + + Tw WordSpace stack. + + + + + Tf FontSize stack. + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle text instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Build font structure + + The font dictionary. + The font structure. + + + + Find font dictionary. + + The font resource name. + The associated resources with the The content stream. + The font dictionary. + + + + Build embed truetype font. + + The origin font. + The embed truetype font. + + + + Convert origin bytes to literal string bytes. + Diffrence between literal string bytes and origin bytes, + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + The literal string bytes. + + + + Generate "CIDSet" dictionary entry. + + The char code to unicode mapping. + The CIDSet pdf stream. + + + + Generate "ToUnicode" dictionary entry. + + The char code to unicode mapping. + The cmap pdf stream. + + + + Generate "DW" dictionary entry. + + The char code to unicode mapping. + The font program reader. + The pdf array. + + + + Check font dictionary. + + The font dictionary. + + + + + Check Simple font. + + The font dictionary. + + + + + Create font subset tag. + + The font subset tag + + + + Whether is font subset. + + The PostScript name of the font. + + + + + Image width. + + + + + Image Height. + + + + + The color space in the image dictionary. + Note: It may not represent the actually color space of the image When the color space + of the image data is not equal to the color space item in the dictionary. + + + + + Get softmask image from image dictionary + + + + + Get mask image from image dictionary + + + + + Gets image mask. + + + + + The decode in the image dictionary. + Note: It may not represent the actually decode of the image When the color space + of the image data is not equal to the color space item in the dictionary. + + + + + Get Matte from image dictionary, pdf937 for SMask image. + + + + + Constructors + + Image dictionary + The image is an inline image or not. + + + + Decode sample data which is represented as a sequence of bytes. + + The image color space. + The image decode. + The number of bits used to represent each color component. + The sample data which is represented as a sequence of bytes. + + + + Decode image components with the row range. + + The start row index + The end row index. + The color space of image components. + The decode of image components. + The number of bits used to represent each color component. + The image color components. + + Sample data is represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 255. + The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in turn, + is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a color component value, + given with high-order bit first; units of 16 bits are given with the most significant byte first. Byte boundaries are ignored, + except that each row of sample data must begin on a byte boundary. If the number of data bits per row is not a multiple of 8, + the end of the row is padded with extra bits to fill out the last byte. + + + + + Decode image components with the row range. + + The start row index + The end row index. + The color space of color components. + The number of bits used to represent each color component. + The image color components. + + Sample data is represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 255. + The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in turn, + is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a color component value, + given with high-order bit first; units of 16 bits are given with the most significant byte first. Byte boundaries are ignored, + except that each row of sample data must begin on a byte boundary. If the number of data bits per row is not a multiple of 8, + the end of the row is padded with extra bits to fill out the last byte. + + + + + Encode image components. + + The image components. + The image width. + The image height. + The image color space. + The number of bits used to represent each color component. + + + + Encode color space components. + + The image components. + The image width. + The image height. + The image color space. + The number of bits used to represent each color component. + + + + Decode image + + + + + Get the default Decode arrays for use with the various color spaces. + The image’s Decode array specifies a linear mapping of each integer component value + to a number that would be appropriate as a component value in the image’s color space. + + The coloe space. + The number of bits used to represent each color component. + The default decode arrays. + + + + Map value form source to target range. + + The source value. + The source min value. + The source max value. + The target min value. + The target max value. + The target value. + + + + Scale image. + + The image. + The result image width. + The result image height. + The result image. + + + + Map rgb components to color + + The rgb color components. + The color. + + + + Combine source image with mask image. + /// Source image. + Mask image. + The result image. + + + + Combine source image with smask image. + + Source image. + SMask image. + The result image. + + + + The pdf document process context. + + + + + The file structure. + + + + + The file info. + + + + + The violation message. + + + + + The current stack. + + + + + Content stream and Resources mappings. + Reference 3.7.2 Resource Dictionaries. + + + + + The file structure. + + + + + The file info. + + + + + Construct a new processing context. + + The file structure. + + + + Push the current pdf element. + + The current pdf element. + + + + Pop the current pdf element. + + The current pdf element + + + + Get content stream and Resources. + + Content stream and Resources mappings. + + + + Construct resources which is associated with a content stream. + Reference 3.7.2 Resource Dictionaries. + + + + + Add violation message. + + The violation message. + + + + Clone document. + + The origin document. + + + + Clone pdf element. + + The origin pdf element. + The origin file structure. + The main objects map. + new pdf element. + + + + Clone pdf string. + + The origin pdf string. + new pdf string. + + + + Clone pdf number. + + The origin pdf number. + new pdf number. + + + + Clone pdf boolean. + + The origin pdf boolean. + new pdf boolean. + + + + Clone pdf name. + + The origin pdf name. + new pdf name. + + + + Clone pdf null. + + The origin pdf null. + new pdf null. + + + + Clone pdf array. + + The origin pdf array. + The origin file structure. + The main objects map. + new pdf array. + + + + Clone pdf dictionary. + + The origin pdf dictionary. + The origin file structure. + The main objects map. + new pdf dictionary. + + + + Clone pdf stream. + + The origin pdf stream. + The origin file structure. + The main objects map. + new pdf stream. + + + + Clone pdf reference. + + The origin pdf reference. + The origin file structure. + The main objects map. + new pdf reference. + + + + The pdf document processor. + + + + + The pdf process provider. + + + + + Construct a new excutor. + + The pdf process provider. + + + + Generate the pdf standard document. + + The origin document. + The out file path. + + + + Generate the pdf standard document. + + The origin document. + The out stream. + + + + Process the pdf document. + + The pdf processing context. + + + + Visit elemet and excute rules on the pdf element. + + The pdf element. + The pdf processing context. + The main object list. + + + + Handle content stream and resources. + + The pdf processing context. + + + + Set document info. + + The pdf document. + + + + Create file identifiers. + + The file identifiers. + + + + The pdf process provider base class. + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Excute after visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Excute after visit the document. + + The pdf processing context. + + + + The pdf transparency builder. + + + + + Remove graphics state transparency. + + The associated resources with the The content stream. + + + + Find font dictionary. + + The font resource name. + The associated resources with the The content stream. + The font dictionary. + + + + Handle graphics state transparency operate. + + The associated resources with the The content stream. + + + + Convert color space to target color space. + + + + + Target color space. + + + + + Stroking color space stack. + + + + + Nonstroking color space stack. + + + + + Current stroking color space. + + + + + Current nonstroking color space. + + + + + Target color space. + + + + + Construct a new instance. + + + + + + Handle color space instructions in content stream. + + The instructions. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Handle color space/color instructions in content stream. + + The instruction. + The content stream. + The associated resources with the The content stream. + The new instructions. + + + + Parse color space operands in instruction. + + + + + + + + Convert target color space to operand in instruction. + + The color space operand. + + + + Parse color operands in instruction. + + The color operands. + The color space. + The color components. + + + + Convert color components to operands in instruction. + + The color components + The color operands in instruction + + + + Handle resources. + + The content stream. + The associated resources with the The content stream. + + + + Handle image resources. + + + The associated image resources with the The content stream. + + The image is an inline image or not. + + + + Whether the image supports conversion. Temp!!! + + The image dictionary. + + + + Handle image resources. + + + The shading resources with the The content stream. + + + + + The gray color space provider. + + + + + The color space builder. + + + + + Construct an new provider + + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Excute after visit the document. + + The pdf processing context. + + + + The gray pdf conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to gray pdf document. + + The out file path. + + + + Convert to gray pdf document. + + The out stream. + + + + The pdf standard conveter. + + + + + The origin document. + + + + + Construct a new converter. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Convert to pdf/a1b standard document. + + The out file path. + + + + Convert to pdf/a1b standard document. + + The out stream. + + + + Convert to pdf/a1a standard document. + + The out file path. + + + + Convert to pdf/a1b standard document. + + The out stream. + + + + Convert to pdf/a2b standard document. + + The out file path. + + + + Convert to pdf/a2b standard document. + + The out stream. + + + + Convert to pdf/a2u standard document. + + The out file path. + + + + Convert to pdf/a2u standard document. + + The out stream. + + + + Convert to pdf/a2a standard document. + + The out file path. + + + + Convert to pdf/a2a standard document. + + The out stream. + + + + Convert to pdf/a3b standard document. + + The out file path. + + + + Convert to pdf/a3b standard document. + + The out stream. + + + + Convert to pdf/a3u standard document. + + The out file path. + + + + Convert to pdf/a3u standard document. + + The out stream. + + + + Convert to pdf/a2a standard document. + + The out file path. + + + + Convert to pdf/a3a standard document. + + The out stream. + + + + Convert to pdf/x1a2001 standard document. + + The out file path. + + + + Convert to pdf/x1a2001 standard document. + + The out stream. + + + + Flatten form. + + + + + This class provides support for converting PDF into an OFD Document. + + + + + Converts the specified PdfDocument to Ofd. + + The pdf document. + The ofd stream. + + + + Converts a range page of the PdfDocument to Ofd. + + The pdf document. + The ofd stream. + The start index. + The end index. + + + + Adds the document properties. + + The doc properties. + + + + Pdf to excel,the options use line layout + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines. + + + + + This value is true if you wrap the text of an object in Microsoft Excel + + + + + If you wan to display overlapping text,set the parameter to true + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines. + + + + + This value is true if you wrap the text of an object in Microsoft Excel + + + + + If you wan to display overlapping text,set the parameter to true + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + This value is true if you wrap the text of an object in Microsoft Excel + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + In PDF document table,there are multiple lines of text in the cell.Whether it is split into multiple lines.the default is true + This value is true if you wrap the text of an object in Microsoft Excel + If you wan to display overlapping text,set the parameter to true + + + + the pdf document convert to xlsx document,set the options + + + + + Pdf to excel,the options use text layout + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + If you wan to display overlapping text,set the parameter to true + + + + + If the parameter is true,all pages converted to multiple sheet. + + + + + whether show rotated text + + + + + If you wan to display overlapping text,set the parameter to true + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + + + + Initializes a new instance of the class. + + the pdf document conver to multiple sheet,the default is true + whether show rotated text,the default is true + If you wan to display overlapping text,set the parameter to true + + + + This class provides support for converting PDF into an XPS Document. + + + + + + + + + + + + + The license protected. + + + + + The pdf document. + + + + + The zoom factor. + + + + + Whether support east asian font. + + + + + Whether to dispose font. + + + + + Whether to render enmbed font as ttf. + + + + + Whether is the colorspace image. + + + + + Whether is a new page. + + + + + The pdf page tatal rotate angle(pageRotate + userRotate). + + + + + Whether to draw annotation. + + + + + Whether to draw page content. + + + + + Whether is hight light. + + + + + The annotation dictionary. + + + + + Image zoom factor. + + + + + Support east asian font. + + + + + Dispose font. + + + + + Render embed font as ttf. + + + + + Colorspace image. + + + + + whether is a new page. + + + + + Gets or sets. + + + + + The pdf page tatal rotate angle(pageRotate + userRotate). + + + + + Draw annotation. + + + + + Draw page content. + + + + + Hightlight. + + + + + The annotation dictionary. + + + + + Construct a new instance. + + The pdf document. + + + + Create empty bitmap. + + The width in pixels. + The height in pixels. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + A System.Drawing.Imaging.Bitmap. + + + + Create empty metafile. + + The width in pixels. + The height in pixels. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + + + + Create empty metafile. + + A System.IO.Stream that contains the data for this System.Drawing.Imaging.Metafile. + The width in pixels. + The height in pixels. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + + + + Convert pdf page to bitmap by ps mode. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Convert pdf page to bitmap. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Convert pdf page to metafile. + + The page index. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + A System.Drawing.Imaging.Metafile which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + If the page is restricted,return null. + + + + + Convert pdf page to metafile. + + The page index. + + The horizontal resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + The vertical resolution in dots per inch. + Note: Metafile can't set dpi and use "Green context" dpi. + + + A System.IO.Stream that contains the data of a System.Drawing.Imaging.Metafile + which's format is System.Drawing.Imaging.EmfType.EmfPlusDual. + If the page is restricted,return null. + + + + + Convert pdf page to bitmap by ps mode. + + The page index. + The horizontal resolution in dots per inch. + The vertical resolution in dots per inch. + + A System.Drawing.Bitmap. + If the page is restricted,return null. + + + + + Get the scale. + + The page + The scale value + + + + Render pdf multiply color page to image. + + The System.Drawing.Graphics graphics. + The page index. + The Spire.Pdf.General.Render.Page. + + + + Render pdf page to image. + + The SSystem.Drawing.Graphics graphics. + The Spire.Pdf.General.Render.Page. + The resources,Spire.Pdf.General.Render.PdfElement.PdfPageResources resources. + The Spire.Pdf.General.Render.PdfElement.PdfRecordCollection + The System.Drawing.Image + + + + Fill rectangle. + + The graphics + The rectanlgef + + + + Get the page index + + The page + The page index + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + disposed is false ,Releases all resources + + + + + Convert pdf document to postscript. + + The pdf document. + The out stream. + + + + Convert pdf document to postscript. + + The pdf document. + The start index. + The end index. + The out stream. + + + + Adds the document properties. + + The doc properties. + + + + Convert pdf document to pcl. + + The pdf document. + The out stream. + + + + Convert pdf document to pcl. + + The pdf document. + The start index. + The end index. + The out stream. + + + + Pdf to Html, Set Parameter + + + + + + + + + + The license protected. + + + + + The pdf document. + + + + + The font cache. + + + + + ??? + + + + + Construct a new instance. + + The pdf document. + + + + Convert pdf page to a PsPage. + + The page index. + A PsPage. If the page is restricted,return null. + + + + Convert a range page of the document to svg. + + The pdf document. + Main out file. + Is svg file header. + The start index. + The end index. + A list of byte. + + + + Convert the document to svg. + + The pdf document. + Main out file. + Is svg file header. + A list of byte. + + + + This class provides support for converting PDF into an XPS Document. + + + + + Converts a range page of the PdfDocument to Xps. + + The pdf document. + The xps stream. + The start index. + The end index. + + + + Converts the specified PdfDocument to Xps. + + The pdf document. + The xps stream. + + + + Creates the PDF document. + + + + + + Adds the document properties. + + The doc properties. + + + + A number tree is similar to a name tree, except that its keys are integers + instead of strings and are sorted in ascending numerical order. + + + + + The root node. + + + + + Find key's value. + + The key. + The node. + The value + + + + Remove key/value. + + The key. + The node. + + + + + Add key/value to node. + + The key. + The value. + The node. + + + + Add key/value to kids. + + The key. + The value. + The kids. + The limits. + + + + Add key/value to nums. + + The key. + The value. + The nums. + + + + Create new leaf node and add key/value. + + The key. + The value. + The least key in limits. + The greatest key in limits. + The leaf node. + + + + check key is between limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return true. + + + + + check key is less than the least value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + check key is large than greatest value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + Generate + + The node. + The list which keys are sorted in ascending numerical order. + + + + A number tree is similar to a name tree, except that its keys are integers + instead of strings and are sorted in ascending numerical order. + + + + + The root node. + + + + + Find key's value. + + The key. + The node. + The value + + + + Remove key/value. + + The key. + The node. + + + + + Add key/value to node. + + The key. + The value. + The node. + + + + Add key/value to kids. + + The key. + The value. + The kids. + The limits. + + + + Add key/value to nums. + + The key. + The value. + The nums. + + + + Create new leaf node and add key/value. + + The key. + The value. + The least key in limits. + The greatest key in limits. + The leaf node. + + + + check key is between limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return true. + + + + + check key is less than the least value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + check key is large than greatest value in limits. + + The key. + The limits. + + true/false + if limits is null, represent no limits,so return false. + + + + + Generate + + The node. + The list which keys are sorted in ascending numerical order. + + + + Rectangles are used to describe locations on a page and + bounding boxes for a variety of objects. + + + + + The lower-left x. + + + + + The lower-left y. + + + + + The upper-right x. + + + + + The upper-right y. + + + + + Decodes data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Implements the ASCIIHexDecode filter. + + + + + Encodes the specified data. + + + + + Decodes the specified data. + + + + + Decompresses stream data. + + Stream data to be decompressed. + Decompressed stream data. + + + + No compression. + + + + + Compresses data using the zlib or deflate compression method, + reproducing the original text or binary data. + + + + + Compresses data using the LZW compression method, reproducing + the original text or binary data. + + + + + Compresses data using the ASCII85 compression method, reproducing + the original text or binary data. + + + + + Compresses data using the ASCIIHex compression method, reproducing + the original text or binary data. + + + + + Compresses data using the RunLength compression method, reproducing + the original text or binary data. + + + + + Decompresses data encoded using a DCT (discrete cosine transform) + technique based on the JPEG standard, reproducing image sample + data that approximates the original data. + + + + + Decompresses data encoded using the zlib / deflate + compression method, reproducing the original text or binary + data. + + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + inner class, implementation of jpeg image decoding + + + + + image pixel data + + + + + parameters of image for decompression + + + + + Construct a new decoder object + + + + + Strean with decompressed data + + + + + image pixel data + + + + + parameters of image for decompression + + + + + parameters of image for decompression + + + + + + The Stream. + + + + + The attached tags. + + + + + Image color space + Note: Ignore if is not image. + + + + + Image width. + Note: Ignore if is not image. + + + + + Image height. + Note: Ignore if is not image. + + + + + Decode data encoded using the zlib/deflate compression method. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data using the zlib/deflate compression method. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + Decode data. + + The encoded data with the parameter dictionary. + The decode parameter dictionary. + The original data. + + + + Encode data. + + The original data. + The decode parameter dictionary. + The encoded data with the parameter dictionary. + + + + The Stream. + + + + + The attached tags. + + + + + Image color space + Note: Ignore if is not image. + + + + + Image width. + Note: Ignore if is not image. + + + + + Image height. + Note: Ignore if is not image. + + + + + Initialize the new instance of the class. + + The pdf stream. + + + + Get decoded data. + + + + + Get decoded data. + + The encoded data. + The filter name. + The decode parameter dictionary. + + + + The Stream. + + + + + Encode stream data. + + + The name of a filter to be applied in processing the stream data. + + + The parameter dictionary used by the filter specified by Filter. + + + + + Pdf version. + + + + + Implements PDF string object. + 1.Text String: + Used for human-readable characters,such as text annotations,bookmark + names,article names and document information.Thes strings are encode- + d using either PDFDocEncoding or UTF-16BE with a leading byte-order + marker. + 2.PDFDoc String: + Used for characters and glyphs that are represented in a single byte, + using PDFDocEncoding.This type,which reflects a more specific encoding + than the text string type. + 3.ASCII String: + Used for characters that are represented in a single byte using ASCII + encoding.Because 7-bit U.S. ASCII is a strict subset of PDFDocEncoding, + this value may also be considered to be in that encoding. + 4.Byte String: + Used for binary data represented as a series of 8-bit bytes,where each + byte can be any value representable in 8 bits. The string may represent + characters or glyphs but the encoding is not known. The bytes of the st- + ring may not represent characters. This type is used for data such as + MD5 hash values,signature certificates and Web Capture identification values. + + + + + Auto encoding by the characters set. + + + + + ASCII encoding. + + + + + PDFDoc encoding. + + + + + UTF16 big endian encoding. + + + + + The written byte sequence of the string. + If written way is Literal,the byte sequence include escape characters. + If written way is Hexadecimal,each pair bytes in the byte sequence define one byte of string. + !!!Note:Must be not null. + + + + + String be written in hexadecimal form. + + + + + The character strings that are encoded + + + + + A series of bytes—unsigned integer values in the range 0 to 255. + Don't include escape characters or hexadecimal defined. + !!!Note:if null,not generate from written bytes or set new value. + + + + + Construct string. + + + + + Construct string. + + A bytes sequence. + + + + Construct string. + + A bytes sequence. + String be written in hexadecimal form. + + + + Construct string. + + A characters string. + The encoding which the characters string are encoded. + + + + Construct string. + + A date. + + + + Get bytes. + + A bytes sequence. + + + + Set bytes. + + A bytes sequence. + String be written in hexadecimal form. + + + + Set bytes. + + A bytes sequence. + + + + Get text. + + A characters string. + + + + Set text. + + A characters string. + The encoding which the characters string are encoded. + + + + Get a date. + + a date + + + + Set a date which is an ASCII string of the form (D:YYYYMMDDHHmmSSOHH'mm'). + + A date. + + + + Gets or sets the integer value of the specified object. + + + + + The encryptor. + + + + + The obj number. + + + + + Decrypts the specified encryptor. + + The encryptor. + The current object number. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + The encryptor. + The current object number. + With "(" ..")" + The literal string bytes. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + With "(" ..")" + The literal string bytes. + + + + Encode the literal string bytes. + the literal string bytes has existed escape characters. + + The origin bytes which is the encoded bytes or the encrypted bytes. + With "(" ..")" + The literal string bytes. + + + + + + + Decode the literal string bytes. + the literal string bytes has existed escape characters. + + The literal string bytes. + The encryptor. + The current object number. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the literal string bytes. + the literal string bytes has existed escape characters. + + The literal string bytes. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the hexadecimal string bytes. + the hexadecimal string bytes define a byte by each pair of hexadecimal digits. + + The hexadecimal string bytes. + The encryptor. + The current object number. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + Decode the hexadecimal string bytes. + the hexadecimal string bytes define a byte by each pair of hexadecimal digits. + + The hexadecimal string bytes. + The origin bytes which is the encoded bytes or the encrypted bytes. + + + + + Convert a char sequence to a byte sequence(one byte to one char). + + The string which one char represent one byte. + The byte sequence. + + + + Convert a byte sequence to a char sequence(one byte to one char). + + The byte sequence. + The string which one char represent one byte. + + + + Convert a byte sequence to a char sequence(one byte to one char). + + The byte sequence. + byte range:0 length. + The string which one char represent one byte. + + + + Encoding for text strings in a PDF document outside the document's + content streams + + + + + Map to unicode code point. + Note: 0 which not first element represent undefined code point in PDFDocEncoding. + + + + + Map to unicode char. + Note: '\0' which not first element represent undefined code point in PDFDocEncoding. + + + + + Decode all the bytes in the specified byte array into a string. + + The byte array containing the sequence of bytes to decode. + A string containing the results of decoding the specified sequence of bytes. + + + + Decode all the bytes in the specified byte array into a string. + + The byte array containing the sequence of bytes to decode. + The index of the first byte to decode. + The number of bytes to decode. + A string containing the results of decoding the specified sequence of bytes. + + + + Get bytes. + + A string. + The encoded bytes using PDFDocEncoding. + + + + Check whether exist character which are not represented in a single byte using PDFDocEncoding. + + A string. + + true,exist character which is out of character set; + otherwise, false. + + + + + Begin an inline image object. + + + + + Begin the image data for an inline image object. + + + + + End an inline image object. + + + + + The filter array to be applied in processing the stream data. + + + + + The parameter dictionary array used by the filters specified by Filter. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + The data of the stream. + + + + + Initializes a new instance of the class. + + The dictionary. + The data of the stream. + + + + Initializes a compressed pdfstream. + + The dictionary of the stream. + The data of the stream. + The pdfstream> + + + + Get the encoded stream. + + + + + Get decoded data. + + The decoded data. + + + + Set encoded data. + + The new encode data. + The filetrs of the encoded data. + The decodeParmsArray of the filters. + + + + Generate a stream writer. + If the stream is compressed, decompress it frist. + + A writer of the stream. + + + + Forbidden filter item used in the stream. + + + + + Clone pdfStream. + + The source pdf stream. + + + + Add filters to the stream. + + The filetrs of the encoded data. + The decodeParmsArray of the filters. + + + + Add a filter to the stream. + + The filter name. + The decode parms. + + + + Clear the stream data. + + + + + Saves the object using the specified writer. + + The writer. + + + + Gets a value indicating whether the object was encrypted. + + + + + Gets a value indicating whether this is decrypted. + + true if decrypted; otherwise, false. + + + + Decrypts the data using the specified encryptor. + + The encryptor. + The current object number. + + + + Encrypts the stream content. + + The data. + The writer. + The encrypted content. + + + + Image Format + + + + + Convert string to a byte array. + + String data + Byte array. + + + + Shows the text on the next line and sets word and character spacings. + + The word spacing. + The char spacing. + The text. + if set to true the text should be in hex. + + + + Shows the text on the next line and sets word and character spacings. + + The word spacing. + The char spacing. + The text. + + + + Begins text. + + + + + Ends text. + + + + + Begins start markup sequence text. + + The name of the markup sequence. + + + + Begins start markup sequence text. + + The name of the markup sequence. + + + + Ends markup sequence text. + + + + + Writes comment to the file. + + + + + + 1 G ,Pen Color + + + + + + 1 g ,Pen Color + + + + + + Set the rgb color + + The color + + + + Set the border width. + + The width + + + + Writes the text. + + The text. + if set to true the text is in hex. + + + + Writes the text. + + The text. + + + + Writes the text. + + The text. + if set to true the text is in hex. + + + + Writes the specified text. + + The text. + + + + Writes the specified data. + + The data. + + + + read bi data + + + + + + + + + Parse an inline image. An inline image starts with BI (already + read, contains a dictionary until ID, and then image data until + EI. + + + + + + Represents page tree. + + + + + Represents page tree node. + + + + + Represents page leaf node. + + + + + The dictionary. + + + + + The ancestors in the hierarchy. + + + + + Initialize a new instance. + + + + + Initialize a new instance. + + The dictionary. + The ancestors in the hierarchy. + + + + Get property. + + The key. + Inheritable. + The value. + + + + Implements the base class for all functions. + + + + + Gets the element. + + + + + + Implements Type 2 (Exponential Interpolation) Functions. + + + + + Initializes a new instance of the class. + + init + + + + Gets or sets the function result when x = 0. + + + + + Gets or sets the function result when x = 1. + + + + + Gets or sets the Exponent. + + + + + The document. + + + + + The objects that has already been visited. + + + + + Construct a new instance. + + The digest method. + + + + Get digest value. + + The digest value. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + Digest the Pdf object. + + The object to digest. + + + + + Digest the Pdf object. + + The object to digest. + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents action in the PDF. + + + + + + + + + Represents GoToE action in the PDF. + + + + + Represents GoTo3DView action in the PDF. + + + + + Represents Trans action in the PDF. + + + + + Represents Rendition action in the PDF. + + + + + Represents SetOCGState action in the PDF. + + + + + Represents JavaScript action in the PDF. + + + + + Represents ImportData action in the PDF. + + + + + Represents ResetForm action in the PDF. + + + + + Represents SubmitForm action in the PDF. + + + + + Represents Named action in the PDF. + + + + + Represents Sound action in the PDF. + + + + + Represents Movie action in the PDF. + + + + + Represents Hide action in the PDF. + + + + + Represents URI action in the PDF. + + + + + Represents Thread action in the PDF. + + + + + Represents Launch action in the PDF. + + + + + Represents GoToR action in the PDF. + + + + + Represents GoTo action in the PDF. + + + + + Represents action in the PDF. + + + + + Gets or sets the next action to be performed after the action. + + + + + Represents the class for build annotation ap objects. + + + + + The enter character. + + + + + The new line character. + + + + + The space character. + + + + + The appearance string builder. + + + + + The normal stream. + + + + + Constructors an instance. + + + + + Initialize object. + + + + + Build an object. + + The dictionary + + + + Set the property. + + The key + The value + + + + Draw path and stroking . + + The path data. + + + + Add path data. + + The points data + + + + Append data. + + The data + + + + Move to anthor point + + The point x + The point y + + + + Line to anthor point. + + The point x + The point y + + + + Stroking path. + + + + + Fill path. + + + + + Append space character. + + + + + Append a new line character. + + + + + Store state. + + + + + Restore state. + + + + + end build. + + + + + Represents 3D annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Watermark annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents TrapNet annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents PrinterMark annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Screen annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Movie annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Sound annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents FileAttachment annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Popup annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Ink annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Caret annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Stamp annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents StrikeOut annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Squiggly annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Underline annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents Highlight annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents polyline annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents polygon annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents circle annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents square annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents line annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents free text annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents link annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents text annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents annotation in the PDF. + + + + + If set, do not display or print the annotation or allow it to interact with the user, + regardless of its annotation type or whether an annotation handler is available. + In cases where screen space is limited, the ability to hide and show annotations + selectively can be used in combination with appearance streams to + display auxiliary pop-up information similar in function to online help systems. + + + + + The annotation dictionary. + + + + + an unsigned 32-bit integer containing flags specifying various characteristics. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Represents widget annotation in the PDF. + + + + + Initialize a new instance. + + + The annotation rectangle, defining the location of the annotation + on the page in default user space units. + + + + + Initialize a new instance. + + The annotation dictionary. + + + + The added annotations. + + + + + The updated annotations. + + + + + The deleted annotations. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Get page annotations except widget annotation. + + The document. + The page object. + + + + + The document changed. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Digest document. + + + + + Widget annotation to Form field Mapping in signing document. + + + + + Widget annotation to Form field Mapping in current document. + + + + + The added annotations. + + + + + The updated annotations. + + + + + The deleted annotations. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + Get page widget annotations. + + The document. + The page object. + + + + + Hashes the form field. + + + + + + + + + The added pages. + + + + + The updated pages. + + + + + The deleted pages. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Detect changes. + + Whether is changed. + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + Whether the signature is validated. + + + + The pdf digital signature validator. + + + + + + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The signing document. + + + + + The current document. + + + + + The digest method. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Whether currentObject is incremental updated of signingObject. + + The signing object. + The current object. + + + + + Compare bytes. + + + + + + + + The pdf digital signature validator. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + No changes to the document are permitted; + any change to the document invalidates the signature. + + + + + Permitted changes are filling in forms, instantiating + page templates, and signing;other changes invalidate the signature. + + + + + Permitted changes are the same as for 2,as well as annotation creation, + deletion,and modification;other changes invalidate the signature. + + + + + The access permissions granted for this document. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + The pdf digital signature validator. + + + + + The signing document. + + + + + The current document. + + + + + The digest method. + + + + + Construct a new instance. + + The signing document. + The current document. + The digest method. + + + + Validate the signature of document. + + + + + + Validate signature. + + The signature. + The document. + + + + + Create signature deformatter. + + The signature. + The signature deformatter. + + + + Get the document at the time of signing. + + The signature. + The document. + + + + + Compare the signed and current version of the document. + + The signing document. + The current document. + The signature reference dictionary. + The signature digest value. + + + + Get signature content. + + The document. + The byte range. + The signature content. + + + + Read bytes to buffer from document stream. + + + + + + + + + + + Get incremental update objects. + + The signing document. + The current document. + + + + + Signature properties. + + + + + inner dictionary. + + + + + Set the name of the preferred signature handler to use when validating this signature. + (Required) + + the name of the preferred signature handler. + + + + Set a name that describes the encoding of the signature value. + (Required) + + a name that describes the encoding of the signature value. + + + + Set the X.509 certificate used when signing and verifying signatures that use public-key cryptography. + (Required when SubFilter is adbe.x509.rsa_sha1) + + the X.509 certificate. + + + + Set the X.509 certificate chain used when signing and verifying signatures that use public-key cryptography. + (Required when SubFilter is adbe.x509.rsa_sha1) + + the X.509 certificate chain. + + + + Set signature length. + (Option) + Default, signature need to call twice "Sign" method, one is to calculate signature length. + If the signature length is known, avoid to calculate signature length by "Sign" method. + The signature length. + + the signature length. + + + + Set the name of the software module used to create the signature. + (Option) + + the name of the software module. + + + + Signature formatter. + + + + + Signature properties. + + + + + Sign. + + The data to be signed. + The signature. + + + + Signature deformatter. + + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + Pdf pkcs1 signature implementation. + + + + + The signing certificate. + + + + + The signature properties. + + + + + Parameters for the encoding of the signature. + + + + + Construct a new instance. + + The signing certificate. + + + + Sign. + + The data to be signed. + The signature. + + + + Pdf pkcs7 signature implementation. + + + + + The signing certificate. + + + + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Represents an additional collection of certificates that can be searched + by the chaining engine when validating a certificate chain. + + + + + The signature properties. + + + + + Parameters for the encoding of the signature. + + + + + The service which generate OCSP response. + + + + + The provider which generate timestamp token. + + + + + Represents an additional collection of certificates that can be searched + by the chaining engine when validating a certificate chain. + + + + + Construct a new instance. + + The signing certificate. + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Sign. + + The data to be signed. + The signature. + + + + Find certificate in store. + + The serial number. + The name of the certificate authority. + The certificate. + + + + The certificate chain. + + + + + Sha1 oid. + + + + + if encapsulate is true a copy of the message will be included in the signature. + + + + + The signing certificate. + + + + + + Construct a new instance. + + The signing certificate. + + if encapsulate is true a copy of the message will be included in the signature. + + + + + Sign. + + The data to be signed. + The signature. + + + + Time Stamp service implementation which must conform to RFC 3161. + + + + + Construct an instance of a TSAClient. + + Time Stamp Authority URL. + + + + Construct an instance of a TSAClient. + + Time Stamp Authority URL. + user(account). + password. + + + + Construct an instance of a TSAClient. + Note the token size estimate is updated by each call, as the token + size is not likely to change(as long as we call the same TSA using + the same imprint length). + + Time Stamp Authority URL. + user(account). + password + estimated size of received time stamp token (DER encoded). + + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + + data imprint to be time-stamped + encoded TSA signed data of the timeStampToken + + + + + + + TSA response, raw bytes (RFC 3161 encoded) + + + + Ocsp http service implementation. + + + + + Construct a new instance. + + The ocsp server url. + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + OCSP service interface. + + + + + Generate OCSP response. + + certificate to checked + certificate of the issuer + OCSP response which must conform to RFC 2560 + + + + Timestamp provider interface. + + + + + Generate timestamp token. + + + The value of signature field within SignerInfo. + The value of messageImprint field within TimeStampToken shall be the hash of signature. + Refrence RFC 3161 APPENDIX A. + + timestamp which must conform to RFC 3161 + + + + Provide a custom signature appearance implemation. + + + + + The signature. + + + + + The Grapphic render/display mode. + + + + + label of name + + + + + The content to the left of property reason + + + + + label of location + + + + + label of contactInfo + + + + + label of date + + + + + the SignName font. + Note: if not set, the default font will be applied. + + + + + the SignDetails font. + Note: if not set, the default font will be applied. + + + + + The label of The name of the person or authority signing the document. + + + + + The label of signature's reason + + + + + The label of signature's location + + + + + The label of signature's contactInfo + + + + + The label of signature's date + + + + + font color for the signature info + if not set, the default is black + + + + + The Grapphic render/display mode. + + + + + Set or get the sign image layout. + + + + + the SignName font. + Note: if not set, the default font will be applied. + + + + + the SignDetails font. + Note: if not set, the default font will be applied. + + + + + Initialize a new instance. + + The signature. + + + + Generate custom signature appearance by a graphics context. + + A graphics context of signature appearance. + + + + Provide a custom signature appearance interface + + + + + Generate custom signature appearance by a graphics context. + + A graphics context of signature appearance. + + + + Pdf ordinary signature maker. + A document can contain One or more ordinary signatures. + + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + Initialize a new instance. + + The pdf document object + The signature formatter. + + + + Pdf MDP (modification detection and prevention) signature maker. + A document can contain only one MDP signature, it must be the first signed in the document. + It enables the author to specify what changes are permitted to be made the document and + what changes invalidate the author’s signature. + + + + + No changes to the document are permitted; + any change to the document invalidates the signature. + + + + + Permitted changes are filling in forms, instantiating page templates, + and signing; other changes invalidate the signature. + + + + + Permitted changes are the same as for 2, as well as annotation creation, + deletion, and modification; other changes invalidate the signature + + + + + The access permissions granted for this document. + + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + The access permissions granted for this document. + Validate values: + PdfMDPSignatureMaker.Level1Permissions/PdfMDPSignatureMaker.Level2Permissions/PdfMDPSignatureMaker.Level3Permissions + + + + + Find or Create a Perms dictionary + The DocMDP transform method is used to detect modifications relative to a signature field + that is signed by the author of a document (the person applying the first signature). + + + + + (Optional; PDF 1.5) An array of signature reference dictionaries (see Table 8.103). + + + + + + The signing certificate. + + + + + Construct a new instance. + + The signing certificate. + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + A name that describes the encoding of the signature value. + + + + + Construct a new instance. + + + A name that describes the encoding of the signature value. + + + + + Verify. + + The content signed with signature. + The signature to be verified. + + true if signature matches the content; otherwise, false. + + + + + The pdf signature. + + + + + The signature dictionary. + + + + + The name of the preferred signature handler to use when validating this signature. + + + + + A name that describes the encoding of the signature value. + + + + + The X.509 certificate chain used when signing and verifying signatures that use public-key cryptography. + + + + + The name of the person or anthority signing the document + this value should be used only when it is not possible to extract the name from the signature + for example, from the certificat of the signer + + + + + + The time of signing. Depending on the signature handler + this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server + + + + + Gets or sets the physical location of the signing. + + + + + Gets or sets reason of signing. + The reason for the signing, such as ( I agree … ). + + + + + Gets or sets a phone number of signer + Information provided by the signer to enable a recipient to contact the signer to verify the signature; for example, a phone number. + + + + + The name of the software module used to create the signature. + + + + + Initialize a new instance. + + + + + Initialize a new instance. + + The signature dictionary. + + + + Pdf signatue maker. + + + + + Signature formatter. + + + + + The signature. + + + + + The pdf document object + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + The content to the left of property name + + + + + The content to the left of property distinguishedName + + + + + The content to the left of property reason + + + + + The content to the left of property location + + + + + The content to the left of property contactInfo + + + + + The content to the left of property date + + + + + Prior to Acrobat 6.0, signature appearances were manipulated at run-time in order to display the validity of the signature. + The validity was shown as a graphic icon and with an additional, optional text message. The manipulated portions of the + signature appearance were contained in layers n1, n3 and n4. Beginning with version 6, Acrobat does not maintain support + for signature appearances that can be manipulated, though legacy signatures with these appearances may continue to display + correctly. Use of layers n1, n3, and n4 is not recommended. + + + + + Initialize a new instance. + + The pdf document object + The signature formatter. + + + + Initialize a new instance. + + The pdf document object + The X.509 certificate. + + + + The name of the person or anthority signing the document + this value should be used only when it is not possible to extract the name from the signature + for example, from the certificat of the signer + + + + + Digital Signature Distinguished name. + Notes: Assigning a stirng value to it directly is not recommended unless you know what is the Distinguish Name exactly. + One way suggested of value Assignment is using pdfSignature.Certificate.IssuerName.Name,in which, pdfSignature is an instance of PDFSignature class. + + + + + It is recommended to use "D:{0:yyyyMMddHHmmss}" to format the datetime,for example:String.Format("D:{0:yyyyMMddHHmmss}",DateTime.Now) + The time of signing. Depending on the signature handler + this may be a normal unverified computer time or a time generated in a verifiable way from a secure time server + + + + + + The CPU host name or physical location of the signing. + + + + + + The reason for the signing, such as ( I agree … ). + + + + + + Information provided by the signer to enable a recipient to contact the signer to verify the signature + for example, a phone number. + + + + + + The content to the left of property name + + + + + + The content to the left of property distinguishedName + + + + + + The content to the left of property reason + + + + + + The content to the left of property location + + + + + + The content to the left of property contactInfo + + + + + + The content to the left of property date + + + + + + Only for compatibility old version. + Whether move away signature validity visualizations in document. + Default true. + + + false, display signature validity visualizations in document. + true, move away signature validity visualizations in document. + + + + + Make signature. + + The signature filed name. + + + + Make signature. + + The signature filed name. + Implement a custom signature appearance. + + + + Make signature. + + The signature filed name. + The page index. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + The location of the annotation on the page. + + + + Make signature. + + The signature filed name. + The page index. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + Implement a custom signature appearance. + + + + Generate signature normal appearance. + + The widget annotation. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + + + + Generate top-level XObject. + + The widget annotation. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + The top-level XObject. + + + + Generate second-level XObject. + + The width. + The height. + The n2 layer signature appearance. + Whether move away signature validity visualizations in document. + The second-level XObject. + + + + Generate n0 layer. + Background layer. + + The width. + The height. + The n0 Background layer. + + + + Generate n1 layer. + Validity layer, used for the unknown and valid state;contains, for instance, a yellow question mark. + + The width. + The height. + The n1 layer. + + + + Generate n2 layer. + Signature appearance,containing information about the signature. This can be text or an XObject + that represents signature. + + The width. + The height. + + The n2 layer. + + + + Generate n3 layer. + Validity layer, containing a graphic that represents the validity of the signature when the signature is validate. + + The width. + The height. + The n3 layer. + + + + Generate n4 layer. + Text layer, for a text presentation of the state of the signature. + + The width. + The height. + The n4 layer. + + + + 添加额外无效字符长度处理两次签名长度一致,pdf-3547 + + + + + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + Write the start position of byteRange + + + + + Write the start position of digestValue + + + + + Handles the BeginSave event of the pdf signature dictionary object. + + The source of the event. + The events arguments. + + + + The signature value + When ByteRange is present + the value is a hexadecimal string representing the value of the byte range digest. + If ByteRange is not present + the value is an object digest of the signature dictionary + + + + + + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + + Calculate signature length + + + + + + Event handler of document saved. + + The source of the event. + The events arguments. + + + + Write the signature "ByteRange" value + An array of pairs of integers (starting byte offset, length in bytes) describing the exact byte range for the digest calculation. + Multiple discontiguous byte ranges are used to describe a digest that does not include the signature value (theContents entry) itself. + + + + + + Write the signature "ByteRange" value + + + + + + + + + Write the signature "Contents" value + When ByteRange is present + the value is a hexadecimal string representing the value of the byte range digest. + If ByteRange is not present + the value is an object digest of the signature dictionary + + + + + + Modes to determine what and how to dispay the signature infomation. + + + + + Default dispaly model. + Display signature details including signer,location,date,contact infomation and reason. + + + + + Only display the signature image. + + + + + Only display the sign name. + + + + + Diaply sign name and signature details. + + + + + Diaply signature image and signature details. + + + + + Specifies the alignment type of signature text. + + + + + Specifies the signature text is aligned to Left. + + + + + Specifies the signature text is aligned to Center. + + + + + Specifies the signature text is aligned to Right. + + + + + The layout determine how to display the sign image. + + + + + Default. + Sign image status without any modification. + + + + + Stretch the sign image. + + + + + Represents Push Button terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is push button field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Check Box terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is checkbox field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Radio Button terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is radio button field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Choice terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is choice field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents Text terminal field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is text field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + Represents field hierarchy which contain field dictionary and the ancestors. + + + + + The dictionary. + + + + + The ancestors in the hierarchy. + + + + + The field dictionary. + + + + + The root field dictionary. + + + + + Initialize a new instance. + + The field full name. + + + + Initialize a new instance. + + The field dictionary. + The ancestors in the hierarchy. + + + + Get field full name. + + + + + + Get field full name. + + The field dictionary. + The ancestors in the hierarchy. + The field full name. + + + + Whether contains property. + + The key. + Inheritable. + + If contain the property, true. + Otherwise, false. + + + + + Get property. + + The key. + Inheritable. + The value. + + + + Set property. + + The key. + The value. + + + + Represents terminal field in the PDF Form. + + + + + The assoiated form. + + + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + The field hierarchy. + + + + + The full name. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Get all widget annotation. + + + + + + Add field's widget annotation. + + The field. + The page of widget annotation. + The x position of the annotation on the page. + The y position of the annotation on the page. + The width of the annotation on the page. + The height of the annotation on the page. + The widget annotation. + + + + Whether exist widget annotation entries in field dictionary. + + + If the contents of the field dictionary and the annotation dictionary can be merged into a single dictionary, true. + Otherwise, false. + + + + + Clone and remove widget annotation entries from field dictionary. + + The widget annotation dictionary. + + + + Merge widget annotation entries to field dictionary. + + The field dictionary. + The widget annotation + + + + Add page widget annotation. + + The page dictionary. + The new widget annotation dictionary. + + + + Replace page widget annotation. + + The old widget annotation dictionary. + The new widget annotation dictionary. + + + + Used to gathering information interactively from the user. + + + + + The assoiated document. + + + + + The assoiated document. + + + + + The form dictionary. + + + + + Initialize a new instance. + + + + + Get all fields. + + + + + + Find fields. + + The full name. + The matched fields. + + + + Create signature field. + + The full name. + The new signature field. + + + + + Get field dictionary list. + + The array. + The field dictionary list. + + + + Represents signature field in the PDF Form. + + + + + Initialize a new instance. + + The assoiated form. + The full name. + + + + Initialize a new instance. + + The assoiated form. + + The field hierarchy which contain field dictionary and the ancestors. + + + + + Whether is signature field. + + + The field hierarchy which contain field dictionary and the ancestors. + + + + + + PDF’s logical structure facilities provide a mechanism for incorporating + structural information about a document’s content into a PDF file. Such + information might include, for example, the organization of the document into + chapters and sections or the identification of special elements such as figures, + tables, and footnotes. The logical structure facilities are extensible, allowing + applications that produce PDF files to choose what structural information to + include and how to represent it, while enabling PDF consumers to navigate a file + without knowing the producer’s structural conventions. + + + + + Construct a new PDF's logical structure. + + + + + Construct PDF's logical structure. + + The structure tree root. + + + + Append structure type element. + + The structure type. + The pdf structure type element. + + + + Get the children structure elements. + + The pdf structure type element list. + + + + Create PDF's logical structure. + + The pdf document. + return new logical structure. + + + + Get PDF's logical structure. + + The pdf document. + + Return PDF's logical structure.If null,the pdf document has not PDF's logical structure. + + + + + A number tree used in finding the structure elements to which content items belong. + + + + + A name tree that maps element identifiers to the structure elements. + + + + + A dictionary that maps the names of structure types used + in the document to their approximate equivalents in the set of standard structure types. + + + + + A dictionary that maps name objects designating attribute classes to + the corresponding attribute objects or arrays of attribute objects + + + + + Represents the Pdf Artifact property list. + + + + + Gets or sets the artifact type + + + + + Gets or sets top of the artifact’s bounding box. + + + + + Gets or sets left of the artifact’s bounding box. + + + + + Gets or sets Bottom of the artifact’s bounding box. + + + + + Gets or sets Bottom of the artifact’s bounding box. + + + + + Gets or sets the subtype of the artifact + + + + + Gets or sets top edge of the page + + + + + Gets or sets left edge of the page + + + + + Gets or sets Bottom edge of the page + + + + + Gets or sets Bottom edge of the page + + + + + Represents the standard struct types. + + + + + Represents the Pdf mark information. + + + + + A flag indicating whether the document conforms to Tagged PDF conventions. + + + + + Represents the Pdf user property. + + + + + The attribute information is held in one or more attribute objects + associated with the structure element. + + + + + Represents the pdf structure marked-content identifier or + marked-content reference, object reference. + + + + + Represents the pdf structure node. + + + + + Represents the pdf structure element. + + + + + The structure type. + + + + + The element identifier. + + + + + The current revision number of this structure element. + + + + + The title of the structure element. + + + + + A language identifier specifying the natural language + for all text in the structure element except where + overridden by language specifications for nested structure elements or marked content. + + + + + An alternate description of the structure element and + its children in human-readable form, which is useful + when extracting the document’s contents in support of + accessibility to users with disabilities or for other purposes. + + + + + The expanded form of an abbreviation. + + + + + Text that is an exact replacement for the structure element + and its children. This replacement text (which should apply + to as small a piece of content as possible) is useful when + extracting the document’s contents in support of accessibility + to users with disabilities or for other purposes. + + + + + Get the children of this structure element. + + + The children of this structure element. + The value of list may be one of the following objects: + structure element or marked-content identifier or + marked-content reference, object reference. + + + + + Append structure type element. + + The structure type. + The pdf structure type element. + + + + Begin a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + The role or significance of the sequence. + + + + Begin a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + The role or significance of the sequence. + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + End a marked-content sequence of objects within the content stream. + + The graphics context of the content stream. + + + + Reference struct content. + + + The page object representing the page on which the graphics objects in the marked-content sequence are rendered. + + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + Reference struct content. + + + An integer marked-content identifier that uniquely identifies the marked-content sequence within its content stream. + + + + + BookletLayout. + + + + + The bookletSubset mode. + Default value BothSides. + + + + + The booklet binding mode. + Default value Left. + + + + + Get or set BookletBinding,default value Left. + + + + + Initializes a new instance of the PdfSinglePageLayout class + + + + + Get page content bound in paper content bound. + + The paper printable content bound. + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when booklet Binding is Left or Right. + + The paper content bound. + The page content bound. + + + + Get page content bound when scaling booklet binding is LiftHigh or RightHigh + + The paper content bound. + The page bound. + The page content bound. + + + + Pdf print to booklet subset mode + + + + + Print BothSides. + + + + + Only print Front Side.. + + + + + Only print Reverse Side. + + + + + Pdf print to booklet binding mode + + + + + Left Binding + + + + + Right Binding. + + + + + LeftHigh Binding. + + + + + RightHigh Binding. + + + + + Multi pages to one paper layout. + + + + + Multiple pages order in paper layout. + + + + + A value indicating whether the pages has the page border. + + + + + The number of rows for the paper layout. + + + + + The number of columns for the paper layout. + + + + + The spacing between pages and pages,measured in hundredths of an inch. + + + + + Get or set the number of columns for paper layout. + + + + + Get or set the number of rows for paper layout. + + + + + Get or set a value indicating whether the pages has the page border. + + + + + Get or set the order of pages in the paper layout. + + + + + Initializes a new instance of the PdfMultiPageLayout class. + + + + + Get the page content bounds in paper content bound. + + The paper content bound. + The page content bound in paper content bound. + + + + Get the page bounds in horizontal layout. + + the paper content bound + The page bounds. + + + + Get the page bounds in horizontal reverse layout. + + The paper content bound. + The page bounds. + + + + Get the page bounds in vertical layout. + + The paper content bound. + The page bounds. + + + + Get the page bounds in vertical reverse layout. + + The paper content bound. + The page bounds. + + + + Get the page content bounds in paper bound. + + The page bounds. + The page content bounds. + + + + Multi pages order in the Paper layout. + + + + + Horizontal and from left to right + + + + + Horizontal and from right to left + + + + + Vertical and from left to right + + + + + Vertical and from right to left + + + + + Split one page to multi papers layout. + + + + + Initializes a new instance of the PdfSplitPageLayout class + + + + + Get page bounds. + + The page bound. + The paper content bound. + A List collection abount the page bounds. + + + + One page to one paper layout. + + + + + Page scaling mode,default value FitSize. + + + + + Custom scaling(unit:percent),default value 100f. + + + + + A value indicating whether automatic portrait and landscape. + Default value false. + + + + + Get or set page scaling mode,default value FitSize. + + + + + Get or set custom scaling(unit:percent),default value 100f. + + + + + Get or set a value indicating whether automatic portrait and landscape. + Default value false. + + + + + Initializes a new instance of the PdfSinglePageLayout class + + + + + Get page content bound in paper content bound. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is FitSize. + + The paper content bound. + The page content bound. + + + + Get page content bound when scaling mode is ActualSize. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is CustomSacle. + + The paper content bound. + The page bound. + The page content bound. + + + + Get page content bound when scaling mode is ShrinkOverSized. + + The paper content bound. + The page bound. + The page content bound. + + + + Pdf Print Page Scale type + + + + + Adaptive content size. + + + + + The actual size of the content. + + + + + Shrink oversized pages. + + + + + Custom scale. + + + + + Represents information about page size. + The PaperSize's width and height,unit:in hundredths of an inch. + + + + + Letter format. + + + + + Note format. + + + + + Legal format. + + + + + A0 format. + + + + + A1 format. + + + + + A2 format. + + + + + A3 format. + + + + + A4 format. + + + + + A5 format. + + + + + A6 format. + + + + + A7 format. + + + + + A8 format. + + + + + A9 format. + + + + + A10 format. + + + + + B0 format. + + + + + B1 format. + + + + + B2 format. + + + + + B3 format. + + + + + B4 format. + + + + + B5 format. + + + + + ArchE format. + + + + + ArchD format. + + + + + ArchC format. + + + + + ArchB format. + + + + + ArchA format. + + + + + The American Foolscap format. + + + + + HalfLetter format. + + + + + 11x17 format. + + + + + Ledger format. + + + + + The page print to paper. + + + + + Pdf document printSetting. + + + + + Pdf document object. + + + + + The current pages array index in m_pages. + + + + + The printed pages array, it's elements value is document page index. + + + + + Initializes a new instance of the PdfPrinter class. + + Pdf document printSetting. + Pdf document object. + + + + Print Preview. + + + + + Print document. + + + + + Begin print page. + + + + + + + Query page setting. + + + + + + + Print Page. + + + + + + + End print. + + + + + + + Begin print page for one page to one paper. + + + + + Query page setting for one page to one paper. + + + + + + Print one page to one paper. + + + + + + Get the scale page bound. + + The page base + The paper bound + The scale page bound + + + + Begin print page for print to booklet. + + + + + Query page setting for print to booklet. + + + + + + Print document to booklet. + + + + + + Begin print page for multiple pages to one paper. + + + + + Query page setting for multiple pages to one paper. + + + + + + Print multiple pages to one paper. + + + + + + Current page image. + + + + + Current page bound. + + + + + Split bounds of current page. + + + + + Split bound index of current page. + + + + + Paper content bound. + + + + + Begin print page for one page to multiple papers. + + + + + Query page setting for one page to multiple papers. + + + + + + Print one page to multiple papers. + + + + + + Initialize print. + + + + + Get page metafile. + + Document page index. + Page Image. + + + + Get paper margin bound which according paperSettings. the paperSettings + is the attribute of PrintPageEventArgs.PageSettings. (Unit: hundredths of an inch) + PrinterUnit.Display is hundredths of an inch. + + Paper set. + Is consider hard margin. + + If the considerHardXY is true,get the paper content bound arrcording to the printable area. + Otherwise the considerHardXY is false,get the paper content bound according to the whole piece of paper. + Paper content bound(Unit:hundredths of an inch). + + + + + Get page bound. + + Page bound(Unit:PrinterUnit.Display). + + + + Print the pdf page to the paper's bound using uniform mode. + + Provides data for the print page event. + The pdf page. + The pape content bound(Unit:PrinterUnit.Display). + + + + Print the page bound of pdf page image to the paper's bound using fill mode. + + Provides data for the print page event. + The pdf page image. + The pdf page bound(Unit:PrinterUnit.Display). + The pdf page split bound(Unit:PrinterUnit.Display). + The paper's bound(Unit:PrinterUnit.Display). + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Provides data for paper setting event. + + + + + Get current paper index,from 1. + + + + + Gets the paper source trays that are available on the printer. + + + + + Get or set current paper source on the printer. + + + + + Initializes a new instance. + + Current paper index. + paper source trays that are available on the printer. + Current paper source on the printer. + + + + Represents the method that handles paper setting event. + + The source of the event. + The event data + + + + The page print settings. + + + + + Defines a reusable object that sends output to a printer. + + + + + Page layout mode. + + + + + One page to one paper layout. + + + + + Multi-page to one paper layout. + + + + + One page to multi-paper layout. + + + + + Booklet layout. + + + + + The user has specified print pages save in the array. + + + + + User Set Margins + + + + + when user set margins,should be use UserSetMargins instead of paperSettings.Margins(default:false;when user set,m_blUserSetMargins=true) + + + + + Defines a reusable object that sends output to a printer. + + + + + Get or set the name of printer which is on printing pdf document. + + + + + Get or set the document name to display (for example, in a print status dialog box or printer queue) while printing the document. + + + + + Get or set the size of a piece of paper. + + + + + Get or set the number of copies of the document to print. + + + + + Get or set a value indicating whether the page should be printed in color. + true if the page should be printed in color; otherwise, false. The default + is determined by the printer. + + + + + Get or set a value indicating whether the printed document is collated. + + + + + Get or set a value indicating whether the page is printed in landscape or portrait orientation. + Returns: + True if the page should be printed in landscape orientation; otherwise, false. + + + + + Get or set the print controller that guides the printing process. + + + + + Get a value indicating whether the printer supports double-sided printing. + + + + + Get or set the printer setting for double-sided printing. + + + + + Get or set the printer resolution kind. + + + + + Get the pagenumber which you choose as the start page to printing. + + + + + Get the pagenumber which you choose as the final page to printing. + + + + + Gets a value indicating whether the System.Drawing.Printing.PrinterSettings.PrinterName property designates a valid printer. + + + + + Get the user has specified print pages. + + + + + Get or set page layout mode. + + + + + Get one page to one paper layout. + + + + + Get multi-page to one paper layout. + + + + + Get one page to multi-paper layout. + + + + + Get booklet layout. + + + + + Occurs immediately before print each paper. + Note: Ignore on MacOS/Linux platform. + + + + + Occurs when the Spire.pdf.PdfDocument.Print() method is called + and before the first page of the document prints. + + + + + Occurs when the last page of the document has printed. + + + + + Occurs when the output to print for the current page is needed. + + + + + Occurs immediately before each Spire.pdf.PdfDocument.PrintSettings.PrintPage + event. + + + + + Initializes a new instance of the PdfPrintSetting class. + + + + + Set print page range. + + From page. + To page. + + + + Set print some pages. + + Selection pages. + + + + Select one page to one paper layout. + Default pageScalingMode = PdfSinglePageScalingMode.FitSize, autoPortraitOrLandscape = true, customScaling = 100f. + + + + + Select one page to one paper layout. + + Page scaling mode. + + + + Select one page to one paper layout. + + Page scaling mode. + Indicating whether automatic portrait and landscape. + + + + Select one page to one paper layout. + + Page scaling mode. + Indicating whether automatic portrait and landscape. + Custom scaling(unit:percent),default value 100f.Valid only if pageScalingMode== PdfSinglePageScalingMode.CustomScale. + + + + Select muti page to one paper layout. + Default rows = 2, columns = 2, hasPageBorder = false, pageOrder = PdfMultiPageOrder.Horizontal. + + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + A value indicating whether the pages has the page border. + + + + Select muti page to one paper layout. + + The number of rows for the paper layout. + The number of columns for the paper layout. + A value indicating whether the pages has the page border. + Multiple pages order. + + + + Select split page to muti paper layout. + + + + + Select booklet layout. + + + + + Select booklet layout. + + The mode of BookletSubset. + + + + Select booklet layout. + + The mode of BookletBinding. + + + + Select booklet layout. + + The mode of BookletSubset. + The mode of BookletBinding. + + + + Set paper margins,measured in hundredths of an inch. + + Paper margin top(unit:hundredths of an inch). + Paper margin bottom(unit:hundredths of an inch). + Paper margin left(unit:hundredths of an inch). + Paper margin right(unit:hundredths of an inch). + + + + return user set Margins + + + + + + when user set margins,should be use UserSetMargins instead of paperSettings.Margins + + + + + Set printing to file. + + File name. + + + + Trig before each System.Drawing.Printing.PrintDocument.PrintPage. + + The source of the event. + A System.Drawing.Printing.QueryPageSettingsEventArgs that contains the event data. + + + + User set event in begin print. + + The source of the event. + A System.Drawing.Printing.PrintEventArgs that contains the event data. + + + + User set event when the last page of the document has printed. + + The source of the event. + A System.Drawing.Printing.PrintEventArgs that contains the event data. + + + + User set event in print page. + + The source of the event. + A System.Drawing.Printing.PrintPageEventArgs that contains the event data. + + + + User set event in query page setting. + + The source of the event. + A System.Drawing.Printing.QueryPageSettingsEventArgs that contains the event data. + + + + Destructor + + + + + Releases all resources used. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Pdf print pages layout mode. + + + + + One page to one paper. + + + + + Multiple pages to one paper. + + + + + One page to multiple papers. + + + + + Print to booklet. + + + + + Specifies a printer resolution kind. + + + + + High resolution. + + + + + Medium resolution. + + + + + Low resolution. + + + + + Draft-quality resolution. + + + + + Custom resolution. + + + + + The document’s labeling ranges. + + + + + Decimal arabic numerals style to be used for the numeric portion of each page label. + + + + + Uppercase roman numerals style to be used for the numeric portion of each page label. + + + + + Lowercase roman numerals style to be used for the numeric portion of each page label. + + + + + Uppercase letters style to be used for the numeric portion of each page label. + + + + + Lowercase letters style to be used for the numeric portion of each page label. + + + + + The number tree which is the PageLabels entry in the document catalog. + + + + + The number tree which is the PageLabels entry in the document catalog. + + + + + Construct a new instance. + + + + + Construct a new instance. + + The document’s labeling ranges. + + + + Add labeling range which is a series of consecutive pages using the same numbering system. + + + the page index of the first page in the labeling range. + + + The numbering style to be used for the numeric portion of each page label. + As follow: + Decimal_Arabic_Numerals/Uppercase_Roman_Numerals/Lowercase_Roman_Numerals/Uppercase_Letters/Lowercase_Letters + + + The label prefix for page labels in the labeling range. + + + + + Add labeling range which is a series of consecutive pages using the same numbering system. + + + the page index of the first page in the labeling range. + + + The numbering style to be used for the numeric portion of each page label. + As follow: + Decimal_Arabic_Numerals/Uppercase_Roman_Numerals/Lowercase_Roman_Numerals/Uppercase_Letters/Lowercase_Letters + + + The label prefix for page labels in the labeling range. + + + The value of the numeric portion for the first page label in the range. + Subsequent pages are numbered sequentially from this value, which must be greater than or equal to 1. Default value: 1. + + + + + Get page label. + + The page index. + The page label. + + + + Get page label. + + The page index. + the page index of the first page in the labeling range. + The labeling characteristics for the pages in the labeling range. + The page label. + + + + Get the numeric portion for the page label in the range. + + The number. + The numbering style to be used for the numeric portion of each page label. + The numeric portion for the page label in the range. + + + The number. + UpperCase or LowerCase + The roman numerals style number. + + + + Convert number to letters style. + + The number. + UpperCase or LowerCase + The letters style number. + + + + Represents the pdf application data, used to store private data. + + + + + The application data dictionary. + + + + + The pdf application data dictionary. + + + + + The private data of application data dictionary. + The vaild type: string Dictionary. + + + + + Initialize a pdf piece instance. + + The piece dictionary + + + + Initialize a pdf piece instance. + + The content + + + + Initialize instance. + + The content + + + + Itialize instance. + + The application data + + + + Get the pdf application data dictionary. + + The pdf application data dictionary + + + + Pdf dictionary to dictionary. + + The pdf dictionary + The dictioanry + + + + Pdf array to list. + + The array + The list + + + + Represents the pdf piece info can used to hold private application datas. + + + + + Represents the piece info dictionary. + + + + + Represents the application datas. + + + + + Get the application datas. + + + + + Initialize a pdf piece info instance. + + The piece info dictionary + + + + Initialize a pdf piece info instance. + + + + + Initialize instance. + + + + + Add application data. + + The application name + The private data + + + + Remove the application data. + + The application name + + + + Get the piece info dictionary. + + + + + The booklet options + + + + + The booklet subset + + + + + Initializes a new instance of the class. + + + + + + + Set the booklet subset,only support both sides + + + + + The booklet subset + + + + + The result in document should be printed on both sides of paper. + + + + + Compress contents records. + + The list of records. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Save graphics state. + + + + + Restore graphics state. + + + + + Whether the line widths are equal. + + The record. + true, when the same. + + + + Trim the record operands. + + The record + + + + + Trim the operand if contains .00 + + + + + + + Optimize the font data + + The pdf object. + + + + Optimize the font data + + The font dictionary. + + + + Convert to non-embedded font. + + The font dictionary. + + + + Destructor + + + + + Closes the document. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + Reads 4 bytes from the byte array + + Corresponding value + + + + Reads 8 bytes from the byte array + + Corresponding value + + + + Read 4 bytes from the byte array + + Corresponding string value + + + + Read 2 bytes from the byte array + + Corresponding integer value + + + + Get table bytes + + + + + + + + Indicates the common table list + + + + + Update the font data. + + + + + + + Get the font table entry. + + + + + + + + Calulates the check sum value. + + + + + + + Optimize the font. + + The font dictionary. + + + + Optimize the font. + + The font dictionary. + + + + Optimize type0 font + + + + + + + Get the local table last index + + The font dictionary. + + + + + Set the font tables. + + + + + + + + + + Calculate the local and hmtx table length. + + + + + + + + + Update the embedded subset font Name based on the PDF specification. + + + + + + + Compress image pdf stream. + + The pdf object. + + + + Compress image pdf stream. + + The image pdf stream. + The result image. + + + + Remove metadata item. + + The image pdf stream. + + + + Resize image. + + The image pdf stream. + true, when resize sucess. + + + + Compress jpeg image. + + The image pdf stream. + true, if compression sucess; Otherwise, false. + + + + Compress image with JPXDecode. + + The image pdf stream. + + + + Get the image interpolation. + + + + + + + Check whether filter is DCTFilter. + + The image pdf stream + Is DCTFilter, return true; otherwise, return false. + + + + Decode the pdfstream to image. + + The image pdf stream + The result image. + + + + Compress pdf stream with flate filter. + + The pdf stream + Compression success, return true; otherwise, return false. + + + + Destructor + + + + + Closes the document. + + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Specify whether to had released resources. + + + + + Releases all resources used. + + True,Releases all resources;False,Releases unmanaged resources. + + + + The compression provider. + + + + + The pdf compression options. + + + + + Construct a new provider + + The pdf standard options. + + + + Excute before visit the document. + + The pdf processing context. + + + + Excute before visit the element. + + The pdf element. + The pdf processing context. + + + + Handle content stream and resources. + + The instructions. + The content stream. + The associated resources with the The content stream. + The pdf processing context. + The new instructions. + + + + Generate content stream. + + The instructions. + The content stream. + + + + Excute after visit the document. + + The pdf processing context. + + + + The class can be used to set some options when do merge operation. + + + + + Gets or sets a value indicates whether to merge the fields with the same name into one field. + + + + + Represents a booklet creator, which allows to create a booklet from a Pdf document. + + + + + Thie method creates a booklet + + The loaded document. + The out file + Size of the page. + + + + Thie method creates a booklet + + The loaded document. + The out stream + Size of the page. + + + + Thie method creates a booklet + + The loaded document. + The out stream + Size of the page. + BookletOptions bookletOptions + Delegate for handling event when the begin drawing page in a booklet. + Delegate for handling event when the end drawing page in a booklet. + + + + + Gets the next pair of page indeces. + + The current iteration index. + The pages count. + if set to true if the result in document should be printed + on both sides of paper. + + An array of integers that holds the indices. + + + + + define a pdf table column + + + + + columns index + + + + + columns index + + + + + Text in table + + + + + Gets or sets the font compression options. + + + + + Gets or sets the image compression options. + + + + + Represents the image quality. + + + + + Gets or sets the compressed image quality. + + Default value is 60. + + + + The origin document. + + + + + The compression options. + + + + + The compression options. + + + + + Initializes a new instance of the class. + + The pdf file stream. + + + + Construct a new converter. + + The pdf file path. + + + + Compress document. + + The out file path. + + + + The number of indirect objects. + + + + + The original stream object. + + + + + Initializes a new instance of the class. + + + + + Gets the Image Boundary location. + + + + + Gets the Image,save to stream. + + + + + Gets the image name. + + + + + The number of indirect object. + + + + + The original stream object. + + + + + Initializes a new instance of the class. + + + + + Get all image information on the page. + + The pdf page. + + + + Replace image. + + The original image info. + The new replace image. + + + + Delete an image. + + The information of the image to be delete. + + + + Delete an image. + + The information of the image to be delete. + whether to delete the image resource. + + + + The class can be used to merge pdf documents + + + + + List of inputDocuments + + + + + Merges the specified source documents and return destination document. + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + Some options when do merge operation. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + Some options when do merge operation. + + + + CommonMerge + + + + + + + + define a pdf table row + + + + + columns index + + + + + All columns in the current row + + + + + columns index + + + + + All columns in the current row + + + + + define a pdf table + + + + + table index + + + + + + + + + + + + + + + All rows in the current table + + + + + table index + + + + + All rows in the current table + + + + + + + + + + + + + + + + + Get the current table row count + + + + + + Get the current table column count + + + + + + Get value from the current table + + the row index,the index starts at 0 + the column index,the index starts at 0 + the text + + + + Represent the pdf table extractor. + + + + + 获取当前页面对象 + + + + + Return PdfTable + + + + + Initializes a new instance of the class. + + The document. + + + + Initializes a new instance of the class. + + + + + + Extract table from the pdf document + + pageIndex + An array of PdfTable. + + + + TableObject to PdfTable + + + + + + + Create table,fill text + + the current table index + the current row index + the current column index + the current column text + + + + Find tables that on the current page + + + + + + + Represent the pdf text extractor. + + + + + The page. + + + + + Represents an instance. + + The page + + + + Extract the page text. + + The options. + The Extracted Text. + + + + Extract text. + + The extract options + The exteracted text + + + + Process rectanglef. + + The area + The rectanglef + + + + Represents the text replace. + + + + + The page. + + + + + The command delegate. + + + + + The commands. + + + + + Represents an instance. + + The page + + + + Replaces the text in the page page. + + The old text. + The new text. + + + + Replaces all the text in the page page. + + The old text + The new text + + + + Update object stream. + + The recodr collection + + + + Get text paragraph replacer. + + The old text + The text edit options + The text paragraph replacer + + + + Clear the commands. + + + + + Whether the string contains chinese. + + The string + if contains,return true + + + + Get the text font instance. + + The text manager + The abstract text range + The value + The text font instance + + + + Unicodes to char codes. + + The unicode string + The font structure + it is process escape character? + The char codes + + + + Get the font resource name. + + The font resource name + + + + Build the font. + + The font size + The font resource dictionary + The text + + + + Get the font name. + + The abstract text range + The string + The font name + + + + Set width to font. + + The true type font + + + + Wether is contains current font resource. + + The font reource + if contains.return true.or false + + + + Get the font dictionary + + The font resource dictioary + The font dictionary + + + + Whether the physical text segments belongs page. + + The page resource + The physical text segments resource + Belongs page return true,or false + + + + Flush physical text segments. + Do not support the form text now ,so delete the form physical text segments. + + The text ranger + The page + + + + The horizontal alignment. + + + + + The vertical alignment. + + + + + Get the replaced text width. + + The replaced text width + + + + Charcodes to chars. + + The str + The chars + + + + Represent the pdf text extract context. + + + + + Specified the text extract area. + + + + + Whether is use simple extraction. + + + + + Whether is extract all texts. + + + + + Show hidden text? + + + + + Whether is use simple extraction. + default vale: false. + + + + + Whether is extract all texts. + default vale: false. + + + + + Whether is show hidden texts. + default vale: false. + + + + + Specified the text extract area. + default vale: RectangleF.Empty. + + + + + Initialize a new instance. + + + + + Represents base class for all action types. + + + + + Gets or sets the next action to be performed after the action represented by this instance. + + + + + Represents collection of actions. + + + + + Adds the specified action. + + The action. + action + + + + Inserts the action at the specified position. + + The index. + The action. + + + + Gets the index of the action. + + The action. + action + + + + Determines whether the action is contained within collection. + + The action. + + Value, indicating the presents of the action in collection. + + + + + Clears this collection. + + + + + Removes the specified action. + + The action. + + + + Removes the action at the specified position. + + The index. + + + + Initializes a new instance of the class. + + + + + Represents the form action base class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether fields contained in + collection will be included for resetting or submitting. + + + If Include property is true, only the fields in this collection will be reset or submitted. + If Include property is false, the fields in this collection are not reset or submitted + and only the remaining form fields are reset or submitted. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + + true if include; otherwise, false. + + + + Gets the fields. + + The fields. + + + + Represents an action which goes to a destination in the current document. + + + + + Initializes a new instance of the class. + + The destination to jump to. + + + + Initializes a new instance of the class. + + The page to jump to. + + + + Gets or sets the destination. + + The destination. + + + + Initializes a new instance of the class. + + The destination to jump to. + + + + Gets or sets the destination. + + The destination. + + + + Represents an action which performs java script action in pdf document. + + + + + Initializes a new instance of the class. + + The java script code. + A string value representing valid javascript code to be executed. + + + + Gets or sets the javascript code to be executed when this action is executed. + + A string value representing valid javascript code to be executed. + + + + The Adobe Built-in JavaScript + + + + + Get a AFNumber_Format string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate. + The formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed + The currency style - not used + The currency symbol + True to prepend the currency symbol; false to display on the end of the number + + + + Get a AFNumber_Keystroke string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate. + The formatting used for negative numbers: 0 = MinusBlack, 1 = Red, 2 = ParensBlack, 3 = ParensRed + The currency style - not used + The currency symbol + True to prepend the currency symbol; false to display on the end of the number + + + + Get a AFRange_Validate string + + Indicate the use of the greater than comparison + The value to be used in the greater than comparison + Indicate the use of the less than comparison + The value to be used in the less than comparison + + + + Get a AFPercent_Format string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate + + + + Get a AFPercent_Keystroke string + + The number of places after the decimal point + The integer denoting whether to use a separator or not. If sepStyle=0, use commas. If sepStyle=1, do not separate + + + + Get a AFDate_FormatEx string + + Must be one of: "m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yymm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM" + + + + Get a AFDate_KeystrokeEx string + + Must be one of: "m/d", "m/d/yy", "mm/dd/yy", "mm/yy", "d-mmm", "d-mmm-yy", "dd-mmm-yy", "yymm-dd", "mmm-yy", "mmmm-yy", "mmm d, yyyy", "mmmm d, yyyy", "m/d/yy h:MM tt", "m/d/yy HH:MM" + + + + Get a AFTime_Format string + + The time format: 0 = 24HR_MM [ 14:30 ], 1 = 12HR_MM [ 2:30 PM ], 2 = 24HR_MM_SS [ 14:30:15 ], 3 = 12HR_MM_SS [ 2:30:15 PM ] + + + + Get a AFTime_Keystroke string + + The time format: 0 = 24HR_MM [ 14:30 ], 1 = 12HR_MM [ 2:30 PM ], 2 = 24HR_MM_SS [ 14:30:15 ], 3 = 12HR_MM_SS [ 2:30:15 PM ] + + + + Get a AFSpecial_Format string + + The type of formatting to use:0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN + + + + Get a AFSpecial_Format string + + The type of formatting to use:0 = zip code, 1 = zip + 4, 2 = phone, 3 = SSN + + + + Get a AFSimple_Calculate string + + Must be one of "AVG", "SUM", "PRD", "MIN", "MAX" + The name list of the fields to use in the calculation + + + + Represents an action which launches an application or opens or prints a document. + + + + + Initializes a new instance of the class. + + Name of the file to be launched. + + + + Initializes a new instance of the class. + + Name of the file to be launched. + Name of the file to be launched. + Name of the path type. + + + + Gets or sets file to be launched. + + + + + Indicates the target document should be opened in a new window or not. + + + + + Represents an action which perfoms the named action. + + + + + Gets or sets the destination. + + The object representing destination of an action. + + + + Initializes a new instance of the class. + + The object representing destination of an action. + + + + Represents additional actions of the annotations. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + annotations active area. + + The mouse down action. + + + + Gets or sets the action to be performed when the mouse button is released + inside the annotations active area.. + + The mouse up action. + + + + Gets or sets the action to be performed when the annotation receives the + input focus. + + The got focus action. + + + + Gets or sets the action to be performed when the annotation loses the + input focus. + + The lost focus action. + + + + Represents an action for the document. + + + + + Gets or sets the action to execute when the document is opened. + + A specifying the action to be executed when documents opens in the viewer. + + + + Gets or sets the action to be performed before the document is closed. + + A object specifying the action to be executed before the document is closed. + + + + Gets or sets the java script action to be performed before the document is saved. + + A object specifying the action to be executed before the document is saved. + + + + Gets or sets the jave script action to be performed after the document is saved. + + A object specifying the action to be executed after the document is saved. + + + + Gets or sets the action to be performed before the document is printed. + + A object specifying the action to be executed before the document is printed. + + + + Gets or sets the action to be performed after the document is printed. + + A object specifying the action to be executed after the document is printed. . + + + + Represents an embedded go-to action which allows jumping to or from a PDF file that is embedded in another PDF file. + + + + + Indicates the target document should be opened in a new window or not. + + + + + The target document name. + + + + + The destination in the target document to jump to. + + + + + Initialize a new instance of PdfEmbeddedGoToAction. + + The target PDF file name to be opened. + The destination. + If true, the target PDF would be opened in a new window.Otherwise false. + + + + Represents actions to be performed as response to field events. + + + + + Initializes a new instance of the class. + + The annotation actions. + + + + Gets or sets the JavaScript action to be performed when the user types a keystroke + into a text field or combo box or modifies the selection in a scrollable list box. + This action can check the keystroke for validity and reject or modify it. + + A object specifying the action to be executed when the user types a keystroke. + + + + Gets or sets the JavaScript action to be performed before the field is formatted + to display its current value. + + A object specifying the action to be executed for formating the field value. + + + + Gets or sets the JavaScript action to be performed + This action can check the new value for validity. + + A object specifying the action to be executed for validating the field value. + + + + Gets or sets the JavaScript action to be performed to recalculate the value + of this field when that of another field changes. + + A object specifying the action to be executed for calculating the field value. + + + + Gets or sets the action to be performed when the mouse button is released + inside the fields area. + + A descendant specifying the action to be executed when the mouse button is released inside the field's area. + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + fields area. + + A descendant specifying the action to be executed when the mouse button is pressed inside the field's area. + + + + Gets or sets the action to be performed when the field receives the + input focus. + + A descendant specifying the action to be executed when the field receives the input focus. + + + + Gets or sets the action to be performed when the field loses the + input focus. + + A descendant specifying the action to be executed when the field losts the input focus. + + + + Represents Pdf form's reset action. + + This action allows a user to reset the form fields to their default values. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether fields contained in Fields + collection will be included for resetting. + + true if include; otherwise, false. + + If Include property is true, only the fields in this collection will be reset. + If Include property is false, the fields in this collection are not reset + and only the remaining form fields are reset. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + + + + + Represents the sound action. + + + + + Initializes a new instance of the class. + + Name of the sound file. + + + + Gets or sets the volume at which to play the sound, in the range -1.0 to 1.0. + + The volume of the sound. + + + The name of the sound file. + + + + Gets or sets the sound. + + represents the sound. + + + + Gets or sets a value whether to play the sound synchronously or asynchronously. + If this flag is true, the viewer application retains control, allowing no further + user interaction other than canceling the sound, until the sound has been + completely played. Default value: false. + + true if synchronous; otherwise, false. + + + + Gets or sets a value indicating whether to repeat the sound indefinitely. + If this entry is present, the property is ignored. Default value: false. + + true if repeat; otherwise, false. + + + + Gets or sets a value indicating whether to mix this sound with any other + sound already playing. If this flag is false, any previously playing sound is + stopped before starting this sound; this can be used to stop a repeating + sound. Default value: false. + + true if mix; otherwise, false. + + + + Represents Pdf form's submit action. + + This type of action allows a user to go to a resource on the Internet, tipically a hypertext link. + + + + Initializes a new instance of the class. + + The URL. + + + An string value specifying the full URI for the internet resource. + + + + Gets or sets the HTTP method. + + The HTTP method. + + + + If set, any submitted field values representing dates are converted to the + standard format. The interpretation of a form field as a date is not specified + explicitly in the field itself but only in the JavaScript code that processes it. + + + true if use canonical date time format when submit data; otherwise, false. + + + + + Gets or sets a value indicating whether to submit mouse pointer coordinates. If set, + the coordinates of the mouse click that caused the submit-form action are transmitted + as part of the form data. + + true if submit coordinates; otherwise, false. + + + + Gets or sets a value indicating whether to submit fields without value. + If set, all fields designated by the Fields collection and the + flag are submitted, regardless of whether they have a value. For fields without a + value, only the field name is transmitted. + + + true if submit fields without value or the empty ones; otherwise, false. + + + + + Gets or sets a value indicating whether to submit form's incremental updates. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the submitted FDF file includes the contents of all incremental + updates to the underlying PDF document. If clear, the incremental updates are + not included. + + + true if incremental updates should be submitted; otherwise, false. + + + + + Gets or sets a value indicating whether to submit annotations. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the submitted FDF file includes all markup annotations in the + underlying PDF document. If clear, markup annotations are not included. + + true if annotations should be submitted; otherwise, false. + + + + Gets or sets a value indicating whether to exclude non user annotations form submit + data stream. Meaningful only when the form is being submitted in Forms Data Format + and the property is set to true. + + + true if non user annotations should be excluded; otherwise, false. + + + + + Gets or sets a value indicating whether to include form to submit data stream. + Meaningful only when the form is being submitted in Forms Data Format. + If set, the property is a file name containing an embedded file + stream representing the PDF file from which the FDF is being submitted. + + true if form should be embedded to submit stream; otherwise, false. + + + + Gets or sets the submit data format. + + The submit data format. + + + + Gets or sets a value indicating whether fields contained in Fields + collection will be included for submitting. + + true if include; otherwise, false. + + If Include property is true, only the fields in this collection will be submitted. + If Include property is false, the fields in this collection are not submitted + and only the remaining form fields are submitted. + If the collection is null or empty, then all the form fields are reset + and the Include property is ignored. + If the field has Export property set to false it will be not included for + submitting in any case. + + + + + Represents an action which resolves unique resource identifier. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The unique resource identifier. + + + + Gets or sets the unique resource identifier. + + The unique resource identifier. + + + + Specifies the file path type. + + + + + Specifies the file location with out including the domain name. + + + + + Specifies the location, including the domain name. + + + + + Specifies the available named actions supported by the viewer. + + + + + Navigate to first page. + + + + + Navigate to last page. + + + + + Navigate to next page. + + + + + Navigate to previous page. + + + + + Specifies the available data formats for submitting the form data. + + + + + If clear, the Fields array specifies which fields to + include in the submission. + + + + + If set, all fields designated by the Fields array and the Include/ + Exclude flag are submitted, regardless of whether they have a value. + For fields without a value, only the + field name is transmitted. + + + + + Meaningful only if the SubmitPDF and XFDF flags are clear. If set, + field names and values are submitted in HTML Form format. If + clear, they are submitted in Forms Data Format + + + + + If set, field names and values are submitted using an HTTP GET + request. If clear, they are submitted using a POST request. This flag + is meaningful only when the ExportFormat flag is set; if ExportFormat + is clear, this flag must also be clear. + + + + + If set, the coordinates of the mouse click that caused the submitform + action are transmitted as part of the form data. + + + + + Meaningful only if the SubmitPDF flags are clear. If set, + field names and values are submitted as XML Forms Data Format . + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF file includes the contents + of all incremental updates to the underlying PDF document, + as contained in the Differences entry in the FDF dictionary. + If clear, the incremental updates are not included. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF file includes all markup + annotations in the underlying PDF document. + If clear, markup annotations are not included. + + + + + If set, the document is submitted as PDF, using the + MIME content type application/pdf (described in Internet RFC + 2045, Multipurpose Internet Mail Extensions (MIME), Part One: + Format of Internet Message Bodies; see the Bibliography). If set, all + other flags are ignored except GetMethod. + + + + + If set, any submitted field values representing dates are + converted to the standard format described. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and + ExportFormat flags are clear) and the IncludeAnnotations flag is + set. If set, it includes only those markup annotations whose T entry + matches the name of the current user, as determined + by the remote server to which the form is being submitted. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the submitted FDF excludes the F entry. + + + + + Meaningful only when the form is being submitted in + Forms Data Format (that is, when both the XFDF and ExportFormat + flags are clear). If set, the F entry of the submitted FDF is a file + specification containing an embedded file stream representing the + PDF file from which the FDF is being submitted. + + + + + Represents the activation states for the 3D annotation. + + + + + Gets or sets the activation mode for the annotation. + + + + + Gets or sets the deactivation mode for the annotation. + + + + + Gets or sets the activation state for the annotation. + + + + + Gets or sets the deactivation state for the annotation. + + + + + Gets or sets a value indicating whether the toolbar should be displayed when the annotation is activated or not. + + If true, a toolbar should be displayed by default when the annotation is activated and given focus. If false, a toolbar should not be displayed by default. + + + + Gets or sets a value indicating whether the UI for managing the 3D artwork should be displayed when the annotation is activated. + + If true, the user interface should be made visible when the annotation is activated. If false, the user interface should not be made visible by default. + + + + Initializes the new instance of class. + + + + + Represents the lighting to apply for the 3D artwork. + + + + + Gets or sets the type of the animation. + + + + + Gets or sets the play count. + + + + + Gets or sets the rendering opacity. + A positive number specifying the time multiplier to be used when running the animation. A value greater than one shortens the time it takes to play the animation, or effectively speeds up the animation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + PDF 3D Animation Type. + + + + Represents the background appearance for 3D artwork. + + + + + Gets or sets the background color. + + The object specifying the background color for the 3D artwork. + + + + Gets or sets a value indicating how the background is applied. + + True if the background is applied to entire annotation, false if the background is applied to annotation's 3D view box only. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifying the background color for the 3D artwork. + + + + Initializes a new instance of the class. + + + + + + Represents the clipping portion of the 3D artwork for the purpose of showing artwork cross sections. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the center of the cutting plane. + A three element array specifying the center of rotation on the cutting plane in world space coordinates. + + + + + Gets or sets the cutting plane color. + + + + + Gets or sets the intersection color. + + + + + Gets or sets a value indicating whether the intersection of cutting plane with 3D artwork is visible. + + + + + Gets or sets the cutting plane opacity. + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + + Gets or sets the orientation of the cutting plane. + A three-element array specifying the orientation of the cutting plane in world space, where each value represents the orientation in relation to the X, Y, and Z axes, respectively. + If the array has more than 3 elements, only the first 3 will be considered. Exactly one of the values must be null, indicating an initial state of the cutting plane that is perpendicular to the corresponding axis and clipping all geometry on the positive side of that axis. The other two values must be numbers indicating the rotation of the plane, in degrees, around their corresponding axes. The order in which these rotations are applied should match the order in which the values appear in the array. + + + + + Represents the collection of objects. + + + + + Adds the specified value. + + The value. + + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of. + + The value. + + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The value. + + + + Gets or sets the at the specified index. + + + + + Represents the lighting scheme for the 3D artwork. + + + + + Gets or sets the Lighting style of the 3D artwork. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifies the style of the 3D artwork. + + + + Represents the particular areas of 3D artwork and the opacity and visibility with which individual nodes are displayed. + + + + + Gets or sets a value indicating whether the node is visible or not. + + True if the node is visible. + + + + Gets or sets the node name. + + The name of the 3D node. + + + + Gets or sets the cutting plane opacity. + + A number indicating the opacity of the cutting plane using a standard additive blend mode. + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + Gets or sets the 3D transformation matrix. + + A 12-element 3D transformation matrix that specifies the position and orientation of this node, relative to its parent, in world coordinates. + If the array has more than 12 elements, only the first 12 will be considered. + + + + Initializes a new instance of the class. + + + + + Represents a collection of objects. + + + + + Adds the specified value. + The value. + + + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of. + + The value. + + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The value. + + + + Gets or sets the at the specified index. + + + + + Represents the mapping of 3D camera co-ordinates onto the target coordinate system of the annotation. + + + + + Gets or sets the type of the projection. + + + + + Gets or sets the projection ClipStyle. + + + + + Gets or sets the scale mode for ortho graphic projections. + + + + + Gets or sets the far clipping distance. + + + + + Gets or sets the field of view. + + + + + Gets or sets the near clipping distance. + + + + + Gets or sets the projection scaling. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Pdf3D Projection Type. + + + + Represents the rendering mode of the 3D artwork. + + + + + Gets or sets the type of the projection. + + + + + Gets or sets the Auxiliary color. + + + + + Gets or sets the Face color. + + + + + Gets or sets the crease value. + The crease value is specified in degrees, from 0 to 360. + + + + + Gets or sets the rendering opacity. + + The opacity is given in percents, 100 is full opacity, 0 is no opacity. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object specifies the rendering style of the 3D artwork. + + + + Represents a attributes to be applied to the virtual camera associated with a 3D annotation. + + + + + Gets or sets the background for this view. + + + + + Gets or sets the 3D transformation matrix. + + A 12-element 3D transformation matrix that specifies a position and orientation of the camera in world coordinates. + If the array has more than 12 elements, only the first 12 will be considered. + + + + Gets or sets the center of orbit for 3D artwork. + + A non-negative number indicating a distance in the camera coordinate system along the z axis to the center of orbit for this view. + If this value is negative, the viewer application must determine the center of orbit. + + + + Gets the list of cross sections for this view. + A list of PDF3DCrossSection objects available for this view. + + + + + Gets or sets the view's external name. + + The external name of the view, suitable for presentation in a user interface. + + + + Gets or sets the view's internal name. + + + + + Gets or sets the Creates a new page and adds it as the last page of the document scheme for this view. + + + + + Gets the list of 3D nodes for this view. + + A list of PDF3DNode objects available for this view. + + + + Gets or sets the projection for this view. + + + + + Gets or sets the rendering mode for this view. + + + + + Gets or sets a value indicating whether nodes specified in the Nodes collection are returned to their original states (as specified in the 3D artwork) before applying transformation matrices and opacity settings specified in the node dictionaries. + + + + + Gets or sets the name of the view node. + + The view node in the content stream defines all the properties for viewing the 3D artwork. If both ViewNodeName and CameraToWorldMatrix are specified, then ViewNodeName takes precedence. + + + + Initializes a new instance of the class. + + + + + Represents a collection of Pdf3DView objects. + + + + + Adds the specified value. + + The value. + Pdf3DView + + + + Determines whether [contains] [the specified value]. + + The value. + + if it contains the specified value, set to true. + + + + + Indexes the of the Pdf3DView object. + + The value. + Pdf3DView + + + + Inserts the specified index. + + The index. + The value. + + + + Removes the specified value. + + The Pdf3DView object. + + + + Gets or sets the at the specified index. + + Pdf3DView + + + + Specifies an activation state of the 3D annotation. + + + + + Represents that the state in which the artwork has been read and a run-time instance of + the artwork has been created. In this state, it can be rendered but script-driven + real-time modifications (that is, animations) are disabled. + + + + + Represents that the artwork is instantiated, and it is being modified in real time to + achieve some animation effect. In the case of keyframe animation, the artwork is + live while it is playing and then reverts to an instantiated state when playing + completes or is stopped. + + + + + Specifies the available modes for activating a 3D annotation. + + + + + Represents that the annotation should be activated as soon as the page containing + the annotation is opened. + + + + + Represents that the annotation should be activated as soon as any part of the page + containing the annotation becomes visible. + + + + + Represents that the annotation should remain inactive until explicitly activated + by a script or user action. + + + + + Specifies the available modes for deactivating a 3D annotation. + + + + + Represents that the annotation should be deactivated as soon as the page is closed. + + + + + Represents that the annotation should be deactivated as soon as the page containing + the annotation becomes invisible. + + + + + Represents that the annotation should remain active until explicitly deactivated by a + script or user action. + + + + + Specifies the available states upon deactivating a 3D annotation. + + + + + Represents the initial state of the artwork before it has been used in any way. + + + + + Represents that the state in which the artwork has been read and a run-time instance of + the artwork has been created. In this state, it can be rendered but script-driven + real-time modifications (that is, animations) are disabled. + + + + + Represents that the artwork is instantiated, and it is being modified in real time to + achieve some animation effect. In the case of keyframe animation, the artwork is + live while it is playing and then reverts to an instantiated state when playing + completes or is stopped. + + + + + Specifies the available styles for applying light to 3D artwork. + + + + + The Lights as specified in the 3D artwork. + + + + + The lighting specified in the 3D artwork is ignored. + + + + + Three blue-grey infinite lights. + + + + + Three light-grey infinite lights. + + + + + One yellow, one aqua, and one blue infinite light. + + + + + Three grey infinite lights. + + + + + One red, one green, and one blue infinite light. + + + + + Three blue infinite lights. + + + + + Three red infinite lights. + + + + + Six grey infinite lights aligned with the major axes. + + + + + Three grey infinite lights and one light attached to the camera. + + + + + Single infinite light attached to the camera. + + + + + Specifies the available clipping style of the 3D annotation. + + + + + Represents the Clipping style. + + + + + Represents the Clipping style. + + + + + Specifies the available Ortho projection scaling mode of the 3D annotation. + + + + + Scale to fit the width of the annotation. + + + + + Scale to fit the height of the annotation. + + + + + Scale to fit the lesser of width or height of the annotation. + + + + + Scale to fit the greater of width or height of the annotation. + + + + + No scaling should occur due to binding. + + + + + Specifies the available projection type of the 3D annotation. + + + + + Represents Orthographic projection + + + + + Represents Perspective projection. + + + + + Specifies the available rendering style of the 3D artwork. + + + + + Displays textured and lit geometric shapes. In the case of artwork + that conforms to the Universal 3D File Format specification, these + shapes are triangles. + + + + + Displays textured and lit geometric shapes (triangles) with single + color edges on top of them. + + + + + Displays textured and lit geometric shapes (triangles) with an added + level of transparency. + + + + + Displays textured and lit geometric shapes (triangles) with an added + level of transparency, with single color opaque edges on top of it. + + + + + Displays the bounding box edges of each node, aligned with the axes + of the local coordinate space for that node. + + + + + Displays bounding boxes faces of each node, aligned with the axes of + the local coordinate space for that node, with an added level of transparency. + + + + + Displays bounding boxes edges and faces of each node, aligned with the axes of + the local coordinate space for that node, with an added level of transparency. + + + + + Displays only edges in a single color. + + + + + Displays only edges, though interpolates their color between their two vertices + and applies lighting. + + + + + Displays edges in a single color, though removes back-facing and obscured edges. + + + + + Displays only vertices in a single color. + + + + + Displays only vertices, though uses their vertex color and applies lighting. + + + + + Displays silhouette edges with surfaces, removes obscured lines. + + + + + Displays silhouette edges with lit and textured surfaces, removes obscured lines. + + + + + Displays silhouette edges with lit and textured surfaces and an additional emissive + term to remove poorly lit areas of the artwork. + + + + + Specifies the available animation style for rendering the 3D artwork. + + + + + Represents that the Keyframe animations should not be driven directly by + the viewer application. This value is used by documents that are intended + to drive animations through an alternate means, such as JavaScript. + + + + + Represents that the Keyframe animations are driven linearly from beginning to end. + This animation style results in a repetitive playthrough of the animation, + such as in a walking motion. + + + + + Represents that the Keyframe animations should oscillate along their time range. + This animation style results in a back-and-forth playing of the animation, + such as exploding or collapsing parts. + + + + + Represents the annotation with associated action. + + + + + Initializes a new instance of the class. + + Bounds of the annotation. + The Pdf action. + + + + Represents base class for link annotations with associated action. + + + + + Gets or sets the action for the link annotation. + + The action to be executed when the link is activated. + + + + Initializes a new instance of the class. + + Bounds of the annotation. + + + + Initializes a new instance of the class. + + Bounds specifies the location of the drawn text. + The specifies an action to be executed when the link is activated. + + + + Represents the states of an annotation's appearance. + + + + + Gets or sets the active state template. + + The object specifies an active state template. + + + + Gets or sets the inactive state. + + The object specifies an inactive state template. + + + + Gets or sets the mapping name of the active state. + + String specifies the mapping name of the active state. + + + + Gets or sets the mapping name of the inactive state. + + String specifies the mapping name of the inactive state. + + + + Initializes a new instance of the class. + + + + + Represents the appearance of an annotation. + + + + + Gets or sets object which applied to annotation in normal state. + + + + + Gets or sets object which applied to the annotation on hovering the mouse. + + + + + Gets or sets object which applied to an annotation when mouse button is pressed. + + + + + Initializes a new instance of the class. + + The object specifies the annotation. + + + + Represents extended appearance of the annotation. It has two states such as On state and Off state. + + + + + Gets the normal appearance of the annotation. + + The object specifies the normal appearance of the annotation. + + + + Gets the appearance when mouse is hovered. + + The object specifies the annotation appearance when the mouse is hovered on it. + + + + Gets the pressed state annotation. + + The appearance in pressed state. + + + + Initializes a new instance of the class. + + + + + The pdf fixed print dictionary. + + + + + The dictionary. + + + + + Initialize an instance. + + + + + Initializes annotation object. + + + + + Set the matrix. + + The matrix + + + + Set the horizontal translation. + + The horizontal + + + + Set the vertical translation. + + The vertiacl + + + + Gets the element. + + The element + + + + Gets or sets the rectangular diffecences + + + + + Gets or sets the user who created the annotation. + + + + + Gets or sets the annotation's subject. + + + + + Represents a line annotation. + + + + + To specifying Caption Type + + + + + To specifying author + + + + + To specifying subject + + + + + Gets or sets whether the line annotation caption should be displayed. + + true if the line caption should be displayed, otherwise false. + + + + Gets or sets Leader Line + + + + + Gets or sets Leader Line Extension + + + + + Gets or sets Border style of the Line Annotation. + + A enumeration member specifying the border style for the line. + + + + Gets or sets the style used for the beginning of the line. + + A enumeration member specifying the begin style for the line. + + + + Gets or sets the style used for the end of the line. + + A enumeration member specifying the end style for the line. + + + + Gets or sets the line caption text type. + + A enumeration member specifying the line caption type. + + + + Gets or sets LineIntent + + + + + Gets or sets Inner Color of the PdfLine + + + + + Gets or sets Background Color of the PdfLine + + + + + To specifying author + + + + + To specifying subject + + + + + Initializes new instance of class. + + The line points. + + + + Initializes new instance of class. + + The line points. + The line caption text. + + + + Initializes new instance of class. + + Bounds of the annotation. + + + + Represents the border style of the Line annotation. + + + + + Gets or sets the width. + + The line border width. + + + + Gets or sets the border style. + + The line border style. + + + + Gets or sets the Line Dash + + The line border dash array. + + + + Initializes a new instance of the class. + + + + + Represents the base class for link annotations. + + + + + Initializes new instance of class. + + + + + Initializes new instance of class. + + Bounds of the annotation. + + + + Represents the 3D annotation for a PDF document. + + + + + The crossTable + + + + + Gets the list of available views for the current 3D artwork. + + + + + Gets or sets the default view. + + The default view. + + + + Gets or sets the code to execute when the 3D artwork is instantiated. + Javascript code to be executed when the 3D artwork is instantiated. + + + + + Gets or sets the activation options for the annotation. + + Defines the times at which the annotation should be activated and deactivated and the state of the 3D artwork instance at those times. + + + + Gets a 3d viedo file from Pdf3DAnnotation + + + + Filename with Full path + + + + Initializes a new instance of the class. + + Bounds of the annotation. + + + Bounds of the annotation. + Name of the sound file. + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents Ink annotation in the PDF. + + + + + Initialize a new instance. + + annotation points position + The annotation points position, defining the location of the annotation + on the page in default user space units. + + + + + + Initialize a new instance. + + The annotation dictionary. + + + + Gets or sets the annotation opacity. + The opacity is given in decimal, 1 is full opacity, 0 is no opacity. + + + + + Represents the ink annotation class. + + + + + The ink list. + + + + + The crossTable + + + + + The dictionary + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents the polygon annotation. + + + + + The radius. + + + + + The appearance. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The vertice coordinates. + + + + + The date and time when the annotation was most recently modified. + + + + + The border effect. + + + + + Gets or sets appearance of the annotation. + + + + + Initialize a new instance of PdfPolygonAnnotation. + + The page + The polygon vertices + + + + Get the vertices + + Return vertices + + + + Get the radius. + + The radius + + + + Generate cloud border arctangle. + + The polygon points + The rectangles + The start angles in degrees + The sweep angles in degrees + + + + Reseting the graphics matrix. + + + + + Draw the ap content. + + + + + Represents the poly line annotation. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The radius. + + + + + The appearance. + + + + + The user who created the annotation. + + + + + The description of the annotation. + + + + + The vertice coordinates. + + + + + Gets or sets appearance of the annotation. + + + + + Initialize instance. + + + + + + + + + + Create rectangle. + + + + + Initialize a new instance of PdfPolygonAnnotation. + + The page + The polygon vertices + + + + Draw the ap content. + + + + + + + + + + + Represents the Rubber Stamp annotation for a PDF document. + + + + + internal varable for the rubberstamp annotation icon + + + + + Annotation's appearance. + + + + + The annotation`s creater + + + + + The annotation`s creat time + + + + + The annotation`s subject. + + + + + Gets or sets the annotation's icon. + + A enumeration member specifying the icon for the annotation when it is displayed in closed state. + + + + Gets or sets appearance of the annotation. + + + + + Gets or set the name of the annotation,the entry is deleted by default when the + input value is an empty string + + + + + Gets or sets the annotation's subject. + + + + + Gets or sets the creation date. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + RectangleF structure that specifies the bounds of the annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the rubber stamp annotation. + + + + Initializes annotation object. + + + + + Saves an annotation. + + + + + The water mark annotation. + + + + + The fixed print dictionary. + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the fixed print annotation. + + + + Set the matrix. + + The matrix + + + + Set the horizontal translation. + + The horizontal + + + + Set the vertical translation. + + The vertiacl + + + + Initializes annotation object. + + + + + Saves an annotation. + + + + + Represents the class for text web link annotation. + + + + + Gets or sets the Url address. + + + + + Initializes a new instance of the class. + + + + + Draws a Text Web Link on the Page + + The page where the annotation should be placed. + The location of the annotation. + Pdf Layout result + + + + Draw a Text Web Link on the Graphics + + The object specifies where annotation should be placed.. + The location of the annotation. + + + + Add annotation to page. + + The page + The advance + + + + Represents the text markup annotation. + + + + + Gets or sets TextMarkupAnnotationType . + + + + + Gets or sets text markup color. + + + + + Initializes new instance of class. + + + + + Initializes new instance of class. + + The markup annotation title. + The string specifies the text of the annotation. + The string specifies the markup text of the annotation. + The location of the markup text annotation. + The specifies the text appearance of the markup text annotation. + + + + Initializes new instance of class. + + The title of the annotation. + The text of the annotation. + The bounds of the annotation. + The font of the annotation. + + + + Initializes new instance of class. + + The title of the annotation. + The text of the annotation. + The bounds of the annotation. + + + + Initializes new instance of class. + + The bounds of the annotation. + + + + Represents the base class for loaded annotation classes. + + + + + Represents the Form field identifier + + + + + Gets and sets the Page. + + + + + Sets the name of the field. + + New name of the field. + + + + Represents the attachment annotation from the loaded document. + + + + + Gets or sets the icon of the annotation. + + + + + Gets the attachment file name of the annotation. + + + + + Represents the loaded caret annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + An array that describing the numerical differences between the annotation rectganle entry + and the actual boundaries + + + + + specifying a symbol + + + + + Gets or sets the symbol + + + + + Gets or sets the rectangular diffecences array + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Set the rectangular differences array + + An float array + + + + Gets the symbol + + The symbol + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true or false + + + + Check the validity of the number in array + + The array + Validity return true or false + + + + Represents the loaded document link annotation class. + + + + + Gets or Sets the destination of the annotation. + + + + + Represents the loaded file link annotation class. + + + + + Gets or sets the filename of the annotation. + + + + + Represents the free text annotation widget. + + + + + An array that describing the numerical differences between the annotation rectganle entry + and the actual boundaries + + + + + Gets or sets the date and time when the annotation was most recently modified. + + + + + Gets or sets the rectangular diffecences array + + + + + Gets a name describing the intent of the free text annotation. + + + + + Get the line ending style + + + + + Get the callout line + + + + + Gets the border width. + + + + + Gets the border color + + + + + Gets the border style + + + + + Gets the rectangular diffecences array + + An float array + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true ,or false + + + + Check the validity of the number in array + + The array + Validity return true ,or false + + + + Represents the loaded line annotation class. + + + + + To specifying author + + + + + To specifying subject + + + + + Gets or sets the back color of the annotation. + + + + + Gets or sets the begin line style of the annotation. + + + + + Gets or sets the caption type of the annotation. + + + + + Gets or sets the end line style of the annotation. + + + + + Gets or sets the inner line color of the annotation. + + + + + Gets or sets the leader line of the annotation. + + + + + Gets the endpoint of the annotation, it's at the bottom left + The origin of coordinate system corresponds to the lower-left corner of page.The positive x axis extends horizontally to the right and the positive y axis vertically upward + + + + + Gets the startpoint of the annotation, it's at the bottom left + The origin of coordinate system corresponds to the lower-left corner of page.The positive x axis extends horizontally to the right and the positive y axis vertically upward + + + + + Gets or sets the leader ext of the annotation. + + + + + Gets the line border of the annotation. + + + + + Gets or sets the line caption of the annotation. + + + + + Gets or sets the line intent of the annotation. + + + + + To specifying author + + + + + To specifying subject + + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Get begin line style point data. + + The point array data + + + + Get end line style point data. + + The point array data + + + + Get open arrow style data. + + The point + The point array data + + + + Represents the loaded markup annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Gets or sets the primary markup annotation + + + + + Gets or set the rely type + + + + + Gets or sets the intent + + + + + Gets or sets the rich content + + + + + Gets the popup annotation + + + + + Gets or sets the annotation's author. + + + + + Gets or sets the date and time when the annotation was created. + + + + + Gets or sets the annotation's subject. + + + + + Gets the opacity value to be used. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Sets the name of the annotation,the entry is deleted by default when the input + value is an empty string + + New name of the annotation. + + + + Get the promary markup annotation + + The promary markup annotation + + + + Gets the rely type,deauflt value is MarkupAnnotationRelyType.R + + The rely type + + + + Gets teh rich content + + rich content + + + + Gets the popup annotation + + The popup annotation + + + + Gets the annotation's author. + + + + + + Gets the date and time when the annotation was created. + + The time when the annotation was created + + + + Gets the intent + + The intent + + + + Gets the opacity + + The opacity + + + + Gets the annotation's subject. + + The annotation's subject + + + + Represents the loaded text PolygonAndPolyLine annotation class. + + + + + CrossTable + + + + + Dictionary + + + + + The vertice coordinates. + + + + + Gets or sets the inner line color of the annotation. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Get the vertices + + Return vertices + + + + Set the vertices + + The pointf array + + + + Check the vertices is valid + + The points + if vaild ,return true,or false + + + + Gets back color of the annotation. + + The back color. + + + + Set the inner line color + + The pdf rgb color + + + + Represents the loaded text Polygon annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Get or set the intent + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Gets the intent + + The intent + + + + Represents the loaded text Polygon annotation class. + + + + + The crossTable + + + + + The dictionary + + + + + Get or set the intent + + + + + Get or set the line ending style + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Gets the intent + + The intent + + + + Gets the intent + + The intent + + + + Build appearance dictioanry. + + The appearance dictioanry + + + + Build data. + + The ap builder + + + + Represents the loaded pop up annotation class. + + + + + Gets or sets the open option of the popup annotation. + + + + + Gets or sets the icon of the annotation. + + + + + Represents the loaded rubber stamp annotation class. + + + + + Gets or sets the icon of the annotation. + + + + + Represents the loaded sound annotation class. + + + + + Gets or sets the sound of the annotation. + + + + + Gets the filename of the annotation. + + + + + Gets or sets the icon of the annotation. + + + + + The crossTable + + + + + The dictionary + + + + + Gets or sets the inner line color of the annotation. + + + + + Gets or sets the rectangular diffecences array + + + + + Gets back color of the annotation. + + The back color. + + + + Set the inner line color + + The pdf rgb color + + + + Gets the rectangular diffecences array + + An float array + + + + Set the rectangular differences array + + + + + Check the validity of the array + + The float array + Validity return true ,or false + + + + Check the validity of the number in array + + The array + Validity return true ,or false + + + + Represents the PdfLoadedStyledAnnotation. + + + + + Gets or sets the color. + + The color. + + + + Gets or sets the text. + + The text. + + + + + Gets or sets the annotation's border. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the annotation flags. + + + + + The author of the annotation. + + + + + The state of the annotation. + + + + + The stateModel of the annotation. + + + + + Gets the annotation's state. + + + + + Gets the annotation's stateModel. + + + + + Gets the iconname value to be used. + + + + + Gets the open option of the popup annotation. + + + + + Represents the loaded text markup annotation class. + + + + + Gets or sets the annotation Type. + + + + + Gets or sets the color. + + + + + Represents the loaded text web link annotation class. + + + + + Gets or sets the Url. + + + + + Represents the loaded unique resource identifier annotation class. + + + + + Gets or sets the unique resource identifier text of the annotation. + + + + + The water mark annotation. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + Text of the fixed print annotation. + + + + Initializes annotation object. + + + + + Represents the loaded web link annotation class. + + + + + Specifies the name of an icon to be used in displaying the sound annotation. + + + + + Speaker icon of sound link. + + + + + Microphone icon of sound link. + + + + + Specifies the type of icon to be used in displaying file attachment annotations. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Type of icon used in file attachment annotation. + + + + + Specifies the enumeration of the annotation flags. + + + + + Default value. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Annotation flag's key. + + + + + Specifies the enumeration of popup annotation icons. + + + + + Indicates note popup annotation. + + + + + Indicates comment popup annotation. + + + + + Indicates help popup annotation. + + + + + Indicates insert popup annotation. + + + + + Indicates key popup annotation. + + + + + Indicates new paragraph popup annotation. + + + + + Indicates paragraph popup annotation. + + + + + Specifies the enumeration of popup annotation icons. + + + + + Indicates note text annotation. + + + + + Indicates comment text annotation. + + + + + Indicates help text annotation. + + + + + Indicates insert text annotation. + + + + + Indicates key text annotation. + + + + + Indicates new paragraph text annotation. + + + + + Indicates paragraph text annotation. + + + + + Specifies the enumeration of rubber stamp annotation icons. + + + + + Indicates additional names rubber stamp annotation + + + + + Indicates approved rubber stamp annotation + + + + + Indicates AsIs rubber stamp annotation + + + + + Indicates confidential rubber stamp annotation + + + + + Indicates departmental rubber stamp annotation + + + + + Indicates draft rubber stamp annotation + + + + + Indicates experimental rubber stamp annotation + + + + + Indicates expired rubber stamp annotation + + + + + Indicates final rubber stamp annotation + + + + + Indicates for comment rubber stamp annotation + + + + + Indicates for public release rubber stamp annotation + + + + + Indicates not approved rubber stamp annotation + + + + + Indicates not for public release rubber stamp annotation + + + + + Indicates sold rubber stamp annotation + + + + + Indicates topsecret rubber stamp annotation + + + + + Specifies the Line Ending Style to be used in the Line annotation. + + + + + Indicates Square + + + + + Indicates Circle + + + + + Indicates Diamond + + + + + Indicates OpenArrow + + + + + Indicates ClosedArrow + + + + + Indicates None + + + + + Indicates ROpenArrow + + + + + Indicates Butt + + + + + IdicaIndicatestes RClosedArrow + + + + + Indicates Slash + + + + + Specifies the Line Border Style is to be used in the Line annotation. + + + + + Indicates Solid + + + + + Indicates Dashed + + + + + Indicates Beveled + + + + + Indicates Inset + + + + + Indicates Underline + + + + + Specifies the Line Intent Style is to be used in the Line annotation. + + + + + Indicates Line Arrow as intent of the line annotation + + + + + Indicates LineDimension as intent of the line annotation + + + + + Specifies the Line Caption Type is to be used in the Line annotation. + + + + + Specifies the Style of the Text Markup Annotation + + + + + The Text Markup Annotation Type is Highlight. + + + + + The Text Markup Annotation Type is Underline. + + + + + The Text Markup Annotation Type is Squiggly. + + + + + The Text Markup Annotation Type is StrikeOut. + + + + + Specifies the annotation types. + + + + + Highlight type annotation. + + + + + Underline type annotation. + + + + + StrikeOut type annotation. + + + + + Squiggly type annotation. + + + + + AnnotationStates type. + + + + + TextAnnotation type. + + + + + LinkAnnotation type. + + + + + DocumentLinkAnnotation type. + + + + + FileLinkAnnotation type. + + + + + FreeTextAnnotation type. + + + + + LineAnnotation type. + + + + + SquareandCircleAnnotation type. + + + + + PolygonandPolylineAnnotation type. + + + + + TextMarkupAnnotation type. + + + + + CaretAnnotation type. + + + + + RubberStampAnnotation type. + + + + + LnkAnnotation type. + + + + + PopupAnnotation type. + + + + + FileAttachmentAnnotation type. + + + + + SoundAnnotation type. + + + + + MovieAnnotation type. + + + + + ScreenAnnotation type. + + + + + WidgetAnnotation type. + + + + + PrinterMarkAnnotation type. + + + + + TrapNetworkAnnotation type. + + + + + WatermarkAnnotation type. + + + + + TextWebLinkAnnotation type. + + + + + 3DAnnotation type. + + + + + No annotation. + + + + + Polygon Annotation type + + + + + PolyLine Annotation type + + + + + Square Annotation type + + + + + Ink Annotation type + + + + + Circle Annotation type + + + + + polygon annotation intent type + + + + + Indicates that the annotaiton is intended to function as a cloud + + + + + Indicates that the annotaiton is intended to function as dimension + + + + + polyLine annotation intent type + + + + + Indicates that the annotaiton is intended to function as dimension + + + + + Represents the base class for annotation objects. + + + + + The name of the annotation. + + + + + The ModifiedDate of the annotation. + + + + + Gets or sets the background of the annotations icon when closed. + The title bar of the annotations pop-up window. + The border of a link annotation. + + The color. + + + + Gets annotation's modified date. + + + + + Gets or sets annotation's border. + + + + + + Gets or sets location of the annotation. + + + + + Gets or sets the name of the annotation. + Note: The annotation name, a text string uniquely identifying it among all the annotations on its page. + + + + + Gets or sets size of the annotation. + + + + + Gets a page which this annotation is connected to. + + + + + Gets or sets content of the annotation. + + + + + Gets or sets annotation flags. + + + + + Set ap dictionary. + + + + + Build appearance dictionary. + + The appearance dictionary + + + + Represents the appearance of an annotation's border. + + + + + Gets or sets a horizontal corner radius. + + + + + Gets or sets a vertical corner radius. + + + + + Gets or sets the width of annotation's border. + + A float value specifying the width of the annotation's border. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A float value specifying the width of the annotation's border. + + + + Initializes a new instance of the class. + + A float value specifying the width of the annotation's border. + A float value specifying the horizontal corner radius value. + A float value specifying the vertical corner radius value. + + + + Represents collection of objects. + + + + + Gets the object at the specified position. + + The index value of the annotation in the collection. + Annotation object at the specified position. + + + + Initializes a new instance of the class. + + + + + Creates new annotation collection for the specified page. + + Page which collection is created for. + + + + Adds a new annotation to collection. + + The new annotation to be added to collection. + Position of the annotation in collection. + + + + Cleares the collection. + + + + + Searches the collection for the specified annotation. + + The annotation to search for. + True, if annotation is contained in collection. Otherwise - false. + + + + Searches the collection for the specified annotation. + + The Annotation to search. + Index of the element in the collection, if exists, or -1 if the element does not exist in the collection. + + + + Inserts annotation to the collection at the specified index. + + Index where to insert the element. + The annotation to insert in the collection. + + + + Removes the element at the specified field. + + The index of the element to remove. + + + + Removes the element from the collection. + + The element to remove. + + + + Represents an attachment annotation. + + + + + Gets or Sets attachment's icon. + + A enumeration member specifying the icon for the annotation when it is displayed in closed state. + + + A string value specifying the full path to the file to be embedded in the PDF file. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded in the PDF file. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded in the PDF file. + A byte array specifying the content of the annotation's embedded file. + If both FileName and FileContent are specified, the FileContent takes precedence. + + + The rectangle. + A string value specifying the full path to the file to be embedded in the PDF file. + The stream specifying the content of the annotation's embedded file. + If both FileName and FileContent are specified, the FileContent takes precedence. + + + + Represents annotation object with holds link on another location within a document. + + + + + Gets or sets the destination of the annotation. + + + + + Initializes new instance. + + Bounds of the annotation. + + + + Initializes new instance. + + Bounds of the annotation. + Destination of the annotation. + + + + Represents a base class for file attachment annotation. + + + + + The crossTable + + + + + Gets or sets file name of the annotation. + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + The dictionary. + The cross table. + + + + Represents the annotation link to external file. + + + + A string value specifying the full path to the file to be embedded. + + + + Gets or sets the action. + + The action to be executed when the annotation is activated. + + + Bounds of the annotation. + A string value specifying the full path to the file to be embedded. + + + + Represents a Base class for popup annotation which can be either in open or closed state. + + + + + Gets or sets icon style. + + + + + Gets or sets value whether annotation is initially open or closed + + + + + Gets or sets appearance of the annotation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + The string specifies the annotation text. + + + + Represents the sound annotation. + + + + + Gets or sets the icon to be used in displaying the annotation. + + The enumeration member specifying the icon for the annotation. + + + + Gets or sets the sound. + + The object specified a sound for the annotation. + + + The string specifies the file name of the sound annotation. + + + RectangleF structure that specifies the bounds of the annotation. + The string specifies the file name of the sound annotation. + + + + Represents the Uri annotation + + + + + Gets or sets the Uri address. + + + + + Gets or sets the action. + + The object specifies the action of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + + + + Initializes a new instance of the class. + + RectangleF structure that specifies the bounds of the annotation. + unique resource identifier path. + + + + return text from image by OCR. + + + + + + + This extractor keeps track of the current Y position of each string. If it detectsthat the y position has changed, it inserts a line break into the output.If the PDF extractor text in a non-top-to-bottom fashion, this will result in the text not being a true representation of how it appears in the PDF. + + The Extracted Text. + + + + Represents the utility class to store information about Images and its location. + + + + + The number of indirect objects. + + + + + The original stream object. + + + + + Gets the Image Boundary location. + + + + + Gets the Image,save to stream. + + + + + Gets the Image index. + + + + + The number of indirect object. + + + + + The original stream object. + + + + + Whether the current image contains SMask entry + + The current image stream obejct + if has return true or false + + + + dispose the image resources + + + + + Pdf to html Set Parameter + + + + + In 1000 The Split Page + + + + + In 1000 The Split Page,default 1000 + + + + + wheather embedded image + + + + + Pdf to Html, Set Parameter + + + + + Writes the doc Comment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Get file Folder + + + + + write doc comment + + + + + + + Save file Relative Path + + + + + + + Save file folder + + + + + + + write doc comment + + + + + + Represents the path data reader. + + + + + Gets a value indicating whether this is EOF. + + true if EOF; otherwise, false. + + + + Gets text length. + + + + + Gets or sets the position. + + The position. + + + + Initializes a new instance of the PathDataReader class. + + + + + + Reads the symbols + + Symbol + + + + Gets the next symbol + + Symbol + + + + Gets the next symbol position. + + The next symbol position + + + + Updates the current position of the reader + + Length of the path data + + + + Reads the float value from the path data + + float value + True if the next value is float + + + + Reads the pint form the path data + + Point value + True if the next parameter is point + + + + Reads the points from the path data + + Points + + + + Checks if the current character is symbol + + True if the character is a symbol + + + + Reads the Name of the element + + XPS data + Reader position + Name + + + + Reads the boolean value from the Data + + XPS data + Reader position + True if the next value is boolean + + + + Reads the float from the data. + + XPS data + Reader position + float value + + + + Reads the point from the data + + XPS data + Reader position + point + + + + Reads the matrix from the data + + XPS data + Reader position + Matrix + + + + + Find item by searching in the .rels file + + + The index of item + + + + Get item from alternate content + + alternate content data + the type of item + the item + + + + Enumerator representing the available XPS elements. + + + + + Create a new ttf glyph. + + The ttf font + The glyph index + A new ttf glyph info + + + + Add char code to glyph info. + + The microsft + The glyph info + The char code + + + + Whether exsit glyph char code + + The true type reader + The glyph index + The char code + if exsit return true or false + + + + Bug897 + + + + + + + Converts the alternateContent graphics to PDF graphics. + + + + + + Converts the choice graphics to PDF graphics. + + + + + + Converts the fallback graphics to PDF graphics. + + + + + + Converts the baloo graphics to PDF graphics. + + + + + + Get the base image and mask image + + + + + + + + The index of the profile in the xps archive + + + + + The data of icc proifle + + + + + The number of color components + + + + + Initialize a new ICCProfile + + The index of the profile in the xps archive + The data of icc proifle + The number of color components + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Free users can only add up to 10 pages + + + + + Represents a base class for all barcode types. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Set the barcode text. + + + + Gets or sets the back color of the barcode. + + + + + Gets or sets the bar color of the barcode. + + + + + Gets or sets the text color of the barcode text. + + + + + Gets or sets the narrow bar width. + + + + + Gets or Sets the barcode text. + + + + + Gets or sets the location to render barcode in the PDF Document. + + + + + Gets or sets the empty area which is to be allocated around the barcode. + + + + + Gets or sets the bar height. + + + + + Gets the size of the barcode. + + + + + Gets or sets the rectangular area occupied by the barcode. + + + + + Represents the general barcode exception class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + User defined error message. + + + + Initializes a new instance of the class. + + User defined error message. + The inner exception. + + + + Represents the Class for specifying Quiet zones around the barcode. + + + + + Gets or sets the quiet zones at the right side of the barcode. + + + + + Gets or sets the quiet zones at Top of the barcode. + + + + + Gets or sets the quiet zones at the left side of the barcode. + + + + + Gets or sets the quiet zones at bottom of the barcode. + + + + + Gets or sets the quiet zones around the bar code. + + + + + Check whether all the margin values are equal. + + + + + Represents a Codabar barcode. + + This symbology allows the encoding of strings of up to 16 digits, 10 numeric digits (0 through 9) and + 6 special non alpha characters ("+", "-", "$", "/", ":", "."). + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code11 barcode. + + Only the following symbols are allowed in a Code 11 barcode: 0 1 2 3 4 5 6 7 8 9 - + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + The Barcode Text. + + + + Represents a Code128A barcode. + + Only the following symbols are allowed in a Code 128 A barcode: NUL (\x00) SOH (\x01) STX (\x02) ETX (\x03) EOT (\x04) ENQ (\x05) ACK (\x06) BEL (\x07) BS (\x08) HT (\x09) LF (\x0A) VT (\x0B) FF (\x0C) CR (\x0D) SO (\x0E) SI (\x0F) DLE (\x10) DC1 (\x11) DC2 (\x12) DC3 (\x13) DC4 (\x14) NAK (\x15) SYN (\x16) ETB (\x17) CAN (\x18) EM (\x19) SUB (\x1A) ESC (\x1B) FS (\x1C) GS (\x1D) RS (\x1E) US (\x1F) SPACE ! # $ % ' * + , - . 0 1 2 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^ _ FNC1 (\xF0) FNC2 (\xF1) FNC3 (\xF2) FNC4 + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code128B Barcode. + + Only the following symbols are allowed in a Code 128 B barcode:SPACE ! " # $ % ' ( ) * + , - . / 0 12 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL (\x7F) FNC1 (\xF0) FNC2 (\xF1) FNC3 (\xF2) FNC4 (\xF3) SHIFT (\xF4). + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code128C barcode. + + Only the following symbols are allowed in a Code 128C barcode: 0 1 2 3 4 5 6 7 8 9 FNC1 (\xF0). Code 128 C encodes only numeric symbols at double density, each pair of digits is encoded using a single symbol. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code32 barcode. + + Only the following symbols are allowed in a Code 32 barcode: 1 2 3 4 5 6 7 8 9 0. The barcode length is 9 digits (8 user defined digits + 1 check digit). + Code 32 barcodes are also known as Italian Pharmacode barcodes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode Text. + + + + Represents a Code39 barcode. + + Only the following symbols are allowed in a Code 39 barcode:Only the following symbols are allowed in a Code 39 barcode: 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - . $ / + % SPACE + All alphabetic characters are uppercase. If lowercase characters are required, then a Code 39 Extended barcode must be used. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code39 Extended barcode. + Code 39 Extended is designed to encode 128 full ASCII characters. + + All 128 ASCII characters can be encoded in an extended Code 39 barcode + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a Code93 barcode. + + Only the following symbols are allowed in a Code 93 barcode: 1 2 3 4 5 6 7 8 9 0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - . $ / + % SPACE + All alphabetic characters are uppercase. If lowercase characters are required, then a Code 93 Extended barcode must be used. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents a code93 extended barcode. + + All 128 ASCII characters can be encoded in an extended Code 93 barcode. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The Barcode text. + + + + Represents the Base class for all the Single dimensional barcodes + + + + + Initializes the new instance of + + + + + Gets or sets the Text font. + + + + + Gets or sets the text display location. + + + + + + The Default value is false. + + + + Gets or sets a value indicating whether to enable to check digit calculation in the generated barcode or not. + + The Default value is True. + + + + Gets or sets the gap between the barcode and the displayed text. + + + + + Gets or sets the alignment of the text displayed on the barcode. + + Default value is Center. + + + + Gets or sets a value indicating whether [encode start stop symbols]. + + + true if [encode start stop symbols]; otherwise, false. + + + + + Draws the barcode on the at the specified region. + + The pdf page. + The barcode region. + + + + Draws the barcode on the at the specified location. + + The pdf page. + The barcode location. + + + + Draws the barcode on the at the specified location with the size. + + The pdf page. + The barcode location. + The barcode size. + + + + Exports the barcode as image. + The barcode image. + + + + + Specifies the barcode text display location. + + + + + Displays, no text. + + + + + Displays text, above the barcode. + + + + + Displays text, at the bottom of the barcode. + + + + + Specifies the barcode text alignment. + + + + + Displays the readable text on the left side of the barcode. + + + + + Displays the readable text at the center of the barcode. + + + + + Displays the readable text on the right side of the barcode. + + + + + Represents attachments of the Pdf document. + + + + Name of the file. + + + Name of the file. + The data to be attached as a file. + + + Name of the file. + The stream. + + + + Represents a collection of the attachment objects. + + + + + Initializes a new instance of the class. + + + + + Gets attachment by its index in the collection. + + Index of the attachment. + Attachment object by its index in the collection. + + + + Adds the specified attachment. + + The attachment. + Position of the inserted attachment. + + + + Adds the specified attachment. + + The attachment. + The associated document. + The relationship between attachment and associated document. + Position of the inserted attachment. + + + + Adds the specified attachment. + + The attachment. + Position of the inserted attachment. + + + + Inserts the specified index. + + The index. + The attachment. + + + + Removes the specified attachment. + + The attachment. + + + + Removes attachment at the specified index. + + The index. + + + + Indexes the of attachment. + + The attachment. + + + + + Determines whether + + The attachment. + + if it contains the specified attachment, set to true. + + + + + Clears the collection. + + + + + Gets the element. + + + + + Represents a fields which is calculated before the document saves. + + + + + Gets or sets the bounds of the field. + + The bounds value. + + + + Gets or sets the size of the field. + + The size of the field. + + + + Gets or sets the location of the field. + + The location. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the brush. + + The brush. + + + + Gets or sets the pen. + + The pen. + + + + Gets or sets the string format. + + The string format. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + + Represents class to display creation date of the document. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Gets or sets the format string. + + The format string. + + + + Represents date automated field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + A object that is used to fill the string. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Gets or sets the format string. + + The format string. + + + + Represents class which displays destination page's number. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + Specifies the location and size of the field. + + + + Get and sets the PdfLoadedPage + + + + + Gets or sets the page. + + The page. + + + + Represent automatic field which contains document's author name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which value is dynamically evaluated. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents class which can concatenate multiple automatic fields into single string. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + A object that is used to fill the string. + + + + Initializes a new instance of the class. + + The wide-character string to be drawn. + The list of objects. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + The wide-character string to be drawn. + The list of objects. + + + + Initializes a new instance of the class. + + A object that specifies the font attributes (the family name, the size, and the style of the font) to use. + A object that is used to fill the string. + The wide-character string to be drawn. + The list of objects. + + + + Gets or sets the text. + + The wide-character string to be drawn. + + + + Gets or sets the automatic fields. + + The automatic fields. + + + + Represents automatic field which has the same value within the + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Gets or sets the number style. + + The number style. + + + + Represents automatic field which has the same value within the + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents total page count automatic field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Gets or sets the number style. + + The number style. + + + + Represents page number field. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display number of pages in section. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field to display page number within a section. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which has the same value + in the whole document. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + Represents automatic field which value can be evaluated in the moment of creation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The font. + The brush. + + + + Initializes a new instance of the class. + + The font. + The bounds. + + + + A collection specifies the viewing and organizational characteristics + of portable collections.The intent of portable collections is to present, + sort, and search collections of related document,such as email archives, + photo collections, and engineering bidsets. + + + + + A collection dictionary which specifies the viewing and organizational + characteristics of portable collections. + + + + + The embeddedFiles name tree which the file attachments comprising a collection. + + + + + (Required if the collection has folders; ExtensionLevel3) + An indirect reference to the folder dictionary that is the + single common ancestor of all other folders in a portable + collection. + + + + + Get the document collection associated files + + + + + Get the document collection associated field names + + + + + Construct an instance. + + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Construct an instance. + + The collections dictionary. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Add a local file. + + The local file path. + + + + Add a stream. + + The file name of the stream. + The stream. + + + + Add an attachment. + + The attachment. + + + + Add a custom field. + + Custom field name. + Custom field display name. + Custom field type. + + + + Add a file related field. + + File related field name. + File related field display name. + File related field type. + + + + Sort embedded files with field names. + + The names of fields that the PDF viewer application + uses to sort the items in the collection. + Specifies whether the items in the collection are sorted + in ascending order. + + + + Clear all files and folders. + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Create default dictionary + + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Custom field type. + + + + + The field data is stored as a PDF text string. + + + + + The field data is stored as a PDF date string. + + + + + The field data is stored as a PDF number. + + + + + File related field Type. + + + + + The field data is file name of the embedded file stream. + + + + + The field data is the description of the embedded file stream. + + + + + The field data is the modification date of the embedded file stream. + + + + + The field data is the creation date of the embedded file stream. + + + + + The field data is the size of the embedded file stream. + + + + + A folder for the purpose of organizing files into a hierarchical structure. + The structure is represented by a tree with a single root folder acting as + the common ancestor for all other folders and files in the collection. + + + + + A collection dictionary which specifies the viewing and organizational + characteristics of portable collections. + + + + + The embeddedFiles name tree which the file attachments comprising a collection. + + + + + (Required;ExtensionLevel3)A non-negative integer value + representing the unique folder identification number.Two folders + shall not share the same ID value. + The folder ID value appears as part of the name tree key of any file + associated with this folder.A detailed description of the association + between folder and files can be found after this table. + + + + + (Required;ExtensionLevel3)A file name representing the name of the + folder.Two sibling folders shall not share the same name following + case normalization. + Note:Descriptions of file name and case normalization follow this + table. + + + + + (Required for child folders; ExtensionLevel3) + An indirect reference to the parent folder of this folder. + This entry shall be absent for a root folder. + + + + + (Required if the folder has any descendents; ExtensionLevel3) + An indirect reference to the first child folder of this folder. + + + + + (Required for all but the last item at each level; ExtensionLevel3) + An indirect reference to the next sibling folder at this level. + + + + + Construct an instance. + + The folder name. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Construct an instance. + + The collections dictionary. + The embeddedFiles name tree which the file attachments comprising a collection. + The pdf cross Table. + + + + Add a local file into this folder. + + The local file path. + + + + Add a stream into this folder. + + The file name of the stream. + The stream. + + + + Delete the file in this folder. + + The file. + + + + Get the files in this folder. + + The file list in this folder. + + + + Create an subfolder. + + The subfolder name. + The PdfFolder. + + + + Delete an subfolder. + + The subfolder name. + + + + Get the subfolders of this folder. + + The subfolder list in this folder. + + + + Whether has subfolders. + + True or False + + + + Clear this folder. + + + + + Add local folder into this folder. + + The local folder path. + + + + Add an attachment into this folder. + + The attachment. + + + + Create default dictionary + + + + + + Generate foler ID which A non-negative integer value + representing the unique folder identification number. + Two folders shall not share the same ID value. + + The Unique folder ID. + + + + Get all folder ID which include current folder's ID and child folders's ID. + + The folder ID list. + + + + Two sibling folders shall not share the same name. + + The new child folder name. + True: no same name. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Each instance of this class represents + an bookmark node in the bookmark tree. + + + + + Gets or sets the outline destination. + + + + + Gets or sets the outline title. + + The outline title is the text, + which appears in the outline tree as a tree node. + + + + Gets or sets the color. + + + + + Gets or sets the text style. + + + + + It's true,expand node + It's false,collapse node + + + + + Gets or sets the Action for the Outline. + + + + + This class plays two roles: it's a base class for all bookmarks + and it's a root of a bookmarks tree. + + + + + Gets number of the elements in the collection. + + + + + Gets the at the specified index. + + index + + + + Creates and adds an outline. + + The title of the new outline. + The outline created. + + + + Determines whether the specified outline is a direct descendant of the outline base. + + The outline. + + true if the specified outline is a direct descendant of the outline base; + otherwise, false. + + + + + Removes the specified bookmark from the document. + + The title of the outline. + + + + Removes the specified bookmark from the document at the specified index. + + The index. + + + + Removes all the bookmark from the document. + + + + + Inserts a new outline at the specified index. + + The index. + The title of the new outline. + The new outline. + + + + + Gets the element. + + + + + + Allows to choose outline text style. + + + + + Regular text style. + + + + + Italic text style. + + + + + Bold text style. + + + + + Represents loaded bookmark class. + + + + + Gets or sets the outline destination. + + + + + Gets or sets the outline title. + + The outline title is the text, + which appears in the outline tree as a tree node. + + + + Gets or sets the color. + + + + + Gets or sets the text style. + + + + + The class can be used to set some options when do convert operation. + + + + + Pdf document to xlsx document,page content layout + + + + + Gets or sets a value indicates whether to use the high qulity image when convert xps to pdf. + + + + + Gets or sets a value indicates whether to use the high quality embedded svg when convert pdf to html. + + + + + Gets or sets a value indicates whether to use invariant culture mode when convert pdf to xps. + + + + + Gets or sets a value indicates whether to use PS mode to convert pdf to xps, doc. + + + + + Gets or sets a value indicates whether to use PS mode to convert pdf to img. + + + + + Gets or sets a value indicates whether to image background transparent pdf to img. + + + + + Gets or sets a value indicates whether to use the embedded svg in the result file when convert pdf to html. + + + + + Gets or sets a value indicates the count of page contents in one html file when convert pdf to html, works only when UseEmbeddedSvgMode property is set to false. + + + + + Gets or sets a value indicates whether to embed image data in the result file when convert pdf to html, works only when UseEmbeddedSvgMode property is set to false. + + + + + Gets or sets a value indicates the output svg's width in pixel unit, -1 means use the orignal width. + + + + + Gets or sets a value indicates the output svg's height in pixel unit, -1 means use the orignal width. + + + + + Gets or sets a value indicates whether whether to use flow recognition mode to convert pdf to doc(docx). + + + + + Pdf document to xlsx document,the xlsx options + + + + + Find Text in PDF file by absolute position or operator order.default is true. + + + + + Set pdf to image convert options. + + Indicates whether to use PS mode. + + + + Set pdf to image convert options. + + Alpha values rang from 0 to 255 + + + + Set pdf to xlsx convert options + the parameter is:the implementation class the xlsxOptions class + The implementation class:XlsxLineLayoutOptions or XlsxTextLayoutOptions + + + + + + Set pdf to xps convert options. + Default usePsMode = true,useInvariantCulture = false,useHighQualityImg = false. + + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + Indicates whether to use invariant culture. + + + + Set pdf to xps convert options. + + Indicates whether to use PS mode. + Indicates whether to use invariant culture. + Indicates whether to use the high qulity image. + + + + Set pdf to doc convert options. + Default usePsMode = true. + + + + + Set pdf to doc convert options. + + Indicates whether to use PS mode. + + + + Set pdf to doc convert options. + + Indicates whether to use PS mode. + Indicates whether to use flow recognition mode. + + + + Set xps to pdf convert options. + Default useHighQualityImg = false. + + + + + Set xps to pdf convert options. + + Indicates whether to use the high qulity image. + + + + Set pdf to html convert options. + Default useEmbeddedSvg = true, useEmbeddedImg = false, maxPageOneFile = 500, useHighQualityEmbeddedSvg=true. + + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + Indicates the count of page contents in one html file, works only when useEmbeddedSvg is set to false. + + + + Set pdf to html convert options. + + Indicates whether to use the embedded svg in html file. + Indicates whether to embed image data in html file, works only when useEmbeddedSvg is set to false. + Indicates the count of page contents in one html file, works only when useEmbeddedSvg is set to false. + Indicates whether to use the high quality embedded svg in html file, works only when useEmbeddedSvg is set to true. + + + + Set pdf to svg options. + Default wPixel = -1f, hPixel = -1f, -1f means no change. + + + + + Set pdf to svg options. + + The output svg's width in pixel unit, -1f means no change. + + + + Set pdf to svg options. + + The output svg's width in pixel unit, -1f means no change. + The output svg's height in pixel unit, -1f means no change. + + + + The document piece info. + + + + + Indicates whether to use the high qulity image when convert document + + + + + Pdf to Html, Set Parameter + + + + + Get or Set Allow Create Form. + + + + + Indicates whether use invariant culture mode to convert pdf document. + + + + + Set some options when do convert operation. + + + + + Set,Get Current active pdf object + + + + + Get document PdfConformanceLevel + + + + + Gets the collection of document attachments displayed on a PDF page. + + + + + Gets the bookmarks. + + + + + Gets or sets the color space for page that will be created. + + + + + Gets or sets document's information and properties. + + + + + Gets the additional document's actions. + + + + + Gets the loaded form. + + + + + Page labels. + + + + + Gets or set the document piece info. + + + + + Gets the pages. + + + + + Gets the fonts which are available in the PDF document. + + Retruns the fonts which are used in the PDF document. + + + + Gets or sets the desired level of stream compression. + + All new objects should be compressed with this level of the compression. + + + + Gets the security parameters of the document. + + + + + Gets or sets a viewer preferences object controlling the way the document is to be + presented on the screen or in print. + + + + + Gets or sets the action to execute when the document is opened. + + + + + Gets or sets the action to be performed after the document is printed. + + A object specifying the action to be executed after the document is printed. . + + + + Gets or sets the jave script action to be performed after the document is saved. + + A object specifying the action to be executed after the document is saved. + + + + Gets or sets the action to be performed before the document is closed. + + A object specifying the action to be executed before the document is closed. + + + + Gets or sets the action to be performed before the document is printed. + + A object specifying the action to be executed before the document is printed. + + + + Gets or sets the java script action to be performed before the document is saved. + + A object specifying the action to be executed before the document is saved. + + + + Gets the template of pdf document + + + + + Indicates whether enable font cache. + + + + + Indicates the document is encrypted or not. + + + + + Indicates the document is a PDF Portfolio or not. + + + + + Optional content properties + + + + + The pdf collections. + + + + The path to source pdf file. + This constructor imports an existing pdf file into the document object. It automatically populates the Pages collection with the pages of the given document. + + + + Initializes a new instance of the class. + + The path to source PDF document. + The password (user or owner) of the encrypted document. + + + + Setting up the Pdf docuement standard,but Pdf/A2A standards are not suppored + + + + + + Initializes a new instance of the class. + + The byte array with the file content. + + + + Initializes a new instance of the class. + + The byte array with the file content. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance of the class. + + The stream with the file. + + + + Initializes a new instance. + + The stream with the file. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance of the class. + + The path to source pdf file. + This constructor imports an existing pdf file into the document object. It automatically populates the Pages collection with the pages of the given document. + + + + Initializes a new instance of the class. + + The path to source PDF document. + The password (user or owner) of the encrypted document. + + + + Load a xps bytes array. + + the xps byte array + + + + Load a xps file. + + + + + + Load a xps stream. + + + + + + Load a svg file. + + A relative or absolute path for the svg file + + + + Load a svg stream. + + A Svg file stream + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + paper size + PdfHtmlLayoutFormat layoutFormat + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + paper size + PdfHtmlLayoutFormat layoutFormat + + + + Load file from disk file. + + url address + Enable javascrpit + Enable hyperlink + Auto detect page break + Page setting + PdfHtmlLayoutFormat layoutFormat + + by default false, when load Html DOM timeout(PdfHtmlLayoutFormat.LoadHtmlTimeout),convert uncompleted Html DOM to pdf. + if true,until Html DOM load completed,then convert to pdf. + + + + + Load htmlSourceCode to Pdf + + htmlSourceCode + Auto detect page break + PdfPageSettings setting + PdfHtmlLayoutFormat layoutFormat + + + + Load htmlSourceCode to Pdf + + htmlSourceCode + Auto detect page break + PdfPageSettings setting + PdfHtmlLayoutFormat layoutFormat + + by default false, when load Html DOM timeout(PdfHtmlLayoutFormat.LoadHtmlTimeout),convert uncompleted Html DOM to pdf. + if true,until Html DOM load completed,then convert to pdf. + + + + + add free version infomation + + + + + apply limit for free version + + + + + Initializes a new instance of the class. + + The byte array with the file content. + + + + Initializes a new instance of the class. + + The stream with the file. + + + + Initializes a new instance of the class. + + The byte array with the file content. + The password (user or owner) of the encrypted document. + + + + Initializes a new instance. + + The stream with the file. + The password (user or owner) of the encrypted document. + + + + Thie method creates a booklet + + The loaded document filename. + The page width + The page height + if set to true if the result in document should be printed + + + + Thie method creates a booklet + + The loaded document filename. + The page width + The page height + if set to true if the result in document should be printed + Delegate for handling event when the begin drawing page in a booklet. + Delegate for handling event when the end drawing page in a booklet. + + + + Verify pdf document regarding signature. + + Signature field name. + Signature is validated return true,otherwise false + + + + Get pdf document regarding signature. + + Signature field name. + + + + Whether the file is password protected. + + The file name + if password protected,return true,or false + + + + Indicates whthere contains extended right. + + + + + Removes the extended right. + + + + + Save the document to the specified stream. + + + The stream which default saved to the FileFormat.PDF format. + + + + + Convert the document to streams with the file format. + + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to streams with the file format. + + The start index. + The end index. + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to an stream with the file format. + + + The stream with the file format. + + + The file format. + FileFormat.SVG is not supported, because SVG file has no paging,so can't be saved to a stream. + + + + + Saves PDF document to file. + + A relative or absolute path for the file + + + + Saves PDF document to file. + + A relative or absolute path for the file + File format for the file + + + + Saves PDF document to PDF or other Format files. + Current only supports save PDF document to SVG and PDF + + A relative or absolute path for the file + The start page index.The index starts at 0 + The end page index. + File format for the file + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image,Set image Dpi + + Page with page index to save as image + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + Saves PDF document page as image,Set PdfImageType and image Dpi + + Page index + PdfImageType type + + X resolution + + + Y resolution + + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + The zoom factor + The write warning + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + The zoom factor + Returns page as Image + + + + Saves PDF document page as image + + Page index + PdfImageType type + Returns page as Image + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + The resulting clone must be of the same type as or a compatible type to the original instance. + + + + Appends the specified loaded document to this one. + + The loaded document. + + + + Appends a new page to this one. + + The new page. + + + + Imports a page. + + The loaded document. + The page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page index in the result document. + The page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The last created page in the result document. + + + + Merges the specified source documents and return destination document. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merges the PDF documents specified by the paths. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + The array of string paths. + A new PDF document containing all merged documents. + + + + Merges the PDF documents specified by the Stream. + ***It is recommended to use method "MergeFiles(string[] inputFiles, string outputFile)" or "MergeFiles(stream[] inputFiles, stream[] outputFile)", + which automatically release srcFiles and mergeFils resources after merging.*** + + + + + + + Merges the PDF documents specified by the paths. + + + + A new PDF document containing all merged documents. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + + + + Merge the PDF documents. + + The input PDF documents. + The output PDF document. + + + + Splits a PDF file to many PDF files, each of them consists of one page from the source file. + + Template for destination file names. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Splits a PDF file to many PDF files, each of them consists of + one page from the source file. + + Template for destination file + names. + The number that is use as a start + point for the page numbering. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + remove document's javaScript + + if True remove succesfully,else remove the failure or document doesn't have JavaScript + + + + Print preview. + + Print preview control + + + + Print document. + + The print settings. + + + + Print settings. + + + + + Get the print settings. + + + + + Print document. + + + + + when export text,if have image ,will call IOCR and add text to export content. + + + + + + Closes the document. + + The document is disposed after calling the Close method. So, the document can not be saved if Close method was invoked. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Set the path to the folder where the custom font is located. + + the folder path. + + + + Clear the path of the folder where the custom font is located. + + + + + Represent common PdfDocumentBase classes. + + + + + Whether forbid warning when convert to Pdf/A Pdf/X + !!! Temp solution + + + + + specify whether to use high quality images + + + + + Pdf to Html, Set Parameter + + + + + + + + + + Free users can only add up to 10 pages + + + + + Internal variable to store the private font collection. + + + + + Optional content properties + + + + + The conformance level. + + + + + Page labels. + + + + + Gets the fonts which are available in the PDF document. + + Retruns the fonts which are used in the PDF document. + + + + Gets or sets a template that is applied to all pages in the document. + + The specifying the default template for the document. + + + + Gets the pages. + + + + + Gets the table extractor of the document. + + + + + Gets the security parameters of the document. + + + + + Gets or sets document's information and properties. + + + + + Gets or sets a viewer preferences object controlling the way the document is to be + presented on the screen or in print. + + + + + Gets or sets the desired level of stream compression. + + All new objects should be compressed with this level of the compression. + + + + Gets or sets the internal structure of the PDF file. + + + + + Get the PDF file structure. + + + + + Gets the additional document's actions. + + The specifying the document action. + + + + Gets the bookmarks. + + + + + Gets the Private Font Collection + + + + + Optional content properties + + + + + The pdf collections + + + + + Splits a PDF file to many PDF files, each of them consists of one page from the source file. + + Template for destination file names. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Splits a PDF file to many PDF files, each of them consists of + one page from the source file. + + Template for destination file + names. + The number that is use as a start + point for the page numbering. + + Each destination file will have 'destFileName{0***}' name, + where *** is an optional format string for the number of the + page inside of the source document. + + + + + Merges the specified source documents and return destination document. + + The destination document, where the other documents are merged into. + If it's null a new document object will be created. + The source documents. + The document containing merged documents. + + + + Merges the PDF documents specified by the paths. + + The array of string paths. + A new PDF document containing all merged documents. + + + + Adds an object to a collection of the objects that will be disposed during document closing. + + The object that will be disposed during document closing. + + + + Convert the document to an stream with the file format. + + + The stream with the file format. + + + The file format. + FileFormat.SVG is not supported, because SVG file has no paging,so can't be saved to an stream. + + + + + Convert the document to streams with the file format. + + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Convert the document to streams with the file format. + + The start index. + The end index. + The file format. + + The format file streams. + FileFormat.PDF:return only one stream(PDF support paging). + FileFormat.XPS:return only one stream(XPS support paging). + FileFormat.DOC:return only one stream(DOC support paging). + FileFormat.DOCX:return only one stream(DOCX support paging). + FileFormat.XLSX:return only one stream(XLSX support paging). + FileFormat.PCL:return only one stream(PCL support paging). + FileFormat.POSTSCRIPT:return only one stream(POSTSCRIPT support paging). + FileFormat.HTML:return only one stream(HTML support paging). + FileFormat.SVG:return multiple streams(SVG not support paging,one stream to one page). + + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + + Returns page as Image + + + + Saves PDF document page as image,set Dpi + + Page with page index to save as image + Pictures X resolution + Pictures Y resolution + Returns page as Image + + + + Saves PDF document page as image + + Page with page index to save as image + Returns page as Image + + + + Saves PDF document page as image,set Dpi + + Page with page index to save as image + + X resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + + Y resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + Returns page as Image + + + + Saves PDF document page as image + + Page index + PdfImageType type + Returns page as Image + + + + Saves PDF document page as image,Set PdfImageType and image Dpi + + Page index + PdfImageType type + + X resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + + Y resolution + Note: Metafile can't set dpi and use "Green context" dpi. + + Returns page as Image + + + + Save a range page of the document to the specified stream. + + The stream. + The start index. + The end index. + + + A relative or absolute path for the file + The start page index. + The end page index. + + + + Saves the document to the specified filename. + + The filename. + + + + Save a range page of the document to xps as stream. + + The strart index. + The end index. + The xps stream. + + + + Save the document to xps as stream. + + The xps stream. + + + A relative or absolute path for the file + The start page index. + The end page index. + + + + Save a range page of the document to svg as stream[]. + + The start index. + The end index. + Stream collection. + + + + Save the document to svg as stream[]. + + Stream collection + + + + Save a range page of the document to html stream. + + The start index. + The end index. + The html stream. + + + + Save the document to html stream. + + The html stream. + + + + Convert pdf document to pcl. + + The start index. + The end index. + The out stream. + + + + Convert pdf document to pcl. + + The start index. + The end index. + The out stream. + + + + Save a range page of the document to doc as stream[]. + + The start index. + The end index. + The doc stream. + Is doc or docx. + + + + Save the document to doc as stream[]. + + The doc stream. + Is docs or doc. + + + + Convert pdf document to excel. + + The start index. + The end index. + The out stream. + + + + Save the document to excel as stream. + + The excel stream. + + + + Save the document to ofd as stream. + + The ofd stream. + + + + Save a range page of the document to ofd as stream. + + The strart index. + The end index. + The ofd stream. + + + + Closes the document. Releases all common resources. + + + + + Closes the document. + + if set to true the document should close its stream as well. + + + + Saves the document to the specified stream. + + The stream object where PDF document will be saved. + + + + Imports a page. + + The loaded document. + The page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page in the result document. + + + + Imports a page. + + The loaded document. + Index of the page. + The page index in the result document. + The page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The last created page in the result document. + + + + Imports a page range from a loaded document. + + The loaded document. + The start page index. + The end page index. + The page index in the result document when startIndex == endIndex. + The last created page in the result document. + + + + Handle action annotation. + + The page corresponsedance + The page + + + + Free version Imports 10 pages range from a loaded document. + + + + + Merge same font when merge document. Bug_4941 + + The resource dictionary. + The document font map. + + + + Compare bytes. + + + + + + + + + + + + + + Appends the specified loaded document to this one. + + The loaded document. + + + + Import Original Document Destinations to new Document Catalog->Names -> Dests. + Quote page to this document Catalog->Names -> Dests -> Names + + Original Document + + + + Merge OCProperties + + + + + + + + + + + + + Merge D Item + + + + + + + + Whether the page exist the field + + The page + The field + If exist return true or false + + + + This class represents a set of the properties that define the internal structure of PDF file. + + + + + PDF Document object + + + + + read pdf file + + + + + Initializes a new instance of the class. + + + + + PDF Document object + + + + + read pdf file + + + + + Gets or sets the version of the PDF document. + + The document version. + + + + Gets or sets a value indicating whether [incremental update]. + + true if [incremental update]; otherwise, false. + + + + Gets or sets the type of PDF cross-reference. + + Please see the description of for more details. + + + + Gets the value indicating whether the PDF document is tagged one or not. + + If true PDF document is tagged, otherwise false. + + + + + + + + + + Tagged PDF's standard structure types + + + + + A generic block-level element or group of elements + + + + + A generic inline portion of text having no particular inherent characteristics + + + + + An item of graphical content + + + + + Represents the document's structure tree root dictionary + + + + + Build struct tree root before saved. + + + + + Represents the structure element + + + + + The parent struct element + + + + + The parent tree root + + + + + Build struct element before saved. + + + + + Delegate for handling event when drawing page in a booklet. + + The sender of the event. + The arguments of the event. + This event is raised when starting/finished drawing a page of the source file in a booklet. + + + + Represents DrawPageInBooklet Event arguments. + + + + + Gets the page of the source file. + + + + + Gets the index of the source page, basing on 0. + + + + + Gets the page of the booklet. + + + + + Gets the index of the booklet page, basing on 0. + + + + + Specifies the type of file format. + + + + + Specifies plain PDF file format. + + + + + Specifies Linearized PDF file format. + + + + + Specifies the different way of presenting the document at the client browser. + + + + + Send the generated document to the client browser and will open document inside browser or using application associated with .pdf extension externally. + + + + + Send the generated document to the client browser and presents an option to save the document to disk or open inside the browser. + + + + + Specifies the available PDF versions to save a PDF document. + + + + + PDF version 1.0. + + + + + PDF version 1.1. + + + + + PDF version 1.2. + + + + + PDF version 1.3. Adobe Acrobat 4. + + + + + PDF version 1.4. Adobe Acrobat 5. + + + + + PDF version 1.5. Adobe Acrobat 6. + + + + + PDF version 1.6. Adobe Acrobat 7. + + + + + PDF version 1.7. Adobe Acrobat 8. + + + + + Specifies the type of the PDF cross-reference. + + Default value is CrossReferenceStream + + + + The cross-reference table contains information that permits random access to indirect objects within the file so that the entire file need not be read to locate any particular object. The structure is useful for incremental updates, since it allows a new cross-reference section to be added to the PDF file, containing entries only for objects that have been added or deleted. Cross-reference is represented by cross-reference table. The cross-reference table is the traditional way of representing reference type. + + + + + Cross-reference is represented by cross-reference stream. Cross-reference streams are stream objects, and contain a dictionary and a data stream. + This leads to more compact representation of the file data especially along with the compression enabled. + This format is supported by PDF 1.5 version and higher only. + + + + + Specifies the Pdf document's Conformance-level. + + + + + Specifies Default / No Conformance. + + + + + This PDF/A ISO standard [ISO 19005-1:2005] is based on Adobe PDF version 1.4 + and This Level B conformance indicates minimal compliance to ensure that the + rendered visual appearance of a conforming file is preservable over the long term. + + + + + This PDF/X-1a:2001 ISO standard [ISO 15930-1] is based on Adobe PDF version 1.3 + which uses only CMYK + Spot Color and this compliance to ensure that the + contents will be reliably reproduced in the repress environment. + + + + + PDF/A-1a ensures the preservation of a document's logical structure and con-tent text stream in natural reading order. + + + + + PDF/A-2a standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check. + + + + + PDF/A-2b standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check. + + + + + PDF/A-3a standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check + + + + + PDF/A-3b standard,Only check the standard from the pdfaid:part and pdfaid:conformance node,And only check + + + + + Specifies the different page scaling option that shall be selected when a print dialog is displayed for this document. + + Default value is AppDefault. + + + + Indicates the conforming readers default print scaling. + + + + + Indicates no page scaling. + + + + + Defines data compression level. + + + + + Pack without compression. + + + + + Use high speed compression, reduce of data size is low. + + + + + Something middle between normal and BestSpeed compressions. + + + + + Use normal compression, middle between speed and size. + + + + + Pack better but require a little more time. + + + + + Use best compression, slow enough. + + + + + Gets or sets a value indicating whether this is editable. + + true if editable; otherwise, false. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value. + + + + Gets the first selected item in the list. + + The selected item. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the text alignment. + + The text alignment. + This property is meaningful for fields containing variable text only. + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Gets the name. + + The name. + + + + Gets the form. + + The form. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + The mapping name. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + if the field is read only, set to true. + + + + Gets or sets a value indicating whether this is required. + + true if required; otherwise, false. + + + + Gets or sets the tool tip. + + The tool tip. + + + + Gets the page. + + The page. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Represents form's field with style parameters. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Draws a button. + + The g. + The paint params. + The image. + The format. + + + + Calculate the text position + + the rectangle + the pdfStringFormat + the PdfFontBase + + + + Represents form field with appearance custom support. + + + + + Gets the appearance. + + The appearance. + + + + Represents button field in the PDF form. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the button. + + + + Gets or sets the caption text. + + The caption text. + + + + Gets or sets the button layout mode. + + + + + Gets or sets the text displayed when the mouse button is pressed within the annotation's active area, only available in Push mode. + + + + + Gets or sets the text displayed when the user rolls the cursor into the annotation's active area without pressing the mouse button, only available in Push mode. + + + + + Defining the icon layout. + + + + + Gets or sets the widget annotation's normal icon displayed when it is not interacting with the user. + + + + + Gets or sets the widget annotation's alternate icon displayed when the mouse button is pressed within its active area, only available in Push mode. + + + + + Gets or sets the widget annotation's rollover icon displayed when the user rolls the cursor into its active area without pressing the mouse button, only available in Push mode. + + + + + Adds Print action to current button field. + Clicking on the specified button will trigger the Print Dialog Box. + + + + + Represents the button icon layout options. + + + + + Gets or sets the circumstances under which the icon shall be scaled inside the annotation rectangle. + + + + + Gets or sets an array of two numbers between 0.0 and 1.0 indicating the fraction of leftover space to allocate at the left and bottom of the icon. + + + + + If true, indicates that the button appearance should be scaled to fit fully within the bounds of the annotation without taking into consideration the line width of the border. + + + + + Gets or sets the type of scaling to use. + + + + + Represents the type of scaling to use. + + + + + Scale the icon to fill the annotation rectangle exactly, without regard to its original aspect ratio. + + + + + Scale the icon to fit the width or height of the annotation rectangle while maintaining the icon's original aspect ratio. + + + + + Represents the button layout mode. + + + + + No icon; caption only. + + + + + No caption; icon only. + + + + + Caption below the icon. + + + + + Caption above the icon. + + + + + Caption to the right of the icon. + + + + + Caption to the left of the icon, + + + + + Caption overlaid directly on the icon. + + + + + Represtents the circumstances under which the icon shall be scaled inside the annotation rectangle. + + + + + Always scale. + + + + + Scale only when the icon is bigger than the annotation rectangele. + + + + + Scale only when the icon is smaller than the annotation rectangle. + + + + + Never scale. + + + + + Represents check box field in the PDF form. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the check box field. + + + + Gets or sets a value indicating whether this is checked. + + true if checked; otherwise, false. + + + + Represents base class for field which can be in checked and unchecked states. + + + + + Initializes a new instance of the class. + + The page where the fields should be placed. + The name of the check box field. + + + + Gets or sets the style. + + The object specifies the style of the check box field. + + + + Represents combo box field in the PDF Form. + + + + + Initializes a new instance of the class. + + Page the field to be placed on. + The name of the field. + + + + Gets or sets a value indicating whether this is editable. + + true if editable; otherwise, false. + + + + Represents field of the Pdf document's interactive form. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Initializes a new instance of the class. + + Field Dictionary + + + + Gets the name. + + The name. + + + + Gets the form. + + The form. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + The mapping name. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + if the field is read only, set to true. + + + + Gets or sets a value indicating whether this is required. + + true if required; otherwise, false. + + + + Gets or sets the tool tip. + + The tool tip. + + + + Gets the page. + + The page. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Save the field apprearance + + The text + + + + Gets the element. + + + + + + Represents collection of the Pdf fields. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + + + + Gets the with thier field name. + + + + + Adds the specified field. + + The field item which is added in the PDF form. + The field to be added on the page. + + + + Inserts the the field at the specified index. + + The index of the field. + The field which should be inserted at the specified index. + + + + Determines whether field is contained within the collection. + + Check whether object is present in the field collection or not. + + true if field is present in the collection, otherwise, false. + + + + + Gets the index of the field. + + The object whose index is requested. + Index of the field in collection. + + + + Removes the specified field in the collection. + + The object to be removed from collection. + + + + Removes field at the specified position. + + The index where to remove the item. + + + + Clears the form field collection. + + + + + Gets the element. + + + + + + Represents interactive form of the Pdf document. + + + + + Set a value to enabled form field highLight + + + + + pdfviewer fill,a form field needs to override ap + + + + + Merge the fields with the same name into one field or not + + + + + Initializes a new instance of the class. + + + + + Gets the fields. + + The Form fields. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Gets or sets a value indicating whether the form is read only. + + true if the form is read only; otherwise, false. + + + + Gets or sets a value indicating whether [field auto naming]. + + + + + Gets or sets a value indicating whether the viewer must generate appearances for fields. + + true if viewer must generate appearance; otherwise, false. + + + + Gets the element. + + + + + + Represents a collection of form fields. + + + + + Initializes a new instance of the class. + + + + + Represents list box field of the PDF form. + + + + + Initializes a new instance of the class. + + Page the field to be placed on. + The name of the field. + + + + Gets or sets a value indicating whether the field is multiselectable. + + true if multiselectable; otherwise, false. + + + + Represents base class form's list fields. + + + + + Internal variable to store CommitOnSelChange flag. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + + + + Gets the items. + + The items. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value. + + + + Gets the first selected item in the list. + + The selected item. + + + + Gets or sets the flag indicating if a new value selected is committed immediately without waiting to leave the field. + + + + + Represents an item of the list fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The item text, it is displayed in the list. + The item value, it is exported when form content is exported. + + + + Gets or sets the text. + + The text of the list item field. + + + + Gets or sets the value. + + The value of the list item field. + + + + Gets the element. + + The primitive. + + + + Represents list field item collection. + + + + + Initializes a new instance of the class. + + + + + Gets the at the specified index. + + The object. + + + + Adds the specified item in the collection. + + The object which to be added in the collection. + item + + + + Inserts the list item field at the specified index. + + The index where to insert the new item. + The object to be added to collection. + + + + Removes the specified item. + + The object which to be removed in the collection. + + + + Removes the item at the specified position. + + The index where to remove the item. + + + + Determines whether the item is contained by the collection. + + Check whether object is exists in the collection or not. + + true if the item is contained within the collection; otherwise, false. + + + + + Gets the index of the specified item. + + A object whose index is requested. + The index of the given item, -1 if the item does not exist. + + + + Clears the collection. + + + + + Gets the element. + + + + + + Represents radio button field in the PDF form. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + + + + Gets or sets the first selected item in the list. + + The index of the selected item. + + + + Gets or sets the value of the first selected item in the list. + + The selected value of the list field. + + + + Gets the first selected item in the list. + + The selected item of the field. + + + + Gets the items of the radio button field. + + The radio button field item collection. + + + + Represents an item of a radio button list. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The value. + + + + Gets the form of the field. + + The object of the field. + + + + Gets or sets the bounds. + + + + + Gets or sets the value. + + The value. + + + + Gets the element. + + + + + + Represents collection of radio buttons items. + + + + + Initializes a new instance of the class. + + The field. + + + + Adds the specified item. + + The object to be added to collection. + The index of the added field. + + + + Inserts an item at the specified index. + + The index where to insert the new item.. + A object to be added to collection. + + + + Removes the specified item from the collection. + + The object which is to be removed from the collection. + + + + Removes the item at the specified position. + + The index where to remove the item. + + + + Gets the index of the item within the collection. + + A object whose index is requested. + Index of the item with the collection. + + + + Determines whether the collection contains the specified item. + + Check whether object is exists in the collection or not. + + true if collection contains specified item; otherwise, false. + + + + + Clears the item collection. + + + + + Gets the at the specified index. + + Returns item at the specified position. + + + + Gets the element. + + + + + + Represents form field with appearance custom support. + + + + + Gets the appearance. + + The appearance. + + + + Represents signature field in the PDF Form. + + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the field. + a PdfSignature obj + + + + Draws an image. + + The image. + The x. + The y. + + + + Draws an image. + + The image. + The rectangle. + + + + Draws an image. + + The image. + The point. + The size. + + + + Represents form's field with style parameters. + + + + + Initializes a new instance of the class. + + The page where the field should be placed. + The name. + + + + Gets or sets the bounds. + + The bounds. + + + + Gets or sets the location. + + The location. + + + + Gets or sets the size. + + The size. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the background. + + The color of the background. + + + + Gets or sets the color of the text. + + The color of the text. + + + + Gets or sets the width of the border. + + The width of the border. + + + + Gets or sets the highlighting mode. + + The highlighting mode. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the text alignment. + + The text alignment. + This property is meaningful for fields containing variable text only. + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the border style. + + The border style. + + + + Gets or sets a value indicating whether this is visible. + + true if visible; otherwise, false. + + + + Represents text box field in the PDF form. + + + + + The password chrackter. + + + + + Gets or sets the text. + + The text of the text box field. + + + + Gets or sets the default value. + + The default value of the text box field. + + + + Gets or sets a value indicating whether to check spelling. + + true if check spelling; otherwise, false. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + true if need to insert spaces; otherwise, false. + + + + Gets or sets a value indicating whether this is multiline. + + true if multiline; otherwise, false. + + + + Gets or sets a value indicating whether this is password field. + + true if password field; otherwise, false. + + + + Gets or sets a value indicating whether this is scrollable. + + true if scrollable; otherwise, false. + + + + Gets or sets the maximum number of characters that can be entered in the text box. + + An integer value specifying the maximum number of characters that can be entered in the text box. + + + + Initializes a new instance of the class. + + Page which the field to be placed on. + The name of the text box field. + + + + Represents fields flags enum. + + + + + Default field flag. + + + + + If set, the user may not change the value of the field. Any associated widget annotations + will not interact with the user; that is, they will not respond to mouse clicks or + change their appearance in response to mouse motions. This flag is useful + for fields whose values are computed or imported from a database. + + + + + If set, the field must have a value at the time it is exported by a submit-form action. + + + + + If set, the field must not be exported by a submit-form action + + + + + If set, the field can contain multiple lines of text; + if clear, the fields text is restricted to a single line. + + + + + If set, the field is intended for entering a secure password that should not be + echoed visibly to the screen. Characters typed from the keyboard should instead + be echoed in some unreadable form, such as asterisks or bullet characters. + + + + + If set, the text entered in the field represents the pathname of a file whose + contents are to be submitted as the value of the field. + + + + + If set, text entered in the field is not spell-checked. + + + + + If set, the field does not scroll (horizontally for single-line fields, vertically + for multiple-line fields) to accommodate more text than fits within its annotation + rectangle. Once the field is full, no further text is accepted. + + + + + Meaningful only if the MaxLen entry is present in the text field dictionary and if + the Multiline, Password, and FileSelect flags are clear. If set, the field is + automatically divided into as many equally spaced positions, or combs, as the + value of MaxLen, and the text is laid out into those combs. + + + + + If set, the value of this field should be represented as a rich text string. + If the field has a value, the RVentry of the field dictionary specifies + the rich text string. + + + + + If set, exactly one radio button must be selected at all times; clicking + the currently selected button has no effect. If clear, clicking the selected + button reselects it, leaving no button selected. + + + + + If set, the field is a set of radio buttons; if clear, the field is a check box. + This flag is meaningful only if the Pushbutton flag is clear. + + + + + If set, the field is a pushbutton that does not retain a permanent value. + + + + + If set, a group of radio buttons within a radio button field that use the same value + for the on state will turn on and off in unison; that is if one is checked, they + are all checked. If clear, the buttons are mutually exclusive. + + + + + If set, the field is a combo box; if clear, the field is a list box. + + + + + If set, the combo box includes an editable text box as well as a drop-down + list; if clear, it includes only a drop-down list. This flag is meaningful only + if the Combo flag is set. + + + + + If set, the fields option items should be sorted alphabetically. This flag + is intended for use by form authoring tools, not by PDF viewer applications. + + + + + If set, more than one of the fields option items may be selected simultaneously; + if clear, no more than one item at a time may be selected. + + + + + If set, the new value is committed as soon as a selection is made with the pointing + device. This option enables applications to perform an action once a selection is + made, without requiring the user to exit the field. If clear, the new value is not + committed until the user exits the field. + + + + + Specifies the available styles for a field border. + + Defaule value is Solid. + + + + A solid rectangle surrounding the annotation. + + + + + A dashed rectangle surrounding the annotation. + + + + + A simulated embossed rectangle that appears to be raised above the surface + of the page. + + + + + A simulated engraved rectangle that appears to be recessed below the surface + of the page. + + + + + A single line along the bottom of the annotation rectangle. + + + + + Specifies the highlight mode for a field. + + Defaule value is Invert. + + + + No highlighting. + + + + + Invert the contents of the field rectangle. + + + + + Invert the field's border. + + + + + Pushed highlighting. + + + + + Specifies the style for a check box field. + + The default value is Check. + + + + A check mark is used for the checked state. + + + + + A circle is used for the checked state. + + + + + A cross is used for the checked state. + + + + + A diamond symbol is used for the checked state. + + + + + A square is used for the checked state. + + + + + A star is used for the checked state. + + + + + Specifies Http request method. + + + + + Data submitted using Http Get method. + + + + + Data submitted using Http Post method. + + + + + Specifies the enumeration of submit data formats. + + + + + Data should be transmitted as Html. + + + + + Data should be transmitted as Pdf. + + + + + Data should be transmitted as Forms Data Format. + + + + + Data should be transmitted as XML Forms Data Format . + + + + + Represents states of the check field. + + + + + Indicated unchecked/unpressed state. + + + + + Indicated checked unpressed state. + + + + + Indicated pressed unchecked state. + + + + + Indicated pressed checked state. + + + + + Represents XML Forms Architecture (XFA). + + + + + XFA Template. + + + + + XFA Datasets. + + + + + XFA Config. + + + + + XML Data Package + + + + + Gets of sets data node value.deprecated to use,instead use xfaField to set field value. + + + + + Returns XML node of field tempalte. + + + + + Added by Henry Zhou. + To get the xfaField through its name. Notes: the param 'name' is the name have been midified by codes instead of originals. + + + + + + + FindSelectItemsByValueOrDataSets + + item text + + + + + + + Implements routines for manipulation with loaded pages. + + + + + Free users can only add up to 10 pages + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + + + + Get the Section Count. + + + + + Gets the at the specified index. + + + + + Gets the count. + + + + + Creates a new page and adds it to the collection. + + The created page. + + + + Creates a new page of the specified size and adds it to the collection. + + The size of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the new page. + The margins of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the new page. + The margins of the new page. + The rotation of the new page. + The created page. + + + + Creates a new page of the specified size and with the specified margins + and adds it to the collection. + + The size of the page. + The margins of the page. + The rotation of the new page. + The orientation of the new page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The rotation of the new page. + The created page. + + + + Creates a new page and inserts it at the specified index. + + The index. + The origin of the page. + The size of the page. + The margins of the page. + The rotation of the new page. + The created page. + + + + Removes the page at the given specified index. + + Index of the page. + + + + Removes the specified page. + + The page to be remove. + + + + Removes the specified page. + + The page to be remove. + + + + ReArrange the Pages in the Loaded Document. + + The page sequence to arrange the pages. + + + + Creates a new page and inserts it at the specified index. + + The index. + The size of the page. + The margins of the page. + The rotation of the new page. + The orientation of the new page. + The created page. + + + + Get the Section + + The index + The section + + + + Caculate the index of the page in the document. + + The pages + The page + The page number + whether the page is find in pages + + + + Whether the current object is page object + + The dic + if the dic is a page obejct ,return true ,or false + + + + FreeVersion,Allow Create 10 Pdf page + + PdfSection sec + PdfNewPage page + + + + + Gets the index of the page in the document. + + The current page. + Index of the page in the document if exists, -1 otherwise. + + + + foreach Nodes,find page + + + + + + + + + + + Implements enumerator to the loaded page collection. + + + + + Initializes a new instance of the class. + + The collection. + + + + Gets the current element in the collection. + + + The current element in the collection. + + The enumerator is positioned before the first element of the collection + or after the last element. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, + which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + Represents the loaded annotation colllection. + + + + + Gets the at the specified index. + + + + + Represents the annotation with specified name. + + The specified annotation name. + + + + Gets or sets the page. + + + + + Adds annotation to collection. + + Annotation to be added to collection. + Position of the annotation in collection. + + + + Creates the polygon annotation + + The dictionary + The cross table + + + + + Creates the polyLine annotation + + The dictionary + The cross table + + + + + Creates the square annotation + + The dictionary + The cross table + + + + + Creates the ink annotation + + The dictionary + The cross table + + + + + Creates the Circle annotation + + The dictionary + The cross table + + + + + Get or Set the background color of the field + + A object specifying the background color of field. + + + + Gets or Set the fore color of the field. + + A object specifying the background color of field. + + + + Get or Set the text alignment in a text box. + + A enumeration member specifying the text alignment in a text box. + + + + Get or Set the HighLightMode of the Field. + + A enumeration member specifying the highlight mode in a text box. + + + + Gets or Set value of the text box field. + + A string value representing the value of the item. + + + + Gets or set the default value of the field. + + A string value representing the default value of the item. + + + + Gets or sets a value indicating whether to check spelling. + + True if the field content should be checked for spelling erorrs, false otherwise. Default is true. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + + + + Gets or sets a value indicating whether this is multiline. + + True if the field is multiline, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is password field. + + True if the field is a password field, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is scrollable. + + True if the field content can be scrolled, false otherwise. Default is true. + + + + Gets or sets the maximum length of the field, in characters. + + A positive integer value specifying the maximum number of characters that can be entered in the text edit field. + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or Sets the width of the border. + + The width of the border. + + + + Gets the font. + + The font. + + + + Gets a value indicating the visibility of the field. + + + + + Gets the name of the field. + + A string value specifying the name of the field. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + A string value specifying the mapping name of the field. + + + + Gets or sets the tool tip. + + + + + Gets the page. + + + + + Gets or sets a value indicating whether [read only]. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is required. + + True if the field is required, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets or sets a value indicating whether this is flatten. + + + + + Represents a button field of an existing PDF document`s form. + + + + + Button background picture + + + + + Gets or sets Button background picture. + + + + + Gets or sets the caption text. + + A string value specifying the caption of the button. + + + + Gets the collection of button items. + + + + + Defining the icon layout. + + + + + need replace image + + + + + + Adds Print action to current button field. + Clicking on the specified button will trigger the Print Dialog Box. + + + + Represents button group item of an existing PDF document`s form. + + + + + Represents the base class for loaded state field. + + + + + Gets the items collection. + + + + + Represents the loaded state item. + + + + + Gets or sets a value indicating whether this is checked. + + + + + Represents collection of button item. + + + + + Gets the at the specified index. + + + + + Represents check box of an existing PDF document`s form. + + + + + Gets or sets a value indicating whether this is checked. + + True if the check box is checked, false otherwise. + + + + Gets the collection check box items. + + + + + Set the export value. + + The export value + + + + Represents collection of text box group items. + + + + + Gets the at the specified index. + + + + + Represents loaded check box item. + + + + + Represents a choice field of an existing PDF document`s form. + + + + + Gets the collection of choice items. + + + + + Gets or sets the first selected item in the list. + + + + + Gets or sets the value of the first selected item in the list. + + + + + Gets the first selected item in the list. + + + + + Gets the first selected item in the list. + + + + + Gets or sets the flag indicating if a new value selected is committed immediately without waiting to leave the field. + + + + + Represents the combo box field of an existing item. + + + + + Gets or sets a value indicating whether this is editable. + + True if the drop down list is editable, false otherwise. Default is false. + + + + Gets the collection of combo box items. + + + + + Represents group for combo box field. + + + + + Represents collection of Combo box items. + + + + + Gets the at the specified index. + + + + + Represents state item collection. + + + + + Gets the at the specified index. + + The index of specified item. + + + + Represents base class for loaded fields. + + + + + Form field identifier + + + + + Gets the name of the field. + + A string value specifying the name of the field. + + + + Gets or sets the mapping name to be used when exporting interactive form + field data from the document. + + A string value specifying the mapping name of the field. + + + + Gets or sets the tool tip. + + + + + Gets the page. + + + + + Gets or sets a value indicating whether [read only]. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is required. + + True if the field is required, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is export. + + true if export; otherwise, false. + + + + Gets the form. + + The form. + + + + Re set the page. + + The page + + + + Sets the name of the field. + + New name of the field. + + + + Represents base class for field's group items. + + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets the page. + + + + + Represents Loaded form. + + + + + Gets the field collection. + + + + + Gets or sets a value indicating whether the form is read only. + + True if the field is read-only, false otherwise. Default is false. + + + + Gets XFA data of the form. + + + + + + Gets or sets a value indicating whether need appearances. + + + + + Export the form data to a file. + + Name of the document which is need to export. + The format of exported data. + The name of the PDF file the data is exported from. + + + + Export the form data to a file. + + The stream where form data will be exported. + The format of exported data + The name of the PDF file the data is exported from + + + + Reset the signature flags. + + + + + Imports the data. + + Name of the file. + The data format. + + + + Import form data from XFDF file. + + + + + + Imports the data. + + Name of the file. + The data format. + if it is error flag, set to true. + + + + + Import form data from FDF file. + + The FDF file stream + False if the import should stop on the first field that generates an error, or true if the import should ignore the error and continue with the next field. + Document form fields filled with data which are imported from FDF. + + + + Sets/Resets the form field highlight option. + + + + + Called when [hex in string]. + + The test. + + + + + Extract Images from Signature + + + + + + + + + + + + + Represents field collection of loaded form. + + + + + Gets the at the specified index. + + + + + Returns field with specified name. + + The specified field name. + + + + Gets or sets the form. + + + + + Field Signature Names + + + + + Add field + + + + + + Gets the field. + + int index + The created field. + + + + Update field name. + + The field + + + + Get FieldName from FormWidget by exportValue + + + + + + + Get filedName from FiledWeiget + + + + + + + + find exportValue from AP By exportValue + + + + + + + + Get Fields from FormWidget by exportValue + + + + + + + Represents loaded list box field. + + + + + Gets or sets a value indicating whether the field is multiselectable.. + + + + + For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list) + Default value: 0. + + + + + Gets the items. + + The collection of list box items. + + + + 获取选中项中最大的一个索引 + + + + + + + 获取listbox可显示区域最大能显示多少个项 + + + + + + + + Represents group item for list field. + + + + + Represents loaded item collection. + + + + + Gets the at the specified index. + + + + + Represents loaded list item. + + + + + Gets or sets the text. + + A string value representing the display text of the item. + + + + Gets or sets the value. + + A string value representing the value of the item. + + + + Initializes a new instance of the class. + + The text. + The value. + + + + Represents a collection of list box field items. + + + + + Gets the at the specified index. + + + + + Inserts an item at the end of the collection. + + a object to be added to collection. + The index of item. + + + + Inserts the list item at the specified index. + + The index. + The item. + + + + Removes the element at the specified index. + + The index. + Throws IndexOutOfRange exception if the index is out of bounds. + + + + Clears the item collection. + + + + + Represents collection of radio box group items. + + + + + Gets the at the specified index. + + Returns object at the specified index. + + + + Represents radio button field of an existing PDF document`s form. + + + + + Gets or sets the value. + + The value of the radio button item. + + + + Gets or sets a value indicating whether this is selected. + + + + + Represents radio button field of an existing PDF document`s form. + + + + + Gets the collection of radio button items. + + A that represents the items within the list. + + + + Gets or sets the index of the selected item in the list. + + The lowest ordinal index of the selected items in the list. The default is -1, which indicates that nothing is selected. + + + + Gets or sets the value of the first selected item in the list. + + A string value specifying the value of the first selected item, null (Nothing in VB.NET) if there is no selected item. + + + + Gets the selected item. + + Return the item as PdfLoadedRadioButtonItem class + + + + Gets the button style. + + + + + Gets or sets the value of specified item. + + A string value representing the value of the item. + + + + Represents the signature field of an existing PDF document`s form. + + + + + draw signature + + + + + Need to convert a date + + convert a date + DateTime + + + + Represents the collection of loaded state item. + + + + + Gets the at the specified index. + + + + + Represents loaded styled field. + + + + + Get DA for from annot + + + + + Gets the actions of the field. + + The actions. + + + + Gets or sets the action to be performed when the mouse button is released + inside the annotations active area.. + + The mouse up action. + + + + Gets or sets the action to be performed when the mouse button is pressed inside the + annotations active area. + + The mouse down action. + + + + Gets or sets the action to be performed when the annotation receives the + input focus. + + The got focus action. + + + + Get or Set the background color of the field + + A object specifying the background color of field. + + + + Gets or sets the action to be performed when the annotation loses the + input focus. + + The lost focus action. + + + + Gets or sets the bounds. + + + + + Gets or sets the location. + + + + + Gets or sets the size. + + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or Sets the width of the border. + + The width of the border. + + + + Gets the font. + + The font. + + + + Get font size from DA + + The font parameters + The font size + + + + Gets the default index. + + + + + Gets a value indicating the visibility of the field. + + + + + Whether they are all ascii characters. + + if all characters are ascii characters,return true ,or false + + + + Get the xfa field from template + + A xmlnode + + + + Get the value of the specified attribute + + The value + + + + Initializes a new instance of the struct. + + The field. + + + + Initializes a new instance of the struct. + + The item. + + + + Represents an item in a text box field collection. + + + + + Represents the text box field of an existing PDF document`s form. + + + + + The password chrackter. + + + + + Gets or Set the fore color of the field. + + A object specifying the background color of field. + + + + Get or Set the text alignment in a text box. + + A enumeration member specifying the text alignment in a text box. + + + + Get or Set the HighLightMode of the Field. + + A enumeration member specifying the highlight mode in a text box. + + + + Gets or Set value of the text box field. + + A string value representing the value of the item. + + + + append ap content + + + + + + Set the boder style + + The writer + The bounds + + + + Get the transform matrix from the MK entry in dictionary. + + The annotation + The annotation's bound + The matrix + + + + Gets or set the default value of the field. + + A string value representing the default value of the item. + + + + Gets or sets a value indicating whether to check spelling. + + True if the field content should be checked for spelling erorrs, false otherwise. Default is true. + + + + Meaningful only if the MaxLength property is set and the Multiline, Password properties are false. + If set, the field is automatically divided into as many equally spaced positions, or combs, + as the value of MaxLength, and the text is laid out into those combs. + + + + + Gets or sets a value indicating whether this is multiline. + + True if the field is multiline, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is password field. + + True if the field is a password field, false otherwise. Default is false. + + + + Gets or sets a value indicating whether this is scrollable. + + True if the field content can be scrolled, false otherwise. Default is true. + + + + Gets or sets the maximum length of the field, in characters. + + A positive integer value specifying the maximum number of characters that can be entered in the text edit field. + + + + Gets the collection of text box field items. + + + + + Calculate how many lines of text + + + + + + + + + Calculate font size + + + + + + + + + + Get font size from da string + + + + + + Save the text box field appearance + + the text value + + + + Represents collection of text box group items. + + + + + Gets the at the specified index. + + + + + Represents base class of XFDF. + + + + + Initializes a new instance of the class. + + The filename. + + + + Identify push button field. + + + + + Identify check box field. + + + + + Identify radio button field. + + + + + Identify text field. + + + + + Identify listbox field. + + + + + Identify combobox field. + + + + + Identify signature field. + + + + + Identify that field has no type. + + + + + Specifies the format of Export or Import data. + + + + + Specifies XML file format + + + + + Specifies Forms Data Format file format + + + + + Specifies XFDF file format. + + + + + Get cached item. + + + Cache group which all objects in group share the same data. + + Any cached object,because all objects in group share the same data. + + + + Represents the separable blend. + + + + + Represents the instance. + + The blend mode + The alpha factor + + + + Initialize object. + + The blend mode + + + + String to enum. + + The enum type + The enum type + The enum type + + + + Blend image. + + The page image + The source image + The matrix + The blend bitmap + + + + Blend path. + + The page graphics + The pen color + The path + The page image + The bitmap + + + + Blend image. + + The back bitmap + The source bitmap + The blend bitmap + + + + Blend bitmap. + + The back bitdata + The source bitdata + The out bitdata + The width + The height + + + + Multily blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Darken blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Lighten blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Screen blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Normal blend. + + The back bitbase + The source bitbase + The output bitbase + The width + The height + + + + Create blend bitmap. + + The width + The height + The dpix + The dpiy + The bitmap + + + + Subtracted image. + + The source image + The rect + The bitmap + + + + Get the image actual size. + + The widhth + The height + The dpix + The dpiy + The image actual size + + + + Get back bitmap. + + The page image + The float array + The width + The height + The bitmap + + + + Get source bitmap. + + The source image + The width + The height + The dpix + The dpiy + The bitmap + + + + Get the path bound. + + The path + The matrix + The rectangle + + + + Implements blend brush setting and functions. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The number of elements in the Factors and Positions arrays. + + + + Gets or sets the factors array. + + + + + Represents the base class for PdfBlend and PdfColorBlend classes. + Implements basic routines needed by both classes. + + + + + Gets or sets the positions array. + + + + + Represents the collection of immutable default brushes. + + + + + Gets the AliceBlue brush. + + + + + Gets the antique white brush. + + + + + Gets the Aqua default brush. + + + + + Gets the Aquamarine default brush. + + + + + Gets the Azure default brush. + + + + + Gets the Beige default brush. + + + + + Gets the Bisque default brush. + + + + + Gets the Black default brush. + + + + + Gets the BlanchedAlmond default brush. + + + + + Gets the Blue default brush. + + + + + Gets the BlueViolet default brush. + + + + + Gets the Brown default brush. + + + + + Gets the BurlyWood default brush. + + + + + Gets the CadetBlue default brush. + + + + + Gets the Chartreuse default brush. + + + + + Gets the Chocolate default brush. + + + + + Gets the Coral default brush. + + + + + Gets the CornflowerBlue default brush. + + + + + Gets the Corn silk default brush. + + + + + Gets the Crimson default brush. + + + + + Gets the Cyan default brush. + + + + + Gets the DarkBlue default brush. + + + + + Gets the DarkCyan default brush. + + + + + Gets the DarkGoldenrod default brush. + + + + + Gets the DarkGray default brush. + + + + + Gets the DarkGreen default brush. + + + + + Gets the DarkKhaki default brush. + + + + + Gets the DarkMagenta default brush. + + + + + Gets the DarkOliveGreen default brush. + + + + + Gets the DarkOrange default brush. + + + + + Gets the DarkOrchid default brush. + + + + + Gets the DarkRed default brush. + + + + + Gets the DarkSalmon default brush. + + + + + Gets the DarkSeaGreen default brush. + + + + + Gets the DarkSlateBlue default brush. + + + + + Gets the DarkSlateGray default brush. + + + + + Gets the DarkTurquoise default brush. + + + + + Gets the DarkViolet default brush. + + + + + Gets the DeepPink default brush. + + + + + Gets the DeepSkyBlue default brush. + + + + + Gets the DimGray default brush. + + + + + Gets the DodgerBlue default brush. + + + + + Gets the Firebrick default brush. + + + + + Gets the FloralWhite default brush. + + + + + Gets the ForestGreen default brush. + + + + + Gets the Fuchsia default brush. + + + + + Gets the Gainsborough default brush. + + + + + Gets the GhostWhite default brush. + + + + + Gets the Gold default brush. + + + + + Gets the Goldenrod default brush. + + + + + Gets the Gray default brush. + + + + + Gets the Green default brush. + + + + + Gets the GreenYellow default brush. + + + + + Gets the Honeydew default brush. + + + + + Gets the HotPink default brush. + + + + + Gets the IndianRed default brush. + + + + + Gets the Indigo default brush. + + + + + Gets the Ivory default brush. + + + + + Gets the Khaki default brush. + + + + + Gets the Lavender default brush. + + + + + Gets the LavenderBlush default brush. + + + + + Gets the LawnGreen default brush. + + + + + Gets the LemonChiffon default brush. + + + + + Gets the LightBlue default brush. + + + + + Gets the LightCoral default brush. + + + + + Gets the LightCyan default brush. + + + + + Gets the LightGoldenrodYellow default brush. + + + + + Gets the LightGray default brush. + + + + + Gets the LightGreen default brush. + + + + + Gets the LightPink default brush. + + + + + Gets the LightSalmon default brush. + + + + + Gets the LightSeaGreen default brush. + + + + + Gets the LightSkyBlue default brush. + + + + + Gets the LightSlateGray default brush. + + + + + Gets the LightSteelBlue default brush. + + + + + Gets the LightYellow default brush. + + + + + Gets the Lime default brush. + + + + + Gets the LimeGreen default brush. + + + + + Gets the Linen default brush. + + + + + Gets the Magenta default brush. + + + + + Gets the Maroon default brush. + + + + + Gets the MediumAquamarine default brush. + + + + + Gets the MediumBlue default brush. + + + + + Gets the MediumOrchid default brush. + + + + + Gets the MediumPurple default brush. + + + + + Gets the MediumSeaGreen default brush. + + + + + Gets the MediumSlateBlue default brush. + + + + + Gets the MediumSpringGreen default brush. + + + + + Gets the MediumTurquoise default brush. + + + + + Gets the MediumVioletRed default brush. + + + + + Gets the MidnightBlue default brush. + + + + + Gets the MintCream default brush. + + + + + Gets the MistyRose default brush. + + + + + Gets the Moccasin default brush. + + + + + Gets the NavajoWhite default brush. + + + + + Gets the Navy default brush. + + + + + Gets the OldLace default brush. + + + + + Gets the Olive default brush. + + + + + Gets the OliveDrab default brush. + + + + + Gets the Orange default brush. + + + + + Gets the OrangeRed default brush. + + + + + Gets the Orchid default brush. + + + + + Gets the PaleGoldenrod default brush. + + + + + Gets the PaleGreen default brush. + + + + + Gets the PaleTurquoise default brush. + + + + + Gets the PaleVioletRed default brush. + + + + + Gets the PapayaWhip default brush. + + + + + Gets the PeachPuff default brush. + + + + + Gets the Peru default brush. + + + + + Gets the Pink default brush. + + + + + Gets the Plum default brush. + + + + + Gets the PowderBlue default brush. + + + + + Gets the Purple default brush. + + + + + Gets the Red default brush. + + + + + Gets the RosyBrown default brush. + + + + + Gets the RoyalBlue default brush. + + + + + Gets the SaddleBrown default brush. + + + + + Gets the Salmon default brush. + + + + + Gets the SandyBrown default brush. + + + + + Gets the SeaGreen default brush. + + + + + Gets the SeaShell default brush. + + + + + Gets the Sienna default brush. + + + + + Gets the Silver default brush. + + + + + Gets the SkyBlue default brush. + + + + + Gets the SlateBlue default brush. + + + + + Gets the SlateGray default brush. + + + + + Gets the Snow default brush. + + + + + Gets the SpringGreen default brush. + + + + + Gets the SteelBlue default brush. + + + + + Gets the Tan default brush. + + + + + Gets the Teal default brush. + + + + + Gets the Thistle default brush. + + + + + Gets the Tomato default brush. + + + + + Gets the Transparent default brush. + + + + + Gets the Turquoise default brush. + + + + + Gets the Violet default brush. + + + + + Gets the Wheat default brush. + + + + + Gets the White default brush. + + + + + Gets the WhiteSmoke default brush. + + + + + Gets the Yellow default brush. + + + + + Gets the YellowGreen default brush. + + + + + Represents the arrays of colors and positions used for + interpolating color blending in a multicolor gradient. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The count. + + + + Gets or sets the colours array. + + + + + Specifies the gradient direction of the linear gradient brush. + + + + + Specifies a gradient from upper right to lower left. + + + + + Specifies a gradient from upper left to lower right. + + + + + Specifies a gradient from left to right. + + + + + Specifies a gradient from top to bottom. + + + + + Specifies the constant values specifying whether to extend the shading + beyond the starting and ending points of the axis. + + + + + Do not extend any point. + + + + + Extend start point. + + + + + Extend end point. + + + + + Extend both start and end points. + + + + + Function-based shading. + + + + + Axial shading. + + + + + Radial shading. + + + + + Free-form Gouraud-shaded triangle mesh + + + + + Lattice-form Gouraud-shaded triangle mesh. + + + + + Coons patch mesh. + + + + + Tensor-product patch mesh. + + + + + Describes a graphics element which can be drawn by a pen. + + + + + Gets or sets a pen that will be used to draw the element. + + + + + The actual bounds of the html view. It may larger than Bounds + + + + + Represents an element that could be drawn and/or filled. + + + + + Gets or sets the brush. + + + + + Represents a base class for all page graphics elements. + + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + Location of the element in the Graphics' co-ordinate system. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + Represents the base class for all elements that can be layout on the pages. + + [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust")] + + + + Event. Raises after the element was printed on the page. + + + + + Event. Raises before the element should be printed on the page. + + + + + Draws the element on the page. + + Current page where the element should be drawn. + Start location on the page. + Layouting result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + X co-ordinate of the element on the page. + Y co-ordinate of the element on the page. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + Start location on the page. + Lay outing format. + Lay outing result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + X co-ordinate of the element on the page. + Y co-ordinate of the element on the page. + Layout format. + Layout result. + + + + Draws the element on the page. + + Current page where the element should be drawn. + RectangleF structure that specifies the bounds of the element. + Layout format. + Layout result. + + + + Gets or sets the path of the font. + + + + + Gets or set the font stream. + + + + + Gets or sets the private font collection. + + + + + Base class for the main shapes. + + + + + Gets the bounds. + + rect + + + + + Class that represent HTML text area with the ability to span several pages. + + + + + Specifies how text in a is + horizontally aligned. + + + + + The text is aligned to the left. + + + + + The text is aligned to the right. + + + + + The text is aligned in the center. + + + + + The text is justified. + + + + + internal variable to store Size. + + + + + internal variable to store Mask. + + + + + internal variable to store Numbering. + + + + + internal variable to store Reserved. + + + + + internal variable to store Start Indent. + + + + + internal variable to store Right Indent. + + + + + internal variable to store Offset. + + + + + internal variable to store Alignment. + + + + + internal variable to store Tab Count. + + + + + internal variable to store rgxTabs. + + + + + internal variable to store Space Before. + + + + + internal variable to store Space After. + + + + + internal variable to store Line Spacing. + + + + + internal variable to store Style. + + + + + internal variable to store Line Spacing Rule. + + + + + internal variable to store Out line Level. + + + + + internal variable to store Shading Weight. + + + + + internal variable to store Shading Style. + + + + + internal variable to store Numbering Start. + + + + + internal variable to store Numbering Style. + + + + + internal variable to store Numbering Tab. + + + + + internal variable to store Border Space. + + + + + internal variable to store Border Width. + + + + + internal variable to store Borders. + + + + + internal variable to store size. + + + + + internal variable to store Mask. + + + + + internal variable to store Effects. + + + + + internal variable to store Height. + + + + + internal variable to store Offset. + + + + + internal variable to store Text Color. + + + + + internal variable to store CharSet. + + + + + internal variable to store Pitch And Family. + + + + + internal variable to store Weight. + + + + + internal variable to store Spacing. + + + + + internal variable to store BackColor. + + + + + internal variable to store lcid. + + + + + internal variable to store Reserved. + + + + + internal variable to store Style. + + + + + internal variable to store Kerning. + + + + + internal variable to store Under line Type. + + + + + internal variable to store Animation. + + + + + internal variable to store RevAuthor. + + + + + internal variable to store Reserved. + + + + + Represents the text area with the ability to span several pages. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Initializes a new instance of the class. + + The text. + The font. + + + + Initializes a new instance of the class. + + The text. + The font. + The pen. + + + + Initializes a new instance of the class. + + The text. + The font. + The brush. + + + + Initializes a new instance of the class. + + The text. + The font. + The pen. + The brush. + The format. + + + + Gets or sets a value indicating the text that should be printed. + + + + + Gets or sets a pen that will be used to draw the text. + + + + + Gets or sets the brush that will be used to draw the text. + + + + + Gets or sets a font that will be used to draw the text. + + + + + Gets or sets text settings that will be used to draw the text. + + + + + Draws the text on the page. + + Current page where the text should be drawn. + Start location on the page. + Lay outing format. + Lay outing result. + + + + Draws the text on the page. + + Current page where the text should be drawn. + Start location on the page. + Width of the text bounds. + Lay outing format. + Lay outing result. + + + + Draws the text on the page. + + Current page where the text should be drawn. + RectangleF structure that specifies the bounds of the text. + Lay outing format. + Lay outing result. + + + + Represents the data for a cancelable event. + + + + + Gets or sets a value indicating whether this is cancel. + + true if cancel; otherwise, false. + + + + Data for event before lay outing of the page. + + + + + Gets or sets value that indicates the lay outing bounds on the page. + + + + + Gets the page where the lay outing should start. + + + + + Initializes a new instance of the class. + + The bounds. + The page. + + + + Contains information about layout`s element . + + + + + Gets a result of the lay outing on the page. + + + + + Gets or sets a value indicating the next page where the element should be layout if the process is not finished or stopped. + + The default value is null. In this case the element will be layout on the next page. + + + + Initializes a new instance of the class. + + The result. + + + + Contains information about layout`s element . + + + + + Initializes a new instance of the class. + + The result. + + + + Gets a result of the lay outing on the page. + + + + + Delegate. Defines a type of the event before lay outing on the page. + + + + + Delegate. Defines a type of the event after lay outing on the page. + + + + + Delegate. Defines a type of the event after the text lay outing on the page. + + + + + Specifies type of paginating. + + + + + If the element exceeds the page, proceed it on the next page. + + + + + Draw the element on the one page only. + + + + + Specifies how the element should be contained on the page. + + + + + Fit the element according to the bounds specified or the page bounds. + + + + + If the element doesn't fit at the first page, don't draw it on this page. + + + + + Represents the used fonts in a PDF document. + + + + + Gets the name. + + The name. + + + + Gets the size. + + The size. + + + + Gets the style. + + The style. + + + + Gets the type. + + The type. + + + + Initializes a new instance of the class. + + The font. + + + + Replaces the specified new font. + + The new font. + + + + Replace the font size in the content. + + The font size. + The font name in the resources. + + + + Dispose font + + + + + Gets or sets ofset from beginning of TrueType font file. + + + + + Gets or sets length of this table. + + + + + Gets or sets table checksum. + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Typographic line gap. + Negative LineGap values are treated as DEF_TABLE_CHECKSUM. + + + + + Gets or sets contains CFF. + + + + + Gets or sets value indicating if Symbol font is used. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets a value indicating whether font is script. + + + + + Gets a value indicating whether font is serif. + + + + + Gets or sets description font item. + + + + + Gets or sets post-script font name. + + + + + Gets or sets font family name. + + + + + Gets or sets font name. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets description font item. + + + + + Gets or sets widths table for the font. + + + + + Regular: 0 + Bold: 1 + Italic: 2 + Bold Italic: 3 + Bit 0- bold (if set to 1) + Bit 1- italic (if set to 1) + Bits 2-15- reserved (set to 0). + NOTE: + Note that macStyle bits must agree with the 'OS/2' table fsSelection bits. + The fsSelection bits are used over the macStyle bits in Microsoft Windows. + The PANOSE values and 'post' table values are ignored for determining bold or italic fonts. + + + + + Subscript size factor. + + + + + Superscript size factor. + + + + + First char of the font. + + + + + Last char of the font. + + + + + Gets a value indicating whether this instance is italic. + + true if this instance is italic; otherwise, false. + + + + Gets a value indicating whether this instance is bold. + + true if this instance is bold; otherwise, false. + + + + Local variable to store Format Selector. + + + + + Local variable to store Records Count. + + + + + Local variable to store Offset. + + + + + Local variable to store Name Records. + + + + + The PlatformID. + + + + + The EncodingID. + + + + + The PlatformIDLanguageID + + + + + The NameID. + + + + + The Length. + + + + + The Offset. + + + + + The Name. + + + + + The cmap. + + + + + The glyf. + + + + + The head. + + + + + The hhea. + + + + + The cmap. + + + + + The loca. + + + + + The maxp. + + + + + The cmap. + + + + + The post. + + + + + The OS2. + + + + + The CFF. + + + + + The cvt. + + + + + The fpgm. + + + + + The prep. + + + + + Modified: International date (8-byte field). + + + + + Created: International date (8-byte field). + + + + + MagicNumber: Set to 0x5F0F3CF5. + + + + + CheckSumAdjustment: To compute: set it to 0, sum the entire font as ULONG, + then store 0xB1B0AFBA - sum. + + + + + FontRevision: Set by font manufacturer. + + + + + Table version number: 0x00010000 for version 1.0. + + + + + Minimum x for all glyph bounding boxes. + + + + + Minimum y for all glyph bounding boxes. + + + + + Valid range is from 16 to 16384. + + + + + Maximum y for all glyph bounding boxes. + + + + + Maximum x for all glyph bounding boxes. + + + + + Regular: 0 + Bold: 1 + Italic: 2 + Bold Italic: 3 + Bit 0 - bold (if set to 1) + Bit 1 - italic (if set to 1) + Bits 2-15 - reserved (set to 0) + NOTE: + Note that macStyle bits must agree with the 'OS/2' table fsSelection bits. + The fsSelection bits are used over the macStyle bits in Microsoft Windows. + The PANOSE values and 'post' table values are ignored for determining bold or italic fonts. + + + + + Bit 0 - baseline for font at y=0 + Bit 1 - left SideBearing at x=0 + Bit 2 - instructions may depend on point size + Bit 3 - force ppem to integer values for all private scaler math; may use fractional ppem sizes if this bit is clear + Bit 4 - instructions may alter advance width (the advance widths might not scale linearly) + Note: All other bits must be zero. + + + + + LowestRecPPEM: Smallest readable size in pixels. + + + + + FontDirectionHint: + 0 Fully mixed directional glyphs + 1 Only strongly left to right + 2 Like 1 but also contains neutrals + -1 Only strongly right to left + -2 Like -1 but also contains neutrals. + + + + + 0 for short offsets, 1 for long. + + + + + 0 for current format. + + + + + Version. + + + + + Typographic ascent. + + + + + Maximum advance width value in HTML table. + + + + + Typographic descent. + + + + + Number of hMetric entries in HTML table; + may be smaller than the total number of glyphs in the font. + + + + + Typographic line gap. Negative LineGap values are treated as DEF_TABLE_CHECKSUM + in Windows 3.1, System 6, and System 7. + + + + + Minimum left SideBearing value in HTML table. + + + + + Minimum right SideBearing value; calculated as Min(aw - lsb - (xMax - xMin)). + + + + + Max(lsb + (xMax - xMin)). + + + + + Used to calculate the slope of the cursor (rise/run); 1 for vertical. + + + + + 0 for vertical. + + + + + 0 for current format. + + + + + Struct field. + + + + + The Average Character Width parameter specifies + the arithmetic average of the escapement (width) + of all of the 26 lowercase letters a through z of the Latin alphabet + and the space character. If any of the 26 lowercase letters are not present, + this parameter should equal the weighted average of all glyphs in the font. + For non-UGL (platform 3, encoding 0) fonts, use the unweighted average. + + + + + Indicates the visual weight (degree of blackness or thickness of strokes) + of the characters in the font. + + + + + Indicates a relative change from the normal aspect ratio (width to height ratio) + as specified by a font designer for the glyphs in a font. + + + + + Indicates font embedding licensing rights for the font. + Embeddable fonts may be stored in a document. + When a document with embedded fonts is opened on a system that does not have the font installed + (the remote system), the embedded font may be loaded for temporary (and in some cases, permanent) + use on that system by an embedding-aware application. + Embedding licensing rights are granted by the vendor of the font. + + + + + The recommended horizontal size in font design units for subscripts for this font. + + + + + The recommended vertical size in font design units for subscripts for this font. + + + + + The recommended horizontal offset in font design units for subscripts for this font. + + + + + The recommended vertical offset in font design units from the baseline for subscripts for this font. + + + + + The recommended horizontal size in font design units for superscripts for this font. + + + + + The recommended vertical size in font design units for superscripts for this font. + + + + + The recommended horizontal offset in font design units for superscripts for this font. + + + + + The recommended vertical offset in font design units from the baseline for superscripts for this font. + + + + + Width of the strikeout stroke in font design units. + + + + + The position of the strikeout stroke relative to the baseline in font design units. + + + + + This parameter is a classification of font-family design. + + + + + This 10 byte series of numbers are used to describe the visual characteristics + of a given typeface. These characteristics are then used to associate the font with + other fonts of similar appearance having different names. The variables for each digit are listed below. + The specifications for each variable can be obtained in the specification + PANOSE v2.0 Numerical Evaluation from Microsoft or Elseware Corporation. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + The four character identifier for the vendor of the given type face. + + + + + Information concerning the nature of the font patterns. + + + + + The minimum Unicode index (character code) in this font, + according to the cmap subtable for platform ID 3 and encoding ID 0 or 1. + For most fonts supporting Win-ANSI or other character sets, this value would be 0x0020. + + + + + usLastCharIndex: The maximum Unicode index (character code) in this font, + according to the cmap subtable for platform ID 3 and encoding ID 0 or 1. + This value depends on which character sets the font supports. + + + + + The typographic ascender for this font. + Remember that this is not the same as the Ascender value in the 'hhea' table, + which Apple defines in a far different manner. + DEF_TABLE_OFFSET good source for usTypoAscender is the Ascender value from an AFM file. + + + + + The typographic descender for this font. + Remember that this is not the same as the Descender value in the 'hhea' table, + which Apple defines in a far different manner. + DEF_TABLE_OFFSET good source for usTypoDescender is the Descender value from an AFM file. + + + + + The typographic line gap for this font. + Remember that this is not the same as the LineGap value in the 'hhea' table, + which Apple defines in a far different manner. + + + + + The ascender metric for Windows. + This too is distinct from Apple's Ascender value and from the usTypoAscender values. + usWinAscent is computed as the yMax for all characters in the Windows ANSI character set. + usTypoAscent is used to compute the Windows font height and default line spacing. + For platform 3 encoding 0 fonts, it is the same as yMax. + + + + + The descender metric for Windows. + This too is distinct from Apple's Descender value and from the usTypoDescender values. + usWinDescent is computed as the -yMin for all characters in the Windows ANSI character set. + usTypoAscent is used to compute the Windows font height and default line spacing. + For platform 3 encoding 0 fonts, it is the same as -yMin. + + + + + This field is used to specify the code pages encompassed + by the font file in the 'cmap' subtable for platform 3, encoding ID 1 (Microsoft platform). + If the font file is encoding ID 0, then the Symbol Character Set bit should be set. + If the bit is set (1) then the code page is considered functional. + If the bit is clear (0) then the code page is not considered functional. + Each of the bits is treated as an independent flag and the bits can be set in any combination. + The determination of "functional" is left up to the font designer, + although character set selection should attempt to be functional by code pages if at all possible. + + + + + This field is used to specify the code pages encompassed + by the font file in the 'cmap' subtable for platform 3, encoding ID 1 (Microsoft platform). + If the font file is encoding ID 0, then the Symbol Character Set bit should be set. + If the bit is set (1) then the code page is considered functional. + If the bit is clear (0) then the code page is not considered functional. + Each of the bits is treated as an independent flag and the bits can be set in any combination. + The determination of "functional" is left up to the font designer, + although character set selection should attempt to be functional by code pages if at all possible. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Struct field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Holds glyph index. + + + + + Holds character's width. + + + + + Code of the char symbol. + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Compares two WidthDescriptor objects. + + Another object for comparing. + A signed integer that indicates the relative order of this instance and value. + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Structure field. + + + + + Represents the standard CJK fonts. + + + + + Initializes a new instance of the class. + + The font family. + The size. + The style. + + + + Initializes a new instance of the class. + + The font family. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + The style. + + + + Gets the font family. + + + + + Represents the font. + + + + + Gets the name. + + The name. + + + + Gets the size. + + The size. + + + + Gets the height of the font in points. + + + + + Gets the descent of the font in points. + + + + + Gets the style information for this font. + + + + + Gets a value indicating whether this is bold. + + true if bold; otherwise, false. + + + + Gets a value indicating whether this is italic. + + true if italic; otherwise, false. + + + + Gets a value indicating whether this is strikeout. + + true if strikeout; otherwise, false. + + + + Gets a value indicating whether this is underline. + + true if underline; otherwise, false. + + + + Measures a string by using this font. + + Text to be measured. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + Maximum width of the string in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Size of the text. + + + + Measures a string by using this font. + + Text to be measured. + SizeF structure that specifies the maximum layout area for the text in points. + PdfStringFormat that represents formatting information, such as line spacing, for the string. + Number of characters in the string. + Number of text lines in the string. + Size of the text. + + + + Gets Pdf primitive representing the font. + + + + + Checks whether the object is similar to another object. + + The object to compare with the current object. + True - if the objects have equal internals and can share them, False otherwise. + + + + Represents one of the 14 standard PDF fonts. + + + + + Initializes a new instance of the class. + + The font family. + The size. + + + + Initializes a new instance of the class. + + The font family. + The size. + The style. + + + + Initializes a new instance of the class. + + The prototype. + The size. + + + + Initializes a new instance of the class. + + The prototype. + The size. + The style. + + + + Gets the FontFamily. + + + + + Represents the text layout information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The alignment. + + + + Initializes a new instance of the class. + + The column format. + + + + Initializes a new instance of the class. + + The alignment. + The vertical alignment. + + + + Gets or sets the text alignment. + + + + + Gets or sets the vertical text alignment. + + + + + Gets or sets the value that indicates text direction mode. + + Note, that this property doesn't change any alignment of the text. + property should be set manually to align the text. This property just enables or disables + support of right to left approach. + If the value is False, the text won't be checked for right to left symbols occurrence. + + + + Gets or sets value that indicates a size among the characters in the text. + When the glyph for each character in the string is rendered, this value is + added to the the glyphs displacement. + + + Default value is 0. + + + + Gets or sets value that indicates a size among the words in the text. + Word spacing works the same way as character spacing but applies only to the + space character, code 32. + + Default value is 0. + + + + Gets or sets value that indicates the vertical distance between the baselines of adjacent lines of text. + + Default value is 0. + + + + Gets or sets a value indicating whether the text + should be a part of the clipping path. + + + + + Gets or sets value indicating whether the text is in subscript or superscript mode. + + + + + Gets or sets the indent of the first line in the paragraph. + + + + + Only entire lines are laid out in the formatting rectangle. + By default layout continues until the end of the text, + or until no more lines are visible as a result of clipping, whichever comes first. + Note that the default settings allow the last line to be partially obscured by a formatting rectangle that is not a whole multiple of the line height. + To ensure that only whole lines are seen, specify this value and be careful to provide a formatting rectangle at least as tall as the height of one line. + + true if [line limit]; otherwise, false. + + + + Includes the trailing space at the end of each line. + By default the boundary rectangle returned by the MeasureString method of PdfFont excludes the space at the end of each line. + Set this flag to include that space in measurement. + + + true if [measure trailing spaces]; otherwise, false. + + + + + Overhanging parts of glyphs, + and unwrapped text reaching outside the formatting rectangle are allowed to show. + By default all text and glyph parts reaching outside the formatting rectangle are clipped. + + true if [no clip]; otherwise, false. + + + + Gets or sets value indicating type of the text wrapping. + + + + + Clones the object. + + The new created object. + + + + Represents TrueType font. + + [System.Security.Permissions.PermissionSet( System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust" )] + + + + Convert unicode text to charCode text using the character set encoding. + + + + + + Class lay outing the text. + + + + + Initializes a new instance of the class. + + + + + Layouts the text. + + String text. + Font for the text. + String format. + Bounds of the text. + Layout result. + + + + Process the '\t' in text. + + The text + The processed text + + + + Get the info text length + + The line info + The postion + the line info`s length + + + + Layouter result. + + + + + Gets the text which is not layouted + + + + + Gets the actual layouted text bounds + + + + + Gets layouted lines information. + + + + + Gets the height of the line. + + + + + Contains information about the line. + + + + + Gets width of the line text. + + + + + Gets line text. + + + + + Gets width of the line text. + + + + + Break type of the line. + + + + + Unknown type line. + + + + + The line has new line symbol. + + + + + layout break. + + + + + The line is the first in the paragraph. + + + + + The line is the last in the paragraph. + + + + + Is not a separator + + + + + Is a separator, but can not be the first char of a new line + + + + + Is a separator which can be the first char of a new line + + + + + Indicates that the character is an opening or initial quotation mark. + + + + + Letter, whoes code > 0x1EF4 + + + + + Check table name does not exist + + + + + + + set char Code for unicode char + + unicodeString + charCode + + + + Get CharCode + + + + + + + Specifies style information applied to text. + + + + + Normal text. + + + + + Bold text. + + + + + Italic text. + + + + + Represents the underline text. + + + + + Strikeout text. + + + + + Indicates type of standard PDF fonts. + + + + + Represents the Helvetica font. + + + + + Represents the Courier font. + + + + + Represents the Times Roman font. + + + + + Represents the Symbol font. + + + + + Represents the ZapfDingbats font. + + + + + Specifies the type of CJK font. + + + + + Represents the Hanyang Systems Gothic Medium font. + + + + + Represents the Hanyang Systems shin myeong Jo Medium font. + + + + + Represents the Heisei kaku GothicW5 font. + + + + + Represents the Heisei MinchoW3 font. + + + + + Represents the Monotype Hei Medium font. + + + + + Represents the monotype sung Light font. + + + + + Represents the sinotype song light font. + + + + + Specifies the type of the font. + + + + + Indicates the standard Adobe fonts. + + + + + Indicates the non-embedded TrueType fonts. + + + + + Indicates the Embedded TrueType fonts. + + + + + Specifies the types of text wrapping. + + + + + Text wrapping between lines when formatting within a rectangle is disabled. + + + + + Text is wrapped by words. If there is a word that is longer than bounds' width, this word is wrapped by characters. + + + + + Text is wrapped by words. If there is a word that is longer than bounds' width, it won't be wrapped at all + and the process will be finished. + + + + + Text is wrapped by characters. In this case the word at the end of the text line can be split. + + + + + Specifies type of the SubSuperScript. + + + + + Specifies no subscript or superscript. + + + + + Specifies superscript format. + + + + + Specifies subscript format. + + + + + Apple platform. + + + + + Macintosh platform. + + + + + Iso platform. + + + + + Microsoft platform. + + + + + The Copyright + + + + + The Font Family + + + + + The Font Sub Family + + + + + The Font Identifier + + + + + The Font Name + + + + + The Version + + + + + The PostScriptName + + + + + The Trademark + + + + + Unknown encoding. + + + + + When building a symbol font for Windows. + + + + + When building a Unicode font for Windows. + + + + + For font that will be used on a Macintosh. + + + + + Undefined encoding. + + + + + Unicode BMP(UCS-2) encoding. + + + + + Add by pdf-2610 + Unicode UCS-4 encoding. + + + + + Roman encoding. + + + + + Japanese encoding. + + + + + Chinese encoding. + + + + + This is the Apple standard character to glyph index mapping table. + + + + + This is the Microsoft standard character to glyph index mapping table. + + + + + Format 6: Trimmed table mapping. + + + + + Add by pdf-2610 + Format 12: Segmented Coverage table mapping. + + + + + ttf composite glyph flags. + + + + + The ARG_1_AND_2_ARE_WORDS. + + + + + The ARGS_ARE_XY_VALUES. + + + + + The ROUND_XY_TO_GRID. + + + + + The WE_HAVE_A_SCALE. + + + + + The RESERVED. + + + + + The MORE_COMPONENTS. + + + + + The WE_HAVE_AN_X_AND_Y_SCALE. + + + + + The WE_HAVE_A_TWO_BY_TWO. + + + + + The WE_HAVE_INSTRUCTIONS. + + + + + The USE_MY_METRICS. + + + + + Unknown encoding + + + + + Adobe standard Latin-text encoding + + + + + Mac OS standard encoding + + + + + An encoding for use with expert fonts + + + + + Windows Code Page 1252 + + + + + Encoding for text strings in a PDF document outside the document's content streams. + + + + + The horizontal identity mapping for 2-byte CIDs; may be used with CIDFonts using any + Registry, Ordering, and Supplement values. It maps 2-byte character codes ranging from + 0 to 65,535 to the same 2-byte CID value, interpreted high-order byte first. + + + + + All glyphs have the same width (as opposed to proportional or variable-pitch + fonts, which have different widths). + + + + + Glyphs have serifs, which are short strokes drawn at an angle on the top and + bottom of glyph stems (as opposed to sans serif fonts, which do not). + + + + + Font contains glyphs outside the Adobe standard Latin character set. The + flag and the nonsymbolic flag cannot both be set or both be clear. + + + + + Glyphs resemble cursive handwriting. + + + + + Font uses the Adobe standard Latin character set or a subset of it. + + + + + Glyphs have dominant vertical strokes that are slanted. + + + + + Bold font. + + + + + + + + + + + + + + + Represent pdf form XObject. + + + + + Form XObject pdf stream. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The resources. + + + + + + + + + + + + + + + + + + + + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_bound to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_matrix to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_visibilityGroup to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_resources to the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_bound from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_matrix from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_visibilityGroup from the pdf primitive. + + The form XObject dictionary. + + + + Synchronize the instance field m_resources from the pdf primitive. + + The form XObject dictionary. + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Default Quantizer Quality. + + + + + A 64 byte array which corresponds to a JPEG Luminance Quantization table. + + + + + A 64 byte array which corresponds to a JPEG Chromiance Quantization table. + + + + + Encodes a provided ImageBuffer[,,] to a JPG Image. + + The ImageBuffer containing the pixel data. + Dimension of the original image. This value is written to the image header. + Dimension on which the Encoder works. As the Encoder works in 8*8 blocks, if the image size is not divisible by 8 the remaining blocks are set to '0' (in this implementation) + Stream to which the JPEG data is to be written. + Required quantizer quality; Default: 50 , Lower value higher quality. + Interface for updating Progress. + Interface for updating CurrentOperation. + + + + Encodes a provided Image to a JPG Image. + + The Image to be encoded. + Stream to which the JPEG data is to be written. + Required quantizer quality; Default: 50 , Lower value higher quality. + Interface for updating Progress. + Interface for updating CurrentOperation. + + + + Generates Y, Cb, Cr, R, G and B values from given RGB_Buffer + + + + + Defines the different possible channel types. + + + + + Generates Y, Cb, Cr, R, G and B values from given RGB_Buffer + + The input RGB_Buffer. + Draw in grayscale. + Width of the image. + Height of the image. + Enum specifying the channel type required. + Interface for updating progress. + Interface for updating current operation. + 3D array of the specified channel type. + + + + The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device. + + [in] Handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen. + + If the function succeeds, the return value is the handle to a memory DC. + If the function fails, the return value is NULL. + + + + + The SelectObject function selects an object into the specified device context (DC). + The new object replaces the previous object of the same type. + + [in] Handle to the DC. + [in] Handle to the object to be selected. The specified object must have been created by using one of the following functions. + + + + + The SetStretchBltMode function sets the bitmap stretching mode in the specified device context. + + [in] Handle to the device context. + [in] Specifies the stretching mode. This parameter can be one of the values from StretchBltModes enum. + + If the function succeeds, the return value is the previous stretching mode. + If the function fails, the return value is zero. + + + + + The GetObject function retrieves information for the specified graphics object. + + [in] Handle to the graphics object of interest. This can be a handle to one of the following: a logical bitmap, a brush, a font, a palette, a pen, or a device independent bitmap created by calling the CreateDIBSection function. + [in] Specifies the number of bytes of information to be written to the buffer. + [out] Pointer to a buffer that receives the information about the specified graphics object. + + If the function succeeds, and lpvObject is a valid pointer, the return value is the number of bytes stored into the buffer. + If the function succeeds, and lpvObject is NULL, the return value is the number of bytes required to hold the information the function would store into the buffer. + If the function fails, the return value is zero. + + + + + The StretchBlt function copies a bitmap from a source rectangle into a destination + rectangle, stretching or compressing the bitmap to fit the dimensions of the destination + rectangle, if necessary. The system stretches or compresses the bitmap according to + the stretching mode currently set in the destination device context. + + [in] Handle to the destination device context. + [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle. + [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle. + [in] Specifies the width, in logical units, of the destination rectangle. + [in] Specifies the height, in logical units, of the destination rectangle. + [in] Handle to the source device context. + [in] Specifies the x-coordinate, in logical units, of the upper-left corner of the source rectangle. + [in] Specifies the y-coordinate, in logical units, of the upper-left corner of the source rectangle. + [in] Specifies the width, in logical units, of the source rectangle. + [in] Specifies the height, in logical units, of the source rectangle. + [in] Specifies the raster operation to be performed. Raster operation codes define how the system combines colors in output operations that involve a brush, a source bitmap, and a destination bitmap. + + If the function succeeds, the return value is nonzero. + If the function fails, the return value is zero. + + + + + The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context. + + [in] Handle to a device context. + [in] Specifies the bitmap width, in pixels. + [in] Specifies the bitmap height, in pixels. + + If the function succeeds, the return value is a handle to the compatible bitmap (DDB). + If the function fails, the return value is NULL. + + + + + The GetDIBits function retrieves the bits of the specified compatible bitmap + and copies them into a buffer as a DIB using the specified format. + + [in] Handle to the device context. + [in] Handle to the bitmap. This must be a compatible bitmap (DDB). + [in] Specifies the first scan line to retrieve. + [in] Specifies the number of scan lines to retrieve. + [out] Pointer to a buffer to receive the bitmap data. If this parameter is NULL, the function passes the dimensions and format of the bitmap to the BITMAPINFOHEADER structure pointed to by the lpbi parameter. + [in/out] Pointer to a BITMAPINFOHEADER structure that specifies the desired format for the DIB data. + [in] Specifies the format of the bmiColors member of the BITMAPINFOHEADER structure. + If the lpvBits parameter is non-NULL and the function succeeds, the return value is the number of scan lines copied from the bitmap. + + + + The SetDIBits function sets the pixels in a compatible bitmap (DDB) + using the color data found in the specified DIB . + + [in] Handle to a device context. + [in] Handle to the compatible bitmap (DDB) that is to be altered using the color data from the specified DIB. + [in] Specifies the starting scan line for the device-independent color data in the array pointed to by the lpvBits parameter. + [in] Specifies the number of scan lines found in the array containing device-independent color data. + [in] Pointer to the DIB color data, stored as an array of bytes. The format of the bitmap values depends on the biBitCount member of the BITMAPINFO structure pointed to by the lpbmi parameter. + [in] Pointer to a BITMAPINFOHEADER structure that contains information about the DIB. + [in] Specifies whether the bmiColors member of the BITMAPINFO structure was provided and, if so, whether bmiColors contains explicit red, green, blue (RGB) values or palette indexes. + If the function succeeds, the return value is the number of scan lines copied. + + + + The GetDC function retrieves a handle to a display device context (DC) + for the client area of a specified window or for the entire screen. + + [in] Handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen. + If the function succeeds, the return value is a handle to the DC for the specified window's client area. I + If the function fails, the return value is NULL. + + + + + The GetClientRect function retrieves the coordinates of a window's client area. + The client coordinates specify the upper-left and lower-right corners of the client area. + + [in] Handle to the window whose client coordinates are to be retrieved. + [out] Pointer to a RECT structure that receives the client coordinates. + If the function succeeds, the return value is nonzero. + + + + Performs a bit-block transfer of the color data corresponding to a + rectangle of pixels from the specified source device context into + a destination device context. + + Handle to the destination device context. + The leftmost x-coordinate of the destination rectangle (in pixels). + The topmost y-coordinate of the destination rectangle (in pixels). + The width of the source and destination rectangles (in pixels). + The height of the source and the destination rectangles (in pixels). + Handle to the source device context. + The leftmost x-coordinate of the source rectangle (in pixels). + The topmost y-coordinate of the source rectangle (in pixels). + A raster-operation code. + + true if the operation succeeded, false otherwise. + + + + + The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, + freeing all system resources associated with the object. After the object is deleted, + the specified handle is no longer valid. + + [in] Handle to a logical pen, brush, font, bitmap, region, or palette. + If the function succeeds, the return value is nonzero. + + + + The ReleaseDC function releases a device context (DC), freeing it for use by other applications. + The effect of the ReleaseDC function depends on the type of DC. + + [in] Handle to the window whose DC is to be released. + [in] Handle to the DC to be released. + + The return value indicates whether the DC was released. + If the DC was released, the return value is 1. + If the DC was not released, the return value is zero. + + + + + The SetPixel function sets the pixel at the specified coordinates to the specified color. + + [in] Handle to the device context. + [in] Specifies the x-coordinate, in logical units, of the point to be set. + [in] Specifies the y-coordinate, in logical units, of the point to be set. + [in] Specifies the color to be used to paint the point. + If the function succeeds, the return value is the RGB value that the function sets the pixel to. + This value may differ from the color specified by crColor; that occurs when an exact match for the + specified color cannot be found. + + + + Specifies a raster-operation code. These codes define how the color data for the + source rectangle is to be combined with the color data for the destination + rectangle to achieve the final color. + + + + dest = source + + + dest = source OR dest + + + dest = source AND dest + + + dest = source XOR dest + + + dest = source AND (NOT dest) + + + dest = (NOT source) + + + dest = (NOT src) AND (NOT dest) + + + dest = (source AND pattern) + + + dest = (NOT source) OR dest + + + dest = pattern + + + dest = DPSnoo + + + dest = pattern XOR dest + + + dest = (NOT dest) + + + dest = BLACK + + + dest = WHITE + + + + Get Font registry key. + + + + + Get font name key of teh registry. + + + + + Draws extra line between the last and first points. + + The pen. + The points. + If true, connects last and first points. + + + + Darw the multiple Line + + + + + + + + + + + + + + Invalid object type. + + + + + Brush object. + + + + + Pen object. + + + + + Path object. + + + + + Region object. + + + + + Image object. + + + + + Font object. + + + + + String format object. + + + + + Image attributes object. + + + + + Custom line cap object. + + + + + Default value. + + + + + Hatch brush. + + + + + Texture brush. + + + + + Path gradient brush. + + + + + Linear gradient brush. + + + + + Flags for a linear gradient brush. + + + + + Minimal data are present. + + + + + The brush applies a transformation matrix to the source image. + + + + + The brush contains a ColorBlend object for use with its InterpolationColors property. + + + + + The brush contains a Blend object for use with its Blend property. + + + + + The brush has a non-default value for the FocusScales property. + + + + + The brush uses gamma correction. + + + + + Represents pen flags. + + + + + Pen just with color set. + + + + + Transformation set. (20-... - float ) + + + + + StartCap set. ( 20 - int ) + + + + + EndCap set. ( 20 - int ) + + + + + LineJoin set. ( 20 - int ) + + + + + MiterLimit set. ( 20 - float ) + + + + + Pen has DashStyle defined. + + + + + DashCap set. ( 20 - int ) + + + + + DashOffset is defined. (20 - float) + + + + + DashPattern is defined. (20 - int: numArray; 24-... - float: DashPattern ) + + + + + Alignment set. (20 - int ) + + + + + CompoundArray set. (20 - int: numArray; 24-... - float: compoundArray ) + + + + + The pen uses a custom start cap. + + + + + The pen uses a custom end cap. + + + + + Unknown format. + + + + + Bitmap image. + + + + + Metafile image. + + + + + Region is from rectangle. + + + + + Region is from graphics path. + + + + + Region is empty. + + + + + Region is infinity. + + + + + Represents the bmp image object. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfBmpImage from stream. + + + + + + Initialize a new instance of PdfBmpImage from path. + + + + + + Initialize a new instance of PdfBmpImage from byte array. + + + + + + Initialize a new instance of PdfGifImage from path. + + + + + + Initialize a new instance of PdfGifImage from byte array. + + + + + + Initialize a new instance of PdfGifImage from stream. + + + + + + Get the count of frame in gif. + + + + + Get or set the current frame index. + + + + + Get the width of the image in pixels. + + + + + Get the height of the image in pixels. + + + + + Get the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + + Represents the jpeg2000 image object. + + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfBmpImage from path. + + + + + + Initialize a new instance of PdfBmpImage from byte array. + + + + + + Initialize a new instance of PdfBmpImage from stream. + + + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + Represents the jb2 image object. + + + + + Get the width of the image in pixel unit. + + + + + Get the height of the image in pixel unit. + + + + + Get the horizontal resoulution of the image in pixel unit. + + + + + Get the vertical resolution of the image in pixel unit. + + + + + Initialize a new instance of PdfJb2Image from file path. + + + + + + Initialize a new instance of PdfJb2Image from byte array. + + + + + + Initialize a new instance of PdfJb2Image from stream. + + + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Represents the jpeg image object. + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Initialize a new instance of PdfJpegImage from path. + + The file path + + + + Initialize a new instance of PdfJpegImage from byte array. + + The data array + + + + Initialize a new instance of PdfJpegImage from stream. + + The data stream + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + + + + Gets the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Represents the png object. + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + + Get the width of the image in pixels. + + + + + Gets the height of the image in pixels. + + + + + Get the horizontal resolution, in pixels per inch, of this Image. + + + + + Get the vertical resolution, in pixels per inch, of this Image. + + + + + Initialize a new instance of PdfPngImage from file path. + + the file path + + + + Initialize a new instance of PdfPngImage from byte array. + + byte array + + + + Initialize a new instance of PdfPngImage from stream. + + stream + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + + Represents the tiff image object. + + + + + Get bytes count per component. + + The bytes count per component + + + + Process the image data. + if the value of SamplePerPixel bigger than 3 extra samples should + give an indication of the meaning of the additional channels + + The same y position image data. + The y position + Whether exist smask. + The processed image data. + + + + Represent pdf optional content group(or optional content membership). + + + + + Visible of optional content. + + + + + The intent of using optional group + + + + + Which is intended to represent a document designer's + structural organization of artwork. + + + + + Which is intended for interactive use by document consumers. + + + + + Represent pdf optional content group. + Content typically belongs to a single optional content group. + + + + + Optional content group dictionary + + + + + Optional content group Name + + + + + Optional group used Intent + + + + + Optional content configuration. + + + + + Optional content group reference. + + + + + Get or set pdf layer name. + Notice: + Name may be is not unique. + + + + + Get or set pdf layer view state. + + + + + Get or set pdf layer export state. + + + + + Get or set pdf layer print state. + + + + + Get or set pdf layer visible. + + + + + Get whether the layer shows on user interface or not. + + + + + Get reference of the layer. + + + + + Construct an instance + + The pdf layer name + The optional content configuration. + The pdf cross Table + + + + Construct an instance with the optional content group dictionary + + The optional content group dictionary + The optional content configuration. + The pdf cross Table + + + + Construct an instance with the optional content group dictionary + + The optional content group dictionary + The optional content configuration. + The pdf cross Table + The reference of the layer + + + + Create the layer graphics. + + + The pdf layer container's graphics. + eg: PdfPageBase.Canvas ... + + The pdf layer graphics. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_name to the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field m_intent to the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field Usage to the pdf primitive. + + The layer property + The layer property's state + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_name from the pdf primitive. + + The optional content group dictionary + + + + Synchronize the instance field m_intent from the pdf primitive. + + The optional content group dictionary + + + + Represent pdf layer collection. + + + + + The PdfDocumentBase. + + + + + Optional content properties dictionary. + + + + + Optional content groups. + + + + + Default viewing optional content configuration. + + + + + Get the pdf layer of the index. + + Pdf layer index + Pdf layer + + + + Get the pdf layer of name. + Notice: + Pdf layer name may be is not unique. + If exist duplication of name,return first pdf layer of name. + If not exist pdf layer of name,return null; + + Pdf layer name + Pdf layer + + + + Gets the number of pdf layers contained. + + + + + Construct an instance + + The PdfDocumentBase. + The pdf cross table + + + + Construct an instance with the optional content properties dictionary + + The optional content properties dictionary + The PdfDocumentBase. + The pdf cross table + + + + Create a new empty pdf layer outline. + + Pdf layer outline. + + + + Add a new pdf layer. + + Pdf layer name. + Pdf layer. + + + + Add a new pdf layer. + + Pdf layer name. + Pdf layer's visibility. + Pdf layer. + + + + Remove the pdf layer. + + The pdf layer. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove the pdf layer. + + The pdf layer. + If true,remove content with the pdf layer.Otherwise,false. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove layer from Ocgs array. + + + + + + Remove the pdf layer. + Notice: Pdf layer name may be is not unique. + If exist duplication of name,will remove all pdf layers of name. + + Pdf layer name. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Remove the pdf layer. + Notice: Pdf layer name may be is not unique. + If exist duplication of name,will remove all pdf layers of name. + + Pdf layer name. + If true,remove content with the pdf layer.Otherwise,false. + + True if item is successfully removed; otherwise, false. This method also + returns false if item was not found + + + + + Find pdf layers of name. + + Pdf layer name. + Pdf layers of name. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_defaultViewConfig,m_otherConfigs to the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance field m_layers to the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_defaultViewConfig,m_otherConfigs from the pdf primitive. + + The optional content properties dictionary + + + + Synchronize the instance field m_layers from the pdf primitive. + + The optional content properties dictionary + + + + Represent pdf optional content configuration + + + + + Optional content configuration dictionary + + + + + A name for the configuration. + + + + + Used to initialize the states of all optional content groups's visibility. + + + + + An array of optional content groups whose state should be set to + ON when this configuration is applied. + + + + + An array of optional content groups whose state should be set to + OFF when this configuration is applied. + + + + + Used to determine which optional group's states to consider and ignore + in calculating the visibility of content. + + + + + An array specifying the recommended order for presentation of optional content + groups in user interface. + + + + + Construct an instance + + A name for the configuration. + The pdf cross table + + + + Construct an instance with the optional content configuration dictionary + + The optional content configuration dictionary + The pdf cross table + + + + Create a new empty pdf layer outline. + + Pdf layer outline. + + + + Configure a layer at top level. + + The pdf layer. + The layer's visibility. + + + + Remove a layer's configs. + + The pdf layer. + + + + Get layer's visibility. + + The pdf layer. + The pdf layer's visibility. + + + + Set layer's visibility. + + The pdf layer. + The pdf layer's visibility. + + + + Return layer shows on ui or not. + + The layer + + + + + + Append OCGs item for AS item + + the AS PdfArray + The layer property + + + + Get layer's visibility. + + The pdf Layer dictionary. + The pdf layer's visibility. + + + + Add pdf layer visibility settings. + + The list of pdf Layer dictionary. + Visibility of the pdf layer. + + + + Add pdf layer visibility settings. + + The pdf Layer dictionary. + Visibility of the pdf layer. + + + + Remove pdf layer visibility settings. + + The list of pdf Layer dictionary. + + + + Remove pdf layer visibility settings. + + The pdf Layer dictionary. + + + + Add pdf layer visibility settings. + + The pdf Layer. + Visibility of the pdf layer. + + + + Remove pdf layer visibility settings. + + The pdf Layer. + + + + Return the layer shows on ui or not. + + The layer + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_name to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_baseState to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_on to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_off to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_intent to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_layerOutline to the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_name from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_baseState from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_intent from the pdf primitive. + + The optional content configuration dictionary. + + + + Synchronize the instance field m_on from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_off from the pdf primitive. + + The optional content configuration dictionary + + + + Synchronize the instance field m_layerOutline from the pdf primitive. + + The optional content configuration dictionary. + + + + Represent pdf optional content membership. + To express more complex visibility policies,content should declare itself not + to belong directly an optional content group but rather to an optional content + membership. + + + + + Optional content membership dictionary + + + + + Optional content group whose visibility determine the visibility of + this optional content membership. + + + + + Visibility policy. + + + + + Visibility expression. + + + + + All optional content groups in document,not all related this membership. + + + + + Pdf layer membership Visibility. + + + + + Construct a instance. + + all optional content groups. + The pdf cross table. + + + + Construct an instance with the optional content membership dictionary. + + The optional content membership dictionary. + all optional content groups. + The pdf cross table. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance field m_relatedLayers to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityPolicy to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityExpression to the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance from the pdf primitive. + + + + + Synchronize the instance field m_relatedLayers from the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityPolicy from the pdf primitive. + + The optional content membership dictionary + + + + Synchronize the instance field m_visibilityExpression from the pdf primitive. + + The optional content membership dictionary + + + + Represent the recommended order for presentation of optional content + groups in user interface. + Refrence "Optional content configuration dictionary's entry order". + + + + + Optional content configuration dictionary's entry order + + + + + Construct an instance. + + The pdf cross table. + + + + Construct an instance with . + + + The pdf cross table + + + + Add a sub group outline. + + Group name. + Sub group outline. + + + + Add a outline entry of the pdf layer with a sub group outline. + + Pdf layer + Sub group outline. + + + + Add a outline entry of the pdf layer. + + Pdf layer + + + + Remove an entry of the layer,inclued sub enties. + + The layer. + + + + Remove an entry with the layer,inclued sub enties.. + Refrence "Optional content configuration dictionary's entry order". + + The layer. + The array include outline entries. + True,if has succeed.Otherwise,false. + + + + Gets the wrapped element. + + + + + Remove layer content in the page. + + The layer. + The page. + The pdfCrossTable + + + + Represent the visibility of optional content group(or optional content membership). + + + + + Specify the visibility expression for optional content belonging to PdfLayerMembership. + + + + + An array specifying a visibility expression + + + + + Visible of optional content. + + + + + Construct an instance + + The pdf cross table. + + + + Construct an instance with the visibility expression array. + + The visibility expression array. + The pdf cross table. + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Gets the wrapped element. + + + + + Synchronize the instance to the pdf primitive. + + + + + Synchronize the instance from the pdf primitive. + + + + + Specify the visibility policy for content belonging to PdfLayerMembership. + + + + + Not Specifying the visibility policy. + + + + + Visible if any of layer are On. + + + + + Visible only if all of layers are On. + + + + + Visible if any of layer are Off. + + + + + Visible only if all of layers are Off. + + + + + Represent the matrix + + + + + Gets the x translation value (the dx value, or the element in the third row and first column). + + + + + Gets the x translation value (the dx value, or the element in the third row and second column). + + + + + Gets an array of floating-point values that represents the elements. + + + + + Construct a instance as the identity matrix. + + + + + Construct a instance as the identity matrix. + + The value in the first row and first column. + The value in the first row and second column. + The value in the second row and first column. + The value in the second row and second column. + The value in the third row and first column. + The value in the third row and second column. + + + + Construct a instance to the geometric transform defined by the specified rectangle and array of points. + + A System.Drawing.Rectangle structure that represents the rectangle. + + An array of three System.Drawing.Point structures that represents the points + of a parallelogram to which the upper-left, upper-right, and lower-left corners + of the rectangle is to be transformed. The lower-right corner of the parallelogram + is implied by the first three corners. + + + + + Construct a instance to the geometric transform defined by the specified rectangle and array of points. + + A System.Drawing.RectangleF structure that represents the rectangle. + + An array of three System.Drawing.PointF structures that represents the points + of a parallelogram to which the upper-left, upper-right, and lower-left corners + of the rectangle is to be transformed. The lower-right corner of the parallelogram + is implied by the first three corners. + + + + + Prepend the specified matrix. + + Matrix is to be multiplied. + + + + Apply the specified matrix by the specified order. + + Matrix is to be multiplied. + Represent the applying order. + + + + Prepend the specified translation vector (offsetX and offsetY). + + The x value by which to translate. + The y value by which to translate. + + + + Apply the specified translation vector (offsetX and offsetY) by the specified order. + + The x value by which to translate. + The y value by which to translate. + Represent the applying order. + + + + Prepend the specified scale vector (scaleX and scaleY). + + The value by which to scale in the x-axis direction. + The value by which to scale in the y-axis direction. + + + + Apply the specified scale vector (scaleX and scaleY) by the specified order. + + The value by which to scale in the x-axis direction. + The value by which to scale in the y-axis direction. + Represent the applying order. + + + + Prepend a clockwise rotation(angle) around the origin. + + The angle of the rotation, in degrees. + + + + Apply a clockwise rotation(angle) around the origin by the specified order. + + The angle of the rotation, in degrees. + Represent the applying order. + + + + Prepend the specified skew angles(angleX angleY). + + The horizontal skew angle, in degrees. + The vertical skew angle, in degrees. + + + + Prepend the specified skew angles(angleX angleY) by the specified order. + + The horizontal skew angle, in degrees. + The vertical skew angle, in degrees. + Represent the applying order. + + + + Prepend the specified Shear vector (shearX and shearY). + + The horizontal shear factor. + The vertical shear factor. + + + + Apply the specified Shear vector (shearX and shearY) by the specified order. + + The horizontal shear factor. + The vertical shear factor. + Represent the applying order. + + + + Applies the geometric transform to a specified array of points. + + An array of points to transform. + The transformed points. + + + + Matrix1 multiply matrix2 to this. + + first matrix. + second matrix. + + + + Converts degree to radian. + + The degree + The radian + + + + Converts radian to degree. + + The radian + The degree + + + + Calculate 3 simple equation + + + + + Calculate 3 simple equation + + + + + Represent the applying order to matrix. + + + + + The new operation is applied before the old operation. + + + + + The new operation is applied after the old operation. + + + + + The collection of the default pens. + + + + + Gets the AliceBlue pen. + + + + + Gets the antique white pen. + + + + + Gets the Aqua default pen. + + + + + Gets the Aquamarine default pen. + + + + + Gets the Azure default pen. + + + + + Gets the Beige default pen. + + + + + Gets the Bisque default pen. + + + + + Gets the Black default pen. + + + + + Gets the BlanchedAlmond default pen. + + + + + Gets the Blue default pen. + + + + + Gets the BlueViolet default pen. + + + + + Gets the Brown default pen. + + + + + Gets the BurlyWood default pen. + + + + + Gets the CadetBlue default pen. + + + + + Gets the Chartreuse default pen. + + + + + Gets the Chocolate default pen. + + + + + Gets the Coral default pen. + + + + + Gets the CornflowerBlue default pen. + + + + + Gets the Corn silk default pen. + + + + + Gets the Crimson default pen. + + + + + Gets the Cyan default pen. + + + + + Gets the DarkBlue default pen. + + + + + Gets the DarkCyan default pen. + + + + + Gets the DarkGoldenrod default pen. + + + + + Gets the DarkGray default pen. + + + + + Gets the DarkGreen default pen. + + + + + Gets the DarkKhaki default pen. + + + + + Gets the DarkMagenta default pen. + + + + + Gets the DarkOliveGreen default pen. + + + + + Gets the DarkOrange default pen. + + + + + Gets the DarkOrchid default pen. + + + + + Gets the DarkRed default pen. + + + + + Gets the DarkSalmon default pen. + + + + + Gets the DarkSeaGreen default pen. + + + + + Gets the DarkSlateBlue default pen. + + + + + Gets the DarkSlateGray default pen. + + + + + Gets the DarkTurquoise default pen. + + + + + Gets the DarkViolet default pen. + + + + + Gets the DeepPink default pen. + + + + + Gets the DeepSkyBlue default pen. + + + + + Gets the DimGray default pen. + + + + + Gets the DodgerBlue default pen. + + + + + Gets the Firebrick default pen. + + + + + Gets the FloralWhite default pen. + + + + + Gets the ForestGreen default pen. + + + + + Gets the Fuchsia default pen. + + + + + Gets the Gainsborough default pen. + + + + + Gets the GhostWhite default pen. + + + + + Gets the Gold default pen. + + + + + Gets the Goldenrod default pen. + + + + + Gets the Gray default pen. + + + + + Gets the Green default pen. + + + + + Gets the GreenYellow default pen. + + + + + Gets the Honeydew default pen. + + + + + Gets the HotPink default pen. + + + + + Gets the IndianRed default pen. + + + + + Gets the Indigo default pen. + + + + + Gets the Ivory default pen. + + + + + Gets the Khaki default pen. + + + + + Gets the Lavender default pen. + + + + + Gets the LavenderBlush default pen. + + + + + Gets the LawnGreen default pen. + + + + + Gets the LemonChiffon default pen. + + + + + Gets the LightBlue default pen. + + + + + Gets the LightCoral default pen. + + + + + Gets the LightCyan default pen. + + + + + Gets the LightGoldenrodYellow default pen. + + + + + Gets the LightGray default pen. + + + + + Gets the LightGreen default pen. + + + + + Gets the LightPink default pen. + + + + + Gets the LightSalmon default pen. + + + + + Gets the LightSeaGreen default pen. + + + + + Gets the LightSkyBlue default pen. + + + + + Gets the LightSlateGray default pen. + + + + + Gets the LightSteelBlue default pen. + + + + + Gets the LightYellow default pen. + + + + + Gets the Lime default pen. + + + + + Gets the LimeGreen default pen. + + + + + Gets the Linen default pen. + + + + + Gets the Magenta default pen. + + + + + Gets the Maroon default pen. + + + + + Gets the MediumAquamarine default pen. + + + + + Gets the MediumBlue default pen. + + + + + Gets the MediumOrchid default pen. + + + + + Gets the MediumPurple default pen. + + + + + Gets the MediumSeaGreen default pen. + + + + + Gets the MediumSlateBlue default pen. + + + + + Gets the MediumSpringGreen default pen. + + + + + Gets the MediumTurquoise default pen. + + + + + Gets the MediumVioletRed default pen. + + + + + Gets the MidnightBlue default pen. + + + + + Gets the MintCream default pen. + + + + + Gets the MistyRose default pen. + + + + + Gets the Moccasin default pen. + + + + + Gets the NavajoWhite default pen. + + + + + Gets the Navy default pen. + + + + + Gets the OldLace default pen. + + + + + Gets the Olive default pen. + + + + + Gets the OliveDrab default pen. + + + + + Gets the Orange default pen. + + + + + Gets the OrangeRed default pen. + + + + + Gets the Orchid default pen. + + + + + Gets the PaleGoldenrod default pen. + + + + + Gets the PaleGreen default pen. + + + + + Gets the PaleTurquoise default pen. + + + + + Gets the PaleVioletRed default pen. + + + + + Gets the PapayaWhip default pen. + + + + + Gets the PeachPuff default pen. + + + + + Gets the Peru default pen. + + + + + Gets the Pink default pen. + + + + + Gets the Plum default pen. + + + + + Gets the PowderBlue default pen. + + + + + Gets the Purple default pen. + + + + + Gets the Red default pen. + + + + + Gets the RosyBrown default pen. + + + + + Gets the RoyalBlue default pen. + + + + + Gets the SaddleBrown default pen. + + + + + Gets the Salmon default pen. + + + + + Gets the SandyBrown default pen. + + + + + Gets the SeaGreen default pen. + + + + + Gets the SeaShell default pen. + + + + + Gets the Sienna default pen. + + + + + Gets the Silver default pen. + + + + + Gets the SkyBlue default pen. + + + + + Gets the SlateBlue default pen. + + + + + Gets the SlateGray default pen. + + + + + Gets the Snow default pen. + + + + + Gets the SpringGreen default pen. + + + + + Gets the SteelBlue default pen. + + + + + Gets the Tan default pen. + + + + + Gets the Teal default pen. + + + + + Gets the Thistle default pen. + + + + + Gets the Tomato default pen. + + + + + Gets the Transparent default pen. + + + + + Gets the Turquoise default pen. + + + + + Gets the Violet default pen. + + + + + Gets the Wheat default pen. + + + + + Gets the White default pen. + + + + + Gets the WhiteSmoke default pen. + + + + + Gets the Yellow default pen. + + + + + Gets the YellowGreen default pen. + + + + + Specifies the type of Horizontal alignment. + + + + + Specifies the element is aligned to Left. + + + + + Specifies the element is aligned to Center. + + + + + Specifies the element is aligned to Right. + + + + + Specifies the type of Vertical alignment. + + + + + Specifies the element is aligned to Top. + + + + + Specifies the element is aligned to Middle. + + + + + Specifies the element is aligned to Bottom. + + + + + Specifies the type of horizontal text alignment. + + + + + Specifies the text is aligned to Left. + + + + + Specifies the text is aligned to Center. + + + + + Specifies the text is aligned to Right. + + + + + Specifies the text as Justified text. + + + + + Specifies the text rendering mode. + + + + + Fill text. + + + + + Stroke text. + + + + + Fill, then stroke text. + + + + + Neither fill nor stroke text (invisible). + + + + + Fill text and add to path for clipping (see above).. + + + + + Stroke text and add to path for clipping (see above). + + + + + Stroke fill text and add to path for clipping. + + + + + Add text to path for clipping. + + + + + Specifies the corner style of the shapes. + + + + + The outer edges for the two segments are extended + until they meet at an angle. + + + + + An arc of a circle with a diameter equal to the line width is drawn + around the point where the two segments meet, connecting the outer edges for the two segments. + + + + + The two segments are finished with caps + and the resulting notch beyond the ends of the segments is filled + with a triangle. + + + + + Specifies the line cap style to be used at the ends of the lines. + + + + + The stroke is squared off at the endpoint of the path. There is no + projection beyond the end of the path. + + + + + A semicircular arc with a diameter equal to the line width is + drawn around the endpoint and filled in. + + + + + The stroke continues beyond the endpoint of the path + for a distance equal to half the line width and is squared off. + + + + + Possible dash styles of the pen. + + + + + Solid line. + + + + + Dashed line. + + + + + Dotted line. + + + + + Dash-dot line. + + + + + Dash-dot-dot line. + + + + + User defined dash style. + + + + + No line. + + + + + Specifies how the shapes are filled. + + + + + Nonzero winding number rule of determining "insideness" + of point. + + + + + Even odd rule of determining "insideness" of point. + + + + + Defines set of color spaces. + + + + + RGB color space. + + + + + CMYK color space. + + + + + GrayScale color space. + + + + + Indexed color space used internally. + + + + + Colors are represented solely with respect to the light source; + no correction is made for the output mediums white point + (such as the color of unprinted paper). + + + + + Colors are represented with respect to the combination of + the light source and the output mediums white point + (such as the color of unprinted paper). + + + + + Colors are represented in a manner that preserves + or emphasizes saturation. + + + + + Colors are represented in a manner that provides a pleasing + perceptual appearance. + + + + + Specifies the blend mode for transparency. + + + + + Selects the source color, ignoring the backdrop. + + + + + Multiplies the backdrop and source color values. + The result color is always at least as dark as either + of the two constituent colors. Multiplying + any color with black produces black; multiplying + with white leaves the original color unchanged. + Painting successive overlapping objects with a color + other than black or white produces progressively darker colors. + + + + + Multiplies the complements of the backdrop and source + color values, then complements the result. The result + color is always at least as light as either of the two + constituent colors. Screening any color with white + produces white; screening with black leaves the original + color unchanged. The effect is similar to projecting + multiple photographic slides simultaneously onto a single screen. + + + + + Multiplies or screens the colors, depending on + the backdrop color value. Source colors overlay + the backdrop while preserving its highlights and + shadows. The backdrop color is not replaced but + is mixed with the source color to reflect the + lightness or darkness of the backdrop. + + + + + Selects the darker of the backdrop and source colors. + The backdrop is replaced with the source where the source + is darker; otherwise, it is left unchanged. + + + + + Selects the lighter of the backdrop and source colors. + The backdrop is replaced with the source where the source + is lighter; otherwise, it is left unchanged. + + + + + Brightens the backdrop color to reflect the source color. + Painting with black produces no changes. + + + + + Darkens the backdrop color to reflect the source color. + Painting with white produces no change. + + + + + Multiplies or screens the colors, depending on the source color value. + The effect is similar to shining a harsh spotlight on the backdrop. + + + + + Darkens or lightens the colors, depending on the source color value. + The effect is similar to shining a diffused spotlight on the backdrop. + + + + + Subtracts the darker of the two constituent colors from the lighter color. + Painting with white inverts the backdrop color; painting with black produces no change. + + + + + Produces an effect similar to that of the Difference mode + but lower in contrast. Painting with white inverts + the backdrop color; painting with black produces no change. + + + + + Creates a color with the hue of the source color and + the saturation and luminosity of the backdrop color. + + + + + Creates a color with the saturation of the source color + and the hue and luminosity of the backdrop color. Painting + with this mode in an area of the backdrop that is a pure + gray (no saturation) produces no change. + + + + + Creates a color with the hue and saturation of + the source color and the luminosity of the backdrop + color. This preserves the gray levels of the backdrop + and is useful for coloring monochrome images or tinting color images. + + + + + Creates a color with the luminosity of the source color + and the hue and saturation of the backdrop color. This + produces an inverse effect to that of the Color mode. + + + + + Specifies the type of the PdfImage. + + + + + Specifies the image is bitmap. + + + + + Specifies the image is metafile. + Note: Metafile can't set dpi and use "Green context" dpi. + + + + + Specifies the types of the page's logical units. + + + + + Specifies the Measurement is in centimeters. + + + + + Specifies the Measurement is in picas. A pica represents 12 points. + + + + + Specifies the unit of measurement is 1 pixel. + + Pixel unit is device dependent unit. The result depends on the default Dpi on the machine. + + + + Specifies a printer's point (1/72 inch) as the unit of measure. + + + + + Specifies the inch as the unit of measure. + + + + + Specifies the document unit (1/300 inch) as the unit of measure. + + + + + Specifies the Measurement is in millimeters. + + + + + + + + + + Specifies the export state of the Layer + + + + + Allways export + + + + + Never export + + + + + Export when visible + + + + + Specifies the print state of the Layer + + + + + Allways print + + + + + Never print + + + + + Print when visible + + + + + Specifies the view state of the Layer + + + + + Allways visible + + + + + never visible + + + + + Visible when on + + + + + Implements structures and routines working with color. + + + + + Gets a null color. + + The empty. + + + + + Gets whether the PDFColor is Empty or not. + + true if this instance is empty; otherwise, false. + + + + + Gets or sets Blue channel value. + + The B. + + + + + Gets the blue. + + + + + Gets or sets Cyan channel value. + + The C. + + + + + Gets or sets Green channel value. + + The G. + + + + + Gets the green. + + The green. + + + + Gets or sets Gray channel value. + + The gray. + + + + + Gets or sets Black channel value. + + The K. + + + + + Gets or sets Magenta channel value. + + The M. + + + + + Gets or sets Red channel value. + + The R. + + + + + Gets the red. + + + + + Gets or sets Yellow channel value. + + The Y. + + + + + Initializes a new instance of the class. + + Source color object. + + + + + Initializes a new instance of the class. + + Source color object. + + + + + Initializes a new instance of the class. + + Gray value. + + + + + Initializes a new instance of the class. + + Red channel value. + Green channel value. + Blue channel value. + + + + + Initializes a new instance of the class. + + Cyan channel value. + Magenta channel value. + Yellow channel value. + Black channel value. + + + + + Creates the Alpha ,Red ,Green, and Blue value of this PDFColor structure. + + ARGB value. + + + + + Implicit operator. + + System.Drawing.Color. + PDFColor. + + + + + Implicit operator. + + System.Drawing.Color. + PDFColor. + + + + + Operator ==. + + The color 1. + The color 2. + + True if color 1 is equal to color 2; otherwise False. + + + + + + Operator !=. + + The color 1. + The color 2. + + True if color 1 is not equal to color 2; otherwise False. + + + + + + Determines whether the specified + is equal to the current . + + The to + compare with the current . + + True if the specified is equal + to the current ; otherwise - + False. + + + + + + Determines if the specified color is equal to this one. + + The color. + + True if the color is equal; otherwise - False. + + + + + + Serves as a hash function for a particular type, suitable for + use in hashing algorithms and data structures like a hash + table. + + + A hash code for the current . + + + + + + Compares colors. + + The color 1. + The color 2. + + True if colors are identical; otherwise - False. + + + + + The class representing a graphics context of the objects. + It's used for performing simple graphics operations. + + + + + The web link collection. + + + + + Gets the size of the canvas. + + Usually, this value is equal to the size of the object this graphics belongs to. + + + + Gets the size of the canvas reduced by margins and page templates. + + It indicates a size of the canvas reduced by margins and template dimensions. + This value doesn't change when any custom clip is set. + + + + Gets or sets the current color space. + + The value change of this property has impact on the objects + which will be drawn after the change. + + + + The web link collection. + + + + + Draws a line. + + The pen. + The point1. + The point2. + + + + Draws a line. + + The pen. + The x1. + The y1. + The x2. + The y2. + + + + Draws a rectangle. + + The pen. + The rectangle. + + + + Draws a rectangle. + + The pen. + The x. + The y. + The width. + The height. + + + + Draws a rectangle. + + The brush. + The rectangle. + + + + Draws a rectangle. + + The brush. + The x. + The y. + The width. + The height. + + + + Draws a rectangle. + + The pen. + The brush. + The rectangle. + + + + Draws a rectangle. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The pen. + The rectangle. + + + + Draws an ellipse. + + The pen. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The brush. + The rectangle. + + + + Draws an ellipse. + + The brush. + The x. + The y. + The width. + The height. + + + + Draws an ellipse. + + The pen. + The brush. + The rectangle. + + + + Draws an ellipse. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Draws an arc. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Draws an arc. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Draws a pie. + + The pen. + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Draws a polygon. + + The pen. + The points. + + + + Draws a polygon. + + The brush. + The points. + + + + Draws a polygon. + + The pen. + The brush. + The points. + + + + Draws a bezier curve. + + The pen. + The start point. + The first control point. + The second control point. + The end point. + + + + Draws a bezier curve. + + The pen. + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Draws a path. + + The pen. + The path. + + + + Draws a path. + + The brush. + The path. + + + + Draws a path. + + The pen. + The brush. + The path. + + + + Draws an image. + + The image. + The point. + + + + Draws an image. + + The image. + The x. + The y. + + + + Draws an image. + + The image. + The rectangle. + + + + Draws an image. + + The image. + The point. + The size. + + + + Draws an image,recommending monochrome image. + + The image. + The image compresson quality. + The point. + The size. + + + + Draws an image. + + The image. + The x. + The y. + The width. + The height. + + + + Draws an image,recommending monochrome image + + The image. + The image compresson quality. + The x. + The y. + The width. + The height. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The location point. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The point. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The location point. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The point. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location + with the specified Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + The x. + The y. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Brush and Font objects. + + The text string. + The font. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen and Font objects. + + The text string. + The font. + The pen. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Draws the specified text string at the specified location and size + with the specified Pen, Brush and Font objects. + + The text string. + The font. + The pen. + The brush. + RectangleF structure that specifies the bounds of the drawn text. + The text string format. + whether the parsing of HTML tags + + + + Translates the coordinates by specified coordinates. + + The X value by which to translate + coordinate system. + The Y value by which to translate + coordinate system. + + + + + Scales the coordinates by specified coordinates. + + The value by which to scale coordinate + system in the X axis direction. + The value by which to scale coordinate + system in the Y axis direction. + + + + + Rotates the coordinate system in clockwise direction around specified point. + + The angle of the rotation (in degrees). + A System.Drawing.PointF that represents the center of the rotation. + + + + Rotates the coordinate system in clockwise direction. + + The angle of the rotation (in degrees). + + + + + Skews the coordinate system axes. + + Skews the X axis by this angle (in + degrees). + Skews the Y axis by this angle (in + degrees). + + + + + Draws a template using its original size, at the specified location. + + object. + Location of the template. + + + + Draws a template at the specified location and size. + + object. + Location of the template. + Size of the template. + + + + Flashes this instance. + + + + + Saves the current state of this Graphics and identifies the saved state with a GraphicsState. + + This method returns a GraphicsState that represents the saved state of this Graphics. + This method works similar to method. + + + + Restores the last state of this Graphics. + + + + + Restores the state of this Graphics to the state represented by a GraphicsState. + + GraphicsState that represents the state to which to restore this Graphics. + This method works similar to method. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip rectangle. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip rectangle. + The fill mode to determine which regions lie inside the clipping path. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip path. + + + + Modifying the current clipping path by intersecting it with the current path. + + Clip path. + The fill mode to determine which regions lie inside the clipping path. + + + + Sets the transparency. + + The alpha value for both pen + and brush operations. + + + + Sets the transparency. + + The alpha value for pen operations. + The alpha value for brush operations. + + + + Sets the transparency. + + The alpha value for pen operations. + The alpha value for brush operations. + The blend mode. + + + + Indicates whether this instance and a specified object are equal. + + Another object to compare to. + + true if obj and this instance are the same type and + represent the same value; otherwise, false. + + + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + + + + Represents the state of a Graphics object. + + + + + A class representing page margins. + + + + + Gets or sets the left margin size. + + + + + Gets or sets the top margin size. + + + + + Gets or sets the right margin size. + + + + + Gets or sets the bottom margin size. + + + + + Sets margin of each side. + + Margin of each side. + + + + Initializes a new instance of the class. + + + + + Create and initialize margin. + + The margin size. + + + + Create and initialize margin. + + The left right. + The top bottom. + + + + Create and initialize margin. + + The left. + The top. + The right. + The bottom. + + + + Clones the object. + + The cloned object. + + + + A class defining settings for drawing operations. + + + + + Gets or sets the brush, which specifies the pen behaviour. + + If the brush is set, the color values are ignored, + except for PdfSolidBrush. + + + + Gets or sets the color of the pen. + + + + + Gets or sets the dash offset of the pen. + + + + + Gets or sets the dash pattern of the pen. + + + + + Gets or sets the dash style of the pen. + + + + + Gets or sets the line cap of the pen. + + + + + Gets or sets the line join style of the pen. + + The line join. + + + + Gets or sets the width of the pen. + + + + + Gets or sets the miter limit. + + + + + Initializes a new instance of the class. + + The color. + + + + Initializes a new instance of the class. + + Color of the pen. + Width of the pen's line. + + + + Initializes a new instance of the class. + + The brush. + + + + Initializes a new instance of the class. + + The brush. + Width of the pen's line. + + + + Initializes a new instance of the class. + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Clones this instance. + + A new pen with the same properties. + + + + Class allowing to convert different unit metrics. Converting is + based on Graphics object DPI settings that is why for differ + graphics settings must be created new instance. For example: + printers often has 300 and greater dpi resolution, for compare + default display screen dpi is 96. + + + + + Represents the abstract brush, which containing a basic functionality of a brush. + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Implements gradient brush capabilities. + + + + + Gets or sets the background color of the brush. + + This value is optional. If null is assigned to it, + the associated entry is removed from the appropriate dictionary. + + + + Gets or sets a value indicating whether use anti aliasing algorithm. + + + + + Gets the wrapped element. + + + + + Implements linear gradient brush by using PDF axial shading pattern. + + + + + Initializes a new instance of the class. + + The starting point of the gradient. + The end point of the gradient. + The starting color of the gradient. + The end color of the gradient. + + + + Initializes a new instance of the class. + + A RectangleF structure that specifies the bounds of the linear gradient. + The starting color for the gradient. + The ending color for the gradient. + The mode. + + + + Initializes a new instance of the class. + + A RectangleF structure that specifies the bounds of the linear gradient. + The starting color for the gradient. + The ending color for the gradient. + The angle, measured in degrees clockwise from the x-axis, + of the gradient's orientation line. + + + + Gets or sets a PdfBlend that specifies positions + and factors that define a custom falloff for the gradient. + + + + + Gets or sets a ColorBlend that defines a multicolor linear gradient. + + + + + Gets or sets the starting and ending colors of the gradient. + + + + + Gets a rectangular region that defines + the boundaries of the gradient. + + + + + Gets or sets the value indicating whether the gradient + should extend starting and ending points. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Represent radial gradient brush. + + + + + Initializes a new instance of the class. + + The start centre. + The start radius. + The end centre. + The end radius. + The start color. + The end color. + + + + Gets or sets a PdfBlend that specifies positions + and factors that define a custom falloff for the gradient. + + + + + Gets or sets a ColorBlend that defines a multicolor linear gradient. + + + + + Gets or sets the starting and ending colors of the gradient. + + + + + Gets or sets the rectangle. + + The rectangle. + + + + Gets or sets the value indicating whether the gradient + should extend starting and ending points. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Represents a brush that fills any object with a solid colour. + + + + + Initializes a new instance of the class. + + The color. + + + + Initializes a new instance of the class. + + color + + + + Gets or sets the color of the brush. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Implements a colored tiling brush. + + + + + Initializes a new instance of the class. + + The boundaries of the smallest brush cell. + + + + Initializes a new instance of the class. + + The boundaries of the smallest brush cell. + The Current Page Object. + + + + Initializes a new instance of the class. + + The size of the smallest brush cell. + + + + Initializes a new instance of the class. + + The size of the smallest brush cell. + The Current Page Object. + + + + Gets the boundary box of the smallest brush cell. + + + + + Gets the size of the smallest brush cell. + + + + + Gets Graphics context of the brush. + + + + + Creates a new copy of a brush. + + A new instance of the Brush class. + + + + Gets the element. + + + + + Represents an arc shape. + + It ignores brush setting. + + + + Initializes a new instance of the class. + + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Implements Bezier curve shape. + + + + + Initializes a new instance of the class. + + The start point. + The first control point. + The second control point. + The end point. + + + + Initializes a new instance of the class. + + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Initializes a new instance of the class. + + The pen. + The start point. + The first control point. + The second control point. + The end point. + + + + Initializes a new instance of the class. + + The pen. + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Gets or sets the start point. + + + + + Gets or sets the first control point. + + + + + Gets or sets the second control point. + + + + + Gets or sets the end point. + + + + + Describes an ellipse shape. + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + + + + Gets the radius X. + + + + + Gets the radius Y. + + + + + Gets the center point. + + + + + The base class of arc and pie shapes. + + + + + Gets or sets the start angle. + + + + + Gets or sets the sweep angle. + + + + + Represents a line shape. + + + + + Initializes a new instance of the class. + + The x1. + The y1. + The x2. + The y2. + + + + Initializes a new instance of the class. + + The point1. + The point2. + + + + Initializes a new instance of the class. + + The pen. + The x1. + The y1. + The x2. + The y2. + + + + Initializes a new instance of the class. + + The pen. + The point1. + The point2. + + + + Gets or sets the x coordinate of the start point. + + + + + Gets or sets the y coordinate of the start point. + + + + + Gets or sets the x coordinate of the end point. + + + + + Gets or sets the y coordinate of the end point. + + + + + Implements graphics path, which is a sequence of primitive graphics elements. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The points. + The path types. + + + + Initializes a new instance of the class. + + The pen. + + + + Initializes a new instance of the class. + + The brush. + + + + Initializes a new instance of the class. + + The brush. + The fill mode. + + + + Initializes a new instance of the class. + + The pen. + The points. + The path types. + + + + Initializes a new instance of the class. + + The brush. + The fill mode. + The points. + The path types. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The fill mode. + + + + Gets or sets the fill mode. + + + + + Gets the path points. + + + + + Gets the path point types. + + + + + Gets the point count. + + + + + Gets the last point. + + + + + Adds an arc. + + The boundaries of the arc. + The start angle. + The sweep angle. + + + + Adds an arc. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Adds a bezier curve. + + The start point. + The first control point. + The second control point. + The end point. + + + + Adds a bezier curve. + + The start point X. + The start point Y. + The first control point X. + The first control point Y. + The second control point X. + The second control point Y. + The end point X. + The end point Y. + + + + Adds an ellipse. + + The boundaries of the ellipse. + + + + Adds an ellipse. + + The x. + The y. + The width. + The height. + + + + Adds a line. + + The point1. + The point2. + + + + Adds a line. + + The x1. + The y1. + The x2. + The y2. + + + + Appends the path specified to this one. + + The path, which should be appended. + + + + Appends the path specified by the points and their types to this one. + + The points. + The path point types. + + + + Appends the pie to this path. + + The rectangle. + The start angle. + The sweep angle. + + + + Appends the pie to this path. + + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Append the closed polygon to this path. + + The points of the polygon. + + + + Appends the rectangle to this path. + + The rectangle. + + + + Appends the rectangle to this path. + + The x. + The y. + The width. + The height. + + + + Starts a new figure. + + The next added primitive will start a new figure. + + + + Closes the last figure. + + + + + Closes all non-closed figures. + + + + + Gets the last point. + + The last point. + + + + Calc Point w/h + + + + + + get this path's bound. + + return this path's bound + + + + Represents Pdf Template object. + + + + + the origin location of the template + + + + + Initializes a new instance of the class. + + The size. + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The width. + The height. + Indicates if the template is used for PdfAppearance. + + + + Gets graphics context of the template. + + It will return null, if the template is read-only. + + + + Gets the size of the template. + + + + + Gets the width of the template. + + + + + Gets the height of the template. + + + + + Gets a value indicating whether the template is read-only. + + true if the template is read-only; otherwise, false. + Read-only templates does not expose graphics. They just return null. + + + + Resets the template and sets the specified size. + + The size. + + + + Resets an instance. + + + + + Gets the wrapped element. + + + + + Represents a pie shape. + + + + + Initializes a new instance of the class. + + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + The start angle. + The sweep angle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + The start angle. + The sweep angle. + + + + Represents a set of points connected with lines, could be drawn and filled. + + + + + Initializes a new instance of the class. + + The points. + + + + Initializes a new instance of the class. + + The pen. + The points. + + + + Initializes a new instance of the class. + + The brush. + The points. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The points. + + + + Gets or sets the points of the polygon. + + + + + Gets a number of the points in the polygon. + + + + + Adds a point to the polygon. + + The last point of the polygon. + + + + Represents a simple rectangle that could be drawn and/or filled. + + + + + Initializes a new instance of the class. + + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The width. + The height. + + + + Initializes a new instance of the class. + + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The rectangle. + + + + Initializes a new instance of the class. + + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The brush. + The rectangle. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The x. + The y. + The width. + The height. + + + + Initializes a new instance of the class. + + The pen. + The brush. + The rectangle. + + + + Represents an area bound by a rectangle. + + + + + Gets or sets the X co-ordinate of the upper-left corner of this the element. + + + + + Gets or sets the Y co-ordinate of the upper-left corner of this the element. + + + + + Gets or sets the width of this element. + + + + + Gets or sets the height of this element. + + + + + Gets or sets the size of this element. + + + + + Gets or sets bounds of this element. + + + + + Represents the bitmap images. + + + + + When replacing the picture,use this property + + + + + Gets or sets the active frame of the bitmap. + + The active frame index. + + + + Gets the number of frames in the bitmap. + + The frame count. + + + + Gets or sets the mask of bitmap. + + New PdfMask. + + + + Gets or sets the quality. + The range is from 0 to 100, 100 is the best quality. + + + When the image is stored into PDF not as a mask, + you may reduce its quality, which saves the disk space. + + + + + When replacing the picture,use this property + + + + + Creates new PdfBitmap instance. + + The image path. + + + + Creates new PdfBitmap instance. + + The stream. + + + + Releases unmanaged resources and performs other cleanup operations before the + is reclaimed by garbage collection. + + + + + Performs application-defined tasks associated with freeing, + releasing, or resetting unmanaged resources. + + + + + define method "SaveAsRawImageForIndexedFormat" supported IndexedFormat + + + + + + save indexed bitmap to raw image + support PixelFormat: Format1bppIndexed Format4bppIndexed Format8bppIndexed + + + + + + + + + + + + + + rgb image to cmyk + + + + + Represents the color mask for bitmaps. + + + + + Gets or sets the start color. + + The start color. + + + + Gets or sets the end color. + + The end color. + + + + Creates new PdfColorMask object. + + The start color. + The end color. + + + + Represents the base class for images. + + + + + Gets the height of the image in pixels. + + The height. + + + + If True, png direct convert to Jpx and no mask. + + + + + Gets the width of the image in pixels. + + The width. + + + + Gets the horizontal resolution, in pixels per inch, of this Image. + + The horizontal resolution. + + + + Gets the vertical resolution, in pixels per inch, of this Image. + + The vertical resolution. + + + + Returns the size of the image in points. + + This property uses HorizontalResolution and VerticalResolution for calculating the size in points. + + + + Gets or sets the active frame of the image. + + + + + Gets the number of frames in the image. + + + + + Creates PdfImage from a file. + + Path to a file. + Returns a created PdfImage object. + + + + Creates PdfImage from stream. + + The stream. + Returns a created PdfImage object. + + + + Converts a object into a PDF image. + + The image. + Returns a created PdfImage object. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Type of the image that should be created. + The text string format. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Type of the image that should be created. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Height of the image in points. + Type of the image that should be created. + PdfImage containing RTF text. + + + + Creates a new image instance from RTF text. + + RTF text data. + Width of the image in points. + Height of the image in points. + Type of the image that should be created. + The text string format. + PdfImage containing RTF text. + + + + Gets the wrapped element. + + + + + Represents the image mask object for bitmaps. + + + + + Gets the image mask. + + The image mask. + + + + Gets the mask type. + + true if soft mask; otherwise, hard mask false. + + + + Creates new PdfImageMask object. + + The image mask. + + + + Base class for bitmap masking objects. + + + + + Class representing metafiles. + + + + + Check whether is unicode in private use areas. + + The text string. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + + load URL time out + + + + + load URL whether Waiting + + + + + + WebBrowser load Complete + + + + + Gets or sets page settings of the section. + + + + + Get html page start time + + + + + load URL whether Waiting + + + + + webBrowser load html whether Waiting time in milliseconds. + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + Gets or sets page settings of the section. + + + + + Options of converting html to pdf + + + + + Not clip + + + + + Clips width + + + + + Clips height + + + + + Clips width and height + + + + + default 30 s + + + + + load URL whether Waiting + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + Gets or sets layout type of the element. + + + + + If html view is larger than pdf page, zooms out it to fit pdf page. + But if html view is smaller than, will not zoom in it. + + + + + If html view is larger than page, resize pdf page to fit html view. + But if html view is smaller than, will not resize pdf page. + + + + + If html view is smaller than page, trim pdf page to fit html view. + + + + + The maximum time in milliseconds to wait the completion of loading html. + Default is 30000. + + + + + webBrowser load html whether Waiting + + + + + webBrowser load html whether Waiting time in milliseconds. + + + + + load ScouceCode or URL + + + + + WebBrowser load Complete + + + + + load from content type + + + + + load from ulr or file + + + + + load html SourceCode + + + + None -> 0 + + + Width -> 1 + + + Height -> 2 + + + Both -> 4 + + + float + + + float + + + float + + + float + + + Size + + + Size + + + Margins + + + PdfLayoutType + + + Clip + + + Clip + + + Clip + + + int + + + float + + + float + + + float + + + float + + + FRect + + + int + + + FRect + + + + Pointer to DebugLog.CLogInfo, C module uses it to write log message. + + + + + Pointer to HTMLConverter.dll + + + + + Pointer to ConvertToHTML method. + + + + + Path of dll folder, which contains HTMLConverter.dll + + + + + Convert HTML to PDF with plugin. + For more details, please check https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-with-New-Plugin.html + + + + + Sets the path of the folder which cantains the HTMLConverter.dll + and other dll files required for conversion. + + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf file name. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf Stream. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf file name. + the load htmlcode or url + + + + Convert an html page to a pdf stream. The Qt html engine plugin is required. + During conversion, JavaScript is enabled, default timeout is 30 seconds. + The page size of output pdf file is A4 and margin is 90 (left-right) and 72 (top-bottom). + + Url address of the html page. + The output pdf stream. + the load htmlcode or url + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf file name. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + [Obsolete("This method may be removed in the future.")] + + + + Convert an html page to a pdf stream. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf stream. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + [Obsolete("This method may be removed in the future.")] + + + + init HTML2PDFOption param + + Url address of the html page. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf file name. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + url or htmlcontent + + + + Convert an html page to a pdf file. The Qt html engine plugin is required. + + Url address of the html page. + The output pdf stream. + Indicates whether enable JavaScript. + The timeout of loading html. + The page size of output pdf file. + The margins of output pdf file. + url or htmlcontent + + + + Support functions about Qt plugin library. + + + + + Load plugin library from plugin directory. + + The plugin directory. + The plugin library ptr. + + + + Free plugin library. + + The plugin library ptr. + + + + Get method delegate from plugin library. + + The method delegate type. + The plugin library ptr. + The method name. (avoid obfuscated code error) + The method delegate. + + + + Get default plugin directory. + + The default plugin directory. + + + + Get the absolute path. + + The path. + The absolute path. + + + + Generate temp file absolute path. + + The temp file name. + The temp file absolute path. + + + + Get plugin library helper on current platform. + + The plugin library helper. + + + + Load library. + + The full library file path. + The plugin library ptr. + + + + Free library. + + The plugin library ptr. + + + + Get method ptr. + + The plugin library ptr. + The method name. + The method ptr. + + + + Get error. + + The error. + + + + Prepare full library file name. + + The library directory. + The library file name,not include extensions. + The full library file name. + + + + Support functions about qt plugin library on windows. + + + + + Support functions about qt plugin library on linux. + + + + + Support functions about qt plugin library on unix-like. + + + + + Represents the layout parameters. + + + + + Gets or sets the starting layout page. + + + + + Gets or sets the lay outing bounds. + + + + + Gets or sets the vertical offsets. + + The vertical offsets. + + + + Gets or sets the lay outing settings. + + + + + HTML tags + + + + + parsing html tags + + html content + + drawing font + + + + + parsing html tags + + html content + + + + + + + + set html type + + + + + + + set text font + + + + + + set font style + + + + + + + + Represents the result of html to pdf conversion. + + + + + Initializes a new instance of the class. + + The image. + The page breaks. + The anchors. + + + + Gets the rendered image. + + The rendered image. + + + + Draws the HtmlToPdfResults on to the document. + + The Pdf Page. + The Metafile layout format. + + + + Performs application-defined tasks associated with releasing, or resetting unmanaged resources. + + + + + Specfies the status of the IPdfPrmitive. + + + + + The information of cross-reference store in a cross-referebnce stream + + + + + The reprocess object infomation + + + + + + The current load state + + + + + The highest object number in the document. + + + + + The load state + + + + + Gets the ReProcess Object infomation + + + + + Parse the cross reference stream in hybrid reference + + the position of the XRefstm object + the object + + + + Check whether the entry of cross reference stream is in correct place + + if correct return true ,otherwise false + + + + Check whether the entry of cross reference table is in correct place + + If correct return true ,otherwise false + + + + Check whether the entry`s offset that in cross reference table or cross reference stream is + in correct place + + If correct return true ,otherwise false + + + + Get object. + + The object information + The object number + The object + + + + Reparse object + + The object number + The object + + + + It is an error to process a cross reference stream, + where the object information obtained is reprocessed + + + + + Get the current object number stack + + The current object number stack + + + + Get the reference. + + The reference + + + + add the document info to the pdfObjects + + + + + Fixed TokenType.UnicodeString mismatch. + + + + + The collection of index objects. + + + + + Add object index. + + The element + The index + + + + Get Holds all integers that have been read ahead. + + + + + Check whether the indirect object`s position in file are same as the offset + + The indirect object`offset + The object number + If correct return true ,otherwise return false + + + + Get the stream of the XRefStm object + + a stream + + + + Reset the fields value. + + + + + Max free convert pages. + + + + + Retrieves character type info + + + + + Retrieves bi-directional layout info + + + + + Retrieves text processing info + + + + + Uppercase + + + + + Lowercase + + + + + Decimal digits + + + + + Space characters + + + + + Punctuation + + + + + Control characters + + + + + Blank characters + + + + + Hexadecimal digits + + + + + Any linguistic character: alphabetic, syllabary, or ideographic + + + + + Left to right + + + + + Right to left + + + + + European number, European digit + + + + + European numeric separator + + + + + European numeric terminator + + + + + Arabic number + + + + + Common numeric separator + + + + + Block separator + + + + + Segment separator + + + + + White space + + + + + Other neutrals + + + + + No implicit directionality (for example, control codes) + + + + + Diacritic nonspacing mark + + + + + Vowel nonspacing mark + + + + + Symbol + + + + + Katakana character + + + + + Hiragana character + + + + + Half-width (narrow) character + + + + + Full-width (wide) character + + + + + Ideographic character + + + + + Arabic Kashida character + + + + + Punctuation which is counted as part of the word + (Kashida, hyphen, feminine/masculine ordinal indicators, equal sign, and so forth) + + + + + All linguistic characters (alphabetical, syllabary, and ideographic) + + + + + Not applicable + + + + + Native enum. + + + + + Record of Emf metafile. + + + + + New miter limit. + + + + + Record of Emf metafile. + + + + + The XFORM structure specifies a world-space to page-space transformation. + + + + + Specifies scaling/rotation/reflection + + + + + Specified shear/rotation + + + + + Specified shear/rotation + + + + + Specifies scaling/rotation/reflection + + + + + Specifies the horizontal translation component, in logical units. + + + + + Specifies the vertical translation component, in logical units. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Point creation from lParam's data. + + lParam's data for initialing point structure. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The p. + The result of the conversion. + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + ABC structure. + + + + + Structure for 32 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Value of Alpha chanel. + + + + + Structure for 24 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Structure for 24 bit images saving. + + + + + Value of Blue chanel. + + + + + Value of Green chanel. + + + + + Value of Red chanel. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Windows structure. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Record of Emf metafile. + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + The source of the event. + A that contains the event data. + + + + Provides data for PageAdded event. + + + This event raised on adding the pages. + + + + + Gets the newly added page. + + a object representing the page which is added in the document. + + + + Initializes a new instance of the class. + + a object representing the page which is added in the document. + + + + Encapsulates a page template for all the pages in the document. + + + + + Gets or sets a left page template. + + + + + Gets or sets a top page template. + + + + + Gets or sets a right page template. + + + + + Gets or sets a bottom page template. + + + + + Gets or sets a left page template using on the even pages. + + + + + Gets or sets a top page template using on the even pages. + + + + + Gets or sets a right page template using on the even pages. + + + + + Gets or sets a bottom page template using on the even pages. + + + + + Gets or sets a left page template using on the odd pages. + + + + + Gets or sets a top page template using on the odd pages. + + + + + Gets or sets a right page template using on the odd pages. + + + + + Gets or sets a bottom page template using on the odd pages. + + + + + Gets a collection of stamp elements. + + + + + Initializes a new instance of the class. + + + + + The base class for all pages. + + + + + The page pieces info. + + + + + Returns the visible region of the page. + + + + + Returns page region after clipping. + + + + + Returns page region mediabox. + + + + + Returns page region after trimming. + + + + + Returns page region containing content. + + + + + Gets the field collection. + + + + + Get the page piece info. + + + + + Gets or sets page's background color. + + + + + The position and size of the background + + + + + Gets the information about the extracted image. + + + + + Gets the graphics of the . + + + + + Gets the parent section of the page. + + + + + Gets the collection of the page's layers. + + + + + Gets or sets index of the default layer. + + + + + Gets the default layer of the page. + + + + + Gets the size of the page. + + + + + Gets the actual size of the page. + + + + + Gets or sets page's background image. + + + + + Get the page label. + + + + + Returns page is blank flag for page's content. + + + + + Returns a page size reduced by page margins and page template dimensions. + + It's the actual size of the page where some output can be performed. + Returns a page size reduced by page margins and page template dimensions. + + + + Replace the Image at index's Position. + + The index of original image. + The new replace image. + + + + Replace the Image through the original image. + + The original image + The New Replace image + + + + Whether it is a image dictionary. + + The dictionary. + The dictionary is an image or not. + + + + Detemine whether the image in resource dictionary is used on current page + + the resource image name + if be used return true or false + + + + Creates a template from page content and all annotation appearances. + + The created template. + + + + Find text + + The text intends to search. + + Indicate the expected result is the whole word or not, which means, if it is true, only the word is exactly the same with the + searching word will be found;if it is false, any word including the searching word will be found. For instance,the text is "is this a pen?" + and the target is "is", if true, one result will be returned; if false, two results will be returned. + + + + + + Find text + + string searchPatternText + + + + + Find text + + + + + + + + + + + + Find all text and position. + + All text find in the page. + + + + Extracts text from the given PDF Page by SimpleTextExtractionStrategy. + + The Extracted Text. + + + + Extracts text in the range of rectangle from the given PDF Page. + The unit is Point,1/72 inch default. + the coordinate origin is top left corner of the page. + + Provide a rangle to extract text. + The Extracted Text. + + + + Extracts text in the range of rectangle from the given PDF page by SimpleTextExtractionStrategy. + the coordinate origin is top left corner of the page. + + Provide a rangle to extract text. + Provide simple text extraction policy + The Extracted Text. + + + + Extracts text from the given PDF Page. + + The Extracted Text. + + + + Extracts text from the given PDF Page. + + textExtractContext + The Extracted Text. + + + + foreach font from Dictionary + + pagedic + + + + Extracts images from the given PDF Page. + The name of a image in the resources save in the Tag attribute of the iamge. + + Returns the extracted image as Image[]. + + + + Extracts images from the given PDF Page. and image is not processed. + The name of a image in the resources save in the Tag attribute of the image. + + Returns the extracted image as Image[]. + + + + Delete an image. + The value of the image's Tag attribute is the name of the image in the resources. + If the value of Tag is null,the sample image is an inline image type. + + The image to be delete. + + + + Delete an image. + The value of the image's Tag attribute is the name of the image in the resources. + If the value of Tag is null,the sample image is an inline image type. + Warning : You must make sure that the image resource you are removing is the only + one referenced,otherwise an error will occur. + + The image to be delete. + whether to delete the image resource. + + + + Delete an image in a page. + + The image's name. + + + + Delete an image in a page. + + The image's name. + + + + Delete image's paint operator and image's resource in XObject stream. + + The XObject's dictionary of the page. + The resource dicionary in the XObject. + The name of image that going to remove. + The child XObject's item. + + + + Delete image's paint operator in XObject stream. + + The XObject's dictionary of the page. + The name of image that going to remove. + The child XObject's item. + + + + Delete an image by index in a page. + + The image index. + + + + Try to compress images(except inline image). + + The image index + If success, return true; otherwise false. + + + + Update page layer. + used after modifying the contenet stream of page. + + + + + Set tab order. + + The order name + + + + Gets the wrapped element. + + + + + Get page content. bug3787/1212 + + + + + + Whether this page exist blend mode. + + If exist ,return true,or false + + + + Whether exist blend mode in page content. + + If exist ,return true,or false + + + + Whether exist blend mode in page annotations content. + + If exist ,return true,or false + + + + Whether exist blend mode in Xobject. + + The xobject dictionary + The resource has validated. + If exist ,return true,or false + + + + Whether exist blend mode in form. + + The form stream + The resource has validated. + if exist,return true,or false + + + + Get forms type. + + The resource dictionary + forms type dictionary + + + + Whether is apply the extgstate. + + The record collection + The forms type + The gs name + If apply,return true,or false + + + + Insert rich text to page + + rich text + width + IsSplitLine + + + + Insert rich text to page + + rich text + width + IsSplitLine + Draw text x,y point + + + + Insert rich text to page + + rich text + width + IsSplitLine + + + + Insert rich text to page + + rich text + width + IsSplitLine + Draw text x,y point + + + + Raises before the page saves. + + + + + Represents parameters how to display the page in the presentation mode. + + + + + Gets or sets the transition style to use when moving to this page from another + during a presentation. + + The style. + + + + Gets or sets the duration of the transition effect, in seconds. + + The transition duration. + + + + Gets or sets the dimension in which the specified transition effect occurs. + + The dimension. + + + + Gets or sets the the direction of motion for the specified transition effect. + + The motion. + + + + The direction in which the specified transition effect moves, expressed in degrees counter + clockwise starting from a left-to-right direction. (This differs from the page objects + Rotate property, which is measured clockwise from the top.) + + + + + Gets or sets the starting or ending scale at which the changes are drawn. + If Motion property specifies an inward transition, the scale of the changes drawn progresses + from Scale to 1.0 over the course of the transition. If Motion specifies an outward + transition, the scale of the changes drawn progresses from 1.0 to Scale over the course + of the transition. + + + This property has effect for Fly transition style only. + + The scale. + + + + Gets or sets The pages display duration (also called its advance timing): the maximum + length of time, in seconds, that the page is displayed during presentations before + the viewer application automatically advances to the next page. By default, + the viewer does not advance automatically. + + The page duration. + + + + Initializes a new instance of the class. + + + + + Gets the element. + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Manipulates pages within a section. + + + + + Gets the at the specified index. + + + + + Gets the count of the pages. + + + + + Creates a new page and adds it into the collection. + + The new page. + + + + Adds a page into collection. + + The page. + + + + Inserts a page at the specified index. + + The index. + The page. + + + + Returns the index of the specified page. + + The page. + The index of the page. + + + + Determines whether the specified page is within the collection. + + The page. + + true if the collection contains the specified page; otherwise, false. + + + + + Removes the specified page. + + The page. + + + + Removes a page at the index specified. + + The index. + + + + Clears this collection. + + + + + + Encapsulates a page template for all the pages in the section. + + + + + Gets or sets value indicating whether parent Left page template should be used or not. + + + + + Gets or sets value indicating whether parent Top page template should be used or not. + + + + + Gets or sets value indicating whether parent Right page template should be used or not. + + + + + Gets or sets value indicating whether parent Bottom page template should be used or not. + + + + + Gets or sets value indicating whether + the parent stamp elements should be used or not. + + + + + Creates a new object. + + + + + A collection of stamps that are applied to the page templates. + + + + + Gets a stamp element by its index. + + + + + Creates a new stamp collection. + + + + + Adds a stamp element to the collection. + + The stamp element. + The index of the stamp element. + + + + Creates a stamp element and adds it to the collection. + + X co-ordinate of the stamp. + Y co-ordinate of the stamp. + Width of the stamp. + Height of the stamp. + The created stamp element. + + + + Checks whether the stamp element exists in the collection. + + Stamp element. + True - if stamp element exists in the collection, False otherwise. + + + + Inserts a stamp element to the collection at the specified position. + + The index of the stamp in the collection. + The stamp element. + + + + Removes the stamp element from the collection. + + The stamp element. + + + + Removes a stamp element from the specified position in the collection. + + The index of the stamp in the collection. + + + + Cleares the collection. + + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Collection of loaded and created pages. + + + + + + + + + + Gets the conformance level applied in the document. + + + + + Load from Stream ,And Used by PdfViewer-Asp + + + + + + + Load from Stream with password,And Used by PdfViewer-Asp + + + + + + + + Verify PDF Document regarding signature. + + Signature field name. + signature is validated return true,otherwise false + + + + Check if the document was altered after signed. True if modified; otherwise false. + + Signature field name. + signature is validated return false,otherwise true + + + + Get PdfSignatureFieldWidget obj from form by signName + + + + + + + + Remove Extended right. + + + + + + Get next PdfSignatureFieldWidget obj from form by signName + + + + + + + + Get PDF Document regarding CertificateData + + Signature field name. + + + + Get PDF Document regarding signature. + + Signature field name. + + + + Get the signature dictionary + + + + + + + + + + + + + + + + + + + + + + + + PdfDocumentBase Object + + + + + + Represents a logic to create Pdf document. + + + + + Layer OCProperties info + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The conformance level. + Not Supported under Medium Trust environment. + + + + set conformance value. + + The Conformance level. + + + + Delegate for the event. + + The sender. + The arguments. + + + + Occurs when the document is being saved. + + + This event raised on saving the document. It will keep track of the save progress of the document. + + + + + Layer OCProperties info + + + + + Gets the root of the bookmark tree in the document. + + A object specifying the document's bookmarks. + Creates an bookmark root instance + if it's called for first time. + + + + Gets the attachments of the document. + + The object contains list of files which are attached in the PDF document. + + + + Gets the interactive form of the document. + + The object contains the list of form elements of the document. + + + + Gets or sets the color space of the document. + + This property has impact on the new created pages only. + If a page was created it remains its colour space obliviously + to this property changes. + The of the document. + + + + Gets the default font. It is used for complex objects when font is + not explicitly defined. + + The default font. + + + + Indicates the document is a merged document or not, defalut value: false. + + + + + Gets a value indicating whether the document was encrypted. + + true if the document was encrypted; otherwise, false. + + + + Gets or Sets the Pdf Conformance level. + Supported : PDF/A-1b - Level B compliance in Part 1 + + + + + Saves the document to the specified stream. + + The stream object where PDF document will be saved. + + + + Closes the document. + + if set to true the document should be disposed completely. + The document is disposed after calling the Close method. So, the document can not be saved if Close method was invoked. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + The resulting clone must be of the same type as or a compatible type to the original instance. + + + + Shows the saving progress. + + + + + Gets the total number of the elements (pages) that need to be saved. + + + + + Gets the current element (page) index that just was saved. + + The index value increases constantly from 0 to Total. + + + + Gets the progress. + + Progress constantly increases from 0.0 to 1.0. + 1.0 value means that entire document has been saved. + + + + A class containing the information about the document. + + + + + Predefined properties in document info. + + + + + The metadata in catalog. + + + + + Gets or sets the creation date. + + + + + Gets or sets the modification date. + + + + + Gets or sets the title. + + + + + Gets or sets the author. + + + + + Gets or sets the subject. + + + + + Gets or sets the keywords. + + + + + Gets or sets the creator. + + + + + Gets or sets the producer. + + + + + Remove custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + + + + Set custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + The property value. + + + + Get custom property. + + + The property name. + Name not be Title,Author,Subject,Keywords,Creator,Producer,CreationDate,ModificationDate,Trap. + + The property value.null if property not exist. + + + + Get all custom properties. + + The all properties. + + + + Gets the element. + + + + + + Trigger when pdf wrappered element saving. + + The source of event. + The arguments of event. + + + + Synchronize metadata. + + + + + Synchronize metadata's author. + + + + + Synchronize metadata's create date. + + + + + Synchronize metadata's creator. + + + + + Synchronize metadata's keywords. + + + + + Synchronize metadata's modification date. + + + + + Synchronize metadata's producer. + + + + + Synchronize metadata's subject. + + + + + Synchronize metadata's title. + + + + + Synchronize metadata's customProperties. + + + + + A metadata stream containing metadata for document. + + + + + Special char mapping in custom property name. + + + + + ISO8601 datetime format. + + + + + The metadata stream. + + + + + The xmp metadata structure. + + + + + A constructor for new metadata stream. + + + + + A constructor for a existing metadata stream. + + A existing metadata stream. + + + + Set author. If value is null, delete the property. + + The author. + + + + Get author. + + + + + Whether exist author property. + + Returns true if the property exists. + + + + Set create date.If value is null, delete the property. + + The create date. + + + + Set create date.If value is null, delete the property. + + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Get create date. + + + + + Whether exist create date property. + + Returns true if the property exists. + + + + Set creator. If value is null, delete the property. + + The creator. + + + + Get creator. + + + + + Whether exist creator property. + + Returns true if the property exists. + + + + Set keywords. If value is null, delete the property. + + The keywords. + + + + Get keywords. + + + + + Whether exist keywords property. + + Returns true if the property exists. + + + + Set modify date. If value is null, delete the property. + + The modify date. + + + + Set modify date. If value is null, delete the property. + + the date in the format yyyy-MM-ddTHH:mm:sszzz + + + + Get modify date. + + + + + Whether exist modify date property. + + Returns true if the property exists. + + + + Set producer. If value is null, delete the property. + + The producer + + + + Get producer. + + + + + Whether exist producer property. + + Returns true if the property exists. + + + + Set subject. If value is null, delete the property. + + The subject. + + + + Get subject. + + + + + Whether exist subject property. + + Returns true if the property exists. + + + + Set title. If value is null, delete the property. + + The title. + + + + Get title. + + + + + Whether exist title property. + + Returns true if the property exists. + + + + Set custom property. If value is null, delete the property. + + The property name. + The property value. + + + + Get custom property. + + The property name. + + + + Whether xxist custom property. + + The property name. + Returns true if the property exists. + + + + Get all custom properties. + + The custom properties. + + + + Set pdf conformanceLevel. + + The pdf conformanceLevel. + + + + Get pdf conformanceLevel. + + The pdf conformanceLevel. + + + + Unescape special char in the escaped property name. + + The escaped property name. + The property name. + + + + The first character of an xml node name can only be a letter or a short underscore. + + The name + Processed string + + + + The first character of an xml node name can only be a letter or a short underscore. + + The name + UnProcessed string + + + + Escape special char in the property name. + + The property name. + The escaped property name. + + + + Convert xmp date time to .net DateTime + + The xmp date time. + The .net DateTime + + + + Gets the element. + + + + + + Defines the way the document is to be presented on the screen or in print. + + + + + A flag specifying whether to position the documents window in the center of the screen. + + + + + Set Expand or Collapse + + + + + + + Find Node Tree + + + + + + + + iterates Bookmark,Set Expand or Collapse + + + + + + + + + Find the click node + + + + + + + + + It's true,expand node + It's false,collapse node + + + + + A flag specifying whether the windows title bar should display the document title taken + from the Title entry of the document information dictionary. If false, the title bar + should instead display the name of the Pdf file containing the document. + + + + + A flag specifying whether to resize the documents window to fit the size of the first + displayed page. + + + + + A flag specifying whether to hide the viewer applications menu bar when the + document is active. + + + + + A flag specifying whether to hide the viewer applications tool bars when the document is active. + + + + + A flag specifying whether to hide user interface elements in the documents window + (such as scroll bars and navigation controls), leaving only the documents contents displayed. + + + + + A name object specifying how the document should be displayed when opened. + + + + + A name object specifying the page layout to be used when the document is opened. + + + + + Gets or Set the page scaling option to be selected + when a print dialog is displayed for this document. + + + + + Gets the element. + + + + + + Base collection of the pdf objects. + + + + + Initializes a new instance of the class. + + + + + Gets number of the elements in the collection. + + The total number of elements in the collection. + + + + Gets internal list of the collection. + + + + + Returns an enumerator that iterates through a collection. + + Returns an enumerator that iterates through a collection. + + + + Get a resource. + + The resource name. + The resource type. + A resource.return null if not exist. + + + + Get the resource. + + The resource name. + The resource type. + The resource.Return null,if not contain a resource with the name. + + + + Add a resource. + + The resource name. + The resource. + The resource type. + + + + Add a resource. + + The resource. + The resource type. + + + + Remove a resource. + + The resource name. + The resource type. + + + + Whether to contain the resource. + + The resource. + The resource type. + True,if contain the resource;False,otherwise. + + + + Get the resources. + + The resource type. + The resources dictionary of the resource type. + + + + Enumerator that implements page orientations. + + + + + Portrait orientation. + + + + + Landscape orientation. + + + + + The number of degrees by which the page should be rotated clockwise when displayed or printed. + + + + + The page is rotated as 0 angle. + + + + + The page is rotated as 90 angle. + + + + + The page is rotated as 180 angle. + + + + + The page is rotated as 270 angle. + + + + + Specifies numbering style of page labels. + + + + + No numbering at all. + + + + + Decimal arabic numerals. + + + + + Lowercase letters a-z. + + + + + Lowercase roman numerals. + + + + + Uppercase letters A-Z. + + + + + Uppercase roman numerals. + + + + + Specifies the docking style of the page template. + + This enumeration is used in class. + + + + The page template is not docked. + + + + + The page template edge is docked to the bottom page's side. + + + + + The page template edge is docked to the top page's side. + + + + + The page template edge is docked to the left page's side. + + + + + The page template edge is docked to the right page's side. + + + + + The page template stretch on full page. + + + + + Specifies how the page template is aligned relative to the template area. + + This enumeration is used in class. + + + + Specifies no alignment. + + + + + The template is top left aligned. + + + + + The template is top center aligned. + + + + + The template is top right aligned. + + + + + The template is middle left aligned. + + + + + The template is middle center aligned. + + + + + The template is middle right aligned. + + + + + The template is bottom left aligned. + + + + + The template is bottom center aligned. + + + + + The template is bottom right aligned. + + + + + A name object specifying the page layout to be used when the + document is opened. + + + + + Default Value. Display one page at a time. + + + + + Display the pages in one column. + + + + + Display the pages in two columns, with odd numbered + pages on the left. + + + + + Display the pages in two columns, with odd numbered + pages on the right. + + + + + Display the pages two at a time, with odd-numbered pages on the left + + + + + Display the pages two at a time, with odd-numbered pages on the right + + + + + Represents mode of document displaying. + + + + + Default value. Neither document outline nor thumbnail images visible. + + + + + Document outline visible. + + + + + Thumbnail images visible. + + + + + Full-screen mode, with no menu bar, window + controls, or any other window visible. + + + + + Optional content group panel visible. + + + + + Attachments are visible. + + + + + Page template is not used as header. + + + + + Page template is used as Top. + + + + + Page template is used as Bottom. + + + + + Page template is used as Left. + + + + + Page template is used as Right. + + + + + Enumeration of possible transition styles when moving to the page from another + during a presentation + + + + + Two lines sweep across the screen, revealing the new page. The lines may be either + horizontal or vertical and may move inward from the edges of the page or outward + from the center. + + + + + Multiple lines, evenly spaced across the screen, synchronously sweep in the same + direction to reveal the new page. The lines may be either horizontal or vertical. + Horizontal lines move downward; vertical lines move to the right. + + + + + A rectangular box sweeps inward from the edges of the page or outward from the center, + revealing the new page. + + + + + A single line sweeps across the screen from one edge to the other, revealing the new page. + + + + + The old page dissolves gradually to reveal the new one. + + + + + Similar to Dissolve, except that the effect sweeps across the page in a wide band moving from + one side of the screen to the other. + + + + + The new page simply replaces the old one with no special transition effect. + + + + + Changes are flown out or in, to or from a location that is offscreen. + + + + + The old page slides off the screen while the new page slides in, pushing the old page out. + + + + + The new page slides on to the screen, covering the old page. + + + + + The old page slides off the screen, uncovering the new page. + + + + + The new page gradually becomes visible through the old one. + + + + + Enumeration of transition dimensions. + + + + + Horizontal effect. + + + + + Vertical effect. + + + + + Enumeration of transition motions. + + + + + Inward motion from the edges of the page to center.. + + + + + Outward motion from the center of the page to edges. + + + + + Enumeration of transition directions. + + + + + Left to Right direction. + + + + + Bottom to Top direction. + + + + + Right to Left direction. + + + + + Top to Bottom direction. + + + + + TopLeft to BottomRight direction. + + + + + A name specifying the tab order to be used for annotations on the page. + + + + + Row Order + + + + + Column Order + + + + + Structure Order + + + + + Unspecified + + + + + Represents information about page size. + + + + + Letter format. + + + + + Note format. + + + + + Legal format. + + + + + A0 format. + + + + + A1 format. + + + + + A2 format. + + + + + A3 format. + + + + + A4 format. + + + + + A5 format. + + + + + A6 format. + + + + + A7 format. + + + + + A8 format. + + + + + A9 format. + + + + + A10 format. + + + + + B0 format. + + + + + B1 format. + + + + + B2 format. + + + + + B3 format. + + + + + B4 format. + + + + + B5 format. + + + + + ArchE format. + + + + + ArchD format. + + + + + ArchC format. + + + + + ArchB format. + + + + + ArchA format. + + + + + The American Foolscap format. + + + + + HalfLetter format. + + + + + 11x17 format. + + + + + Ledger format. + + + + + Represents a page loaded from a document. + + + + + Gets the size of the page. + + + + + Get the visible region of the page. + + + + + Gets the document. + + + + + Raises before the page saves. + + + + + Gets the text size of a specified font. + + Font key + Returns the text size of the specified font + + + + Represents a single PDF page. + + + + + Gets the size of the page. + + + + + Gets a collection of the annotations of the page. + + + + + Initializes a new instance of the class. + + + + + Sets crop box. + + + + + get xobject + + + + + + + create xobject + + + + + + + + refactoring resources,exclusion does not require resources + + + + + execute commond + + + + + + + + execute xobject + + + + + + + + Implements a virtual collection of all pages in the document. + + + + + Gets the total number of the pages. + + + + + Gets a page by its index in the document. + + + + + Represents the method that executes on a PdfNewDocument when a new page is created. + + + + + Creates a page and adds it to the last section in the document. + + Created page object. + + + + Inserts a page at the specified index to the last section in the document. + + The index of the page in the section. + The page. + + + + Gets the index of the page in the document. + + The current page. + Index of the page in the document if exists, -1 otherwise. + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Describes layer of the page. + + + + + Gets parent page of the layer. + + + + + Gets Graphics context of the layer. + + + + + Creates new layer. + + Parent page of the layer. + + + + Gets the wrapped element. + + + + + Collection of the pages layers. + + + + + Gets or sets element by its index. + + The layers belonging to the same page can be added to the collection only. + + + + Creates new collection. + + Parent page for the layers in the collection. + + + + Creates a new layer and adds it to the end of the collection. + + Created layer. + + + + Creates a new layer and adds it to the end of the collection. + + Layer Name. + Layer Visibility. + Created layer. + + + + Creates a new layer and adds it to the collection. + + Layer Name. + Created layer. + + + + Creates a new layer and adds it to the end of the collection. + + Layer Name. + Layer Id. + Layer Visibility. + Created layer. + + + + You can only delete the layer that exists in the source document + + Layer Name. + + + + + You can only delete the layer that exists in the source document + + Layer Name. + Is delete all content include in this layer. + Is remove layerdefine in doc properties.. + delete layer message. + + + + Adds layer to the collection. + + Layer object. + The layers belonging to the same page can be added to the collection only. + + + + Inserts layer into collection. + + Index of the layer. + Layer object. + The layers belonging to the same page can be added to the collection only. + + + + Removes layer from the collection. Only the currently created layer can be deleted + + Layer object. + + + + Removes layer by its index. Only the currently created layer can be deleted + + Index of the layer. + + + + Checks whether collection contains layer. + + Layer object. + True - if collection contains layer, False otherwise. + + + + Returns index of the layer in the collection if exists, -1 otherwise. + + Layer object. + Returns index of the layer in the collection if exists, -1 otherwise. + + + + Cleares the collection. + + + + + Registers layer at the page. + + Index of the layer in the collection. + The new layer. + + + + Registers layer at the page. + + Index of the layer in the collection. + The new layer. + + + + Parses the layers. + + The loaded page. + + + + The flag of q or Q before and after all stream. Bug1031 + + The contents. + The cross table. + The flag. + + + + Represent class with setting of page. + + + + + Gets or sets the page orientation. + + + + + Gets or sets the size of the page. + + + + + Gets or sets the width of the page. + + + + + Gets or sets the height of the page. + + + + + Gets or sets the margins of the page. + + + + + Gets or sets the number of degrees by which the page should be rotated clockwise when displayed or printed. + + + + + Gets or sets the transition. + + The transition. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The size. + + + + Initializes a new instance of the class. + + The page orientation. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + + + + Initializes a new instance of the class. + + The margins. + + + + Initializes a new instance of the class. + + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Initializes a new instance of the class. + + The size. + The margins. + + + + Initializes a new instance of the class. + + The size. + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + The margins. + + + + Initializes a new instance of the class. + + The size. + The page orientation. + The left margin. + The top margin. + The right margin. + The bottom margin. + + + + Sets the margins. + + The margins. + + + + Sets the margins. + + The left right. + The top bottom. + + + + Sets the margins. + + The left. + The top. + The right. + The bottom. + + + + Creates a clone of the object. + + Cloned object. + + + + Specifies the paper tray when the document is printed. + + + + + Gets or sets the page number (non zero-based) of the first page to print. + + + + + Gets or sets the page number (non zero-based) of the last page to print. + + + + + Specifies the paper tray from which the printer gets paper. + + + + + Describes a page template object that can be used as header/footer, watermark or stamp. + + + + + Gets or sets the dock style of the page template element. + + + + + Gets or sets alignment of the page template element. + + + + + Indicates whether the page template is located in front of + the page layers or behind of it. + + + + + Indicates whether the page template is located behind of + the page layers or in front of it. + + + + + Gets or sets location of the page template element. + + + + + Gets or sets X co-ordinate of the template element on the page. + + + + + Gets or sets Y co-ordinate of the template element on the page. + + + + + Gets or sets size of the page template element. + + + + + Gets or sets width of the page template element. + + + + + Gets or sets height of the page template element. + + + + + Gets or sets bounds of the page template element. + + + + + Gets graphics context of the page template element. + + + + + Creates a new page template. + + Bounds of the template. + + + + Initializes a new instance of the class. + + The bounds. + The page. + + + + Creates a new page template. + + Location of the template. + Size of the template. + + + + Initializes a new instance of the class. + + The location. + The size. + The page. + + + + Creates new page template object. + + Size of the template. + + + + Creates a new page template. + + Width of the template. + Height of the template. + + + + Creates a new page template. + + Width of the template. + Height of the template. + The Current Page object. + + + + Creates a new page template. + + X co-ordinate of the template. + Y co-ordinate of the template. + Width of the template. + Height of the template. + + + + Creates a new page template. + + X co-ordinate of the template. + Y co-ordinate of the template. + Width of the template. + Height of the template. + The Current Page object. + + + + Represents a section entity. A section it's a set of the pages with similar page settings. + + + + + Free users can only add up to 10 pages + + + + + Gets the pages. + + + + + Gets or sets page settings of the section. + + + + + Gets or sets a template for the pages in the section. + + + + + Gets the owner document. + + The document. + + + + Event rises when the new page has been added + + + + + FreeVersion,Allow Create 10 Pdf page + + PdfNewPage page + + + + + + Gets the wrapped element. + + + + + Resize the canvas of page according to html view size. + + + + Return the new size of canvas. + + + + set PdfHtmlLayoutFormat + + PdfHtmlLayoutFormat layoutFormat + bool autoDetectPageBreak + + + + Draws HTML to PDF + + Url address + Enable javascrpit + Enable hyperlink + Layouts html view format + + + + Draws HTML to PDF + + url address or socuce code + Enable javascrpit + Enable hyperlink + Enable autoDetectPageBreak + Layouts html view format + + + + Split by page height image + + + + + + + + Scan image data + + + + + + + + + + + Gets the current. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, + which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Get the number of leaf nodes (page objects) that are descendants of this node within the page tree. + + this node within the page tree. + the number of leaf nodes (page objects). + + + + The collection of the sections. + + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Creates a section and adds it to the collection. + + Created section object. + + + + Determines the index of the section. + + The section. + The index of the section. + + + + Inserts the section at the specified index. + + The index. + The section. + + + + Checks whether the collection contains the section. + + The section object. + True - if the sections belongs to the collection, False otherwise. + + + + + Gets the wrapped element. + + + + + Gets the current section. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + The collection was modified after the enumerator was created. + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + The collection was modified after the enumerator was created. + + + + Convet pdf array to float array + + float array + + + + Is the current string a hexadecimal string? + + + + + + + Gets the headers. + + The headers. + + + + Gets the rows. + + The rows. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the style. + + The style. + + + + Gets the columns. + + The columns. + + + + Gets or sets a value indicating whether [repeat header]. + + true if [repeat header]; otherwise, false. + + + + Gets or sets whether to cross a page. + + + + + Initializes a new instance of the class. + + + + + Draws the specified graphics. + + The graphics. + The location. + The width. + + + + Draws the specified graphics. + + The graphics. + The x. + The y. + The width. + + + + Draws the specified graphics. + + The graphics. + The bounds. + + + + Draws the specified page. + + The page. + The location. + + + + + Draws the specified page. + + The page. + The location. + The format. + + + + + Draws the specified page. + + The page. + The bounds. + + + + + Draws the specified page. + + The page. + The bounds. + The format. + + + + + Draws the specified page. + + The page. + The x. + The y. + + + + + Draws the specified page. + + The page. + The x. + The y. + The format. + + + + + Draws the specified page. + + The page. + The x. + The y. + The width. + + + + + Draws the specified page. + + The page. + The x. + The y. + The width. + The format. + + + + + Gets or sets the width. + + The width. + + + + Gets the height. + + The height. + + + + Gets or sets the row span. + + The row span. + + + + Gets or sets the column span. + + The column span. + + + + Gets or sets the cell style. + + The cell style. + + + + Gets or sets the value. + + The value. + + + + Gets or sets the string format. + + The string format. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The row. + + + + Calculate the minimum drawable height. + If the available height in the page less than the value, the grid needs to drawn on a new page. + + + + + Whether this cell contains multiple lines of text. + + + + + + Keep four decimals. + Avoid the loss of precision when calcullating cell width and height, + resulting in the loss of content. + + + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Returns the index of a particular cell in the collection. + + The cell. + + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Gets or sets the width. The with is equal to the content + width plus margin plus half of the left and right borders. + + The width. + + + + Gets or sets the format. + + The format. + + + + Gets the grid. + + The grid. + + + + Initializes a new instance of the class. + + The grid. + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Adds this instance. + + + + + + Adds the specified count. + + The count. + + + + Adds the specified column. + + The column. + + + + Removes the first occurrence of a specific object from the PdfGridColumnCollection. + + The object to remove from the PdfGridColumnCollection. + + true if item is successfully removed; otherwise, false + + + + Removes the element at the specified index of the PdfGridColumnCollection. + + The zero-based index of the element to remove. + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + Gets the cells. + + The cells. + + + + Gets or sets the row style. + + The row style. + + + + Gets or sets the height.The height is equal to the content + height plus margin plus half of the top and bottom borders. + + The height. + + + + Gets or sets whether to cross a page. + + + + + Initializes a new instance of the class. + + The parent grid. + + + + Applies the cell style to all the cells present in a row. + + The cell style. + + + + Adds this instance. + + + + + + Sets the span. + + Index of the row. + Index of the cell. + The row span. + The col span. + + + + Applies the style. + + The style. + + + + Gets the at the specified index. + + + + + + Gets the count. + + The count. + + + + Gets the rows. + + The rows. + + + + Adds the specified count. + + The count. + + + + Clears this instance. + + + + + Applies the style. + + The style. + + + + + Gets the current. + + The current. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + The collection was modified after the enumerator was created. + + + + + + + + + + Sets the cell padding. + + The cell padding. + + + + Gets or sets the background brush. + + The background brush. + + + + Gets or sets the text brush. + + The text brush. + + + + Gets or sets the text pen. + + The text pen. + + + + Gets or sets the font. + + The font. + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Grid style + + + + + Gets or sets the cell spacing. + + The cell spacing. + + + + Gets or sets the cell padding. + + The cell padding. + + + + Gets or sets the border overlap style. + + The border overlap style. + + + + Gets or sets a value indicating whether to allow horizontal overflow. + + + true if [allow horizontal overflow]; otherwise, false. + + + + + Gets or sets the type of the horizontal overflow. + + The type of the horizontal overflow. + + + + Initializes a new instance of the class. + + + + + Grid row style + + + + + Get or sets the cell padding. + + The cell padding. + + + + Sets the grid style. + + The grid style. + + + + Initializes a new instance of the class. + + + + + Grid cell style + + + + + Get or sets the cell padding. + + The cell padding. + + + + Sets the row style. + + The row style. + + + + Gets the string format. + + The string format. + + + + Gets or sets the border. + + The border. + + + + Gets or sets the background image. + + The background image. + + + + Initializes a new instance of the class. + + + + + Represents the content that can be written in a grid cell. + + + + + Set the image's location in a grid cell. + + + + + It is a collection of PdfGridCellContent classes + + + + + + + + + + + + + + + + + + + + Arguments of BeginPageLayoutEvent. + + + + + Gets the start row. + + The start row. + + + + Arguments of EndPageLayoutEvent. + + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Gets the default. + + The default. + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The left. + The right. + The top. + The bottom. + + + + Gets or sets the left. + + The left. + + + + Gets or sets the right. + + The right. + + + + Gets or sets the top. + + The top. + + + + Gets or sets the bottom. + + The bottom. + + + + Sets all. + + All. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The left. + The right. + The top. + The bottom. + + + + Represents base class for markers. + + + + + Gets or sets marker font. + + + + + Gets or sets marker brush. + + + + + Gets or sets marker pen. + + + + + Gets or sets the format. + + The format. + + + + Gets or sets a value indicating whether the marker is + situated at the left of the list or at the right of the list. + + + + + Represents marker for ordered list. + + + + + Gets or sets the list numbering style. + + + + + Gets ar sets start number for ordered list. Default value is 1. + + + + + Gets or sets the delimiter. + + + + + Gets or sets the suffix of the marker. + + + + + Initializes a new instance of the class. + + Number style of marker. + Number delimiter of marker. + Number suffix of marker. + Number font of marker. + + + + Initializes a new instance of the class. + + Number style of marker. + Number suffix of the marker. + Number font of marker. + + + + Initializes a new instance of the class. + + Number style of marker. + Number font of marker. + + + + Represents bullet for the list. + + + + + Gets or sets template of the marker. + + + + + Gets or sets image of the marker. + + + + + Gets or sets marker text. + + + + + Gets or sets the style. + + + + + Initializes a new instance of the class. + + The text of the marker. + Marker font. + + + + Initializes a new instance of the class. + + The style of the marker. + + + + Initializes a new instance of the class. + + The image of the marker. + + + + Initializes a new instance of the class. + + Template of the marker. + + + + Specifies the marker style. + + + + + Marker have no style. + + + + + Marker is like a disk. + + + + + Marker is like a square. + + + + + Marker is like a Asterisk. + + + + + Marker is like a circle. + + + + + Marker is custom string. + + + + + Marker is custom image. + + + + + Marker is custom template. + + + + + Represents marker alignment. + + + + + Left alignment for marker. + + + + + Right alignment for marker. + + + + + Represents base class for lists. + + + + + Gets items of the list. + + + + + Gets or sets tabulation for the list. + + + + + Gets or sets the indent from the marker to the list item text. + + + + + Gets or sets the list font. + + + + + Gets or sets list brush. + + + + + Gets or sets list pen. + + + + + Gets or sets the format of the list. + + The format. + + + + Event that rises when item begin layout. + + + + + Event that rises when item end layout. + + + + + Draws an list on the Graphics. + + Graphics context where the list should be printed. + X co-ordinate of the list. + Y co-ordinate of the list. + + + + Represents the list item of the list. + + + + + Gets or sets item font. + + + + + Gets or sets item text. + + + + + Gets or sets item string format. + + + + + Gets or sets list item pen. + + + + + Gets or sets list item brush. + + + + + Gets or sets sublist for item. + + + + + Gets or sets indent for item. + + + + + Creates new empty pdf list item. + + + + + Creates new pdf list item with default settings. + + + + + Initializes a new instance of the class. + + The text of item. + The font of item. + + + + Initializes a new instance of the class. + + The text of item. + The font of item. + The string format. + + + + Creates new list item. + + The item text. + The item font. + The string format of item. + The item pen. + The item brush. + + + + Represents collection of list items. + + + + + Gets the PdfListItem from collection at the specified index. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A string array that contains items separated by the new line character. + + + + Adds the specified item. + + The item. + The item index in collection. + + + + Adds the specified item. + + The item. + The item indent. + + + + Adds the item with a specified text. + + The text. + + + + + Adds the specified text. + + The text. + The item indent. + List item. + + + + Adds the specified text. + + The text. + The font. + The item index in collection. + + + + Adds the specified text. + + The text. + The font. + The item indent. + List item. + + + + Inserts item at the specified index. + + The specified index. + The item. + The item index + + + + Inserts the specified index. + + The index. + The item. + The item indent. + + + + Removes the specified item from the list. + + The specified item. + + + + Removes the item at the specified index from the list. + + he specified index. + + + + Determines the index of a specific item in the list. + + The item to locate in the list. + The index of item if found in the list; otherwise, -1. + + + + Clears collection. + + + + + Represents the ordered list. + + + + + Gets or sets marker of the list items. + + + + + True if user want to use numbering hierarchy, otherwise false. + + + + + Creates ordered list. + + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The style. + + + + Creates ordered list using items. + + Items for a list. + + + + Initializes a new instance of the class. + + The marker for the list. + + + + Initializes a new instance of the class. + + The item collection. + The marker for the list. + + + + Initializes a new instance of the class. + + The formatted text. + + + + Initializes a new instance of the class + from formatted text that is splitted by new lines. + + The formatted text. + The marker. + + + + Represents unordered list. + + + + + Gets or sets the marker. + + + + + Initializes a new instance of the class. + + + + + Creates unordered list using items. + + Items for a list. + + + + Initializes a new instance of the class. + + The font. + + + + Initializes a new instance of the class. + + The marker for the list. + + + + Initializes a new instance of the class. + + The items collection. + The marker for the list. + + + + Initializes a new instance of the class. + + The formatted text. + + + + Initializes a new instance of the class + from formatted text that is splitted by new lines. + + The formatted text. + The marker. + + + + Delegate for handling BeginItemLayoutEvent. + + The item that begin layout. + Begin Item Layout arguments. + + + + Delegate for handling EndItemLayoutEvent. + + The item that end layout. + End Item Layout arguments. + + + + Represents begin layout event arguments. + + + + + Gets the item. + + The item that layout. + + + + Gets the page. + + The page in which item start layout. + + + + Represents end layout event arguments. + + + + + Gets the item that layout. + + The item that layout. + + + + Gets the page in which item ended layout. + + The page in which item ended layout. + + + + Gets the widths. + + The total width + An array containing widths. + + + + Zoom in or out the width. + + The width + The zoom factor + + + + Represents fast table with few features. + + + + + Gets the columns. + + The table column collection + + + + Gets the rows. + + + + + Gets or sets the data source. + + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the datasource type of the PdfTable + + + + + Gets or sets the properties. + + + + + Gets or sets a value indicating whether + PdfTable should ignore sorting in data table. + + + + + Gets a value Indicates whether can cross a page. + + + + + The event raised on starting row lay outing. + + + + + The event raised on having finished row lay outing. + + + + + The event raised on starting cell lay outing. + + + + + The event raised on having finished cell layout. + + + + + The event raised when the next row data is requested. + + + + + The event raised when the column number is requested. + + + + + The event raised when the row number is requested. + + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + The location of the element. + The width of the table. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + The width of the table. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + The bounds. + + + + Draws the table starting from the specified page. + + The page. + The location. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The location. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The bounds. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The bounds. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The format. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The width. + The results of the lay outing. + + + + Draws the table starting from the specified page. + + The page. + The x coordinate. + The y coordinate. + The width. + The format. + The results of the lay outing. + + + + Draws an element on the Graphics. + + Graphics context where the element should be printed. + X co-ordinate of the element. + Y co-ordinate of the element. + + + + Represents parameters of PdfTable. + + + + + Specifies whehther the table populates the entire page + + + + + get or set the value of fitWidth. + + + + + Gets or sets the default cell style. + + + + + Gets or sets the odd row cell style. + + + + + Gets or sets a value indicating whether + to use rows or column captions for forming header. + + + + + Gets or sets the header rows count. + + + + + Gets or sets the header cell style. + + + + + Gets or sets a value indicating whether to repeat header on each page. + + + + + Gets or sets a value indicating whether the header is visible. + + If the header is made up with ordinary rows they aren't visible + while this property is set to false. + + + + Gets or sets the cell spacing. + + + + + Gets or sets the cell padding. + + + + + Gets or sets a value indicating whether the cell borders + should overlap its neighbour's borders or be drawn in the cell interior. + + Please, use this property with caution, + because it might cause unexpected results if borders + are not the same width and colour. + + + + Gets or sets the pen of the table border. + + + + + Initializes a new instance of the class. + + + + + Represents information about cell style. + + + + + Gets or sets the font. + + + + + Gets or sets the string format of the cell text. + + + + + Gets or sets the font which will be used to draw text outlines. + + It should be null for default text representation. + + + + Gets or sets the brush which will be used to draw font. + + This brush will be used to fill glyphs interior, which is the default. + + + + Gets or sets the pen with which the border will be drawn. + + + + + Gets or sets the brush with which the background will be drawn. + + It's null by default. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The font. + The font brush. + The border pen. + + + + Represents the collection of the columns. + + + + + Gets the at the specified index. + + + + + Adds the specified column. + + The column. + + + + Gets the widths of the columns. + + The start column. + The end column. + An array containing widths. + + + + Represents a single column of the table. + + + + + Gets or sets the string format. + + The string format. + + + + Gets or sets the width of the column. + + + + + Gets or sets the column name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the column. + + + + Represents a single column of the table. + + + + + The array of values that are used to create the new row. + + + + + Represents the collection of the columns. + + + + + Gets the at the specified index. + + + + + Adds the specified row. + + The row. + + + + The array of values that are used to create the new row. + + + + + Represents as a message deliverer from PdfTable class to the user. + + + + + Represents the parameters for Light Table layout. + + + + + Gets or sets the start column index. + + + + + Gets or sets the end column index. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The base format. + + + + Delegate for handling StartRowLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when starting a row in a layout. + + + + Delegate for handling EndRowLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when you are finished laying out a row on a page. + + + + Delegate for handling StartCellLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when laying out a cell on a page. + + + + Delegate for handling EndCellLayoutEvent. + + The sender of the event. + The arguments of the event. + This event is raised when you have finished laying out a page. + + + + Delegate for handling NextRowEvent. + + The sender of the event. + The arguments of the event. + + + + Delegate for handling GettingColumnNumber Event. + + The sender of the event. + The arguments of the event. + + + + Delegate for handling GettingRowNumber Event. + + The sender of the event. + The arguments of the event. + + + + Represents StartRowLayout Event arguments. + + + + + Gets the index of the row. + + + + + Gets or sets the cell style. + + + + + Gets or sets the span map. + + + + + Gets or sets a value indicating whether table drawing should stop. + + + + + Gets or sets a value indicating whether this row should be ignored. + + + + + Gets or sets a value indicating whether column string format should be ignored. + + + + + Sets the minimal height of the row. + + + + + Represents arguments of EndRowLayoutEvent. + + + + + Gets the index of the row. + + + + + Gets a value indicating whether the row was drawn completely + (nothing should be printed on the next page). + + + + + Gets or sets a value indicating whether this row should be the last one printed. + + + + + Gets or sets the row bounds. + + + + + The base class for cell layout arguments. + + + + + Gets the index of the row. + + + + + Gets the index of the cell. + + + + + Gets the value. + + The value might be null or an empty string, + which means that either no text were acquired or all + text was on the previous page. + + + + Gets the bounds of the cell. + + + + + Gets the graphics, on which the cell should be drawn. + + + + + Represents arguments of StartCellLayout Event. + + + + + Gets or sets a value indicating whether the value of this cell should be skipped. + + + + + Represents arguments of EndCellLayout Event. + + + + + Represents arguments of the NextRow Event. + + + + + Gets or sets the row data. + + + + + Gets the column count. + + + + + Gets the index of the row. + + + + + The arguments of the GettingColumnNumber Event. + + + + + Gets or sets the column number. + + + + + The arguments of the GettingRowNumber Event. + + + + + Gets or sets the column number. + + + + + Specifies values specifying where the header should formed from. + + + + + The header is formed from column captions' values. + + + + + The header is formed from rows. + + + + + Specifies type for table width. + + + + + Use the fit page width + each width of columns will zoom in or out + using the ratio of totall width of the table to the width of page + + + + + use the Coustom width + takes the totall width of the set column as the width of the table,no zoom. + notes:if set this type but does not set the column width it will use default column width + + + + + Specifies the datasource type. + + + + + Specifies that the PdfTable has been binded to an external datasource. + + + + + Specifies that the values are directly binded to the PdfTable. + + + + + Specifies values of the border overlap style. + + + + + Cell borders overlap (are drawn using the same coordinates). + + + + + Cell borders are drawns in the cell's interior. + + + + + Represents custom Metadata. + + + + + Sets the xmp property. + + + + + Gets type of the schema. + + + + + Initializes a new instance of the class. + + Parent XmpMetadata. + The XML namespace. + The namespace URI. + + + + Enumerates types of the xmp structure. + + + + + A structure containing dimensions for a drawn object. + + + + + A structure containing the characteristics of a font used in a document. + + + + + A structure containing the characteristics of a Coloring (swatch) used in a document. + + + + + A thumbnail image for a file. + + + + + Job structure. + + + + + Enumerates types of the xmp schema. + + + + + Dublin Core Schema. + + + + + Basic Schema. + + + + + Rights Management Schema. + + + + + Basic Job Ticket Schema. + + + + + Paged Text Schema. + + + + + Adobe PDF Schema. + + + + + Custom schema. + + + + + Types of the xmp arrays. + + + + + Unknown array type. + + + + + Unordered array. + + + + + Ordered array. + + + + + Alternative array. + + + + + Base class for the xmp entities. + + + + + Gets Xml data of the entity. + + + + + Represents XMP metadata of the document. + + + + + Gets XMP data in XML format. + + + + + Gets namespace manager of the Xmp metadata. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The XMP. + + + + Adds schema to the XMP in XML format. + + XMP schema in XML format. + If XMP already contains such schema - there will be two equal schemas at the xmp. + + + + Return title if exists; otherwise return null + + + + + + Return subject if exists; otherwise return null + + + + + + Return author if exists; otherwise return null + + + + + + Return producer if exists; otherwise return null + + + + + + return keywords if exists; otherwise return null + + + + + + Return specified custom field value if exists; otherwise return null + + + + + + + Return all custom properties if exsit; otherwise return empty Dictionary + + + + + + Return create date if exists; otherwise return default DateTime + + + + + + Return creator if exists; otherwise return null + + + + + + Return modify date if exists; otherwise return System.DateTime.MinValue + + + + + + Set title to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set subject to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set subject to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set producer to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set keywords to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set custom property to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + + Set title to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set Creator to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Set ModifyDates to xmpmeta; if value is null, remove the node; if the node is null, create the node + + + + + + Gets the element. + + + + + + Represents the rich text. + + + + + Gets or set the xmls. + + + + + Gets or set the xfa. + + + + + Gets or set the apiversion. + + + + + Gets or set the spec. + + + + + Gets or set the style. + + + + + Gets the paragraphs. + + + + + Represents the rich text. + + + + + + To ap dictionary. + + The ap dictionary + + + + Generate ap dictionary. + + The ap dictionary + + + + Generate normal dictionary. + + + + + Initialize. + + + + + Initialize the client bound. + + + + + Initialize the normal dictionary. + + + + + Get bbox. + + The bbox + + + + Get the transparency. + + the transparency + + + + Generate ap content. + + + + + Initialize state. + + + + + Draw border area. + + + + + Append content. + + + + + Draw contents. + + + + + Drae contents. + + The text + The rich text style + + + + Draw text. + + The text + The style + The float type list + + + + Draw lines. + + The list + The rich text style + + + + Get font resource name. + + The rich text style + The resource name + + + + Create font dictionary. + + The font resource name + The font name + + + + Get font name. + + The rich style + The font name + + + + Get the the stroking path. + + The stroking path + + + + Get the the fill path. + + The fill path + + + + Get line width. + + Line width + + + + Get back ground color. + + The back ground color + + + + Get the border color. + + The border color + + + + Get font base line. + + The font + The font base line + + + + Get the font line space. + + The font + The font line space + + + + Get font. + + The font name + The font size + The font + + + + Measure text width + + The text + The font + The text width + + + + Clear the string builder content. + + The string builder instance + + + + Move the point to. + + The point + + + + Make current point to anthor point. + + The point + + + + Restore curernt state. + + + + + Save the current state. + + + + + Begin draw text. + + + + + End draw text. + + + + + The ctm. + + The martix + + + + Set the current color space. + + + + + Set curernt font name and font size. + + The font name + The font size + + + + The TD. + + The x + The y + + + + Show text. + + char codes + + + + Use non-zero Fill the current path. + + + + + Storken the current path. + + + + + Close the stroke path. + + + + + Introduce rgb color. + + The color + The is stroking + + + + Set the graphics state. + + + + + Append rectangle + + The rectangle + + + + Set line width. + + The line width + + + + Set the text leading. + + The linespace + + + + Set character space. + + + + + + Set the word space. + + + + + + Use even-odd Fill the current path. + + + + + Represents the rich text builder. + + + + + Represents the rich text builder instance. + + + + + Builder richtext. + + The annotation + The richtext instance + + + + Get the rich content. + + The annotation + The rich content + + + + Get default style string. + + The annotation + The default style string + + + + Builder default style. + + The defaultStyle + The rich text style + + + + String to stream. + + The rich text + The stream + + + + Parese xml to richtext. + + The xml + + + + Parse body node. + + The body node + + + + Parse body node. + + The paragraph + + + + Parse paragraph. + + The paragraph + + + + + Parse span. + + The span + The paragraph + + + + Parse attributes. + + The attribute + + + + Parse attributes. + + The attribute + + + + Implements structures and routines working with rich text style. + + + + + Gets the font size. + + + + + Gets the font style. + + + + + Gets the font weight. + + + + + Gets the font family. + + + + + Gets the color. + + + + + Gets the text deciration. + + + + + Gets the font stretch. + + + + + Replace the style. + + The base style + The rich style + + + + Parse default style. + + The ds + + + + Parse style + + The styleString + + + + Parse font weight. + + The wight + The font weight + + + + Parse the list. + + The value + The list + + + + Parse color. + + The color + The color + + + + Parse float. + + The value + A float value + + + + Parse enums. + + The unknow type + + + + + + Implements structures and routines working with paragraph. + + + + + Gets the spans. + + + + + Gets or set the style. + + + + + Gets or set the content. + + + + + Implements structures and routines working with span. + + + + + Gets or set the style. + + + + + Gets or set the content. + + + + + The text align enum. + + + + + The font style enum. + + + + + The text decoration enum. + + + + + The font stretch enum. + + + + Byte buffer container including length of valid data. + Stefan Makswit + 11.10.2006 + + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + the inner byte array might be bigger than that. + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + Loads the stream into a buffer. + an Stream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + Appends a byte to the buffer. + a byte + + + Appends a byte array or part of to the buffer. + a byte array + an offset with + + + + Append a byte array to the buffer + a byte array + + + Append another buffer to this buffer. + another ByteBuffer + + + Detects the encoding of the byte buffer, stores and returns it. + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + + Returns the encoding string. + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + Stefan Makswit + 22.08.2006 + + + the state of the automaton + + + the result of the escaping sequence + + + count the digits of the sequence + + + The look-ahead size is 6 at maximum (&#xAB;) + + a Reader + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + Stefan Makswit + 16.02.2006 + + + Converts an ISO 8601 string to an XMPDateTime. + + Converts an ISO 8601 string to an XMPDateTime. + Parse a date according to ISO 8601 and + http://www.w3.org/TR/NOTE-datetime: + + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm:ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + + Data fields: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + + Note that ISO 8601 does not seem to allow years less than 1000 or greater + than 9999. We allow any year, even negative ones. The year is formatted + as "%.4d". + + Note: Tolerate missing TZD, assume is UTC. Photoshop 8 writes + dates like this for exif:GPSTimeStamp. + + Note: DOES NOT APPLY ANYMORE. + Tolerate missing date portion, in case someone foolishly + writes a time-only value that way. + + a date string that is ISO 8601 conform. + Returns a Calendar. + Is thrown when the string is non-conform. + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + Converts a Calendar into an ISO 8601 string. + + Converts a Calendar into an ISO 8601 string. + Format a date according to ISO 8601 and http://www.w3.org/TR/NOTE-datetime: + + YYYY + YYYY-MM + YYYY-MM-DD + YYYY-MM-DDThh:mmTZD + YYYY-MM-DDThh:mm:ssTZD + YYYY-MM-DDThh:mm:ss.sTZD + + Data fields: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + + + Note: ISO 8601 does not seem to allow years less than 1000 or greater than 9999. + We allow any year, even negative ones. The year is formatted as "%.4d". + + Note: Fix for bug 1269463 (silently fix out of range values) included in parsing. + The quasi-bogus "time only" values from Photoshop CS are not supported. + + an XMPDateTime-object. + Returns an ISO 8601 string. + + + Stefan Makswit + 22.08.2006 + + + Returns the current position. + + + initializes the parser container + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + Skips the next char. + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + Stefan Makswit + 12.10.2006 + + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + + A converter that processes a byte buffer containing a mix of UTF8 and Latin-1/Cp1252 chars. + The result is a buffer where those chars have been converted to UTF-8; + that means it contains only valid UTF-8 chars. + + Explanation of the processing: First the encoding of the buffer is detected looking + at the first four bytes (that works only if the buffer starts with an ASCII-char, + like xmls '<'). UTF-16/32 flavours do not require further proccessing. + + In the case, UTF-8 is detected, it assumes wrong UTF8 chars to be a sequence of + Latin-1/Cp1252 encoded bytes and converts the chars to their corresponding UTF-8 byte + sequence. + + The 0x80..0x9F range is undefined in Latin-1, but is defined in Windows code + page 1252. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are formally undefined + by Windows 1252. These are in XML's RestrictedChar set, so we map them to a + space. + + The official Latin-1 characters in the range 0xA0..0xFF are converted into + the Unicode Latin Supplement range U+00A0 - U+00FF. + + Example: If an Euro-symbol (€) appears in the byte buffer (0xE2, 0x82, 0xAC), + it will be left as is. But if only the first two bytes are appearing, + followed by an ASCII char a (0xE2 - 0x82 - 0x41), it will be converted to + 0xC3, 0xA2 (â) - 0xE2, 0x80, 0x9A (‚) - 0x41 (a). + + a byte buffer contain + Returns a new buffer containing valid UTF-8 + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + Stefan Makswit + 11.08.2006 + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + Asserts that a specific language is set. + a specific lang + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + Asserts that a parameter is not null. + the parameter's value + Thrown if the parameter is null. + + + Asserts that any string parameter is not null or empty. + a string parameter's value + Thrown if the parameter is null or has length 0. + + + Asserts that the xmp object is of this implemention (). + the XMP object + A wrong implentaion is used. + + + Start of coreSyntaxTerms. + + + End of coreSyntaxTerms + + + Start of additions for syntax Terms. + + + End of of additions for syntaxTerms. + + + Start of oldTerms. + + + End of oldTerms. + + + ! Yes, the syntax terms include the core terms. + + + Parser for "normal" XML serialisation of RDF. + Stefan Makswit + 14.07.2006 + + + this prefix is used for default namespaces + + + The main parsing method. + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + ParseOptions to indicate the parse options provided by the client + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.10 nodeElementList + + ws* ( nodeElement ws* ) + + + This method is only called from the rdf:RDF-node (top level). + + the xmp metadata object that is generated + the parent xmp node + the top-level xml node + /// ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* ) + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.14 propertyElt + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attribute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws + end-element() + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + Add a leaf node with the text value and qualifiers for the attributes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thrown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thrown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + ParseOptions to indicate the parse options provided by the client + thrown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thrown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thrown on parsing errors + + + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( + idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + <ns:Prop1/> <!-- a simple property with an empty value --> + <ns:Prop2 rdf:resource="http: *www.adobe.com/"/> <!-- a URI value --> + <ns:Prop3 rdf:value="..." ns:Qual="..."/> <!-- a simple qualified property --> + <ns:Prop4 ns:Field1="..." ns:Field2="..."/> <!-- a struct with simple fields --> + An emptyPropertyElt is an element with no contained content, just a possibly empty set of + attributes. An emptyPropertyElt can represent three special cases of simple XMP properties: a + simple property with an empty value (ns:Prop1), a simple property whose value is a URI + (ns:Prop2), or a simple property with simple qualifiers (ns:Prop3). + An emptyPropertyElt can also represent an XMP struct whose fields are all simple and + unqualified (ns:Prop4). + It is an error to use both rdf:value and rdf:resource - that can lead to invalid RDF in the + verbose form written using a literalPropertyElt. + The XMP mapping for an emptyPropertyElt is a bit different from generic RDF, partly for + design reasons and partly for historical reasons. The XMP mapping rules are: + + If there is an rdf:value attribute then this is a simple property + with a text value. + All other attributes are qualifiers. + If there is an rdf:resource attribute then this is a simple property + with a URI value. + All other attributes are qualifiers. + If there are no attributes other than xml:lang, rdf:ID, or rdf:nodeID + then this is a simple + property with an empty value. + Otherwise this is a struct, the attributes other than xml:lang, rdf:ID, + or rdf:nodeID are fields. + + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thrown on parsing errors + + + Adds a child node. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thrown on parsing errors + + + Adds a qualifier node. + the parent xmp node + + the name of the qualifier which has to be + QName including the default prefix + + the value of the qualifier + Returns the newly created child node. + thrown on parsing errors + + + The parent is an RDF pseudo-struct containing an rdf:value field. + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thrown on parsing errors + + + Checks if the node is a white space. + an XML-node + + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + 7.2.4 oldTerms + + rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID + + the term id + Returns true if the term is an old term. + + + + 7.2.2 coreSyntaxTerms + + rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | + rdf:datatype + + the term id + Return true if the term is a core syntax term + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + an XML node + Returns the term ID. + + + Check if the child name + an XML node + Returns bool + + + Stefan Makswit + 09.11.2006 + + + Splits a qname into prefix and localname. + a QName + + + Constructor that initializes the fields + the prefix + the name + + + Returns whether the QName has a prefix. + + + XML localname + the localName + + + XML namespace prefix + the prefix + + + Utility functions for the XMPToolkit implementation. + Stefan Makswit + 06.06.2006 + + + segments of a UUID + + + length of a UUID + + + table of XML name start chars (<= 0xFF) + + + table of XML name chars (<= 0xFF) + + + + Normalize an xml:lang value so that comparisons are effectively case + insensitive as required by RFC 3066 (which supersedes RFC 1766). + + + The normalization rules: + + The primary subtag is lower case, the suggested practice of ISO 639. + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + All other subtags are lower case. + + + raw value + Returns the normalized value. + + + + Split the name and value parts for field and qualifier selectors. + + + + [qualName="value"] - An element in an array of structs, chosen by a field value. + [?qualName="value"] - An element in an array, chosen by a qualifier value. + + The value portion is a string quoted by ' or ". The value may contain + any character including a doubled quoting character. The value may be + empty. + + Note: It is assumed that the expression is formal correct. + + The selector + The name string + The value string + + + a schema namespace + an XMP Property + + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + + Check some requirements for an UUID: + + Length of the UUID is 32 + The Delimiter count is 4 and all the 4 delimiter are on their right position (8,13,18,23) + + + uuid to test + true - this is a well formed UUID, false - UUID has not the expected format + + + Simple check for valid XML names. + + Within ASCII range + + ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] + + are accepted, above all characters (which is not entirely + correct according to the XML Spec. + + an XML Name + Return true if the name is correct. + + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + + + These are XML names, except that they must not contain a colon. + + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + Serializes the node value in XML encoding. + + Its used for tag bodies and attributes. + + Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. + + Note: Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + a string + flag if string is attribute value (need to additional escape quotes) + Decides if LF, CR and TAB are escaped. + Returns the value ready for XML output. + + + Replaces the ASCII control chars with a space. + a node value + Returns the cleaned up value + + + Simple check if a character is a valid XML start name char. + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + The default implementation of . + Stefan Makswit + 16.02.2006 + + + The nanoseconds take micro and nano seconds, while the milliseconds are in the calendar. + + + + Creates an XMPDateTime-instance with the current time in the default time zone. + + + + Creates an XMPDateTime-instance from a calendar. + a Calendar + + + Creates an XMPDateTime-instance from an ISO 8601 string. + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + Returns the ISO string representation. + + + Number of milliseconds since the Unix epoch (1970-01-01 00:00:00). + + + Number of milliseconds since the Unix epoch (1970-01-01 00:00:00). + + + The XMPIterator implementation. + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + Stefan Makswit + 29.06.2006 + + + flag to indicate that skipSiblings() has been called. + + + the node iterator doing the work + + + Constructor with optional initial values. + If propName is provided, schemaNS has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is reduced to this property within the schemaNS + advanced iteration options, see + If the node defined by the parameters is not existing. + + + the base namespace of the property path, will be changed during the iteration + + + The XMPIterator implementation. + + The XMPIterator implementation. + It first returns the node itself, then recursively the children and qualifier of the node. + + Stefan Makswit + 29.06.2006 + + + iteration state + + + iteration state + + + iteration state + + + the state of the iteration + + + the currently visited node + + + the recursively accumulated path + + + the iterator that goes through the children and qualifier list + + + index of node with parent, only interesting for arrays + + + the iterator for each child + + + the cached PropertyInfo to return + + + Default constructor + + + Constructor for the node iterator. + + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + Prepares the next node to return if not already done. + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + Calls hasNext() and returns the prepared node. + + Calls hasNext() and returns the prepared node. Afterward it's set to null. + The existence of returnProperty indicates if there is a next node, otherwise + an exception is thrown. + + + + Not supported. + + + the node that will be added to the path. + the path up to this node. + the current array index if an array is traversed + Returns the updated path. + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + Originally called "XmpPropertyInfo450" + "450" was the line number in XMPIteratorImpl.java of the Adobe Java 5.1.2 source file + This class was anonymous, but that is unnecessary here + + + + Returns the returnProperty. + + + the returnProperty to set + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + Stefan Makswit + 02.10.2006 + + + Constructor + + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + Prepares the next node to return if not already done. + + + + Implementation of . + + Stefan Makswit + 17.02.2006 + + + Property values are Strings by default + + + root of the metadata tree + + + the xpacket processing instructions content + + + Constructor for an empty metadata object. + + + Constructor for a cloned metadata tree. + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a property, but the result value can be requested. + + Returns a property, but the result value can be requested. + + a schema namespace + a property name or path + the type of the value, see VALUE_... + Returns an XMPProperty + Collects any exception that occurs. + + + + Combines the two ported classes XmpProperty407 and XmpProperty682 + "407" and "682" were the line numbers in XMPMetaImpl.java of the Adobe Java 5.1.2 source file + These classes were anonymous, and that is unnecessary here + + + + Returns a property, but the result value can be requested. + a schema namespace + a property name or path + the type of the value, see VALUE_... + + Returns the node value as an object according to the + valueType. + + Collects any exception that occurs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the packetHeader attributes, only used by the parser. + the processing instruction content + + + Performs a deep clone of the XMPMeta-object + + + + + + Returns the root node of the XMP tree. + + + Locate or create the item node and set the value. + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for setProperty() and related calls, used after the node is + found or created. + + the newly created node + the node value, can be null + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + an int indicating the value type + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. + + + After the parsing several normalisations are applied to the XMP tree. + + Stefan Makswit + 01.02.2006 + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a stream, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses an XMP metadata object from a XDocument, including de-aliasing and normalisation. + + Thrown if parsing or normalisation fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an Stream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + To improve the performance on legal files, it is first tried to parse normally, + while the character fixing is only done when the first pass fails. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + Wraps parsing and I/O-exceptions into an XMPException. + + + Wraps parsing and I/O-exceptions into an XMPException. + + + Find the XML node that is the root of the XMP data tree. + + Find the XML node that is the root of the XMP data tree. Generally this + will be an outer node, but it could be anywhere if a general XML document + is parsed (e.g. SVG). The XML parser counted all rdf:RDF and + pxmp:XMP_Packet nodes, and kept a pointer to the last one. If there is + more than one possible root use PickBestRoot to choose among them. + + If there is a root node, try to extract the version of the previous XMP + toolkit. + + Pick the first x:xmpmeta among multiple root candidates. If there aren't + any, pick the first bare rdf:RDF if that is allowed. The returned root is + the rdf:RDF child if an x:xmpmeta element was chosen. The search is + breadth first, so a higher level candidate is chosen over a lower level + one that was textually earlier in the serialized XML. + + initially, the root of the xml document as a list + + flag if the xmpmeta-tag is still required, might be set + initially to true, if the parse option "REQUIRE_XMP_META" is set + + The result array that is filled during the recursive process. + + Returns an array that contains the result or null. + The array contains: + + [0] - the rdf:RDF-node + [1] - an object that is either XMP_RDF or XMP_PLAIN (the latter is deprecated) + [2] - the body text of the xpacket-instruction. + + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + + Possible improvements: + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + Stefan Makswit + 21.02.2006 + + + list of child nodes, lazy initialized + + + list of child node references for faster lookup. Only initialized when the original _children list exceeds 9 entries + + + list of qualifier of the node, lazy initialized + + + options describing the kind of the node + + + Creates an XMPNode with initial values. + the name of the node + the value of the node + the options of the node + + + Constructor for the node without value. + the name of the node + the options of the node + + + Resets the node. + + + + Get the parent node. + + + Set internally by , and . + + + + an index [1..size] + Returns the child with the requested index. + + + Adds a node as child to this node. + an XMPNode + + + + Adds a node as child to this node. + + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + + an XMPNode + + + + Replaces a node with another one. + + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + + the replacement XMPNode + + + Removes a child at the requested index. + the index to remove [1..size] + + + Removes a child node. + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + Removes all children from the node. + + + Returns the number of children without necessarily creating a list. + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + Returns the number of qualifier without necessarily creating a list. + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + Removes all qualifiers from the node and sets the options appropriate. + + + qualifier node name to look for + + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + + + Get whether the node has children. + + + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + + Returns whether the node has qualifier attached. + + + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + + Iterator that disallows removal. + + + + Performs a deep clone of the node and the complete subtree. + + + Performs a deep clone of the node and the complete subtree. + if skipEmpty is true, it will not clone node which has empty child and empty value. + If true, it will not clone those nodes with empty value and empty children + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + if skipEmpty is true, it will not clone node which has empty child and empty value. + + the node to add the cloned subtree + If true, it will not clone those nodes with empty value and empty children + + + Renders this node and the tree under this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + Get and set the implicit node flag. + + + + + Get and set whether the node contains aliases (applies only to schema nodes). + + + + + Get and set whether this node is an alias (applies only to schema nodes). + + + + + Get and set whether this node has an rdf:value child node. + + + + + Sorts the XMP node and its children, recursively. + + + Sorting occurs according to the following rules: + + Nodes at one level are sorted by name, that is prefix + local name + Starting at the root node the children and qualifier are sorted recursively, + which the following exceptions. + Sorting will not be used for arrays. + Within qualifier "xml:lang" and/or "rdf:type" stay at the top in that order, + all others are sorted. + + + + + Dumps this node and its qualifier and children recursively. + + Dumps this node and its qualifier and children recursively. + Note: It creates empty options on every node. + FfF: sort schemas and properties on each level if and only if it would increase performance + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Get whether this node is a language qualifier. + + + + + Get whether this node is a type qualifier. + + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + Internal child find. + the child list to search in + the child dictionary ref to initialize or search. Needs to be a ref parameter or it won't update the original Dictionary + the search expression + Returns the found node or null. + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + Utilities for XMPNode. + Stefan Makswit + Aug 28, 2006 + + + Find or create a schema node if createNodes is false and + the root of the xmp tree. + a namespace + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + + + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + the parent node + the node name to find + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + Follow an expanded path expression to find or create a node. + the node to begin the search. + the complete xpath + + flag if nodes shall be created + (when called by setProperty()) + + + the options for the created leaf nodes (only when + createNodes == true). + + Returns the node if found or created or null. + + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + FfF: think about moving is to XMPNode... (make removeChild/Qualifier private and + FfF: publish just deleteNode(XMPNode) + + the top-most node to delete. + + + This is setting the value of a leaf node. + an XMPNode + a value + + + Verifies the PropertyOptions for consistency and updates them as needed. + + Verifies the PropertyOptions for consistency and updates them as needed. + If options are null they are created with default values. + FfF: add an kind of autofix options to PropertyOptions and remove this method!!! + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to string, apply special conversions for defined + types in XMP. + + the node value to set + Returns the String representation of the node value. + + + + After processing by ExpandXPath, a step can be of these forms: + + + After processing by ExpandXPath, a step can be of these forms: + + qualName - A top level property or struct field. + [index] - An element of an array. + [last()] - The last element of an array. + [qualName="value"] - An element in an array of structs, chosen by a field value. + [?qualName="value"] - An element in an array, chosen by a qualifier value. + ?qualName - A general qualifier. + + Find the appropriate child node, resolving aliases, and optionally creating nodes. + + the node to start to start from + the xpath segment + + returns the found or created node + + + + Find or create a qualifier node under a given parent node. + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + + Returns the index of th + + + + Make sure the x-default item is first. + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + an alt text array node + + + See if an array is an alt-text array. + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + the array node to check if its an alt-text array + + + Appends a language item to an alt text array. + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + + + Look for an exact match with the specific language. + If a generic language is given, look for partial matches. + Look for an "x-default"-item. + Choose the first item. + + + the alt text array node + the generic language + the specific language + + Returns the kind of match as an Integer and the found node in an + array. + + + + + Looks for the appropriate language item in a text alternative array.item + an array node + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + Stefan Makswit + Aug 18, 2006 + + + caches the correct dc-property array forms + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + Visit all schemas to do general fixes and handle special cases. + the metadata object implementation + Thrown if the normalisation fails. + + + + Undo the denormalization performed by the XMP used in Acrobat 5. + + + If a Dublin Core array had only one item, it was serialized as a simple + property. + + The xml:lang attribute was dropped from an + alt-text item if the language was x-default. + + the DC schema node + Thrown if normalization fails + + + Make sure that the array is well-formed AltText. + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + + the property node of the array to repair. + Forwards unexpected exceptions. + + + Visit all of the top level nodes looking for aliases. + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + Moves an alias node of array form to another schema into an array + the property iterator of the old schema (used to delete the property) + the node to be moved + the base array for the array item + Forwards XMP errors + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + The outermost call is special. + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + + + If there is no dc:rights array, or an empty array - + Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright. + + + If there is a dc:rights array but it has no x-default item - + Create an x-default item as a copy of the first item then apply rule #3. + + + If there is a dc:rights array with an x-default item, + Look for a double linefeed in the value. + + If no double linefeed, compare the x-default value to the xmpDM:copyright value. + + If they match then leave the x-default value alone. + Otherwise, append a double linefeed and the xmpDM:copyright value to the x-default value. + + + If there is a double linefeed, compare the trailing text to the xmpDM:copyright value. + + If they match then leave the x-default value alone. + Otherwise, replace the trailing x-default text with the xmpDM:copyright value. + + + + + In all cases, delete the xmpDM:copyright property. + + + the metadata object + the "dm:copyright"-property + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. + + There is only one singleton instance used by the toolkit, accessed via . + + Stefan Makswit + 27.01.2006 + + + a map from a namespace URI to its registered prefix. + + + a map from a prefix to the associated namespace URI. + + + A map of all registered aliases, from qname to IXmpAliasInfo. + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + Associates an alias name with an actual name. + + Associates an alias name with an actual name. + + Define a alias mapping from one namespace/property to another. Both + property names must be simple names. An alias can be a direct mapping, + where the alias and actual have the same data type. It is also possible + to map a simple alias to an item in an array. This can either be to the + first item in the array, or to the 'x-default' item in an alt-text array. + Multiple alias names may map to the same actual, as long as the forms + match. It is a no-op to reregister an alias in an identical fashion. + Note: This method is not locking because only called by registerStandardAliases + which is only called by the constructor. + Note2: The method is only package-private so that it can be tested with unittests + + The namespace URI for the alias. Must not be null or the empty string. + The name of the alias. Must be a simple name, not null or the empty string and not a general path expression. + The namespace URI for the actual. Must not be null or the empty string. + The name of the actual. Must be a simple name, not null or the empty string and not a general path expression. + Provides options for aliases for simple aliases to array items. This is needed to know what kind of array to create if + set for the first time via the simple alias. Pass XMP_NoOptions, the default value, for all direct aliases regardless of whether the actual + data type is an array or not (see ). + for inconsistant aliases. + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + Stefan Makswit + 11.07.2006 + + + Static method to serialize the metadata object. + + For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so that its possible to + serialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to serialize to + serialization options, can be null for default. + + + + Serializes an XMPMeta-object as RDF into a string. + + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes the XMPMeta-object using the standard RDF serialization format. + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + FfF: Move to XMLStreamWriter (a lot of test would break due to slight format change). + + Stefan Makswit + 11.07.2006 + + + default padding + + + The w/r is missing inbetween + + + a set of all rdf attribute qualifier + + + the metadata object to be serialized. + + + the output stream to serialize to + + + this writer is used to do the actual serialization + + + the stored serialization options + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + The actual serialization. + the metadata object to be serialized + outputStream the output stream to serialize to + the serialization options + If case of wrong options or any other serialization error. + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + Write each of the parent's simple unqualified properties as an attribute. + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns below ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + + <ns:UnqualifiedStructProperty-1 + ... The fields as attributes, if all are simple and unqualified + /> + <ns:UnqualifiedStructProperty-2 rdf:parseType="Resource"> + ... The fields as elements, if none are simple and unqualified + </ns:UnqualifiedStructProperty-2> + <ns:UnqualifiedStructProperty-3> + <rdf:Description + ... The simple and unqualified fields as attributes + > + ... The compound or qualified fields as elements + </rdf:Description> + </ns:UnqualifiedStructProperty-3> + <ns:UnqualifiedArrayProperty> + <rdf:Bag> or Seq or Alt + ... Array items as rdf:li elements, same forms as top level properties + </rdf:Bag> + </ns:UnqualifiedArrayProperty> + <ns:QualifiedProperty rdf:parseType="Resource"> + <rdf:value> ... Property "value" + following the unqualified forms ... </rdf:value> + ... Qualifiers looking like named struct fields + </ns:QualifiedProperty> + + *** Consider numbered array items, but has compatibility problems. + Consider qualified form with rdf:Description and attributes. + + the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. + + + Serializes a simple property. + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + Serializes an array property. + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + Serializes a struct property. + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes one schema with all contained properties in pretty-printed manner. + + + Each schema's properties are written to a single + rdf:Description element. All of the necessary namespaces are declared in + the rdf:Description element. The baseIndent is the base level for the + entire serialization, that of the x:xmpmeta element. An xml:lang + qualifier is written as an attribute of the property start tag, not by + itself forcing the qualified property form. + + <rdf:Description rdf:about="TreeName" xmlns:ns="URI" ... > + ... The actual properties of the schema, see SerializePrettyRDFProperty + <!-- ns1:Alias is aliased to ns2:Actual --> ... If alias comments are wanted + </rdf:Description> + + + a schema node + + Forwarded writer exceptions + + + + Writes all used namespaces of the subtree in node to the output. + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursively traversed. + + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + Start the outer rdf:Description element, including all needed xmlns attributes. + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + Write the </rdf:Description> end tag. + + + + Recursively handles the "value" for a node. + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + + <ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty> + <ns:UnqualifiedStructProperty> (If no rdf:resource qualifier) + <rdf:Description> + ... Fields, same forms as top level properties + </rdf:Description> + </ns:UnqualifiedStructProperty> + <ns:ResourceStructProperty rdf:resource="URI" + ... Fields as attributes + > + <ns:UnqualifiedArrayProperty> + <rdf:Bag> or Seq or Alt + ... Array items as rdf:li elements, same forms as top level properties + </rdf:Bag> + </ns:UnqualifiedArrayProperty> + <ns:QualifiedProperty> + <rdf:Description> + <rdf:value> ... Property "value" following the unqualified + forms ... </rdf:value> + ... Qualifiers looking like named struct fields + </rdf:Description> + </ns:QualifiedProperty> + + + the property node + property shall be rendered as attribute rather than tag + + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. + + + Writes the array start and end tags. + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + Serializes the node value in XML encoding. + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + A node can be serialized as RDF-Attribute, if it meets the following conditions: + + is not array item + don't has qualifier + is no URI + is no composite property + + + an XMPNode + Returns true if the node serialized as RDF-Attribute + + + Writes indents and automatically includes the base indent from the options. + number of indents to write + forwards exception + + + Writes an int to the output. + an int + forwards writer exceptions + + + Writes a char to the output. + a char + forwards writer exceptions + + + Writes a String to the output. + a String + forwards writer exceptions + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + Writes a newline according to the options. + Forwards exception + + + Stefan Makswit + 11.08.2006 + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + See . + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: Include aliases in the + "named schema" case above. + + If metadata processing fails + + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. + Forwards the Exceptions from the metadata processing + + + Remove all schema children according to the flag doAllProperties. + Empty schemas are automatically remove by XMPNode. + a schema node + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + The destination XMP object. + the source node + the parent of the destination node + + Replace the values of existing properties. + flag if properties with empty values should be deleted in the destination object. + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + Make sure the separator is OK. + + Separators must be one semicolon surrounded by zero or more spaces. Any of the recognized semicolons or spaces are allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + opened and closing quote in a string + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + a char + Return the character kind. + + + the open quote char + Returns the matching closing quote for an open quote. + + + Add quotes to the item. + the array item + the open quote character + the closing quote character + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + + U+0022 ASCII space + U+3000, ideographic space + U+303F, ideographic half fill space + U+2000..U+200B, en quad through zero width space + + + + + + + U+002C, ASCII comma + U+FF0C, full width comma + U+FF64, half width ideographic comma + U+FE50, small comma + U+FE51, small ideographic comma + U+3001, ideographic comma + U+060C, Arabic comma + U+055D, Armenian comma + + + + + + + U+003B, ASCII semicolon + U+FF1B, full width semicolon + U+FE54, small semicolon + U+061B, Arabic semicolon + U+037E, Greek "semicolon" (really a question mark) + + + + + + + U+0022 ASCII quote + U+00AB and U+00BB, guillemet quotes + U+3008..U+300F, various quotes + U+301D..U+301F, double prime quotes + U+2015, dash quote + U+2018..U+201F, various quotes + U+2039 and U+203A, guillemet quotes + + + + The square brackets are not interpreted as quotes anymore (bug #2674672) + (ASCII '[' (0x5B) and ']' (0x5D) are used as quotes in Chinese and + Korean.)
+
+
+ + + + U+0000..U+001F ASCII controls + U+2028, line separator + U+2029, paragraph separator + + + + + Moves the specified Property from one Meta to another. + Meta Object from where the property needs to move + Meta Object to where the property needs to move + Schema of the specified property + Name of the property + true in case of success otherwise false. + + + estimates the size of an xmp node + XMP Node Object + the estimated size of the node + + + Utility function for placing objects in a Map. It behaves like a multi map. + A Map object which takes int as a key and list of list of string as value + A key for the map + A value for the map + + + Utility function for retrieving biggest entry in the multimap + see EstimateSizeForJPEG for size calculation + A Map object which takes int as a key and list of list of string as value + the list with the maximum size. + + + Utility function for creating esimated size map for different properties of XMP Packet. + see PackageForJPEG + Meta Object whose property sizes needs to calculate. + A treeMap Object which takes int as a key and list of list of string as values + + + Utility function for moving the largest property from One XMP Packet to another. + see MoveOneProperty and PackageForJPEG + Meta Object from where property moves. + Meta Object to where property moves. + A treeMap Object which holds the estimated sizes of the property of stdXMP as a key and their string representation as map values. + + + creates XMP serializations appropriate for a JPEG file. + + The standard XMP in a JPEG file is limited to 64K bytes. This function + serializes the XMP metadata in an XMP object into a string of RDF.If + the data does not fit into the 64K byte limit, it creates a second packet + string with the extended data. + + The XMP object containing the metadata. + A string object in which to return the full standard XMP packet. + A string object in which to return the serialized extended XMP, empty if not needed. + A string object in which to return an MD5 digest of the serialized extended XMP, empty if not needed. + + + merges standard and extended XMP retrieved from a JPEG file. + + When an extended partition stores properties that do not fit into the + JPEG file limitation of 64K bytes, this function integrates those + properties back into the same XMP object with those from the standard XMP + packet. + + An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object. + An XMP object which the caller has initialized from the extended XMP packet in a JPEG file. + + + modifies a working XMP object according to a template object. + + The XMP template can be used to add, replace or delete properties from + the working XMP object. The actions that you specify determine how the + template is applied.Each action can be applied individually or combined; + if you do not specify any actions, the properties and values in the + working XMP object do not change. + + The destination XMP object. + The template to apply to the destination XMP object. + Option flags to control the copying. If none are specified, + the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: +
    +
  • CLEAR_UNNAMED_PROPERTIES Delete anything that is not in the template.
  • +
  • ADD_NEW_PROPERTIES Add properties; see detailed description.
  • +
  • REPLACE_EXISTING_PROPERTIES Replace the values of existing properties.
  • +
  • REPLACE_WITH_DELETE_EMPTY Replace the values of existing properties and delete properties if the new value is empty.
  • +
  • INCLUDE_INTERNAL_PROPERTIES Operate on internal properties as well as external properties.
  • +
+ +
+ + Marks a struct field step, also for top level nodes (schema "fields"). + + + Marks a qualifier step. + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + Marks an array index step + + + Represents an XMP XmpPath with segment accessor methods. + 28.02.2006 + + + stores the segments of an + + + Append a path segment + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + Serializes the normalized XMP-path. + + + Parser for XMP XPaths. + 01.03.2006 + + + + Split an expression apart at the conceptual steps, adding the + root namespace prefix to the first property component. + + + The schema URI is put in the first (0th) slot in the expanded . + Check if the top level component is an alias, but don't resolve it. + + In the most verbose case steps are separated by '/', and each step can be + of these forms: + + + prefix:name + A top level property or struct field. + + + [index] + An element of an array. + + + [last()] + The last element of an array. + + + [fieldName="value"] + An element in an array of structs, chosen by a field value. + + + [@xml:lang="value"] + An element in an alt-text array, chosen by the xml:lang qualifier. + + + [?qualName="value"] + An element in an array, chosen by a qualifier value. + + + @xml:lang + An xml:lang qualifier. + + + ?qualName + A general qualifier. + + + + The logic is complicated though by shorthand for arrays, the separating + '/' and leading '*' are optional. These are all equivalent: array/*[2] + array/[2] array*[2] array[2] All of these are broken into the 2 steps + "array" and "[2]". + + The value portion in the array selector forms is a string quoted by ''' + or '"'. The value may contain any character including a doubled quoting + character. The value may be empty. + + The syntax isn't checked, but an XML name begins with a letter or '_', + and contains letters, digits, '.', '-', '_', and a bunch of special + non-ASCII Unicode characters. An XML qualified name is a pair of names + separated by a colon. + + schema namespace + property name + Returns the expanded . + Thrown if the format is not correct somehow. + + + + + + + + Parses a struct segment + the current position in the path + The segment or an error + If the segment is empty + + + Parses an array index segment. + the xmp path + Returns the segment or an error + thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + + the root namespace + the parsing position helper + the path to contribute to + If the path is not valid. + + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + a qualifier name + If the name is not conformant + + + Verify if an XML name is conformant. + an XML name + When the name is not XML conformant + + + Set up the first 2 components of the expanded . + + Normalizes the various cases of using + the full schema URI and/or a qualified root property name. Returns true for normal + processing. If allowUnknownSchemaNS is true and the schema namespace is not registered, false + is returned. If allowUnknownSchemaNS is false and the schema namespace is not registered, an + exception is thrown + + (Should someday check the full syntax:) + + schema namespace + the root xpath segment + Returns root QName. + Thrown if the format is not correct somehow. + + + This objects contains all needed char positions to parse. + + + the complete path + + + the start of a segment name + + + the end of a segment name + + + the begin of a step + + + the end of a step + + + A segment of a parsed . + 23.06.2006 + + + Constructor with initial values. + the name of the segment + + + Constructor with initial values. + the name of the segment + the kind of the segment + + + Get and set the kind of the path segment. + + + Get and set the name of the path segment. + + + Get and set whether the segment is an alias. + + + Get and set the alias form, if this segment has been created by an alias. + + + This interface is used to return info about an alias. + Stefan Makswit + 27.01.2006 + + + Gets the namespace URI for the base property. + + + Gets the default prefix for the given base property. + + + Gets the path of the base property. + + + + Gets the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + + The XMPDateTime-class represents a point in time up to a resolution of nanoseconds. + + + Dates and time in the serialized XMP are ISO 8601 strings. There are utility functions + to convert to the ISO format, a Calendar or get the Timezone. The fields of + XMPDateTime are: + + month - The month in the range 1..12. + day - The day of the month in the range 1..31. + minute - The minute in the range 0..59. + hour - The time zone hour in the range 0..23. + minute - The time zone minute in the range 0..59. + nanosecond - The nanoseconds within a second. Note: if the XMPDateTime is + converted into a calendar, the resolution is reduced to milliseconds. + timeZone - a TimeZone-object. + + DateTime values are occasionally used in cases with only a date or only a time component. A date + without a time has zeros for all the time fields. A time without a date has zeros for all date + fields (year, month, and day). + + + + Get and set the year value. Can be negative. + + + Get and set the month, within range 1..12. + + + Get and set the day of the month, within range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Get and set the minute, within range 0..59. + + + Get and set the second, within range 0..59. + + + Get and set the sub-second period, in nanoseconds. + + + Get and set the offset, primarily for ISO8601 converter. + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + Returns a Calendar (only with millisecond precision). + + + Dates before Oct 15th 1585 (which normally fall into validity of + the Julian calendar) are also rendered internally as Gregorian dates. + + + + Returns the ISO 8601 string representation of the date and time. + + + Interface for the XMPMeta iteration services. + + XMPIterator provides a uniform means to iterate over the + schema and properties within an XMP object. + + The iteration over the schema and properties within an XMP object is very + complex. It is helpful to have a thorough understanding of the XMP data tree. + One way to learn this is to create some complex XMP and examine the output of + XMPMeta#toString. This is also described in the XMP + Specification, in the XMP Data Model chapter. + + The top of the XMP data tree is a single root node. This does not explicitly + appear in the dump and is never visited by an iterator (that is, it is never + returned from XMPIterator#next()). Beneath the root are + schema nodes. These are just collectors for top level properties in the same + namespace. They are created and destroyed implicitly. Beneath the schema + nodes are the property nodes. The nodes below a property node depend on its + type (simple, struct, or array) and whether it has qualifiers. + + An XMPIterator is created by XMPMeta#iterator() constructor + defines a starting point for the iteration and options that control how it + proceeds. By default the iteration starts at the root and visits all nodes + beneath it in a depth first manner. The root node is not visited, the first + visited node is a schema node. You can provide a schema name or property path + to select a different starting node. By default this visits the named root + node first then all nodes beneath it in a depth first manner. + + The XMPIterator#next() method delivers the schema URI, path, + and option flags for the node being visited. If the node is simple it also + delivers the value. Qualifiers for this node are visited next. The fields of + a struct or items of an array are visited after the qualifiers of the parent. + + The options to control the iteration are: + + JUST_CHILDREN - Visit just the immediate children of the root. Skip + the root itself and all nodes below the immediate children. This omits the + qualifiers of the immediate children, the qualifier nodes being below what + they qualify, default is to visit the complete subtree. + JUST_LEAFNODES - Visit just the leaf property nodes and their + qualifiers. + JUST_LEAFNAME - Return just the leaf component of the node names. + The default is to return the full xmp path. + OMIT_QUALIFIERS - Do not visit the qualifiers. + INCLUDE_ALIASES - Adds known alias properties to the properties in the iteration. + Note: Not supported in Java or .NET Spire.Xmp! + + + next() returns XMPPropertyInfo-objects and throws + a NoSuchElementException if there are no more properties to + return. + + Stefan Makswit + 25.01.2006 + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + This class represents the set of XMP metadata as a DOM representation. + + It has methods to read and modify all kinds of properties, create an iterator over all properties + and serialize the metadata to a string, byte array or stream. + + Stefan Makswit + 20.01.2006 + + + + The property value getter-methods all take a property specification: the first two parameters + are always the top level namespace URI (the "schema" namespace) and the basic name + of the property being referenced. + + + See the introductory discussion of path expression usage for more information. + + All of the functions return an object inherited from PropertyBase or + null if the property does not exists. The result object contains the value of + the property and option flags describing the property. Arrays and the non-leaf levels of + nodes do not have values. + + See for detailed information about the options. + + This is the simplest property getter, mainly for top level simple properties or after using + the path composition functions in . + + + The namespace URI for the property. May be null or the empty + string if the first component of the propName path contains a namespace prefix. The + URI must be for a registered namespace. + + + The name of the property. May be a general path expression, must not be + null or the empty string. Using a namespace prefix on the first + component is optional. If present without a schemaNS value then the prefix specifies + the namespace. The prefix must be for a registered namespace. If both a schemaNS URI + and propName prefix are present, they must be corresponding parts of a registered + namespace. + + + Returns an containing the value and the options, or + null if the property does not exist. + + Wraps all errors and exceptions that may occur. + + + Provides access to items within an array. + + The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The constant + always refers to the last existing array item. + + + Returns an containing the value and the options or + null if the property does not exist. + + Wraps all errors and exceptions that may occur. + + + Returns the number of items in the array. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + Provides access to fields within a nested structure. + + The namespace for the field is passed as a URI, you need not worry about the path string syntax. + + The names of fields should be XML qualified names, that is within an XML namespace. The path + syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is + never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given + sequence of XML text. + + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + Returns an containing the value and the options or + null if the property does not exist. Arrays and non-leaf levels of + structs do not have values. + + Wraps all errors and exceptions that may occur. + + + Provides access to a qualifier attached to a property. + + The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. + In many regards qualifiers are like struct fields. See the introductory discussion of qualified + properties for more information. + + The names of qualifiers should be XML qualified names, that is within an XML namespace. The + path syntax for a qualified name uses the namespace prefix. This is unreliable since the + prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand + in a given sequence of XML text. + + Note: Qualifiers are only supported for simple leaf properties at this time. + + The namespace URI for the struct. Has the same usage as in . + + The name of the property to which the qualifier is attached. May be a general + path expression, must not be null or the empty string. Has the same + namespace prefix usage as in . + + + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + Returns an containing the value and the options of the + qualifier or null if the property does not exist. The name of the + qualifier must be a single XML name, must not be null or the empty + string. Has the same namespace prefix usage as the propName parameter. + + The value of the qualifier is only set if it has one (Arrays and non-leaf levels of + structs do not have values). + + Wraps all errors and exceptions that may occur. + + + + The property value setters all take a property specification, their + differences are in the form of this. + + + The first two parameters are always the top level namespace URI (the schema namespace) and + the basic name of the property being referenced. See the introductory discussion of path expression + usage for more information. + + All of the functions take a string value for the property and option flags describing the + property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs + do not have values. Empty arrays and structs may be created using appropriate option flags. + All levels of structs that is assigned implicitly are created if necessary. appendArayItem + implicitly creates the named array if necessary. + + See for detailed information about the options. + + This is the simplest property setter, mainly for top level simple properties or after using + the path composition functions in . + + The namespace URI for the property. Has the same usage as in . + + The name of the property. + Has the same usage as in . + + + the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, and + byte[] are handled, on all other is called. + + Option flags describing the property. See the earlier description. + Wraps all errors and exceptions that may occur. +
+ + + The namespace URI + The name of the property + the value for the property + Wraps all errors and exceptions + + + Replaces an item within an array. + + The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use + + to find + out the length of the array. + + + the new value of the array item. Has the same usage as propValue in + . + + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + The namespace URI + The name of the array + The index to insert the new item + the new value of the array item + Wraps all errors and exceptions + + + Inserts an item into an array previous to the given index. + + The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index to insert the new item. Arrays in XMP are indexed from 1. Use + to append items. + + + the new value of the array item. Has the same usage as + propValue in . + + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the array + The name of the array + The index to insert the new item + the value of the array item + Wraps all errors and exceptions + + + Simplifies the construction of an array by not requiring that you pre-create an empty array. + + The array that is assigned is created automatically if it does not yet exist. Each call to + appendArrayItem() appends an item to the array. The corresponding parameters have the same + use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If + the array exists, it must have the specified form. + + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be null or + the empty string. Has the same namespace prefix usage as propPath in . + + + Option flags describing the array form. The only valid options are + + , + , + or + . + + Note: the array options only need to be provided if the array is not + already existing, otherwise you can set them to null or use + . + + the value of the array item. Has the same usage as propValue in . + Option flags describing the item to append () + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the array + The name of the array + the value of the array item + Wraps all errors and exceptions + + + Provides access to fields within a nested structure. + + The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in . + + + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNS parameter. + + + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + + + the value of thefield, if the field has a value. + Has the same usage as propValue in . + + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the struct + The name of the struct + The namespace URI for the field + The name of the field + the value of the field + Wraps all errors and exceptions + + + Provides access to a qualifier attached to a property. + + The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. + In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties + for more information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in . + + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the struct + The name of the property to which the qualifier is attached + The namespace URI for the qualifier + The name of the qualifier + the value of the qualifier + Wraps all errors and exceptions + + + Deletes the given XMP subtree rooted at the given property. + It is not an error if the property does not exist. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + + + Deletes the given XMP subtree rooted at the given array item. + It is not an error if the array item does not exist. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. + It is not an error if the field does not exist. + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns true if the property exists. + + + Tells if the array item exists. + The namespace URI for the array. Has the same usage as in . + + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last + existing array item. + + Returns true if the array exists, false otherwise. + + + DoesStructFieldExist tells if the struct field exists. + The namespace URI for the struct. Has the same usage as in . + + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in . + + The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + Returns true if the field exists. + + + DoesQualifierExist tells if the qualifier exists. + The namespace URI for the struct. Has the same usage as in . + The name of the property to which the qualifier is attached. Has the same usage as in . + The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter. + + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + Returns true if the qualifier exists. + + + + These functions provide convenient support for localized text properties, including a number + of special and obscure aspects. + + + Localized text properties are stored in alt-text arrays. They + allow multiple concurrent localizations of a property value, for example a document title or + copyright in several languages. The most important aspect of these functions is that they + select an appropriate array item based on one or two RFC 3066 language tags. One of these + languages, the "specific" language, is preferred and selected if there is an exact match. For + many languages it is also possible to define a "generic" language that may be used if there + is no specific language match. The generic language must be a valid RFC 3066 primary subtag, + or the empty string. For example, a specific language of "en-US" should be used in the US, + and a specific language of "en-UK" should be used in England. It is also appropriate to use + "en" as the generic language in each case. If a US document goes to England, the "en-US" + title is selected by using the "en" generic language and the "en-UK" specific language. It is + considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 + primary tag. For example "en" is not a good specific language, it should only be used as a + generic language. Passing "i" or "x" as the generic language is also considered poor practice + but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: + http://www.w3.org/International/articles/language-tags/ + + Note: RFC 3066 language tags must be treated in a case insensitive manner. The XMP + Toolkit does this by normalizing their capitalization: + + The primary subtag is lower case, the suggested practice of ISO 639. + All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166. + All other subtags are lower case. The XMP specification defines an artificial language, + "x-default", that is used to explicitly denote a default item in an alt-text array. + + The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. + The SetLocalizedText function has several special features related to the x-default item, see + its description for details. The selection of the array item is the same for GetLocalizedText + and SetLocalizedText: + + Look for an exact match with the specific language. + If a generic language is given, look for a partial match. + Look for an x-default item. + Choose the first item. + + A partial match with the generic language is where the start of the item's language matches + the generic string and the next character is '-'. An exact match is also recognized as a + degenerate case. It is fine to pass x-default as the specific language. In this case, + selection of an x-default item is an exact match by the first rule, not a selection by the + 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to + produce a match. getLocalizedText returns information about a selected item in + an alt-text array. The array item is selected according to the rules given above. + + + The namespace URI for the alt-text array. Has the same usage as in + . + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in . + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + Returns an containing the value, the actual language and + the options if an appropriate alternate collection item exists, null + if the property. + does not exist. + + Wraps all errors and exceptions that may occur. + + + Modifies the value of a selected item in an alt-text array. + + Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + + The namespace URI for the alt-text array. Has the same usage as in + . + + + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in . + + + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + + + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + + + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + The namespace URI for the alt-text array + The name of the alt-text array + The name of the generic language + The name of the specific language + the new value for the appropriate array item + Wraps all errors and exceptions + + + + These are very similar to and above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + + + The path composition functions in may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a bool value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns an int value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a long value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a double value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a IXmpDateTime object or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a Calendar-object or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a byte[]-array contained the decoded base64 value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to retrieve the literal value of a property. + Note that there is no setPropertyString()z, because sets a string value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + Returns a string value or null if the property does not exist. + Wraps all exceptions that may occur, especially conversion errors. + + + Convenience method to set a property to a literal boolean value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as boolean + Wraps all exceptions + + + Convenience method to set a property to a literal int value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as int + Wraps all exceptions + + + Convenience method to set a property to a literal long value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as long + Wraps all exceptions + + + Convenience method to set a property to a literal double value. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as double + Wraps all exceptions + + + Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date. + The namespace URI for the property. Has the same usage as in. + The name of the property. Has the same usage as in . + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the property value as XMPDateTime + Wraps all exceptions + + + Convenience method to set a property with a Calendar-object, which is serialized to an ISO8601 date. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the property value as Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the property value as Calendar + Wraps all exceptions + + + Convenience method to set a property from a binary byte[]-array, which is serialized as base64-string. + The namespace URI for the property. Has the same usage as in . + The name of the property. Has the same usage as in . + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + The namespace URI for the property + The name of the property + the literal property value as byte array + Wraps all exceptions + + + Constructs an enumerable for the properties within this XMP object. + Wraps all errors and exceptions that may occur. + + + This correlates to the about-attribute, returns the empty String if no name is set. + Returns the name of the XMP object. + + + Sets the name of the XMP object. + + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Sorts the complete datamodel according to the following rules: + + Schema nodes are sorted by prefix. + Properties at top level and within structs are sorted by full name, that is prefix + local name. + Array items are not sorted, even if they have no certain order such as bags. + Qualifier are sorted, with the exception of "xml:lang" and/or "rdf:type" that stay at the top of the list in that order. + + + + + Perform the normalization as a separate parsing step. + + Normally it is done during parsing, unless is set to true. + + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + Renders this node and the tree under this node in a human readable form. + Returns a multiline string containing the dump. + + + Models a a text property together with its language and options. + Stefan Makswit + 23.01.2006 + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + + Returns the language of the alt-text item. + + + Models a property together with its path and namespace. + Instances of this type are are iterated via . + Stefan Makswit + 06.07.2006 + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + The schema registry keeps track of all namespaces and aliases used in the XMP + metadata. + + + At initialisation time, the default namespaces and default aliases + are automatically registered. Namespaces must be registered before + used in namespace URI parameters or path expressions. Within the XMP Toolkit + the registered namespace URIs and prefixes must be unique. Additional + namespaces encountered when parsing RDF are automatically registered. The + namespace URI should always end in an XML name separator such as '/' or '#'. + This is because some forms of RDF shorthand catenate a namespace URI with an + element name to form a new URI. + + Aliases in XMP serve the same purpose as Windows file shortcuts, + Macintosh file aliases, or UNIX file symbolic links. The aliases are simply + multiple names for the same property. One distinction of XMP aliases is that + they are ordered, there is an alias name pointing to an actual name. The + primary significance of the actual name is that it is the preferred name for + output, generally the most widely recognized name. + + The names that can be aliased in XMP are restricted. The alias must be a top + level property name, not a field within a structure or an element within an + array. The actual may be a top level property name, the first element within + a top level array, or the default element in an alt-text array. This does not + mean the alias can only be a simple property. It is OK to alias a top level + structure or array to an identical top level structure or array, or to the + first item of an array of structures. + + Stefan Makswit + 27.01.2006 + + + Register a namespace URI with a suggested prefix. + + It is not an error if the URI is already registered, no matter what the prefix is. + If the URI is not registered but the suggested prefix is in use, a unique prefix is + created from the suggested one. The actual registered prefix is always + returned. The function result tells if the registered prefix is the + suggested one. + + Note: No checking is presently done on either the URI or the prefix. + + The URI for the namespace. Must be a valid XML URI. + + The suggested prefix to be used if the URI is not yet + registered. Must be a valid XML name. + + + Returns the registered prefix for this URI, is equal to the + suggestedPrefix if the namespace hasn't been registered before, + otherwise the existing prefix. + + If the parameters are not accordingly set + + + Obtain the prefix for a registered namespace URI. + + It is not an error if the namespace URI is not registered. + + + The URI for the namespace. Must not be null or the empty + string. + + Returns the prefix registered for this namespace URI or null. + + + Obtain the URI for a registered namespace prefix. + + It is not an error if the namespace prefix is not registered. + + + The prefix for the namespace. Must not be null or the empty + string. + + Returns the URI registered for this prefix or null. + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + Deletes a namespace from the registry. + + Does nothing if the URI is not registered, or if the namespaceURI + parameter is null or the empty string. + + Note: Not yet implemented. + + The URI for the namespace. + + + Determines if a name is an alias, and what it is aliased to. + + The namespace URI of the alias. Must not be null or the empty string. + + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + + + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + Searches for registered aliases. + an XML conform qname + + Returns if an alias definition for the given qname to another + schema and property is registered. + + + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + XMP Toolkit Version Information. + + Version information for the XMP toolkit is available at runtime via . + + Stefan Makswit + 23.01.2006 + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + Options for XMPSchemaRegistryImpl#registerAlias. + Stefan Makswit + 20.02.2006 + + + This is a direct mapping. + This is a direct mapping. The actual data type does not matter. + + + The actual is an unordered array, the alias is to the first element of the array. + + + The actual is an ordered array, the alias is to the first element of the array. + + + The actual is an alternate array, the alias is to the first element of the array. + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + + Returns a object + + If the options are not consistant. + + + Options for XMPIterator construction. + Stefan Makswit + 24.01.2006 + + + Just do the immediate children of the root, default is subtree. + + + Just do the leaf nodes, default is all nodes in the subtree. + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + Return just the leaf part of the path, default is the full path. + + + Omit all qualifiers. + + + The base class for a collection of 32 flag bits. + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + Stefan Makswit + 24.01.2006 + + + the internal int containing all options + + + a map containing the bit names + + + The default constructor. + + + Constructor with the options bit mask. + the options bit mask + If the options are not correct + + + Resets the options. + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + Is friendly to access it during the tests. + Returns the options. + + + The options to set. + If the options are not correct + + + Creates a human readable string from the set options. + + Note: This method is quite expensive and should only be used within tests or as + + + Returns a string listing all options that are set to true by their name, + like "option1 | option4". + + + + Returns the options as hex bitmask. + + + To be implemented by inheritants. + Returns a bit mask where all valid option bits are set. + + + To be implemented by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + The inheriting option class can do additional checks on the options. + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + Checks options before they are set. + + First it is checked if only defined options are used, second the additional + -method is called. + + the options to check + Thrown if the options are invalid. + + + Looks up or asks the inherited class for the name of an option bit. + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + Options for . + + Stefan Makswit + 24.01.2006 + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + Do not reconcile alias differences, throw an exception instead. + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + Disallow DOCTYPE declarations to prevent entity expansion attacks. + + + Map of nodes whose children are to be limited. + + + Sets the options to the default values. + + + Returns true if some XMP nodes have been limited. + + + the Map with name of nodes and number-of-items to limit them to + Returns the instance to call more set-methods. + + + Returns map containing names oF XMP nodes to limit and number-of-items limit corresponding to the XMP nodes. + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + Stefan Makswit + 03.07.2006 + + + may be used in the future + + + Default constructor + + + Initialization constructor + the initialization options + If the options are not valid + + + + Get and set whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + + Return whether this property is an array with a limit on number-of-elements. + + + the limit to set on number-of-elements + Returns this to enable cascaded options. + + + Returns the current limit on number-of-elements + + + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Compares two options set for array compatibility. + other options + Returns true if the array options of the sets are equal. + + + Merges the set options of a another options object with this. + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + + other options + If illegal options are provided + + + Returns true if only array options are set. + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + /// Stefan Makswit + 24.01.2006 + + + Bit indicating little endian encoding, unset is big endian + + + Bit indication UTF16 encoding. + + + UTF8 encoding; this is the default + + + Default constructor. + + + Constructor using initial options + the initial options + Thrown if options are not consistent. + + + Omit the XML packet wrapper. + + + Omit the <x:xmpmeta> tag. + + + Mark packet as read-only. + Default is a writeable packet. + + + Use a compact form of RDF. + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + Use the canonical form of RDF if set. + By default the compact form is used. + + + Serialize as "Plain XMP", not RDF. + + + Include a padding allowance for a thumbnail image. + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + The padding parameter provides the overall packet length. + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + Sort the struct properties and qualifier before serializing + + + UTF16BE encoding + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + The string to be used as a line terminator. + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + The amount of padding to be added if a writeable XML packet is created. + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + Returns the text encoding to use. + + + Returns clone of this SerializeOptions-object with the same options set. + + + + Options for . + + Stefan Makswit + 24.01.2006 + + + Default constructor. + + + Constructor using initial options + the initial options + Thrown if options are not consistent. + + + + + + + + + + + + + + + + + + Returns clone of this TemplateOptions-object with the same options set. + + + + http://grepcode.com/file_/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/io/PushbackReader.java/?v=source + + + + Stefan Makswit + + + The XML namespace for XML. + + + The XML namespace for RDF. + + + The XML namespace for the Dublin Core schema. + + + The XML namespace for the IPTC Core schema. + + + The XML namespace for the IPTC Extension schema. + + + The XML namespace for the DICOM medical schema. + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + The XML namespace Adobe XMP Metadata. + + + The XML namespace for the XMP "basic" schema. + + + The XML namespace for the XMP copyright schema. + + + The XML namespace for the XMP digital asset management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the job management schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the PDF schema. + + + The XML namespace for the Photoshop custom schema. + + + The XML namespace for the Photoshop Album schema. + + + The XML namespace for Adobe's EXIF schema. + + + NS for the CIPA XMP for Exif document v1.1 + + + The XML namespace for Adobe's TIFF schema. + + + BExt Schema + + + RIFF Info Schema + + + Transform XMP + + + Adobe Flash SWF + + + Adobe Creative Cloud Video + + + legacy Dublin Core NS, will be converted to NS_DC + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + The XML namespace for fields of the Dimensions type. + + + The XML namespace for fields of a graphical image. + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + The XML namespace for fields of the ResourceEvent type. + + + The XML namespace for fields of the ResourceRef type. + + + The XML namespace for fields of the Version type. + + + The XML namespace for fields of the JobRef type. + + + The canonical true string value for Booleans in serialized XMP. + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + The canonical false string value for Booleans in serialized XMP. + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + Index that has the meaning to be always the last item in an array. + + + Node name of an array item. + + + The x-default string for localized properties + + + xml:lang qualifier + + + rdf:li syntaxTerm + + Does not appear in the original Java version. Added because of its usage in + ParseRdf.cs and XmpNode.cs when string-comparing for array items. + + + + rdf:type qualifier + + + Processing Instruction (PI) for xmp packet + + + XMP meta tag version new + + + XMP meta tag version old + + + + A factory to create instances from a or an + ISO 8601 string or for the current time. + + Stefan Makswit + 16.02.2006 + + + Creates an from a -object. + a -object. + An -object. + + + Creates an empty -object. + Returns an -object. + + + Creates an -object from initial values. + years + months from 1 to 12 (Remember that the month in is defined from 0 to 11) + days + Returns an -object. + + + Creates an -object from initial values. + years + months from 1 to 12 (Remember that the month in is defined from 0 to 11) + days + hours + minutes + seconds + nanoseconds + Returns an -object. + + + Creates an from an ISO 8601 string. + The ISO 8601 string representation of the date/time. + An -object. + When the ISO 8601 string is non-conform + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Make sure a time is local. + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the variable containing the time to be modified. + Returns an updated -object. + + + Stefan Makswit + + + This code is introduced by Java. + + + This exception wraps all errors that occur in the XMP Toolkit. + Stefan Makswit + 16.02.2006 + + + Gets the error code of the XMP toolkit. + + + Constructs an exception with a message and an error code. + the message + the error code + + + Constructs an exception with a message, an error code and an inner exception. + the error message. + the error code + the exception source + + + Parses and serialises instances. + Stefan Makswit + 30.01.2006 + + + Returns the singleton instance of the . + + + Returns an empty instance. + + + + These functions support parsing serialized RDF into an XMP object, and serializing an XMP + object into RDF. + + + These functions support parsing serialized RDF into an XMP object, and serializing an XMP + object into RDF. The input for parsing may be any valid Unicode + encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization + is always as UTF-8. + + parseFromBuffer() parses RDF from an Stream. The encoding + is recognized automatically. + + an Stream + Options controlling the parsing. + The available options are: + + XMP_REQUIRE_XMPMETA - The <x:xmpmeta> XML element is required around <rdf:RDF>. + XMP_STRICT_ALIASING - Do not reconcile alias differences, throw an exception. + + Note: The XMP_STRICT_ALIASING option is not yet implemented. + + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Creates an XMPMeta-object from a string. + + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Creates an XMPMeta-object from a byte-buffer. + + a String contain an XMP-file. + Options controlling the parsing. + Returns the XMPMeta-object created from the input. + If the file is not well-formed XML or if the parsing fails. + + + Serializes an XMPMeta-object as RDF into an OutputStream. + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a byte buffer. + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serialization errors. + + + Serializes an XMPMeta-object as RDF into a string. + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serialization errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + Resets the schema registry to its original state (creates a new one). + + Resets the schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purposes. + + + + Obtain version information. + + + Utility services for the metadata object. + + It has only public static functions, you cannot create + an object. These are all functions that layer cleanly on top of the core XMP toolkit. + + These functions provide support for composing path expressions to deeply nested properties. The + functions XMPMeta such as GetProperty(), + getArrayItem() and getStructField() provide easy access to top + level simple properties, items in top level arrays, and fields of top level structs. They do not + provide convenient access to more complex things like fields several levels deep in a complex + struct, or fields within an array of structs, or items of an array that is a field of a struct. + These functions can also be used to compose paths to top level array items or struct fields so + that you can use the binary accessors like getPropertyAsInteger(). + + You can use these functions is to compose a complete path expression, or all but the last + component. Suppose you have a property that is an array of integers within a struct. You can + access one of the array items like this: + + + string path = XmpPathFactory.ComposeStructFieldPath(schemaNS, "Struct", fieldNS, "Array"); + string path += XmpPathFactory.ComposeArrayItemPath(schemaNS, "Array", index); + PropertyInteger result = xmpObj.GetPropertyAsInteger(schemaNS, path); + + You could also use this code if you want the string form of the integer: + + String path = XmpPathFactory.ComposeStructFieldPath (schemaNS, "Struct", fieldNS, + "Array"); + PropertyText xmpObj.GetArrayItem (schemaNS, path, index); + + + Note: It might look confusing that the schemaNS is passed in all of the calls above. + This is because the XMP toolkit keeps the top level "schema" namespace separate from + the rest of the path expression. + Note: These methods are much simpler than in the C++-API, they don't check the given + path or array indices. + + Stefan Makswit + 25.01.2006 + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNS and + "i" is the decimal representation of itemIndex. + + Throws exception if index zero is used. + + + Compose the path expression for a field in a struct. + The namespace URI for the field. Must not be null or the empty string. + The name of the field. Must be a simple XML name, must not be null or the empty string. + + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNS and "fNS" is the prefix for fieldNS. + + Thrown if the path to create is not valid. + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + + + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + + + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNS and "qNS" is the prefix for qualNS. + + Thrown if the path to create is not valid. + + + Compose the path expression to select an alternate item by language. + + The path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNS. + + + + Compose the path expression to select an alternate item by a field's value. + + The path syntax allows two forms of "content addressing" that may be used to select an item in an + array of alternatives. The form used in ComposeFieldSelector lets you select an item in an + array of structs based on the value of one of the fields in the structs. The other form of + content addressing is shown in ComposeLangSelector. For example, consider a simple struct + that has two fields, the name of a city and the URI of an FTP site in that city. Use this to + create an array of download alternatives. You can show the user a popup built from the values + of the city fields. You can then get the corresponding URI as follows: + + + String path = composeFieldSelector ( schemaNS, "Downloads", fieldNS, "City", chosenCity ); + XMPProperty prop = xmpObj.getStructField ( schemaNS, path, fieldNS, "URI" ); + + + + The name of the array. May be a general path expression, must not be + null or the empty string. + + + The namespace URI for the field used as the selector. Must not be + null or the empty string. + + + The name of the field used as the selector. Must be a simple XML name, must + not be null or the empty string. It must be the name of a field that is + itself simple. + + The desired value of the field. + + Returns the composed path. This will be of the form + ns:arrayName[fNS:fieldName='fieldValue'], where "ns" is the + prefix for schemaNS and "fNS" is the prefix for fieldNS. + + Thrown if the path to create is not valid. + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + Utility methods for XMP. + Stefan Makswit + 21.02.2006 + + + Create a single edit string from an array of strings. + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + Separate a single edit string into an array of strings. + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + Remove multiple properties from an XMP object. + + Remove multiple properties from an XMP object. + RemoveProperties was created to support the File Info dialog's Delete + button, and has been been generalized somewhat from those specific needs. + It operates in one of three main modes depending on the schemaNS and + propName parameters: + + Non-empty schemaNS and propName - The named property is + removed if it is an external property, or if the + flag doAllProperties option is true. It does not matter whether the + named property is an actual property or an alias. + Non-empty schemaNS and empty propName - The all external + properties in the named schema are removed. Internal properties are also + removed if the flag doAllProperties option is set. In addition, + aliases from the named schema will be removed if the flag includeAliases + option is set. + Empty schemaNS and empty propName - All external properties in + all schema are removed. Internal properties are also removed if the + flag doAllProperties option is passed. Aliases are implicitly handled + because the associated actuals are internal if the alias is. + + It is an error to pass an empty schemaNS and non-empty propName. + + The XMP object containing the properties to be removed. + + Optional schema namespace URI for the properties to be + removed. + + Optional path expression for the property to be removed. + + Option flag to control the deletion: do internal properties in + addition to external properties. + + + Option flag to control the deletion: + Include aliases in the "named schema" case above. + Note: Currently not supported. + + Forwards the Exceptions from the metadata processing + + + Append properties from one XMP object to another. + + Append properties from one XMP object to another. + XMPUtils#appendProperties was created to support the File Info dialog's Append button, and + has been been generalized somewhat from those specific needs. It appends information from one + XMP object (source) to another (dest). The default operation is to append only external + properties that do not already exist in the destination. The flag + doAllProperties can be used to operate on all properties, external and internal. + The flag replaceOldValues option can be used to replace the values + of existing properties. The notion of external + versus internal applies only to top level properties. The keep-or-replace-old notion applies + within structs and arrays as described below. + + If replaceOldValues is true then the processing is restricted to the top + level properties. The processed properties from the source (according to + doAllProperties) are propagated to the destination, + replacing any existing values.Properties in the destination that are not in the source + are left alone. + If replaceOldValues is not passed then the processing is more complicated. + Top level properties are added to the destination if they do not already exist. + If they do exist but differ in form (simple/struct/array) then the destination is left alone. + If the forms match, simple properties are left unchanged while structs and arrays are merged. + If deleteEmptyValues is passed then an empty value in the source XMP causes + the corresponding destination XMP property to be deleted. The default is to treat empty + values the same as non-empty values. An empty value is any of a simple empty string, an array + with no items, or a struct with no fields. Qualifiers are ignored. + + + The detailed behavior is defined by the following pseudo-code: + + appendProperties ( sourceXMP, destXMP, doAllProperties, + replaceOldValues, deleteEmptyValues ): + for all source schema (top level namespaces): + for all top level properties in sourceSchema: + if doAllProperties or prop is external: + appendSubtree ( sourceNode, destSchema, replaceOldValues, deleteEmptyValues ) + appendSubtree ( sourceNode, destParent, replaceOldValues, deleteEmptyValues ): + if deleteEmptyValues and source value is empty: + delete the corresponding child from destParent + else if sourceNode not in destParent (by name): + copy sourceNode's subtree to destParent + else if replaceOld: + delete subtree from destParent + copy sourceNode's subtree to destParent + else: + // Already exists in dest and not replacing, merge structs and arrays + if sourceNode and destNode forms differ: + return, leave the destNode alone + else if form is a struct: + for each field in sourceNode: + AppendSubtree ( sourceNode.field, destNode, replaceOldValues ) + else if form is an alt-text array: + copy new items by "xml:lang" value into the destination + else if form is an array: + copy new items by value into the destination, ignoring order and duplicates + + Note: appendProperties can be expensive if replaceOldValues is not passed and + the XMP contains large arrays. The array item checking described above is n-squared. + Each source item is checked to see if it already exists in the destination, + without regard to order or duplicates. + Simple items are compared by value and "xml:lang" qualifier, other qualifiers are ignored. + Structs are recursively compared by field names, without regard to field order. Arrays are + compared by recursively comparing all items. + + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Delete destination values if source property is empty. + Forwards the Exceptions from the metadata processing + + + Convert from string to Boolean. + The string representation of the Boolean. + + The appropriate boolean value for the string. The checked values + for true and false are: + + and + "t" and "f" + "on" and "off" + "yes" and "no" + "value <> 0" and "value == 0" + + + If an empty string is passed. + + + Convert from boolean to string. + a boolean value + + The XMP string representation of the boolean. The values used are + given by the constants and + . + + + + Converts a string value to an int. + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + an int value + The string representation of the int. + + + Converts a string value to a long. + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to a double. + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + a long value + The string representation of the long. + + + Converts a string value to an XMPDateTime. + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + an XMPDateTime + The string representation of the long. + + + Convert from a byte array to a base64 encoded string. + the byte array to be converted + Returns the base64 string. + + + Decode from Base64 encoded string to raw data. + a base64 encoded string + Returns a byte array containing the decoded string. + Thrown if the given string is not property base64 encoded + + + Creates XMP serializations appropriate for a JPEG file. + The standard XMP in a JPEG file is limited to 64K bytes. This function + serializes the XMP metadata in an XMP object into a string of RDF . If + the data does not fit into the 64K byte limit, it creates a second packet + string with the extended data. + The XMP object containing the metadata. + A string builder object in which to return the full standard XMP packet. + A string builder object in which to return the serialized extended XMP, empty if not needed. + A string builder object in which to return an MD5 digest of the serialized extended XMP, empty if not needed. + @throws NoSuchAlgorithmException if fail to find algorithm for MD5 + Forwards the Exceptions from the metadata processing + + + Merges standard and extended XMP retrieved from a JPEG file. + When an extended partition stores properties that do not fit into the + JPEG file limitation of 64K bytes, this function integrates those + properties back into the same XMP object with those from the standard XMP + packet. + An XMP object which the caller has initialized from the standard XMP packet in a JPEG file. The extended XMP is added to this object. + An XMP object which the caller has initialized from the extended XMP packet in a JPEG file. + Forwards the Exceptions from the metadata processing + + + Modifies a working XMP object according to a template object. + + The XMP template can be used to add, replace or delete properties from + the working XMP object. The actions that you specify determine how the + template is applied.Each action can be applied individually or combined; + if you do not specify any actions, the properties and values in the + working XMP object do not change. + + These actions are available: + + Clear CLEAR_UNNAMED_PROPERTIES : Deletes top-level + properties.Any top-level property that is present in the template(even + with empty value) is retained.All other top-level properties in the + working object are deleted + Add ADD_NEW_PROPERTIES: Adds new properties to the + working object if the template properties have values.See additional + detail below. + Replace REPLACE_EXISTING_PROPERTIES: Replaces the + values of existing top-level properties in the working XMP if the value + forms match those in the template. Properties with empty values in the + template are ignored. If combined with Clear or Add actions, those take + precedence; values are cleared or added, rather than replaced. + Replace/Delete empty REPLACE_WITH_DELETE_EMPTY: + Replaces values in the same way as the simple Replace action, and also + deletes properties if the value in the template is empty.If combined + with Clear or Add actions, those take precedence; values are cleared or + added, rather than replaced. + Include internal INCLUDE_INTERNAL_PROPERTIES: Performs + specified action on internal properties as well as external properties. + By default, internal properties are ignored for all actions. + + + The Add behavior depends on the type of property: + + If a top-level property is not in the working XMP, and has a value in + the template, the property and value are added.Empty properties are not + added. + If a property is in both the working XMP and template, the value + forms must match, otherwise the template is ignored for that property. + If a struct is present in both the working XMP and template, the + individual fields of the template struct are added as appropriate; that + is, the logic is recursively applied to the fields.Struct values are + equivalent if they have the same fields with equivalent values. + If an array is present in both the working XMP and template, items + from the template are added if the value forms match. Array values match + if they have sets of equivalent items, regardless of order. + Alt-text arrays use the \c xml:lang qualifier as a key, adding languages that are missing. + + + Array item checking is n-squared; this can be time-intensive if the + Replace option is not specified.Each source item is checked to see if it + already exists in the destination, without regard to order or duplicates. + Simple items are compared by value and xml:lang qualifier; + other qualifiers are ignored.Structs are recursively compared by field + names, without regard to field order.Arrays are compared by recursively + comparing all items. + + The destination XMP object. + The template to apply to the destination XMP object. + Option flags to control the copying. If none are specified, + the properties and values in the working XMP do not change. A logical OR of these bit-flag constants: + + CLEAR_UNNAMED_PROPERTIES Delete anything that is not in the template + ADD_NEW_PROPERTIES Add properties; see detailed description. + REPLACE_EXISTING_PROPERTIES Replace the values of existing properties. + REPLACE_WITH_DELETE_EMPTY Replace the values of existing properties and delete properties if the new value is empty. + INCLUDE_INTERNAL_PROPERTIES Operate on internal properties as well as external properties. + + + Forwards the Exceptions from the metadata processing + + + Replicate a subtree from one XMP object into another, possibly at a + different location. + The source XMP object. + The destination XMP object. + The schema namespace URI for the source subtree. + The root location for the source subtree. May be a general path expression, must not be null or the empty string. + The schema namespace URI for the destination. Defaults to the source namespace. + The root location for the destination. May be a general path expression. Defaults to the source location. + Option flags to control the separation. (For now, this argument is ignored. 0 should be passed. + Forwards the Exceptions from the metadata processing + + + + Compression level. + + + + + Represents the compressed stream writer + + + + + Type of the block. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Data.SQLite.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Data.SQLite.dll new file mode 100644 index 0000000..6a9fdec Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Data.SQLite.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Data.SQLite.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Data.SQLite.xml new file mode 100644 index 0000000..9b2e7b6 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Data.SQLite.xml @@ -0,0 +1,22383 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + For a given intrinsic type, return a DbType + + The native type to convert + The corresponding (closest match) DbType + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + This method attempts to query the flags associated with the database + connection in use. If the database connection is disposed, the default + flags will be returned. + + + The command containing the databse connection to query the flags from. + + + The connection flags value. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory databse will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + NoDefaultFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" connection string property + was used. When this value is non-zero, + will retain treatment of the password as a NUL-terminated text string. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default databse type for this connection. This value will only + be used if the + flag is set. + + + + + The default databse type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Attempts to decrypt a database file that was encrypted using the legacy CryptoAPI-based + RC4 codec that was previously included with System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Change the password (or assign a password) to an open database. + + + No readers or writers may be active for this process. The database must already be open + and if it already was password protected, the existing password must already have been supplied. + + The new password to assign to the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Sets the password for a password-protected database. A password-protected database is + unusable for any operation until the password has been set. + + The password for the database + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + SQL statement text as the statement first begins executing + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Reads the next row from the resultset + + True if a new row was successfully loaded and is ready for processing + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callbakc function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for collating sequences + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being resitered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The flags associated with the parent connection object. + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it is + set by the method on its first call. Later, it + is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + method. + On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Call calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Runtime.CompilerServices.Unsafe.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..1908d92 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Runtime.CompilerServices.Unsafe.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Runtime.CompilerServices.Unsafe.xml new file mode 100644 index 0000000..b5dd21b --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/System.Runtime.CompilerServices.Unsafe.xml @@ -0,0 +1,258 @@ + + + + System.Runtime.CompilerServices.Unsafe + + + + Contains generic, low-level functionality for manipulating pointers. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of offset to pointer. + + + Adds an element offset to the given void pointer. + The void pointer to add the offset to. + The offset to add. + The type of void pointer. + A new void pointer that reflects the addition of offset to the specified pointer. + + + Adds a byte offset to the given reference. + The reference to add the offset to. + The offset to add. + The type of reference. + A new reference that reflects the addition of byte offset to pointer. + + + Determines whether the specified references point to the same location. + The first reference to compare. + The second reference to compare. + The type of reference. + + if and point to the same location; otherwise, . + + + Casts the given object to the specified type. + The object to cast. + The type which the object will be cast to. + The original object, casted to the given type. + + + Reinterprets the given reference as a reference to a value of type . + The reference to reinterpret. + The type of reference to reinterpret. + The desired type of the reference. + A reference to a value of type . + + + Returns a pointer to the given by-ref parameter. + The object whose pointer is obtained. + The type of object. + A pointer to the given value. + + + Reinterprets the given read-only reference as a reference. + The read-only reference to reinterpret. + The type of reference. + A reference to a value of type . + + + Reinterprets the given location as a reference to a value of type . + The location of the value to reference. + The type of the interpreted location. + A reference to a value of type . + + + Determines the byte offset from origin to target from the given references. + The reference to origin. + The reference to target. + The type of reference. + Byte offset from origin to target i.e. - . + + + Copies a value of type to the given location. + The location to copy to. + A pointer to the value to copy. + The type of value to copy. + + + Copies a value of type to the given location. + The location to copy to. + A reference to the value to copy. + The type of value to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses. + The destination address to copy to. + The source address to copy from. + The number of bytes to copy. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address. + The address of the start of the memory block to initialize. + The value to initialize the block to. + The number of bytes to initialize. + + + Returns a value that indicates whether a specified reference is greater than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is greater than ; otherwise, . + + + Returns a value that indicates whether a specified reference is less than another specified reference. + The first value to compare. + The second value to compare. + The type of the reference. + + if is less than ; otherwise, . + + + + + + + + + + Reads a value of type from the given location. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Reads a value of type from the given location without assuming architecture dependent alignment of the addresses. + The location to read from. + The type to read. + An object of type read from the given location. + + + Returns the size of an object of the given type parameter. + The type of object whose size is retrieved. + The size of an object of type . + + + Bypasses definite assignment rules for a given value. + The uninitialized object. + The type of the uninitialized object. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of offset from pointer. + + + Subtracts an element offset from the given void pointer. + The void pointer to subtract the offset from. + The offset to subtract. + The type of the void pointer. + A new void pointer that reflects the subtraction of offset from the specified pointer. + + + Subtracts a byte offset from the given reference. + The reference to subtract the offset from. + The offset to subtract. + The type of reference. + A new reference that reflects the subtraction of byte offset from pointer. + + + Returns a to a boxed value. + The value to unbox. + The type to be unboxed. + + is , and is a non-nullable value type. + + is not a boxed value type. + +-or- + + is not a boxed . + + cannot be found. + A to the boxed value . + + + Writes a value of type to the given location. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + Writes a value of type to the given location without assuming architecture dependent alignment of the addresses. + The location to write to. + The value to write. + The type of value to write. + + + \ No newline at end of file diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.dll new file mode 100644 index 0000000..c9f0de7 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.pdb b/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.pdb new file mode 100644 index 0000000..bb41a35 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.pdb differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.xml new file mode 100644 index 0000000..d18acac --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/Win32ApiUtils.xml @@ -0,0 +1,1089 @@ + + + + Win32ApiUtils + + + + + PrintWindow的绘图选项 + + + + + 只有窗口的客户端区域被复制到hdc Blt中。默认情况下,复制整个窗口 + + + + + GetDeviceCap指定返回项 + + + + + 屏幕的高度(光栅线) + + + + + 设备单位的物理页面宽度 + + + + + 设备x轴的比例系数 + + + + + 设备y轴的比例系数 + + + + + TernaryRasterOperations + 位图与目标位图以及图案刷的颜色值进行布尔运算的方式 + + + + + 原图 + + + + + 获取指定设备的性能参数 + + 设备上下文环境的句柄 + 指定返回项 + + + + 为一个设备创建设备上下文环境 + + 1.DISPLAY:屏幕设备 2.WINSPOOL:打印驱动 Or.Null + 所用专门设备的名称。该名由打印管理器分配显示 + Null + 这个结构保存初始值。传递0值则适用默认设置 + + + + + 对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境 + + 目标设备环境的句柄 + 目标设备环境的矩形区域的左上角的x坐标 + 目标设备环境的矩形区域的左上角的y坐标 + 目标设备环境的矩形区域的宽度值 + 目标设备环境的矩形区域的高度值 + 源设备环境的句柄 + 源设备环境的矩形区域的左上角的x坐标 + 源设备环境的矩形区域的左上角的y坐标 + 光栅操作符 + + + + _lopen的标志集 + + + + + 以可读、可写的方式打开文件 + + + + + 可打开文件,以便由其他程序读写 + + + + + OpenProcess访问标志 + + + + + 启用VirtualProtectEx和WriteProcessMemory功能中的进程句柄来修改进程的虚拟内存。 + + + + + 启用ReadProcessMemory功能中的进程句柄从进程的虚拟内存读取。 + + + + + 启用WriteProcessMemory功能中的进程句柄来写入进程的虚拟内存。 + + + + + VirtualAllocEx中flAllocationType的标志 + + + + + 该函数在内存页面的指定区域的内存或磁盘上的分页文件中分配实际物理存储。该函数将内存初始化为零。 + + + + + 该函数保留一系列的进程的虚拟地址空间,而不会在内存或磁盘上的页面文件中分配任何实际物理存储。 + + + + + VirtualAllocEx中的保护标志 + + + + + 启用对提交的页面区域的读取和写入权限。 + + + + + VirtualFreeEx的释放标志 + + + + + 该函数释放指定的页面区域。页面进入空闲状态。 + + + + + 打开二进制文件 + + 欲打开文件的名字 + 访问模式和共享模式常数的一个组合 + 如果函数成功,返回值是一个文件句柄。 + + + + 关闭文件句柄 + + + + + 返回现有进程对象的句柄。 + + 想得到的访问权限 + 指定返回的句柄是否可以被继承 + 指定要打开的进程的ID + 进程对象 + + + + 在目标进程地址空间分配内存. + + 在其中分配内存的进程句柄 + 所需的分配起始地址 + 要分配的区域的大小(以字节为单位) + 分配类型 + 访问类型保护 + + + + + 在指定的进程中写入内存。要写入的整个区域必须可访问,否则操作失败。 + + 要写入的进程句柄 + 开始写入地址 + 指向缓冲区的指针写入数据 + 要写入的字节数 + 实际写入的字节数 + + + + 在指定的进程中读取内存。要读取的整个区域必须可访问,否则操作失败。 + + 要读取的进程句柄 + 起始读取地址 + 缓冲区地址放置读取数据 + 要读取的字节数 + 读取到的字节数的地址 + + + + 在指定进程的虚拟地址空间内释放,分解或同时释放内存区域。 + + 要释放内存的进程句柄 + 释放的起始地址 + 大小,以字节为单位的内存区域释放 + 释放类型 + + + + + 函数用来获得当前可用的物理和虚拟内存信息,是GlobalMemoryStatus的64位版本。 + + 用来接收信息的结构 + + + + 强制终结进程 + + 线程句柄 + 结束代码 + 是否成功 + + + + 用于获得系统信息 + + + + + 结构的长度,在使用函数前必须初始化此值 + + + + + 物理内存的使用率(0~100的整数) + + + + + 物理内存的总量,以字节为单位(以下均相同) + + + + + 物理内存的剩余量 + + + + + 系统页面文件大小 + + + + + 系统可用页面文件大小 + + + + + 虚拟内存的总量 + + + + + 虚拟内存的剩余量 + + + + + 保留,值为0 + + + + + 隐藏窗体,并激活另一个窗体 + + + + + 与SW_RESTORE相同 + + + + + 激活并以最小化的形式显示窗体 + + + + + 激活并以最大化的形式显示窗体 + + + + + 最大化指定的窗体 + + + + + 以上次的状态显示指定的窗体,但不激活它 + + + + + 激活窗体,并将其显示在当前的大小和位置上 + + + + + 最小化指定的窗体,并激活另一个窗体 + + + + + 以最小化形式显示指定的窗体,但不激活它 + + + + + 以当前的状态显示指定的窗体,但不激活它 + + + + + 以原本的大小和位置,激活并显示指定的窗体 + + + + + 设置显示的状态由STARTUPINFO结构体指定 + + + + + 运行文件 + + 父窗口句柄,可为0 + 操作类型:"Open" 打开文件,"Print" 打印文件, "explore" 浏览文件夹 + 文件名 + 文件的命令行参数 + 文件所在目录 + 展示方式 + + + + + 获取ComboBox下拉框的所有选项的值 + + ComboBox下拉框的句柄 + ComboBox下拉框的的值列表 + + + + 改变ComboBox下拉框的选择项 + + ComboBox下拉框的句柄 + ComboBox下拉框的序号(从0开始) + + + + 读取ListView任一格子的文本 + + ListView的句柄 + 行,0开始 + 列,0开始 + 文本的编码 + 文本 + + + + 读取TreeView数据 + + TreeView的句柄 + 读取到的数据 + + + + 获取DateTimePicker的显示日期 + + 句柄 + DateTimePicker的显示日期 + + + + 设置DateTimePicker的日期 + + 句柄 + 要设置的日期 + 是否需要点击右方向键 + 输入后的等待,默认为1秒 + + + + 与文件相关的工具类 + + + + + 错误标志 + + + + + 查看文件是否被占用 + + + + + 与键盘相关的工具类 + + + + + 向句柄指向的窗口或控件输入字符串 + + 窗口或控件的句柄 + 要输入的字符串 + + + + 按下指定键 + + 要按下的键 + 等待时间 + + + + 按下指定组合键 + + 长按键 + 短按键 + 等待时间 + + + + 输入字符串, + 以SendInput的键盘事件串形式发送. + + + + + 与鼠标相关的工具类 + + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 对句柄所指向的窗口或者控件发送点击消息 + + 窗口或者控件 + 发送消息后等待 + + + + 鼠标按坐标点击 + + + + + 鼠标按坐标双击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 鼠标按坐标右击 + + 要置顶的窗口句柄.为0则不置顶 + + + + 与显示器有关的工具类 + + + + + 判断是否存在遮挡指定窗口的窗口. + + 指定窗口 + 遮挡住指定窗口的窗口句柄 + + + + 判断是否存在遮挡指定区域的窗口. + + 指定窗口 + 指定区域 + 遮挡住指定区域的窗口句柄 + + + + 获取屏幕缩放系数 + + + + + 提取屏幕截图,根据窗口句柄 + + 句柄 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 提取屏幕截图,根据坐标和大小 + 需要手动将缩放系数适配 + + + + + + + + + + 获取屏幕上指定位置像素点 + + + + + 获取窗口中所有与指定颜色相同的像素点信息 + + 窗口句柄 + 指定颜色 + 等待时间,窗口呼到前台可能需要响应时间 + + + + 获取指定位置中所有与指定颜色相同的像素点信息 + + 左上x轴坐标 + 左上y轴坐标 + 宽度 + 高度 + 指定颜色 + + + + 获取指定图片中所有与指定颜色相同的像素点信息 + + 图片 + 颜色 + 像素点集 + + + + 窗口基本信息 + + + + + 标题 + + + + + 类名 + + + + + 句柄 + + + + + 父窗口句柄 + + + + + 父窗口基本信息 + + + + + 子级 + + + + + 与窗口有关的工具类 + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 向窗口发送关闭信息 + + + + + 获取窗口的矩形信息 + 左上角坐标以及宽高 + + + + + 复制窗口文本到调用者提供的缓冲区. + + 句柄 + 窗口文本 + + + + 以List的形式列出父窗口下所有子窗口的基本信息.(全递归) + + 父窗口句柄 + 递归子窗口基本信息 + + + + 查找符合key条件并返回第一个集合内的窗口信息. + --模糊查询 + 对比Hadnle,ParentHandle,Caption,ClassName + + 遍历的窗口信息集合 + 要找的数据 + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName.精确查询 + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回第一个符合条件的集合内的窗口信息. + 对比Caption,ClassName. + + 遍历的窗口信息集合 + 标题名 + 类名 + 是否是包含对比 + 要找的数据,找不到返回Null + + + + 查找并返回所有符合条件的集合内的窗口信息 + + 集合 + 所有符合条件的选项 + + + + 坐标结构体 + + + + + 鼠标事件标志 + + + + + 移动鼠标 + + + + + 模拟鼠标左键按下 + + + + + 模拟鼠标左键抬起 + + + + + 鼠标右键按下 + + + + + 鼠标右键抬起 + + + + + 鼠标中键按下 + + + + + 中键抬起 + + + + + 标示是否采用绝对坐标 + + + + + 键盘事件标志 + + + + + 按下 + + + + + 弹起 + + + + + 设置指定窗口的显示状态的标志集 + + + + + 隐藏窗口并激活其他窗口 + + + + + 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志 + + + + + 激活窗口并将其最小化 + + + + + 激活窗口并将其最大化 + + + + + 以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态 + + + + + 在窗口原来的位置以原来的尺寸激活和显示窗口 + + + + + 最小化指定的窗口并且激活在Z序中的下一个顶层窗口 + + + + + 窗口最小化,激活窗口仍然维持激活状态 + + + + + 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态 + + + + + 激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志 + + + + + 最小化窗口,即使拥有该窗口的线程没有响应。仅当最小化来自不同线程的窗口时,才应使用此标志 + + + + + 发送输入 (SendInput)方法的标志集 + + + + + 鼠标 + + + + + 键盘 + + + + + 硬件 + + + + + 检索到的句柄标识 Z 顺序中最高级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中最低级别的相同类型的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口下方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识 Z 顺序中指定窗口上方的窗口。 + 如果指定的窗口是最上面的窗口,则句柄标识最上面的窗口。 + 如果指定的窗口是顶级窗口,则句柄标识顶级窗口。 + 如果指定的窗口是子窗口,则句柄标识同级窗口。 + + + + + 检索到的句柄标识指定窗口的所有者窗口(如果有)。 + + + + + 如果指定的窗口是父窗口,则检索到的句柄标识 Z 顺序顶部的子窗口; + 否则,检索到的句柄为 NULL。该函数仅检查指定窗口的子窗口。它不检查后代窗口。 + + + + + 检索到的句柄标识指定窗口拥有的已启用弹出窗口(搜索使用GW_HWNDNEXT找到的第一个此类窗口); + 否则,如果没有启用的弹出窗口,则检索到的句柄是指定窗口的句柄。 + + + + + 操作鼠标 + + 标志集 + x坐标位置 + y坐标位置 + 标志为Wheel值时,设置为滚轮滚动量 + 与鼠标事件相关的附加32位值 + + + + + 移动鼠标到指定位置 + + + + + 操作键盘 + + 键值 + 该键的硬件扫描码 + 标志位集 + 与击键相关的附加的32位值 + + + + 操作键盘或者鼠标, + 将指定事件串插入键盘或鼠标输入流. + + pInputs的数量 + 事件串 + SendInputParm结构的字节大小 + + + + 将一个字符翻译成相应的虚拟键码和对于当前键盘的转换状态 + + + + + 检取指定虚拟键的状态。该状态指定此键是UP状态,DOWN状态,还是被触发的(开关每次按下此键时进行切换) + + 定义一虚拟键。若要求的虚拟键是字母或数字(A~Z,a~z或0~9), + nVirtKey必须被置为相应字符的ASCII码值,对于其他的键,nVirtKey必须是一虚拟键码。 + 若使用非英语键盘布局,则取值在ASCIIa~z和0~9的虚拟键被用于定义绝大多数的字符键。 + 例如,对于德语键盘格式,值为ASCII0(OX4F)的虚拟键指的是”0″键,而VK_OEM_1指”带变音的0键” + + + + + 发送消息到指定窗口 + + 要接收消息的窗口的句柄 + 被发送的消息 + 附加的消息特定信息 + 附加的消息特定信息 + + + + 获取桌面句柄 + + + + + + 寻找顶级窗口 + + 窗口的类名 + 窗口的标题 + + + + + 寻找与指定条件相符的第一个子窗口 + + 父窗口句柄.若为0则以桌面窗口为父窗口并查找所有的子窗口 + 子窗口句柄,指示查找从此子窗口句柄的下一个开始 + 类名 + 标题 + + + + + 枚举子窗口 + + 父窗口句柄 + 回调.true为继续遍历,false为停止遍历 + 附加值 + + + + + 获取父窗口句柄 + + + + + 获取窗口标题的长度 + + + + + 获取窗口标题 + + 句柄 + 用来返回的字符串 + 最大长度 + + + + 获取窗口类名 + + 窗口句柄 + 用来返回的字符串 + 最大长度 + + + + + 返回指定窗口的边框矩形的大小. + 为四个角的坐标. + + 窗口句柄 + 传回的窗口矩形信息 + + + + 获取窗口所在的进程ID + + 窗口句柄 + 进程ID返回值 + + + + 获得指定窗口的可视状态 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + 根据坐标获取窗口句柄 + + 坐标信息 + 窗口句柄 + + + + 检索与指定窗口具有指定关系(Z 顺序或所有者)的窗口的句柄。 + + 窗口的手柄。检索到的窗口句柄基于 uCmd 参数的值相对于此窗口。 + 指定窗口与要检索其句柄的窗口之间的关系。 + + + + + 该函数对指定的窗口设置键盘焦点。该窗口必须与调用线程的消息队列相关。 + + + + + + + 将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号 + + + + + + 取前台窗口的句柄(用户当前工作的窗口) + 在某些情况下,如一个窗口失去激活时,前台窗口可以是NULL。 + + + + + 激活一个窗口,该窗口必须与调用线程的消息队列相关联 + + + + + 设置窗口的显示状态 + + 窗口句柄 + 标志集 + + + + + 获取指定窗口的设备上下文句柄 + 用于在窗口的非客户端区域内进行特殊的绘制效果 + + + + + 将一个可视窗口复制到指定的设备上下文(DC)中 + + 要复制的窗口的句柄 + 设备上下文(DC)的句柄 + 绘图选项 + + + + PostMessage和PostMessage所使用的标志位集合, + 未来使用时若枚举内不存再则添加上去. + + + + + 修改下拉框 默认选中那一项 相当于MFC中的SetCurlSel + + + + diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/itextsharp.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/itextsharp.dll new file mode 100644 index 0000000..d9f1d58 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/itextsharp.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/itextsharp.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/itextsharp.xml new file mode 100644 index 0000000..823198f --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/itextsharp.xml @@ -0,0 +1,38512 @@ + + + + itextsharp + + + + Gets the name of the resultant PDF file. + This name will be passed to makePdf, assertPdf and comparePdf methods. + @return + + + Gets the name of the compare PDF file. + This name will be passed to comparePdf method. + @return + + + Sets the maximum errors count which will be returned as the result of the comparison. + @param compareByContentMaxErrorCount the errors count. + @return Returns this. + + + Sets the absolute error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Sets the relative error parameter which will be used in floating point numbers comparison. + @param error the epsilon new value. + @return Returns this. + + + Creates a new instance of MemoryLimitsAwareException. + + @param message the detail message. + + + + A + + handles memory allocation and prevents decompressed pdf streams from occupation of more space than allowed. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default. + + + + + Creates a + + which will be used to handle decompression of pdf streams. + The max allowed memory limits will be generated by default, based on the size of the document. + + the size of the document, which is going to be handled by iText. + + + Gets the maximum allowed size which can be occupied by a single decompressed pdf stream. + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + + Sets the maximum allowed size which can be occupied by a single decompressed pdf stream. + This value correlates with maximum heap size. This value should not exceed limit of the heap size. + iText will throw an exception if during decompression a pdf stream with two or more filters of identical type + occupies more memory than allowed. + + the maximum allowed size which can be occupied by a single decompressed pdf stream. + + + this + + instance. + + + + Gets the maximum allowed size which can be occupied by all decompressed pdf streams. + the maximum allowed size value which streams may occupy + + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + + Sets the maximum allowed size which can be occupied by all decompressed pdf streams. + This value can be limited by the maximum expected PDF file size when it's completely decompressed. + Setting this value correlates with the maximum processing time spent on document reading + iText will throw an exception if during decompression pdf streams with two or more filters of identical type + occupy more memory than allowed. + + he maximum allowed size which can be occupied by all decompressed pdf streams. + + + this + + instance. + + + + Considers the number of bytes which are occupied by the decompressed pdf stream. + + Considers the number of bytes which are occupied by the decompressed pdf stream. + If memory limits have not been faced, throws an exception. + + the number of bytes which are occupied by the decompressed pdf stream. + + this + + instance. + + + + + + + + Begins handling of current pdf stream decompression. + + this + + instance. + + + + Ends handling of current pdf stream decompression. + + Ends handling of current pdf stream decompression. + If memory limits have not been faced, throws an exception. + + + this + + instance. + + + + + + + + This class implements an output stream which can be used for memory limits aware decompression of pdf streams. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + The maximum size of array to allocate. + Attempts to allocate larger arrays will result in an exception. + + + Creates a new byte array output stream. The buffer capacity is + initially 32 bytes, though its size increases if necessary. + + + Creates a new byte array output stream, with a buffer capacity of + the specified size, in bytes. + + @param size the initial size. + @throws IllegalArgumentException if size is negative. + + + Gets the maximum size which can be occupied by this output stream. + + @return the maximum size which can be occupied by this output stream. + + + Sets the maximum size which can be occupied by this output stream. + + @param maxStreamSize the maximum size which can be occupied by this output stream. + @return this {@link MemoryLimitsAwareOutputStream} + + + {@inheritDoc} + + + Query and change fields in existing documents either by method + calls or by FDF merging. + @author Paulo Soares + + + A field type invalid or not found. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + A field type. + + + Holds value of property generateAppearances. + + + Holds value of property fieldCache. + + + Gets the list of appearance names. Use it to get the names allowed + with radio and checkbox fields. If the /Opt key exists the values will + also be included. The name 'Off' may also be valid + even if not returned in the list. + + For Comboboxes it will return an array of display values. To extract the + export values of a Combobox, please refer to {@link AcroFields#getListOptionExport(String)} + + @param fieldName the fully qualified field name + @return the list of names or null if the field does not exist + + + Gets the list of export option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + Gets the list of display option values from fields of type list or combo. + If the field doesn't exist or the field type is not list or combo it will return + null. + @param fieldName the field name + @return the list of export option values from fields of type list or combo + + + + + Export the fields as a FDF. + @param writer the FDF writer + + + Renames a field. Only the last part of the name can be renamed. For example, + if the original field is "ab.cd.ef" only the "ef" part can be renamed. + @param oldName the old field name + @param newName the new field name + @return true if the renaming was successful, false + otherwise + + + Retrieve the rich value for the given field + @param name + @return The rich value if present, or null. + @since 5.0.6 + + + Gets the field value. + @param name the fully qualified field name + @return the field value + + + Gets the field values of a Choice field. + @param name the fully qualified field name + @return the field value + @since 2.1.3 + + + + + Merges an XML data structure into this form. + @param n the top node of the data structure + @throws java.io.IOException on error + @throws com.lowagie.text.DocumentException o error + + + Sets the fields by FDF merging. + @param fdf the FDF form + @throws IOException on error + @throws DocumentException on error + + + Sets the fields by XFDF merging. + @param xfdf the XFDF form + @throws IOException on error + @throws DocumentException on error + + + Regenerates the field appearance. + This is usefull when you change a field property, but not its value, + for instance form.SetFieldProperty("f", "bgcolor", BaseColor.BLUE, null); + This won't have any effect, unless you use RegenerateField("f") after changing + the property. + + @param name the fully qualified field name or the partial name in the case of XFA forms + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the field value. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param saveAppearance save the current appearance of the field or not + @throws IOException on error + @throws DocumentException on error + @return true if the field was found and changed, + false otherwise + + + Sets the rich value for the given field. See PDF Reference chapter + 12.7.3.4 (Rich Text) and 12.7.4.3 (Text Fields) for further details. Note that iText doesn't create an appearance for Rich Text fields. + So you either need to use XML Worker to create an appearance (/N entry in the /AP dictionary), or you need to use setGenerateAppearances(false) to tell the viewer + that iText didn't create any appearances. + @param name Field name + @param richValue html markup + @return success/failure (will fail if the field isn't found, isn't a text field, or doesn't support rich text) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets the field value and the display string. The display string + is used to build the appearance in the cases where the value + is modified by Acrobat with JavaScript and the algorithm is + known. + @param name the fully qualified field name or the partial name in the case of XFA forms + @param value the field value + @param display the string that is used for the appearance. If null + the value parameter will be used + @param saveAppearance save the current appearance of the field or not + @return true if the field was found and changed, + false otherwise + @throws IOException on error + @throws DocumentException on error + + + Sets different values in a list selection. + No appearance is generated yet; nor does the code check if multiple select is allowed. + + @param name the name of the field + @param value an array with values that need to be selected + @return true only if the field value was changed + @since 2.1.4 + + + Gets all the fields. The fields are keyed by the fully qualified field name and + the value is an instance of AcroFields.Item. + @return all the fields + + + Gets the field structure. + @param name the name of the field + @return the field structure or null if the field + does not exist + + + Gets the long XFA translated name. + @param name the name of the field + @return the long field name + + + Gets the field box positions in the document. The return is an array of float + multiple of 5. For each of this groups the values are: [page, llx, lly, urx, + ury]. The coordinates have the page rotation in consideration. + @param name the field name + @return the positions or null if field does not exist + + + Removes all the fields from page. + @param page the page to remove the fields from + @return true if any field was removed, false otherwise + + + Removes a field from the document. If page equals -1 all the fields with this + name are removed from the document otherwise only the fields in + that particular page are removed. + @param name the field name + @param page the page to remove the field from or -1 to remove it from all the pages + @return true if the field exists, false otherwise + + + Removes a field from the document. + @param name the field name + @return true if the field exists, false otherwise + + + Sets the option to generate appearances. Not generating apperances + will speed-up form filling but the results can be + unexpected in Acrobat. Don't use it unless your environment is well + controlled. The default is true. + @param generateAppearances the option to generate appearances + + + The field representations for retrieval and modification. + + + writeToAll constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + writeToAll and markUsed constant. + + @since 2.1.5 + + + This function writes the given key/value pair to all the instances + of merged, widget, and/or value, depending on the writeFlags setting + + @since 2.1.5 + + @param key you'll never guess what this is for. + @param value if value is null, the key will be removed + @param writeFlags ORed together WRITE_* flags + + + Mark all the item dictionaries used matching the given flags + + @since 2.1.5 + @param writeFlags WRITE_MERGED is ignored + + + An array of PdfDictionary where the value tag /V + is present. + + + + An array of PdfDictionary with the widgets. + + + + An array of PdfDictionary with the widget references. + + + + An array of PdfDictionary with all the field + and widget tags merged. + + + + An array of Integer with the page numbers where + the widgets are displayed. + + + + An array of Integer with the tab order of the field in the page. + + + + Preferred method of determining the number of instances + of a given field. + + @since 2.1.5 + @return number of instances + + + Remove the given instance from this item. It is possible to + remove all instances using this function. + + @since 2.1.5 + @param killIdx + + + Retrieve the value dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return dictionary storing this instance's value. It may be shared across instances. + + + Add a value dict to this Item + + @since 2.1.5 + @param value new value dictionary + + + Retrieve the widget dictionary of the given instance + + @since 2.1.5 + @param idx instance index + @return The dictionary found in the appropriate page's Annot array. + + + Add a widget dict to this Item + + @since 2.1.5 + @param widget + + + Retrieve the reference to the given instance + + @since 2.1.5 + @param idx instance index + @return reference to the given field instance + + + Add a widget ref to this Item + + @since 2.1.5 + @param widgRef + + + Retrieve the merged dictionary for the given instance. The merged + dictionary contains all the keys present in parent fields, though they + may have been overwritten (or modified?) by children. + Example: a merged radio field dict will contain /V + + @since 2.1.5 + @param idx instance index + @return the merged dictionary for the given instance + + + Adds a merged dictionary to this Item. + + @since 2.1.5 + @param mergeDict + + + Retrieve the page number of the given instance + + @since 2.1.5 + @param idx + @return remember, pages are "1-indexed", not "0-indexed" like field instances. + + + Adds a page to the current Item. + + @since 2.1.5 + @param pg + + + forces a page value into the Item. + + @since 2.1.5 + @param idx + + + Gets the tabOrder. + + @since 2.1.5 + @param idx + @return tab index of the given field instance + + + Adds a tab order value to this Item. + + @since 2.1.5 + @param order + + + Clears a signed field. + @param name the field name + @return true if the field was signed, false if the field was not signed or not found + @since 5.0.5 + + + Gets the field names that have signatures and are signed. + @return the field names that have signatures and are signed + + + Gets the field names that have blank signatures. + @return the field names that have blank signatures + + + Gets the signature dictionary, the one keyed by /V. + @param name the field name + @return the signature dictionary keyed by /V or null if the field is not + a signature + + + Gets a reference to the normal appearance of a field. + + @param name the field name + @return a reference to the /N entry of the /AP dictionary or null if the field is not found + + + Checks is the signature covers the entire document or just part of it. + @param name the signature field name + @return true if the signature covers the entire document, + false otherwise + + + + Gets the total number of revisions this document has. + @return the total number of revisions + + + Gets this field revision. + @param field the signature field name + @return the revision or zero if it's not a signature field + + + Extracts a revision from the document. + @param field the signature field name + @return an Stream covering the revision. Returns null if + it's not a signature field + @throws IOException on error + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Adds a substitution font to the list. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param font the font + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Gets the XFA form processor. + @return the XFA form processor + + + Removes the XFA stream from the document. + + + Creates a new pushbutton from an existing field. If there are several pushbuttons with the same name + only the first one is used. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField)}. + @param field the field name that should be a pushbutton + @return a new pushbutton or null if the field is not a pushbutton + + + Creates a new pushbutton from an existing field. This pushbutton can be changed and be used to replace + an existing one, with the same name or other name, as long is it is in the same document. To replace an existing pushbutton + call {@link #replacePushbuttonField(String,PdfFormField,int)}. + @param field the field name that should be a pushbutton + @param order the field order in fields with same name + @return a new pushbutton or null if the field is not a pushbutton + + + Replaces the first field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @return true if the field was replaced, false if the field + was not a pushbutton + + + Replaces the designated field with a new pushbutton. The pushbutton can be created with + {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a + generic PdfFormField of the type pushbutton. + @param field the field name + @param button the PdfFormField representing the pushbutton + @param order the field order in fields with same name + @return true if the field was replaced, false if the field + was not a pushbutton + + + Checks whether a name exists as a signature field or not. It checks both signed fields and blank signatures. + @param name String + @return boolean does the signature field exist + @since 5.5.1 + + + A class representing a field position + @since 5.0.2 + + + + Summary description for InputMeta. + + + + + Summary description for MetaDo. + + + + Creates new MetaState + + + Getter for property currentBackgroundColor. + @return Value of property currentBackgroundColor. + + + Getter for property currentTextColor. + @return Value of property currentTextColor. + + + Getter for property backgroundMode. + @return Value of property backgroundMode. + + + Getter for property textAlign. + @return Value of property textAlign. + + + Getter for property polyFillMode. + @return Value of property polyFillMode. + + + Came from GIFEncoder initially. + Modified - to allow for output compressed data without the block counts + which breakup the compressed data stream for GIF. + + + + note this also indicates gif format BITFile. * + + + @param output destination for output data + @param blocks GIF LZW requires block counts for output data + + + + + Reads a BMP from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + @param is the stream + @throws IOException on error + @return the image + + + Reads a BMP from a stream. The stream is not closed. + The BMP may not have a header and be considered as a plain DIB. + @param is the stream + @param noHeader true to process a plain DIB + @param size the size of the DIB. Not used for a BMP + @throws IOException on error + @return the image + + + Reads a BMP from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a BMP from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Encodes data in the CCITT G4 FAX format. + + + Creates a new encoder. + @param width the line width + + + Encodes a number of lines. + @param data the data to be encoded + @param offset the offset into the data + @param size the size of the data to be encoded + + + Encodes a full image. + @param data the data to encode + @param width the image width + @param height the image height + @return the encoded image + + + Encodes a number of lines. + @param data the data to be encoded + @param height the number of lines to encode + + + Closes the encoder and returns the encoded data. + @return the encoded data + + + Reads gif images of all types. All the images in a gif are read in the constructors + and can be retrieved with other methods. + @author Paulo Soares + + + Reads gif images from an URL. + @param url the URL + @throws IOException on error + + + Reads gif images from a file. + @param file the file + @throws IOException on error + + + Reads gif images from a byte array. + @param data the byte array + @throws IOException on error + + + Reads gif images from a stream. The stream isp not closed. + @param isp the stream + @throws IOException on error + + + Gets the number of frames the gif has. + @return the number of frames the gif has + + + Gets the image from a frame. The first frame isp 1. + @param frame the frame to get the image from + @return the image + + + Gets the [x,y] position of the frame in reference to the + logical screen. + @param frame the frame + @return the [x,y] position of the frame + + + Gets the logical screen. The images may be smaller and placed + in some position in this screen to playback some animation. + No image will be be bigger that this. + @return the logical screen dimensions as [x,y] + + + Reads GIF file header information. + + + Reads Logical Screen Descriptor + + + Reads next 16-bit value, LSB first + + + Reads next variable length block from input. + + @return number of bytes stored in "buffer" + + + Reads next frame image + + + Resets frame state for reading next image. + + + Reads Graphics Control Extension values + + + Skips variable length blocks up to and including + next zero length block. + + + Support for JBIG2 Images. + This class assumes that we are always embedding into a pdf. + + @since 2.1.5 + + + Gets a byte array that can be used as a /JBIG2Globals, + or null if not applicable to the given jbig2. + @param ra an random access file or array + @return a byte array + + + returns an Image representing the given page. + @param ra the file or array containing the image + @param page the page number of the image + @return an Image object + + + Class to read a JBIG2 file at a basic level: understand all the segments, + understand what segments belong to which pages, how many pages there are, + what the width and height of each page is, and global segments if there + are any. Or: the minimum required to be able to take a normal sequential + or random-access organized file, and be able to embed JBIG2 pages as images + in a PDF. + + TODO: the indeterminate-segment-size value of dataLength, else? + + @since 2.1.5 + + + Inner class that holds information about a JBIG2 segment. + @since 2.1.5 + + + Inner class that holds information about a JBIG2 page. + @since 2.1.5 + + + return as a single byte array the header-data for each segment in segment number + order, EMBEDDED organization, but i am putting the needed segments in SEQUENTIAL organization. + if for_embedding, skip the segment types that are known to be not for acrobat. + @param for_embedding + @return a byte array + @throws IOException + + + + Some PNG specific values. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + A PNG marker. + + + Creates a new instance of PngImage + + + Reads a PNG from an url. + @param url the url + @throws IOException on error + @return the image + + + Reads a PNG from a stream. + @param is the stream + @throws IOException on error + @return the image + + + Reads a PNG from a file. + @param file the file + @throws IOException on error + @return the image + + + Reads a PNG from a byte array. + @param data the byte array + @throws IOException on error + @return the image + + + Gets an int from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a word from an Stream. + + @param is an Stream + @return the value of an int + + + Gets a String from an Stream. + + @param is an Stream + @return the value of an int + + + A list of constants used in class TIFFImage. + + + + A bool storing the endianness of the stream. + + + The number of entries in the IFD. + + + An array of TIFFFields. + + + A Hashtable indexing the fields by tag number. + + + The offset of this IFD. + + + The offset of the next IFD. + + + The default constructor. + + + Constructs a TIFFDirectory from a SeekableStream. + The directory parameter specifies which directory to read from + the linked list present in the stream; directory 0 is normally + read but it is possible to store multiple images in a single + TIFF file by maintaing multiple directories. + + @param stream a SeekableStream to read from. + @param directory the index of the directory to read. + + + Constructs a TIFFDirectory by reading a SeekableStream. + The ifd_offset parameter specifies the stream offset from which + to begin reading; this mechanism is sometimes used to store + private IFDs within a TIFF file that are not part of the normal + sequence of IFDs. + + @param stream a SeekableStream to read from. + @param ifd_offset the long byte offset of the directory. + @param directory the index of the directory to read beyond the + one at the current stream offset; zero indicates the IFD + at the current offset. + + + Returns the number of directory entries. + + + Returns the value of a given tag as a TIFFField, + or null if the tag is not present. + + + Returns true if a tag appears in the directory. + + + Returns an ordered array of ints indicating the tag + values. + + + Returns an array of TIFFFields containing all the fields + in this directory. + + + Returns the value of a particular index of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of index 0 of a given tag as a + byte. The caller is responsible for ensuring that the tag is + present and has type TIFFField.TIFF_SBYTE, TIFF_BYTE, or + TIFF_UNDEFINED. + + + Returns the value of a particular index of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of index 0 of a given tag as a + long. The caller is responsible for ensuring that the tag is + present and has type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, + TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG or TIFF_LONG. + + + Returns the value of a particular index of a given tag as a + float. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a float. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the value of a particular index of a given tag as a + double. The caller is responsible for ensuring that the tag is + present and has numeric type (all but TIFF_UNDEFINED and + TIFF_ASCII). + + + Returns the value of index 0 of a given tag as a double. The + caller is responsible for ensuring that the tag is present and + has numeric type (all but TIFF_UNDEFINED and TIFF_ASCII). + + + Returns the number of image directories (subimages) stored in a + given TIFF file, represented by a SeekableStream. + + + Returns a bool indicating whether the byte order used in the + the TIFF file is big-endian (i.e. whether the byte order is from + the most significant to the least significant) + + + Returns the offset of the IFD corresponding to this + TIFFDirectory. + + + Returns the offset of the next IFD after the IFD corresponding to this + TIFFDirectory. + + + @param fillOrder The fill order of the compressed data bytes. + @param w + @param h + + + The logical order of bits within a byte. +
+            1 = MSB-to-LSB
+            2 = LSB-to-MSB (flipped)
+            
+
+ + Uncompressed mode flag: 1 if uncompressed, 0 if not. + + + EOL padding flag: 1 if fill bits have been added before an EOL such + that the EOL ends on a byte boundary, 0 otherwise. + + + Coding dimensionality: 1 for 2-dimensional, 0 for 1-dimensional. + + + Invokes the superclass method and then sets instance variables on + the basis of the metadata set on this decompressor. + + + + Flag for 8 bit unsigned integers. + + + Flag for null-terminated ASCII strings. + + + Flag for 16 bit unsigned integers. + + + Flag for 32 bit unsigned integers. + + + Flag for pairs of 32 bit unsigned integers. + + + Flag for 8 bit signed integers. + + + Flag for 8 bit uninterpreted bytes. + + + Flag for 16 bit signed integers. + + + Flag for 32 bit signed integers. + + + Flag for pairs of 32 bit signed integers. + + + Flag for 32 bit IEEE floats. + + + Flag for 64 bit IEEE doubles. + + + The tag number. + + + The tag type. + + + The number of data items present in the field. + + + The field data. + + + The default constructor. + + + + Returns the tag number, between 0 and 65535. + + + Returns the type of the data stored in the IFD. + For a TIFF6.0 file, the value will equal one of the + TIFF_ constants defined in this class. For future + revisions of TIFF, higher values are possible. + + + + Returns the number of elements in the IFD. + + + + + + + + + + + + + + + + + + + + Reads TIFF images + @author Paulo Soares + + + Gets the number of pages the TIFF document has. + @param s the file source + @return the number of pages + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + Reads a page from a TIFF image. Direct mode is not used. + @param s the file source + @param page the page to get. The first page is 1 + @return the Image + + + Reads a page from a TIFF image. + @param s the file source + @param page the page to get. The first page is 1 + @param direct for single strip, CCITT images, generate the image + by direct byte copying. It's faster but may not work + every time + @return the Image + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + @param h The number of rows the compressed data contains. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newString to the end of oldString. + + + + @author psoares + + + Modified from original LZWCompressor to change interface to passing a + buffer of data to be compressed. + + + + base underlying code size of data being compressed 8 for TIFF, 1 to 8 for GIF * + + + reserved clear code based on code size * + + + reserved end of data code based on code size * + + + current number bits output for each code * + + + limit at which current number of bits code size has to be increased * + + + the prefix code which represents the predecessor string to current input point * + + + output destination for bit codes * + + + general purpose LZW string table * + + + modify the limits of the code values in LZW encoding due to TIFF bug / feature * + + + @param outp destination for compressed data + @param codeSize the initial code size for the LZW compressor + @param TIFF flag indicating that TIFF lzw fudge needs to be applied + @exception IOException if underlying output stream error + + + + @param buf data to be compressed to output stream + @exception IOException if underlying output stream error + + + + Indicate to compressor that no more data to go so write outp + any remaining buffered data. + + @exception IOException if underlying output stream error + + + + General purpose LZW String Table. + Extracted from GIFEncoder by Adam Doppelt + Comments added by Robin Luiten + expandCode added by Robin Luiten + The strLen_ table to give quick access to the lenght of an expanded + code for use by the expandCode method added by Robin. + + + + codesize + Reserved Codes + + + each entry corresponds to a code and contains the length of data + that the code expands to when decoded. + + + + Constructor allocate memory for string store data + + + + @param index value of -1 indicates no predecessor [used in initialisation] + @param b the byte [character] to add to the string store which follows + the predecessor string specified the index. + @return 0xFFFF if no space in table left for addition of predecesor + index and byte b. Else return the code allocated for combination index + b. + + + + @param index index to prefix string + @param b the character that follws the index prefix + @return b if param index is HASH_FREE. Else return the code + for this prefix and byte successor + + + + @param codesize the size of code to be preallocated for the + string store. + + + + If expanded data doesnt fit into array only what will fit is written + to buf and the return value indicates how much of the expanded code has + been written to the buf. The next call to ExpandCode() should be with + the same code and have the skip parameter set the negated value of the + previous return. Succesive negative return values should be negated and + added together for next skip parameter value with same code. + + @param buf buffer to place expanded data into + @param offset offset to place expanded data + @param code the code to expand to the byte array it represents. + PRECONDITION This code must allready be in the LZSS + @param skipHead is the number of bytes at the start of the expanded code to + be skipped before data is written to buf. It is possible that skipHead is + equal to codeLen. + @return the length of data expanded into buf. If the expanded code is longer + than space left in buf then the value returned is a negative number which when + negated is equal to the number of bytes that were used of the code being expanded. + This negative value also indicates the buffer is full. + + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + + @param seq + @return the cid code or -1 for end + + + + @author psoares + + + + @author psoares + + + + @author psoares + + + This class represents a CMap file. + + @author Ben Litchfield (ben@benlitchfield.com) + @since 2.1.4 + + + Creates a new instance of CMap. + + + This will tell if this cmap has any one byte mappings. + + @return true If there are any one byte mappings, false otherwise. + + + This will tell if this cmap has any two byte mappings. + + @return true If there are any two byte mappings, false otherwise. + + + This will perform a lookup into the map. + + @param code The code used to lookup. + @param offset The offset into the byte array. + @param length The length of the data we are getting. + + @return The string that matches the lookup. + + + + @author psoares + + + + @author psoares + + + Interface providing alternate description for accessible elements. + + + Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @return + + + Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E). + @param key + @param value + + + Gets all the properties of accessible element. + @return + + + Role propherty of the accessible element. + Note that all child elements won't also be tagged. + @return + + + Use this methods to get the AcroForm object. + Use this method only if you know what you're doing + @return the PdfAcroform object of the PdfDocument + + + Use this methods to add a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Use this method to adds the PdfAnnotation + to the calculation order array. + @param annot the PdfAnnotation to be added + + + Use this method to set the signature flags. + @param f the flags. This flags are ORed with current ones + + + A PDF document can have an open action and other additional actions. + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws DocumentException on invalid action type + + + Encryption settings are described in section 3.5 (more specifically + section 3.5.2) of the PDF Reference 1.7. + They are explained in section 3.3.3 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + A PDF page can have an open and/or close action. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws DocumentException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + The PDF version is described in the PDF Reference 1.7 p92 + (about the PDF Header) and page 139 (the version entry in + the Catalog). You'll also find info about setting the version + in the book 'iText in Action' sections 2.1.3 (PDF Header) + and 3.3 (Version history). + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + If the PDF Header hasn't been written yet, + this changes the version as it will appear in the PDF Header, + but only if param refers to a higher version. + If the PDF header was already written to the Stream, + this changes the version as it will appear in the Catalog. + @param version a character representing the PDF version + + + Sets the PDF version as it will appear in the Catalog. + Note that this only has effect if you use a later version + than the one that appears in the header. This method + ignores the parameter if you try to set a lower version + than the one currently set in the Catalog. + @param version the PDF name that will be used for the Version key in the catalog + + + Adds a developer extension to the Extensions dictionary + in the Catalog. + @param de an object that contains the extensions prefix and dictionary + @since 2.1.6 + + + Viewer preferences are described in section 3.6.1 and 8.1 of the + PDF Reference 1.7 (Table 3.25 on p139-142 and Table 8.1 on p579-581). + They are explained in section 13.1 of the book 'iText in Action'. + The values of the different preferences were originally stored + in class PdfWriter, but they have been moved to this separate interface + for reasons of convenience. + + + + + Sets the PDF/X conformance level. + Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. + It must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + Shape arabic characters. This code was inspired by an LGPL'ed C library: + Pango ( see http://www.pango.com/ ). Note that the code of this is the + original work of Paulo Soares. Hence it is perfectly justifiable to distribute + it under the MPL. + + @author Paulo Soares + + + Some fonts do not implement ligaturized variations on Arabic characters + e.g. Simplified Arabic has got code point 0xFEED but not 0xFEEE + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Not a valid option value. + + + Bit mask for digit shaping options. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Bit mask for digit type options. + + + Arabic is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Signals that a bad PDF format has been used to construct a PdfObject. + + @see PdfException + @see PdfBoolean + @see PdfNumber + @see PdfString + @see PdfName + @see PdfDictionary + @see PdfFont + + + Base class containing properties and methods commom to all + barcode types. + + @author Paulo Soares + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + A type of barcode + + + The minimum bar width. + + + The bar multiplier for wide bars or the distance between + bars for Postnet and Planet. + + + The text font. null if no text. + + + The size of the text or the height of the shorter bar + in Postnet. + + + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + + + The height of the bars. + + + The text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + + + The optional checksum generation. + + + Shows the generated checksum in the the text. + + + Show the start and stop character '*' in the text for + the barcode 39 or 'ABCD' for codabar. + + + Generates extended barcode 39. + + + The code to generate. + + + Show the guard bars for barcode EAN. + + + The code type. + + + The ink spreading. + + + Gets the minimum bar width. + @return the minimum bar width + + + Gets the bar multiplier for wide bars. + @return the bar multiplier for wide bars + + + Gets the text font. null if no text. + @return the text font. null if no text + + + Gets the size of the text. + @return the size of the text + + + Gets the text baseline. + If positive, the text distance under the bars. If zero or negative, + the text distance above the bars. + @return the baseline. + + + Gets the height of the bars. + @return the height of the bars + + + Gets the text Element. Can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER or Element.ALIGN_RIGHT. + @return the text alignment + + + The property for the optional checksum generation. + + + Sets the property to show the generated checksum in the the text. + @param checksumText new value of property checksumText + + + Gets the property to show the start and stop character '*' in the text for + the barcode 39. + @param startStopText new value of property startStopText + + + Sets the property to generate extended barcode 39. + @param extended new value of property extended + + + Gets the code to generate. + @return the code to generate + + + Sets the property to show the guard bars for barcode EAN. + @param guardBars new value of property guardBars + + + Gets the code type. + @return the code type + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Creates a template with the barcode. + @param cb the PdfContentByte to create the template. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the template + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + Creates an Image with the barcode. + @param cb the PdfContentByte to create the Image. It + serves no other use + @param barColor the color of the bars. It can be null + @param textColor the color of the text. It can be null + @return the Image + @see #placeBarcode(PdfContentByte cb, BaseColor barColor, BaseColor textColor) + + + The alternate text to be used, if present. + + + Sets the alternate text. If present, this text will be used instead of the + text derived from the supplied code. + @param altText the alternate text + + + + The bars to generate the code. + + + The stop bars. + + + The charset code change. + + + The charset code change. + + + The charset code change. + + + The code for UCC/EAN-128. + + + The start code. + + + The start code. + + + The start code. + + + Creates new Barcode128 + + + Removes the FNC1 codes in the text. + @param code the text to clean + @return the cleaned text + + + Gets the human readable text of a sequence of AI. + @param code the text + @return the human readable text + + + Returns true if the next numDigits + starting from index textIndex are numeric skipping any FNC1. + @param text the text to check + @param textIndex where to check from + @param numDigits the number of digits to check + @return the check result + + + Packs the digits for charset C also considering FNC1. It assumes that all the parameters + are valid. + @param text the text to pack + @param textIndex where to pack from + @param numDigits the number of digits to pack. It is always an even number + @return the packed digits, two digits per character + + + Converts the human readable text to the characters needed to + create a barcode using the specified code set. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @param codeSet forced code set, or AUTO for optimized barcode. + @return the code ready to be fed to getBarsCode128Raw() + + + Converts the human readable text to the characters needed to + create a barcode. Some optimization is done to get the shortest code. + @param text the text to convert + @param ucc true if it is an UCC/EAN-128. In this case + the character FNC1 is added + @return the code ready to be fed to getBarsCode128Raw() + + + Generates the bars. The input has the actual barcodes, not + the human readable text. + @param text the barcode + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + Implements the code 39 and code 39 extended. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = true;
+            extended = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + The character combinations to make the code 39 extended. + + + Creates a new Barcode39. + + + Creates the bars. + @param text the text to create the bars. This text does not include the start and + stop characters + @return the bars + + + Converts the extended text into a normal, escaped text, + ready to generate bars. + @param text the extended text + @return the escaped text + + + Calculates the checksum. + @param text the text + @return the checksum + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code codabar. The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textAlignment = Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+            startStopText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + The index chars to BARS. + + + Creates a new BarcodeCodabar. + + + Creates the bars. + @param text the text to create the bars + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + No error. + + + The text is too big for the symbology capabilities. + + + The dimensions given for the symbol are illegal. + + + An error while parsing an extension. + + + The best encodation will be used. + + + ASCII encodation. + + + C40 encodation. + + + TEXT encodation. + + + Binary encodation. + + + X21 encodation. + + + X12 encodation. + + @deprecated Use {@link BarcodeDataMatrix#DM_X12} instead. + + + EDIFACT encodation. + + + No encodation needed. The bytes provided are already encoded. + + + Allows extensions to be embedded at the start of the text. + + + Doesn't generate the image but returns all the other information. + + + Creates an instance of this class. + + + + + + Gets an Image with the barcode. A successful call to the method generate() + before calling this method is required. + @return the barcode Image + @throws BadElementException on error + + + Creates a java.awt.Image. A successful call to the method generate() + before calling this method is required. + @param foreground the color of the bars + @param background the color of the background + @return the image + + + Gets the generated image. The image is represented as a stream of bytes, each byte representing + 8 pixels, 0 for white and 1 for black, with the high-order bit of each byte first. Each row + is aligned at byte boundaries. The dimensions of the image are defined by height and width + plus 2 * ws. + @return the generated image + + + + + Gets/sets the whitespace border around the barcode. + @param ws the whitespace border around the barcode + + + + Generates barcodes in several formats: EAN13, EAN8, UPCA, UPCE, + supplemental 2 and 5. The default parameters are: +
+            x = 0.8f;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            guardBars = true;
+            codeType = EAN13;
+            code = "";
+             
+ + @author Paulo Soares +
+ + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The bar positions that are guard bars. + + + The x coordinates to place the text. + + + The x coordinates to place the text. + + + The basic bar widths. + + + The total number of bars for EAN13. + + + The total number of bars for EAN8. + + + The total number of bars for UPCE. + + + The total number of bars for supplemental 2. + + + The total number of bars for supplemental 5. + + + Marker for odd parity. + + + Marker for even parity. + + + Sequence of parities to be used with EAN13. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with supplemental 2. + + + Sequence of parities to be used with UPCE. + + + Creates new BarcodeEAN + + + Calculates the EAN parity character. + @param code the code + @return the parity character + + + Converts an UPCA code into an UPCE code. If the code can not + be converted a null is returned. + @param text the code to convert. It must have 12 numeric characters + @return the 8 converted digits or null if the + code could not be converted + + + Creates the bars for the barcode EAN13 and UPCA. + @param _code the text with 13 digits + @return the barcode + + + Creates the bars for the barcode EAN8. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode UPCE. + @param _code the text with 8 digits + @return the barcode + + + Creates the bars for the barcode supplemental 2. + @param _code the text with 2 digits + @return the barcode + + + Creates the bars for the barcode supplemental 5. + @param _code the text with 5 digits + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + + The barcode with the EAN/UPC. + + + The barcode with the supplemental. + + + Creates new combined barcode. + @param ean the EAN/UPC barcode + @param supp the supplemental barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Implements the code interleaved 2 of 5. The text can include + non numeric characters that are printed but do not generate bars. + The default parameters are: +
+            x = 0.8f;
+            n = 2;
+            font = BaseFont.CreateFont("Helvetica", "winansi", false);
+            size = 8;
+            baseline = size;
+            barHeight = size * 3;
+            textint= Element.ALIGN_CENTER;
+            generateChecksum = false;
+            checksumText = false;
+             
+ + @author Paulo Soares +
+ + The bars to generate the code. + + + Creates new BarcodeInter25 + + + Deletes all the non numeric characters from text. + @param text the text + @return a string with only numeric characters + + + Calculates the checksum. + @param text the numeric text + @return the checksum + + + Creates the bars for the barcode. + @param text the text. It can contain non numeric characters + @return the barcode + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + Generates the 2D barcode PDF417. Supports dimensioning auto-sizing, fixed + and variable sizes, automatic and manual error levels, raw codeword input, + codeword size optimization and bitmap inversion. The output can + be a CCITT G4 Image or a raw bitmap. + @author Paulo Soares + + + Auto-size is made based on aspectRatio and yHeight. + + + The size of the barcode will be at least codeColumns*codeRows. + + + The size will be at least codeColumns + with a variable number of codeRows. + + + The size will be at least codeRows + with a variable number of codeColumns. + + + The error level correction is set automatically according + to ISO 15438 recomendations. + + + The error level correction is set by the user. It can be 0 to 8. + + + One single binary segment is used + + + No text interpretation is done and the content of codewords + is used directly. + + + Inverts the output bits of the raw bitmap that is normally + bit one for black. It has only effect for the raw bitmap. + + + Use Macro PDF417 Encoding + @see #setMacroFileId(String) + @see #setMacroSegmentId(int) + @see #setMacroSegmentCount(int) + + + Creates a new BarcodePDF417 with the default settings. + + + Sets the segment id for macro PDF417 encoding + @param id the id (starting at 0) + @see #setMacroSegmentCount(int) + + + Sets the segment count for macro PDF417 encoding + @param cnt the number of macro segments + @see #setMacroSegmentId(int) + + + Sets the File ID for macro PDF417 encoding + @param id the file id + + + Set the default settings that correspond to PDF417_USE_ASPECT_RATIO + and PDF417_AUTO_ERROR_LEVEL. + + + Paints the barcode. If no exception was thrown a valid barcode is available. + + + Gets an Image with the barcode. The image will have to be + scaled in the Y direction by yHeightfor the barcode + to have the right printing aspect. + @return the barcode Image + @throws BadElementException on error + + + Gets the raw image bits of the barcode. The image will have to + be scaled in the Y direction by yHeight. + @return The raw barcode image + + + Gets the number of X pixels of outBits. + @return the number of X pixels of outBits + + + Gets the number of Y pixels of outBits. + It is also the number of rows in the barcode. + @return the number of Y pixels of outBits + Sets the number of barcode rows. This number may be changed + to keep the barcode valid. + @param codeRows the number of barcode rows + + + Sets the number of barcode data columns. + This number may be changed to keep the barcode valid. + @param codeColumns the number of barcode data columns + + + Gets the codeword array. This array is always 928 elements long. + It can be writen to if the option PDF417_USE_RAW_CODEWORDS + is set. + @return the codeword array + + + Sets the length of the codewords. + @param lenCodewords the length of the codewords + + + Gets the error level correction used for the barcode. It may different + from the previously set value. + @return the error level correction used for the barcode + Sets the error level correction for the barcode. + @param errorLevel the error level correction for the barcode + + + Sets the bytes that form the barcode. This bytes should + be interpreted in the codepage Cp437. + @param text the bytes that form the barcode + + + Sets the text that will form the barcode. This text is converted + to bytes using the encoding Cp437. + @param s the text that will form the barcode + @throws UnsupportedEncodingException if the encoding Cp437 is not supported + + + Sets the options to generate the barcode. This can be all + the PDF417_* constants. + @param options the options to generate the barcode + + + Sets the barcode aspect ratio. A ratio or 0.5 will make the + barcode width twice as large as the height. + @param aspectRatio the barcode aspect ratio + + + Sets the Y pixel height relative to X. It is usually 3. + @param yHeight the Y pixel height relative to X + + + Holds value of property outBits. + + + Holds value of property bitColumns. + + + Holds value of property codeRows. + + + Holds value of property codeColumns. + + + Holds value of property codewords. + + + Holds value of property lenCodewords. + + + Holds value of property errorLevel. + + + Holds value of property text. + + + Holds value of property options. + + + Holds value of property aspectRatio. + + + Holds value of property yHeight. + + + Gets the size of the barcode grid. + + + Implements the Postnet and Planet barcodes. The default parameters are: +
+            n = 72f / 22f; // distance between bars
+            x = 0.02f * 72f; // bar width
+            barHeight = 0.125f * 72f; // height of the tall bars
+            size = 0.05f * 72f; // height of the short bars
+            codeType = POSTNET; // type of code
+             
+ + @author Paulo Soares +
+ + The bars for each character. + + + Creates new BarcodePostnet + + + Creates the bars for Postnet. + @param text the code to be created without checksum + @return the bars + + + Gets the maximum area that the barcode and the text, if + any, will occupy. The lower left corner is always (0, 0). + @return the size the barcode occupies. + + + + A QRCode implementation based on the zxing code. + @author Paulo Soares + @since 5.0.2 + + + Creates the QR barcode. The barcode is always created with the smallest possible size and is then stretched + to the width and height given. Set the width and height to 1 to get an unscaled barcode. + @param content the text to be encoded + @param width the barcode width + @param height the barcode height + @param hints modifiers to change the way the barcode is create. They can be EncodeHintType.ERROR_CORRECTION + and EncodeHintType.CHARACTER_SET. For EncodeHintType.ERROR_CORRECTION the values can be ErrorCorrectionLevel.L, M, Q, H. + For EncodeHintType.CHARACTER_SET the values are strings and can be Cp437, Shift_JIS and ISO-8859-1 to ISO-8859-16. + You can also use UTF-8, but correct behaviour is not guaranteed as Unicode is not supported in QRCodes. + The default value is ISO-8859-1. + @throws WriterException + + + Gets an Image with the barcode. + @return the barcode Image + @throws BadElementException on error + + + Gets the size of the barcode grid. + + + A thin border with 1 point width. + + + A medium border with 2 point width. + + + A thick border with 3 point width. + + + The field is visible. + + + The field is hidden. + + + The field is visible but does not print. + + + The field is hidden but is printable. + + + The user may not change the value of the field. + + + The field must have a value at the time it is exported by a submit-form + action. + + + The field may contain multiple lines of text. + This flag is only meaningful with text fields. + + + The field will not scroll (horizontally for single-line + fields, vertically for multiple-line fields) to accommodate more text + than will fit within its annotation rectangle. Once the field is full, no + further text will be accepted. + + + The field is intended for entering a secure password that should + not be echoed visibly to the screen. + + + The text entered in the field represents the pathname of + a file whose contents are to be submitted as the value of the field. + + + The text entered in the field will not be spell-checked. + This flag is meaningful only in text fields and in combo + fields with the EDIT flag set. + + + If set the combo box includes an editable text box as well as a drop list; if + clear, it includes only a drop list. + This flag is only meaningful with combo fields. + + + whether or not a list may have multiple selections. Only applies to /CH LIST + fields, not combo boxes. + + + combo box flag. + + + Holds value of property rotation. + + + Holds value of property visibility. + + + Holds value of property fieldName. + + + Holds value of property options. + + + Holds value of property maxCharacterLength. + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the border width in points. To eliminate the border + set the border color to null. + @param borderWidth the border width in points + + + Sets the border style. The styles are found in PdfBorderDictionary + and can be STYLE_SOLID, STYLE_DASHED, + STYLE_BEVELED, STYLE_INSET and + STYLE_UNDERLINE. + @param borderStyle the border style + + + Sets the border color. Set to null to remove + the border. + @param borderColor the border color + + + Sets the background color. Set to null for + transparent background. + @param backgroundColor the background color + + + Sets the text color. If null the color used + will be black. + @param textColor the text color + + + Sets the text font. If null then Helvetica + will be used. + @param font the text font + + + Sets the font size. If 0 then auto-sizing will be used but + only for text fields. + @param fontSize the font size + + + Sets the text horizontal alignment. It can be Element.ALIGN_LEFT, + Element.ALIGN_CENTER and Element.ALIGN_RIGHT. + @param alignment the text horizontal alignment + + + Sets the text for text fields. + @param text the text + + + Sets the field dimension and position. + @param box the field dimension and position + + + Sets the field rotation. This value should be the same as + the page rotation where the field will be shown. + @param rotation the field rotation + + + Convenience method to set the field rotation the same as the + page rotation. + @param page the page + + + Sets the field visibility flag. This flags can be one of + VISIBLE, HIDDEN, VISIBLE_BUT_DOES_NOT_PRINT + and HIDDEN_BUT_PRINTABLE. + @param visibility field visibility flag + + + Sets the field name. + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the option flags. The option flags can be a combination by oring of + READ_ONLY, REQUIRED, + MULTILINE, DO_NOT_SCROLL, + PASSWORD, FILE_SELECTION, + DO_NOT_SPELL_CHECK and EDIT. + @param options the option flags + + + Sets the maximum length of the field�s text, in characters. + It is only meaningful for text fields. + @param maxCharacterLength the maximum length of the field�s text, in characters + + + Moves the field keys from from to to. The moved keys + are removed from from. + @param from the source + @param to the destination. It may be null + + + + Summary description for BaseFont. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + The maximum height above the baseline reached by glyphs in this + font, excluding the height of glyphs for accented characters. + + + The y coordinate of the top of flat capital letters, measured from + the baseline. + + + The maximum depth below the baseline reached by glyphs in this + font. The value is a negative number. + + + The angle, expressed in degrees counterclockwise from the vertical, + of the dominant vertical strokes of the font. The value is + negative for fonts that slope to the right, as almost all italic fonts do. + + + The lower left x glyph coordinate. + + + The lower left y glyph coordinate. + + + The upper right x glyph coordinate. + + + The upper right y glyph coordinate. + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + java.awt.Font property + + + The underline position. Usually a negative value. + + + The underline thickness. + + + The strikethrough position. + + + The strikethrough thickness. + + + The recommended vertical size for subscripts for this font. + + + The recommended vertical offset from the baseline for subscripts for this font. Usually a negative value. + + + The recommended vertical size for superscripts for this font. + + + The recommended vertical offset from the baseline for superscripts for this font. + + + The weight class of the font, as defined by the font author + @since 5.0.2 + + + The width class of the font, as defined by the font author + @since 5.0.2 + + + The entry of PDF FontDescriptor dictionary. + (Optional; PDF 1.5; strongly recommended for Type 3 fonts in Tagged PDF documents) + The weight (thickness) component of the fully-qualified font name or font specifier. + A value larger than 500 indicates bold font-weight. + + + The font is Type 1. + + + The font is True Type with a standard encoding. + + + The font is CJK. + + + The font is True Type with a Unicode encoding. + + + A font already inside the document. + + + A Type3 font. + + + The Unicode encoding with horizontal writing. + + + The Unicode encoding with vertical writing. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + A possible encoding. + + + default array of six numbers specifying the font matrix, mapping glyph space to text space + + + if the font has to be embedded + + + if the font doesn't have to be embedded + + + if the font has to be cached + + + if the font doesn't have to be cached + + + The path to the font resources. + + + The fake CID code that represents a newline. + + + * Unicode Character 'PARAGRAPH SEPARATOR' (U+2029) + * Treated as a line feed character in XFA rich and plain text. + * @since 5.4.3 + + + The font type. + + + a not defined character in a custom PDF encoding + + + table of characters widths for this encoding + + + encoding names + + + same as differences but with the unicode codes + + + encoding used with this font + + + true if the font is to be embedded in the PDF + + + The compression level for the font stream. + @since 2.1.3 + + + true if the font must use its built in encoding. In that case the + encoding is only used to map a char to the position inside + the font, not to the expected char name. + + + cache for the fonts already used. + + + list of the 14 built in fonts. + + + Forces the output of the width array. Only matters for the 14 + built-in fonts. + + + Converts char directly to byte + by casting. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Custom encodings use this map to key the Unicode character + to the single byte code. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + + + Generates the PDF stream with the Type1 and Truetype fonts returning + a PdfStream. + @param contents the content of the stream + @param lengths an array of int that describes the several lengths of each part of the font + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Generates the PDF stream for a font. + @param contents the content of a stream + @param subType the subtype of the font. + @param compressionLevel the compression level of the Stream + @throws DocumentException error in the stream compression + @since 2.1.3 (replaces the constructor without param compressionLevel) + + + Creates new BaseFont + + + Creates a new font. This will always be the default Helvetica font (not embedded). + This method is introduced because Helvetica is used in many examples. + @return a BaseFont object (Helvetica, Winansi, not embedded) + @throws IOException This shouldn't occur ever + @throws DocumentException This shouldn't occur ever + @since 2.1.1 + + + + + + + + Creates a font based on an existing document font. The created font font may not + behave as expected, depending on the encoding or subset. + @param fontRef the reference to the document font + @return the font + + + Indicates whether the font is used for verticl writing or not. + @return true if the writing mode is vertical for the given font, false otherwise. + + + Gets the name without the modifiers Bold, Italic or BoldItalic. + @param name the full name of the font + @return the name without the modifiers Bold, Italic or BoldItalic + + + Normalize the encoding names. "winansi" is changed to "Cp1252" and + "macroman" is changed to "MacRoman". + @param enc the encoding to be normalized + @return the normalized encoding + + + Creates the widths and the differences arrays + @throws UnsupportedEncodingException the encoding is not supported + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Gets the descent of a String in normalized 1000 units. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @return the dexcent in normalized 1000 units + + + Gets the ascent of a String in normalized 1000 units. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @return the ascent in normalized 1000 units + + + Gets the descent of a String in points. The descent will always be + less than or equal to zero even if all the characters have an higher descent. + @param text the String to get the descent of + @param fontSize the size of the font + @return the dexcent in points + + + Gets the ascent of a String in points. The ascent will always be + greater than or equal to zero even if all the characters have a lower ascent. + @param text the String to get the ascent of + @param fontSize the size of the font + @return the ascent in points + + + Gets the width of a String in points taking kerning + into account. + @param text the String to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a string in points. + @param text the string to get the witdth of + @param fontSize the font size + @return the width in points + + + Gets the width of a char in points. + @param char1 the char to get the witdth of + @param fontSize the font size + @return the width in points + + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program (if possible). + This method will return null for some types of fonts (CJKFont, Type3Font) + or if there is no font program available (standard Type 1 fonts). + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the encoding used to convert string into byte[]. + @return the encoding name + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the font type. The font types can be: FONT_TYPE_T1, + FONT_TYPE_TT, FONT_TYPE_CJK and FONT_TYPE_TTUNI. + @return the font type + + + Gets the embedded flag. + @return true if the font is embedded. + + + Gets the symbolic flag of the font. + @return true if the font is symbolic + + + Creates a unique subset prefix to be added to the font name when the font is embedded and subset. + @return the subset prefix + + + Gets the Unicode character corresponding to the byte output to the pdf stream. + @param index the byte index + @return the Unicode character + + + Gets the postscript font name. + @return the postscript font name + + + + + + Gets all the names from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), GetFamilyFontName(), GetFullFontName()} + + + Gets all the entries of the namestable from the font. Only the required tables are read. + @param name the name of the font + @param encoding the encoding of the font + @param ttfAfm the true type font or the afm in a byte array + @throws DocumentException on error + @throws IOException on error + @return an array of Object[] built with {getPostscriptFontName(), getFamilyFontName(), getFullFontName()} + + + + Gets the code pages supported by the font. This has only meaning + with True Type fonts. + @return the code pages supported by the font + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcFile the file name of the font + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Enumerates the postscript font names present inside a + True Type Collection. + @param ttcArray the font as a byte array + @throws DocumentException on error + @throws IOException on error + @return the postscript font names + + + Gets the font width array. + @return the font width array + + + Gets the array with the names of the characters. + @return the array with the names of the characters + + + Gets the array with the unicode characters. + @return the array with the unicode characters + + + Set to true to force the generation of the + widths array. + @param forceWidthsOutput true to force the generation of the + widths array + + + Sets the conversion of char directly to byte + by casting. This is a low level feature to put the bytes directly in + the content stream without passing through string.GetBytes(). + @param directTextToByte New value of property directTextToByte. + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. When set to true + only the glyphs used will be included in the font. When set to false + and {@link #addSubsetRange(int[])} was not called the full font will be included + otherwise just the characters ranges will be included. + @param subset new value of property subset + + + + Gets the CID code given an Unicode. + It has only meaning with CJK fonts. + @param c the Unicode + @return the CID equivalent + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Gets a list of all document fonts. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @return the list of fonts and references + + + Gets a list of the document fonts in a particular page. Each element of the ArrayList + contains a Object[]{String,PRIndirectReference} with the font name + and the indirect reference to it. + @param reader the document where the fonts are to be listed from + @param page the page to list the fonts from + @return the list of fonts and references + + + Gets the smallest box enclosing the character contours. It will return + null if the font has not the information or the character has no + contours, as in the case of the space, for example. Characters with no contours may + also return [0,0,0,0]. + @param c the character to get the contour bounding box from + @return an array of four floats with the bounding box in the format [llx,lly,urx,ury] or + null + + + Gets default array of six numbers specifying the font matrix, mapping glyph space to text space + @return an array of six values + null + + + iText expects Arabic Diactrics (tashkeel) to have zero advance but some fonts, + most notably those that come with Windows, like times.ttf, have non-zero + advance for those characters. This method makes those character to have zero + width advance and work correctly in the iText Arabic shaping and reordering + context. + + + Adds a character range when subsetting. The range is an int array + where the first element is the start range inclusive and the second element is the + end range inclusive. Several ranges are allowed in the same array. + @param range the character range + + + Sets the compression level to be used for the font streams. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + Does all the line bidirectional processing with PdfChunk assembly. + + @author Paulo Soares + + + Creates new BidiLine + + + Call this after processLine() to know if any word was split into several lines. + @return + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @return the sum of all widths + + + Gets the width of a range of characters. + @param startIdx the first index to calculate + @param lastIdx the last inclusive index to calculate + @param originalWidth the full width of the line. It is used in case of RTL and tab stops + @return the sum of all widths + + + Method that changes a String with Arabic characters into a String in which the ligatures are made. + @param s the original String + @param runDirection + @param arabicOptions + @return the String with the ligaturesc + + + Left-to-right + + + Left-to-Right Embedding + + + Left-to-Right Override + + + Right-to-Left + + + Right-to-Left Arabic + + + Right-to-Left Embedding + + + Right-to-Left Override + + + Pop Directional Format + + + European Number + + + European Number Separator + + + European Number Terminator + + + Arabic Number + + + Common Number Separator + + + Non-Spacing Mark + + + Boundary Neutral + + + Paragraph Separator + + + Segment Separator + + + Whitespace + + + Other Neutrals + + + Minimum bidi type value. + + + Maximum bidi type value. + + + Initialize using an array of direction types. Types range from TYPE_MIN to TYPE_MAX inclusive + and represent the direction codes of the characters in the text. + + @param types the types array + + + Initialize using an array of direction types and an externally supplied paragraph embedding level. + The embedding level may be -1, 0, or 1. -1 means to apply the default algorithm (rules P2 and P3), + 0 is for LTR paragraphs, and 1 is for RTL paragraphs. + + @param types the types array + @param paragraphEmbeddingLevel the externally supplied paragraph embedding level. + + + The algorithm. + Does not include line-based processing (Rules L1, L2). + These are applied later in the line-based phase of the algorithm. + + + + + Rules X9. + Remove explicit codes so that they may be ignored during the remainder + of the main portion of the algorithm. The length of the resulting text + is returned. + @return the length of the data excluding explicit codes and BN. + + + Reinsert levels information for explicit codes. + This is for ease of relating the level information + to the original input data. Note that the levels + assigned to these codes are arbitrary, they're + chosen so as to avoid breaking level runs. + @param textLength the length of the data after compression + @return the length of the data (original length of + types array supplied to constructor) + + + 2) determining explicit levels + Rules X1 - X8 + + The interaction of these rules makes handling them a bit complex. + This examines resultTypes but does not modify it. It returns embedding and + override information in the result array. The low 7 bits are the level, the high + bit is set if the level is an override, and clear if it is an embedding. + + + 3) resolving weak types + Rules W1-W7. + + Note that some weak types (EN, AN) remain after this processing is complete. + + + 6) resolving neutral types + Rules N1-N2. + + + 7) resolving implicit embedding levels + Rules I1, I2. + + + + Return multiline reordering array for a given level array. + Reordering does not occur across a line break. + + + Return reordering array for a given level array. This reorders a single line. + The reordering is a visual to logical map. For example, + the leftmost char is string.CharAt(order[0]). + Rule L2. + + + Return the base level of the paragraph. + + + Return true if the type is considered a whitespace type for the line break rules. + + + Return the strong type (L or R) corresponding to the level. + + + Return the limit of the run starting at index that includes only resultTypes in validSet. + This checks the value at index, and will return index if that value is not in validSet. + + + Return the start of the run including index that includes only resultTypes in validSet. + This assumes the value at index is valid, and does not check it. + + + Set resultTypes from start up to (but not including) limit to newType. + + + Set resultLevels from start up to (but not including) limit to newLevel. + + + Throw exception if type array is invalid. + + + Throw exception if paragraph embedding level is invalid. Special allowance for -1 so that + default processing can still be performed when using this API. + + + Throw exception if line breaks array is invalid. + + + Acts like a StringBuilder but works with byte arrays. + floating point is converted to a format suitable to the PDF. + @author Paulo Soares + + + The count of bytes in the buffer. + + + The buffer where the bytes are stored. + + + If true always output floating point numbers with 6 decimal digits. + If false uses the faster, although less precise, representation. + + + Creates new ByteBuffer with capacity 128 + + + Creates a byte buffer with a certain capacity. + @param size the initial capacity + + + + You can fill the cache in advance if you want to. + + @param decimals + + + Converts an double (multiplied by 100 and cast to an int) into an array of bytes. + + @param i the int + @return a bytearray + + + Appends an int. The size of the array will grow by one. + @param b the int to be appended + @return a reference to this ByteBuffer object + + + Appends the subarray of the byte array. The buffer will grow by + len bytes. + @param b the array to be appended + @param off the offset to the start of the array + @param len the length of bytes to Append + @return a reference to this ByteBuffer object + + + Appends an array of bytes. + @param b the array to be appended + @return a reference to this ByteBuffer object + + + Appends a string to the buffer. The string is + converted according to the encoding ISO-8859-1. + @param str the string to be appended + @return a reference to this ByteBuffer object + + + Appends a char to the buffer. The char is + converted according to the encoding ISO-8859-1. + @param c the char to be appended + @return a reference to this ByteBuffer object + + + Appends another ByteBuffer to this buffer. + @param buf the ByteBuffer to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of an int. + @param i the int to be appended + @return a reference to this ByteBuffer object + + + Appends the string representation of a long. + @param i the long to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a float according + to the Pdf conventions. + @param i the float to be appended + @return a reference to this ByteBuffer object + + + Appends a string representation of a double according + to the Pdf conventions. + @param d the double to be appended + @return a reference to this ByteBuffer object + + + Outputs a double into a format suitable for the PDF. + @param d a double + @return the string representation of the double + + + Outputs a double into a format suitable for the PDF. + @param d a double + @param buf a ByteBuffer + @return the String representation of the double if + buf is null. If buf is not null, + then the double is appended directly to the buffer and this methods returns null. + + + Sets the size to zero. + + + Creates a newly allocated byte array. Its size is the current + size of this output stream and the valid contents of the buffer + have been copied into it. + + @return the current contents of this output stream, as a byte array. + + + Returns the current size of the buffer. + + @return the value of the count field, which is the number of valid bytes in this byte buffer. + + + Converts the buffer's contents into a string, translating bytes into + characters according to the platform's default character encoding. + + @return string translated from the buffer's contents. + + + Writes the complete contents of this byte buffer output to + the specified output stream argument, as if by calling the output + stream's write method using out.Write(buf, 0, count). + + @param out the output stream to which to write the data. + @exception IOException if an I/O error occurs. + + + List items for the linked list that builds the new CID font. + + + remember the current offset and increment by item's size in bytes. + + + Emit the byte stream for this item. + + + Fix up cross references to this item (applies only to markers). + + + set the value of an offset item that was initially unknown. + It will be fixed up latex by a call to xref on some marker. + + + A range item. + + + An index-offset item for the list. + The size denotes the required size in the CFF. A positive + value means that we need a specific size in bytes (for offset arrays) + and a negative value means that this is a dict item that uses a + variable-size representation. + + + + @author orly manor + + TODO To change the template for this generated type comment go to + Window - Preferences - Java - Code Generation - Code and Comments + + + an unknown offset in a dictionary for the list. + We will fix up the offset later; for now, assume it's large. + + + Card24 item. + + + Card32 item. + + + A SID or Card16 item. + + + A Card8 item. + + + A dictionary number on the list. + This implementation is inefficient: it doesn't use the variable-length + representation. + + + An offset-marker item for the list. + It is used to mark an offset and to set the offset list item. + + + a utility that creates a range item for an entire index + + @param indexOffset where the index is + @return a range item representing the entire index + + + get a single CID font. The PDF architecture (1.4) + supports 16-bit strings only with CID CFF fonts, not + in Type-1 CFF fonts, so we convert the font to CID if + it is in the Type-1 format. + Two other tasks that we need to do are to select + only a single font from the CFF package (this again is + a PDF restriction) and to subset the CharStrings glyph + description. + + + A random Access File or an array + (contributed by orly manor) + + + + + The Strings in this array represent Type1/Type2 operator names + + + The Strings in this array represent Type1/Type2 escape operator names + + + Operator codes for unused CharStrings and unused local and global Subrs + + + A HashMap containing the glyphs used in the text after being converted + to glyph number by the CMap + + + The GlyphsUsed keys as an ArrayList + + + A HashMap for keeping the FDArrays being used by the font + + + A HashMaps array for keeping the subroutines used in each FontDict + + + The SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the Global subroutines used in the font + + + The Global SubroutinesUsed HashMaps as ArrayLists + + + A HashMap for keeping the subroutines used in a non-cid font + + + The SubroutinesUsed HashMap as ArrayList + + + An array of the new Indexs for the local Subr. One index for each FontDict + + + The new subroutines index for a non-cid font + + + The new global subroutines index of the font + + + The new CharString of the font + + + The bias for the global subroutines + + + The linked list for generating the new font stream + + + Number of arguments to the stem operators in a subroutine calculated recursivly + + + C'tor for CFFFontSubset + @param rf - The font file + @param GlyphsUsed - a HashMap that contains the glyph used in the subset + + + Calculates the length of the charset according to its format + @param Offset The Charset Offset + @param NumofGlyphs Number of glyphs in the font + @return the length of the Charset + + + Function calculates the number of ranges in the Charset + @param NumofGlyphs The number of glyphs in the font + @param Type The format of the Charset + @return The number of ranges in the Charset data structure + + + Read the FDSelect of the font and compute the array and its length + @param Font The index of the font being processed + @return The Processed FDSelect of the font + + + Function reads the FDSelect and builds the FDArrayUsed HashMap According to the glyphs used + @param Font the Number of font being processed + + + Read the FDArray count, offsize and Offset array + @param Font + + + The Process function extracts one font out of the CFF file and returns a + subset version of the original. + @param fontName - The name of the font to be taken out of the CFF + @return The new font stream + @throws IOException + + + Function calcs bias according to the CharString type and the count + of the subrs + @param Offset The offset to the relevent subrs index + @param Font the font + @return The calculated Bias + + + Function uses BuildNewIndex to create the new index of the subset charstrings + @param FontIndex the font + @throws IOException + + + + The function finds for the FD array processed the local subr offset and its + offset array. + @param Font the font + @param FD The FDARRAY processed + + + + + The function reads a subrs (glyph info) between begin and end. + Adds calls to a Lsubr to the hSubr and lSubrs. + Adds calls to a Gsubr to the hGSubr and lGSubrs. + @param begin the start point of the subr + @param end the end point of the subr + @param GBias the bias of the Global Subrs + @param LBias the bias of the Local Subrs + @param hSubr the HashMap for the lSubrs + @param lSubr the ArrayList for the lSubrs + + + Function Checks how the current operator effects the run time stack after being run + An operator may increase or decrease the stack size + + + Function checks the key and return the change to the stack after the operator + @return The change in the stack. 2-> flush the stack + + + Empty the Type2 Stack + + + + Pop one element from the stack + + + + Add an item to the stack + + + + The function reads the next command after the file pointer is set + + + The function reads the subroutine and returns the number of the hint in it. + If a call to another subroutine is found the function calls recursively. + @param begin the start point of the subr + @param end the end point of the subr + @param LBias the bias of the Local Subrs + @param GBias the bias of the Global Subrs + @param LSubrsOffsets The Offsets array of the subroutines + @return The number of hints in the subroutine read. + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param Used the hashmap of the used objects + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function builds the new offset array, object array and assembles the index. + used for creating the glyph and subrs subsetted index + @param Offsets the offset array of the original index + @param OperatorForUnusedEntries the operator inserted into the data stream for unused entries + @return the new index subset version + @throws IOException + + + Function creates the new index, inserting the count,offsetsize,offset array + and object array. + @param NewOffsets the subsetted offset array + @param NewObjects the subsetted object array + @return the new index created + + + The function builds the new output stream according to the subset process + @param Font the font + @return the subseted font stream + @throws IOException + + + Function Copies the header from the original fileto the output list + + + Function Build the header of an index + @param Count the count field of the index + @param Offsize the offsize field of the index + @param First the first offset of the index + + + Function adds the keys into the TopDict + @param fdarrayRef OffsetItem for the FDArray + @param fdselectRef OffsetItem for the FDSelect + @param charsetRef OffsetItem for the CharSet + @param charstringsRef OffsetItem for the CharString + + + Function takes the original string item and adds the new strings + to accomodate the CID rules + @param Font the font + + + Function creates new FDSelect for non-CID fonts. + The FDSelect built uses a single range for all glyphs + @param fdselectRef OffsetItem for the FDSelect + @param nglyphs the number of glyphs in the font + + + Function creates new CharSet for non-CID fonts. + The CharSet built uses a single range for all glyphs + @param charsetRef OffsetItem for the CharSet + @param nglyphs the number of glyphs in the font + + + Function creates new FDArray for non-CID fonts. + The FDArray built has only the "Private" operator that points to the font's + original private dict + @param fdarrayRef OffsetItem for the FDArray + @param privateRef OffsetItem for the Private Dict + @param Font the font + + + Function reconstructs the FDArray, PrivateDict and LSubr for CID fonts + @param Font the font + @throws IOException + + + Function subsets the FDArray and builds the new one with new offsets + @param Font The font + @param fdPrivate OffsetItem Array (one for each FDArray) + @throws IOException + + + Function Adds the new private dicts (only for the FDs used) to the list + @param Font the font + @param fdPrivate OffsetItem array one element for each private + @param fdPrivateBase IndexBaseItem array one element for each private + @param fdSubrs OffsetItem array one element for each private + @throws IOException + + + Function Adds the new LSubrs dicts (only for the FDs used) to the list + @param Font The index of the font + @param fdPrivateBase The IndexBaseItem array for the linked list + @param fdSubrs OffsetItem array for the linked list + @throws IOException + + + Calculates how many byte it took to write the offset for the subrs in a specific + private dict. + @param Offset The Offset for the private dict + @param Size The size of the private dict + @return The size of the offset of the subrs in the private dict + + + Function computes the size of an index + @param indexOffset The offset for the computed index + @return The size of the index + + + The function creates a private dict for a font that was not CID + All the keys are copied as is except for the subrs key + @param Font the font + @param Subr The OffsetItem for the subrs of the private + + + the function marks the beginning of the subrs index and adds the subsetted subrs + index to the output list. + @param Font the font + @param PrivateBase IndexBaseItem for the private that's referencing to the subrs + @param Subrs OffsetItem for the subrs + @throws IOException + + + Creates a CJK font compatible with the fonts in the Adobe Asian font Pack. + + @author Paulo Soares + + + The encoding used in the PDF document for CJK fonts + + + The path to the font resources. + + + The font name + + + The style modifier + + + The CMap name associated with this font + + + Creates a CJK font. + @param fontName the name of the font + @param enc the encoding of the font + @param emb always false. CJK font and not embedded + @throws DocumentException on error + @throws IOException on error + + + Returns a font compatible with a CJK encoding or null if not found. + @param enc + @return + + + Checks if its a valid CJK font. + @param fontName the font name + @param enc the encoding + @return true if it is CJK font + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + You can't get the FontStream of a CJK font (CJK fonts are never embedded), + so this method always returns null. + @return null + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + + + Implementation of DocumentFont used while parsing PDF streams. + @since 2.1.4 + + + The font dictionary. + + + the width of a space for this font, in normalized 1000 point units + + + The CMap constructed from the ToUnicode map from the font's dictionary, if present. + This CMap transforms CID values into unicode equivalent + + + Mapping between CID code (single byte only for now) and unicode equivalent + as derived by the font's encoding. Only needed if the ToUnicode CMap is not provided. + + + Creates an instance of a CMapAwareFont based on an indirect reference to a font. + @param refFont the indirect reference to a font + + + Parses the ToUnicode entry, if present, and constructs a CMap for it + @since 2.1.7 + + + Inverts DocumentFont's uni2byte mapping to obtain a cid-to-unicode mapping based + on the font's encoding + @since 2.1.7 + + + For all widths of all glyphs, compute the average width in normalized 1000 point units. + This is used to give some meaningful width in cases where we need an average font width + (such as if the width of a space isn't specified by a given font) + @return the average width of all non-zero width glyphs in the font + + + @since 2.1.5 + Override to allow special handling for fonts that don't specify width of space character + @see com.itextpdf.text.pdf.DocumentFont#getWidth(int) + + + Decodes a single CID (represented by one or two bytes) to a unicode String. + @param bytes the bytes making up the character code to convert + @param offset an offset + @param len a length + @return a String containing the encoded form of the input bytes using the font's encoding. + + + Decodes a string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + @since 2.1.7 + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character string of bytes (encoded in the font's encoding) into a unicode string + This will use the ToUnicode map of the font, if available, otherwise it uses + the font's encoding + @param cidbytes the bytes that need to be decoded + @return the unicode String that results from decoding + + + Encodes bytes to a String. + @param bytes the bytes from a stream + @param offset an offset + @param len a length + @return a String encoded taking into account if the bytes are in unicode or not. + @deprecated method name is not indicative of what it does. Use decode instead. + + + + @author Paulo Soares + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + A type of PDF Collection + + + Constructs a PDF Collection. + @param type the type of PDF collection. + + + Identifies the document that will be initially presented + in the user interface. + @param description the description that was used when attaching the file to the document + + + Sets the Collection schema dictionary. + @param schema an overview of the collection fields + + + Sets the Collection sort dictionary. + @param sort a collection sort dictionary + + + @author blowagie + + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + A possible type of collection field. + + + The type of the PDF collection field. + + + Creates a PdfCollectionField. + @param name the field name + @param type the field type + + + The relative order of the field name. Fields are sorted in ascending order. + @param i a number indicating the order of the field + + + Sets the initial visibility of the field. + @param visible the default is true (visible) + + + Indication if the field value should be editable in the viewer. + @param editable the default is false (not editable) + + + Checks if the type of the field is suitable for a Collection Item. + + + Returns a PdfObject that can be used as the value of a Collection Item. + @param String value the value that has to be changed into a PdfObject (PdfString, PdfDate or PdfNumber) + + + The PdfCollectionSchema with the names and types of the items. + + + Constructs a Collection Item that can be added to a PdfFileSpecification. + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Sets the value of the collection item. + @param value + + + Adds a prefix for the Collection item. + You can only use this method after you have set the value of the item. + @param prefix a prefix + + + Creates a Collection Schema dictionary. + + + Adds a Collection field to the Schema. + @param name the name of the collection field + @param field a Collection Field + + + Constructs a PDF Collection Sort Dictionary. + @param key the key of the field that will be used to sort entries + + + Constructs a PDF Collection Sort Dictionary. + @param keys the keys of the fields that will be used to sort entries + + + Defines the sort order of the field (ascending or descending). + @param ascending true is the default, use false for descending order + + + Defines the sort order of the field (ascending or descending). + @param ascending an array with every element corresponding with a name of a field. + + + Creates dictionary referring to a target document that is the parent of the current document. + @param nested null if this is the actual target, another target if this is only an intermediate target. + + + Creates a dictionary referring to a target document. + @param child if false, this refers to the parent document; if true, this refers to a child document, and you'll have to specify where to find the child using the other methods of this class + + + If this dictionary refers to a child that is a document level attachment, + you need to specify the name that was used to attach the document. + @param name the name in the EmbeddedFiles name tree + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the name of the page (or use setFileAttachmentPage to specify the page number). + Once you have specified the page, you still need to specify the attachment using another method. + @param name the named destination referring to the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page number (or use setFileAttachmentPagename to specify a named destination). + Once you have specified the page, you still need to specify the attachment using another method. + @param page the page number of the page with the file attachment. + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the name of the attachment added to this page (or use setFileAttachmentIndex). + @param name the name of the attachment + + + If this dictionary refers to a child that is a file attachment added to a page, + you need to specify the page with setFileAttachmentPage or setFileAttachmentPageName, + and then specify the index of the attachment added to this page (or use setFileAttachmentName). + @param name the name of the attachment + + + If this dictionary refers to an intermediate target, you can + add the next target in the sequence. + @param nested the next target in the sequence + + + Each colorSpace in the document will have an instance of this class + + @author Phillip Pan (phillip@formstar.com) + + + The indirect reference to this color + + + The color name that appears in the document body stream + + + The color + + + Each spot color used in a document has an instance of this class. + @param colorName the color name + @param indirectReference the indirect reference to the font + @param scolor the PDfSpotColor + + + Gets the indirect reference to this color. + @return the indirect reference to this color + + + Gets the color name as it appears in the document body. + @return the color name + + + Gets the SpotColor object. + @return the PdfSpotColor + + + + Eliminate the arabic vowels + + + Compose the tashkeel in the ligatures. + + + Do some extra double ligatures. + + + Digit shaping option: Replace European digits (U+0030...U+0039) by Arabic-Indic digits. + + + Digit shaping option: Replace Arabic-Indic digits by European digits (U+0030...U+0039). + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be not an Arabic, + letter, so European digits at the start of the text will not change. + Compare to DIGITS_ALEN2AN_INIT_AL. + + + Digit shaping option: + Replace European digits (U+0030...U+0039) by Arabic-Indic digits + if the most recent strongly directional character + is an Arabic letter (its Bidi direction value is RIGHT_TO_LEFT_ARABIC). + The initial state at the start of the text is assumed to be an Arabic, + letter, so European digits at the start of the text will change. + Compare to DIGITS_ALEN2AN_INT_LR. + + + Digit type option: Use Arabic-Indic digits (U+0660...U+0669). + + + Digit type option: Use Eastern (Extended) Arabic-Indic digits (U+06f0...U+06f9). + + + Signals that there is no more text available. + + + Signals that there is no more column. + + + The column is valid. + + + The line is out the column limits. + + + The line cannot fit this column position. + + + Upper bound of the column. + + + Lower bound of the column. + + + The column Element. Default is left Element. + + + The left column bound. + + + The right column bound. + + + The chunks that form the text. + + + The current y line location. Text will be written at this line minus the leading. + + + The X position after the last line that has been written. + @since 5.0.3 + + + The leading for the current line. + + + The fixed text leading. + + + The text leading that is multiplied by the biggest font size in the line. + + + The PdfContent where the text will be written to. + + + The line status when trying to fit a line to a column. + + + The first paragraph line indent. + + + The following paragraph lines indent. + + + The right paragraph lines indent. + + + The extra space between paragraphs. + + + The width of the line when the column is defined as a simple rectangle. + + + Holds value of property spaceCharRatio. + + + Holds value of property linesWritten. + + + Holds value of property arabicOptions. + + + Pointer for the row in a table that is being dealt with + @since 5.1.0 + + + The index of the last row that needed to be splitted. + @since 5.0.1 changed a boolean into an int + -2 value mean it is the first attempt to split the first row. + -1 means that we try to avoid splitting current row. + + + if true, first line height is adjusted so that the max ascender touches the top + + + @since 5.4.2 + + + Creates a ColumnText. + @param text the place where the text will be written to. Can + be a template. + + + Creates an independent duplicated of the instance org. + @param org the original ColumnText + @return the duplicated + + + Makes this instance an independent copy of org. + @param org the original ColumnText + @return itself + + + Adds a Phrase to the current text array. + @param phrase the text + + + Replaces the current text array with this Phrase. + Anything added previously with AddElement() is lost. + @param phrase the text + + + Adds a Chunk to the current text array. + Will not have any effect if AddElement() was called before. + @param chunk the text + + + + + Finds the intersection between the yLine and the column. It will + set the lineStatus apropriatly. + @param wall the column to intersect + @return the x coordinate of the intersection + + + Finds the intersection between the yLine and the two + column bounds. It will set the lineStatus apropriatly. + @return a float[2]with the x coordinates of the intersection + + + Finds the intersection between the yLine, + the yLine-leadingand the two + column bounds. It will set the lineStatus apropriatly. + @return a float[4]with the x coordinates of the intersection + + + Sets the columns bounds. Each column bound is described by a + float[] with the line points [x1,y1,x2,y2,...]. + The array must have at least 4 elements. + @param leftLine the left column bound + @param rightLine the right column bound + + + Simplified method for rectangular columns. + @param phrase a Phrase + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx the lower left x corner + @param lly the lower left y corner + @param urx the upper right x corner + @param ury the upper right y corner + @param leading the leading + @param alignment the column alignment + + + Simplified method for rectangular columns. + @param llx + @param lly + @param urx + @param ury + + + Simplified method for rectangular columns. + @param rect the rectangle for the column + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the yLine. + @return the yLine + + + Gets the number of rows that were drawn when a table is involved. + + + Gets the Element. + @return the alignment + + + Gets the first paragraph line indent. + @return the indent + + + Sets the first paragraph line indent. + + @param indent the indent + @param repeatFirstLineIndent do we need to repeat the indentation of the first line after a newline? + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the currentLeading. + + @return the currentLeading + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Call this after go() to know if any word was split into several lines. + @return + + + Sets the extra space between paragraphs. + @return the extra space between paragraphs + + + Clears the chunk array. A call to go() will always return + NO_MORE_TEXT. + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction. + @return the run direction + + + Gets the number of lines written. + @return the number of lines written + + + Gets the X position of the end of the last line that has been written + (will not work in simulation mode!). + @since 5.0.3 + + + Sets the arabic shaping options. The option can be AR_NOVOWEL, + AR_COMPOSEDTASHKEEL and AR_LIG. + @param arabicOptions the arabic shaping options + + + Gets the biggest descender value of the last line written. + @return the biggest descender value of the last line written + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + @return the width of the line + + + Gets the width that the line will occupy after writing. + Only the width of the first line is returned. + @param phrase the Phrase containing the line + @return the width of the line + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment. It is not influenced by the run direction + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + @param runDirection the run direction + @param arabicOptions the options for the arabic shaping + + + Shows a line of text. Only the first line is written. + @param canvas where the text is to be written to + @param alignment the alignment + @param phrase the Phrase with the text + @param x the x reference position + @param y the y reference position + @param rotation the rotation to be applied in degrees counterclockwise + + + Fits the text to some rectangle adjusting the font size as needed. + @param font the font to use + @param text the text + @param rect the rectangle where the text must fit + @param maxFontSize the maximum font size + @param runDirection the run direction + @return the calculated font size that makes the text fit + + + Sets the canvas. + @param canvas + + + Sets the canvases. + @param canvas + + + Checks if the element has a height of 0. + @return true or false + @since 2.1.2 + + + Enables/Disables adjustment of first line height based on max ascender. + @param use enable adjustment if true + + + Checks the status variable and looks if there's still some text. + + + Holds value of property filledWidth. + + + Sets the real width used by the largest line. Only used to set it + to zero to start another measurement. + @param filledWidth the real width used by the largest line + + + Replaces the filledWidth if greater than the existing one. + @param w the new filledWidth if greater than the existing one + + + Sets the first line adjustment. Some objects have properties, like spacing before, that + behave differently if the object is the first to be written after go() or not. The first line adjustment is + true by default but can be changed if several objects are to be placed one + after the other in the same column calling go() several times. + @param adjustFirstLine true to adjust the first line, false otherwise + + + Creates an AES Cipher with CBC and no padding. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + Creates a new instance of ARCFOUREncryption + + + An initialization vector generator for a CBC block encryption. It's a random generator based on RC4. + @author Paulo Soares + + + Creates a new instance of IVGenerator + + + Gets a 16 byte random initialization vector. + @return a 16 byte random initialization vector + + + Gets a random initialization vector. + @param len the length of the initialization vector + @return a random initialization vector + + + Creates a new instance of StandardDecryption + + + Creates an AES Cipher with CBC and padding PKCS5/7. + @author Paulo Soares + + + Creates a new instance of AESCipher + + + + An instance of the default SplitCharacter. + + + Default constructor, has no custom characters to check. + + + Constructor with one splittable character. + + @param character char + + + Constructor with an array of splittable characters + + @param characters char[] + + + + Returns the current character + + @param current current position in the array + @param ck chunk array + @param cc the character array that has to be checked + @return the current character + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + Creates a new instance of DocumentFont + + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + + Gets the postscript font name. + @return the postscript font name + + + + Gets the width from the font according to the Unicode char c + or the name. If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + + Always returns null. + @return null + @since 2.1.3 + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Exposes the unicode - > CID map that is constructed from the font's encoding + @return the unicode to CID map + @since 2.1.7 + + + Exposes the CID - > unicode map that is constructed from the font's encoding + @return the CID to unicode map + @since 5.4.0 + + + Gets the difference map + @return the difference map + @since 5.0.5 + + + Element that draws a dotted line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @since 2.1.2 + + + the gap between the dots. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Setter for the gap between the center of the dots of the dotted line. + @param gap the gap between the center of the dots + + + Interface for an Element that allows you to draw something at the current + vertical position. Trivial implementations are LineSeparator and VerticalPositionMark. + It is also used to define what has to be drawn by a separator chunk. + @since 2.1.2 + + + Implement this method if you want to draw something at the current Y position + (for instance a line). + @param canvas the canvas on which you can draw + @param llx the x coordinate of the left page margin + @param lly the y coordinate of the bottom page margin + @param urx the x coordinate of the right page margin + @param ury the y coordinate of the top page margin + @param y the current y position on the page + + + Element that draws a solid line from left to right. + Can be added directly to a document or column. + Can also be used to create a separator chunk. + @author Paulo Soares + @since 2.1.2 + + + The thickness of the line. + + + The width of the line as a percentage of the available page width. + + + The color of the line. + + + The alignment of the line. + + + Creates a new instance of the LineSeparator class. + @param lineWidth the thickness of the line + @param percentage the width of the line as a percentage of the available page width + @param color the color of the line + @param align the alignment + @param offset the offset of the line relative to the current baseline (negative = under the baseline) + + + Creates a new instance of the LineSeparator class. + @param font the font + + + Creates a new instance of the LineSeparator class with + default values: lineWidth 1 user unit, width 100%, centered with offset 0. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + Draws a horizontal line. + @param canvas the canvas to draw on + @param leftX the left x coordinate + @param rightX the right x coordindate + @param y the y coordinate + + + Setter for the line width. + @param lineWidth the thickness of the line that will be drawn. + + + Setter for the width as a percentage of the available width. + @return a width percentage + + + Setter for the color of the line that will be drawn. + @param color a color + + + Setter for the alignment of the line. + @param align an alignment value + + + Helper class implementing the DrawInterface. Can be used to add + horizontal or vertical separators. Won't draw anything unless + you implement the draw method. + @since 2.1.2 + + + Another implementation of the DrawInterface; its draw method will overrule LineSeparator.Draw(). + + + The offset for the line. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + + + Creates a vertical position mark that won't draw anything unless + you define a DrawInterface. + @param drawInterface the drawInterface for this vertical position mark. + @param offset the offset for this vertical position mark. + + + @see com.lowagie.text.pdf.draw.DrawInterface#draw(com.lowagie.text.pdf.PdfContentByte, float, float, float, float, float) + + + @see com.lowagie.text.Element#process(com.lowagie.text.ElementListener) + + + @see com.lowagie.text.Element#type() + + + @see com.lowagie.text.Element#isContent() + + + @see com.lowagie.text.Element#isNestable() + + + @see com.lowagie.text.Element#getChunks() + + + Setter for the interface with the overruling Draw() method. + @param drawInterface a DrawInterface implementation + + + Setter for the offset. The offset is relative to the current + Y position. If you want to underline something, you have to + choose a negative offset. + @param offset an offset + + + Enumerates all the fonts inside a True Type Collection. + + @author Paulo Soares + + + Class for an index. + + @author Michael Niedermair + + + Keeps a map with fields that are to be positioned in inGenericTag. + + + Keeps the form field that is to be positioned in a cellLayout event. + + + The PdfWriter to use when a field has to added in a cell event. + + + The PdfFormField that is the parent of the field added in a cell event. + + + Creates a new event. This constructor will be used if you need to position fields with Chunk objects. + + + Some extra padding that will be taken into account when defining the widget. + + + Add a PdfFormField that has to be tied to a generic Chunk. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + Creates a new event. This constructor will be used if you need to position fields with a Cell Event. + @throws DocumentException + @throws IOException + + + @param padding The padding to set. + + + @param parent The parent to set. + + + @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String) + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + Class for an index. + + @author Michael Niedermair + + + keeps the indextag with the pagenumber + + + All the text that is passed to this event, gets registered in the indexentry. + + @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag( + com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, + com.lowagie.text.Rectangle, java.lang.String) + + + indexcounter + + + the list for the index entry + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text for the Chunk. + @param in1 The first level. + @param in2 The second level. + @return Returns the Chunk. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + @param in3 The third level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + + + Create an index entry. + + @param text The text. + @param in1 The first level. + @param in2 The second level. + + + Comparator for sorting the index + + + Set the comparator. + @param aComparator The comparator to set. + + + Returns the sorted list with the entries and the collected page numbers. + @return Returns the sorted list with the entries and teh collected page numbers. + + + Class for an index entry. +

+ In the first step, only in1, in2,in3 and tag are used. + After the collections of the index entries, pagenumbers are used. +

+
+ + first level + + + second level + + + third level + + + the tag + + + the lsit of all page numbers. + + + the lsit of all tags. + + + Create a new object. + @param aIn1 The first level. + @param aIn2 The second level. + @param aIn3 The third level. + @param aTag The tag. + + + Returns the in1. + @return Returns the in1. + + + Returns the in2. + @return Returns the in2. + + + Returns the in3. + @return Returns the in3. + + + Returns the tag. + @return Returns the tag. + + + Returns the pagenumer for this entry. + @return Returns the pagenumer for this entry. + + + Add a pagenumber. + @param number The page number. + @param tag + + + Returns the key for the map-entry. + @return Returns the key for the map-entry. + + + Returns the pagenumbers. + @return Returns the pagenumbers. + + + Returns the tags. + @return Returns the tags. + + + print the entry (only for test) + @return the toString implementation of the entry + + + If you want to add more than one page eventa to a PdfWriter, + you have to construct a PdfPageEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page eventa to the forwarder. + @param eventa an eventa that has to be added to the forwarder. + + + Called when the document is opened. + + @param writer + the PdfWriter for this document + @param document + the document + + + + Called when a page is finished, just before being written to the + document. + + @param writer + the PdfWriter for this document + @param document + the document + + + + + + + + + + + If you want to add more than one event to a cell, + you have to construct a PdfPCellEventForwarder, add the + different events to this object and add the forwarder to + the PdfPCell. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell, com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[]) + + + If you want to add more than one page event to a PdfPTable, + you have to construct a PdfPTableEventForwarder, add the + different events to this object and add the forwarder to + the PdfWriter. + + + ArrayList containing all the PageEvents that have to be executed. + + + Add a page event to the forwarder. + @param event an event that has to be added to the forwarder. + + + @see com.lowagie.text.pdf.PdfPTableEvent#tableLayout(com.lowagie.text.pdf.PdfPTable, float[][], float[], int, int, com.lowagie.text.pdf.PdfContentByte[]) + + + @see com.itextpdf.text.pdf.PdfPTableEventAfterSplit#afterSplitTable(com.itextpdf.text.pdf.PdfPTable, com.itextpdf.text.pdf.PdfPRow, int) + @since iText 5.4.3 + + + + @author Paulo Soares + + + Constructs an extended color of a certain type and a certain color. + @param type + @param red + @param green + @param blue + @param alpha + + + Reads an FDF form and makes the fields available + @author Paulo Soares + + + Reads an FDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an FDF form. + @param pdfIn the byte array with the form + @throws IOException on error + + + Reads an FDF form. + @param url the URL of the document + @throws IOException on error + + + Reads an FDF form. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field dictionary. + @param name the fully qualified field name + @return the field dictionary + + + Gets a byte[] containing a file that is embedded in the FDF. + @param name the fully qualified field name + @return the bytes of the file + @throws IOException + @since 5.0.1 + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Writes an FDF form. + @author Paulo Soares + + + The PDF file associated with the FDF. + + + Creates a new FdfWriter. + + + Writes the content to a stream. + @param os the stream + @throws DocumentException on error + @throws IOException on error + + + Removes the field value. + @param field the field name + @return true if the field was found and removed, + false otherwise + + + Gets all the fields. The map is keyed by the fully qualified + field name and the values are PdfObject. + @return a map with all the fields + + + Gets the field value. + @param field the field name + @return the field value or null if not found + + + Sets the field value as a name. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a string. + @param field the fully qualified field name + @param value the value + @return true if the value was inserted, + false if the name is incompatible with + an existing field + + + Sets the field value as a PDFAction. + For example, this method allows setting a form submit button action using {@link PdfAction#createSubmitForm(String, Object[], int)}. + This method creates an A entry for the specified field in the underlying FDF file. + Method contributed by Philippe Laflamme (plaflamme) + @param field the fully qualified field name + @param action the field's action + @return true if the value was inserted, + false if the name is incompatible with + an existing field + @since 2.1.5 + + + Sets all the fields from this FdfReader + @param fdf the FdfReader + + + Sets all the fields from this PdfReader + @param pdf the PdfReader + + + Sets all the fields from this AcroFields + @param acro the AcroFields + + + Gets the PDF file name associated with the FDF. + @return the PDF file name associated with the FDF + + + Each font in the document will have an instance of this class + where the characters used will be represented. + + @author Paulo Soares + + + The indirect reference to this font + + + The font name that appears in the document body stream + + + The font + + + The font if its an instance of TrueTypeFontUnicode + + + The array used with single byte encodings + + + The map used with double byte encodings. The key is Int(glyph) and the + value is int[]{glyph, width, Unicode code} + + + The font type + + + true if the font is symbolic + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. + + + Each font used in a document has an instance of this class. + This class stores the characters used in the document and other + specifics unique to the current working document. + @param fontName the font name + @param indirectReference the indirect reference to the font + @param baseFont the BaseFont + + + Gets the indirect reference to this font. + @return the indirect reference to this font + + + Gets the font name as it appears in the document body. + @return the font name + + + Gets the BaseFont of this font. + @return the BaseFont of this font + + + Converts the text into bytes to be placed in the document. + The conversion is done according to the font and the encoding and the characters + used are stored. + @param text the text to convert + @return the conversion + + + Writes the font definition to the document. + @param writer the PdfWriter of this document + + + Indicates if all the glyphs and widths for that particular + encoding should be included in the document. Set to false + to include all. + @param subset new value of property subset + + + + Adds a Font to be searched for valid characters. + @param font the Font + + + Process the text so that it will render with a combination of fonts + if needed. + @param text the text + @return a Phrase with one or more chunks + + + + @author Paulo Soares + + + Hyphenates words automatically accordingly to the language and country. + The hyphenator engine was taken from FOP and uses the TEX patterns. If a language + is not provided and a TEX pattern for it exists, it can be easily adapted. + + @author Paulo Soares + + + The hyphenator engine. + + + The second part of the hyphenated word. + + + Creates a new hyphenation instance usable in Chunk. + @param lang the language ("en" for english, for example) + @param country the country ("GB" for Great-Britain or "none" for no country, for example) + @param leftMin the minimun number of letters before the hyphen + @param rightMin the minimun number of letters after the hyphen + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + return number of items in array + + + returns current capacity of array + + + This is to implement memory allocation in the array. Like Malloc(). + + + + Capacity increment size + + + The encapsulated array + + + Points to next free item + + + Reset Vector but don't resize or clear elements + + + return number of items in array + + + returns current capacity of array + + + + + number of hyphenation points in word + + + rawWord as made of alternating strings and {@link Hyphen Hyphen} + instances + + + @return the number of hyphenation points in the word + + + @return the pre-break text, not including the hyphen character + + + @return the post-break text + + + @return the hyphenation points + + + + + value space: stores the inteletter values + + + This map stores hyphenation exceptions + + + This map stores the character classes + + + Temporary map to store interletter values on pattern loading. + + + Packs the values by storing them in 4 bits, two values into a byte + Values range is from 0 to 9. We use zero as terminator, + so we'll add 1 to the value. + @param values a string of digits from '0' to '9' representing the + interletter values. + @return the index into the vspace array where the packed values + are stored. + + + String compare, returns 0 if equal or + t is a substring of s + + + + Hyphenate word and return a Hyphenation object. + @param word the word to be hyphenated + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + w = "****nnllllllnnn*****", + where n is a non-letter, l is a letter, + all n may be absent, the first n is at offset, + the first l is at offset + iIgnoreAtBeginning; + word = ".llllll.'\0'***", + where all l in w are copied into word. + In the first part of the routine len = w.length, + in the second part of the routine len = word.length. + Three indices are used: + Index(w), the index in w, + Index(word), the index in word, + Letterindex(word), the index in the letter part of word. + The following relations exist: + Index(w) = offset + i - 1 + Index(word) = i - iIgnoreAtBeginning + Letterindex(word) = Index(word) - 1 + (see first loop). + It follows that: + Index(w) - Index(word) = offset - 1 + iIgnoreAtBeginning + Index(w) = Letterindex(word) + offset + iIgnoreAtBeginning + Hyphenate word and return an array of hyphenation points. + @param w char array that contains the word + @param offset Offset to first character in word + @param len Length of word + @param remainCharCount Minimum number of characters allowed + before the hyphenation point. + @param pushCharCount Minimum number of characters allowed after + the hyphenation point. + @return a {@link Hyphenation Hyphenation} object representing + the hyphenated word or null if word is not hyphenated. + + + Add a character class to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} as callback to + add character classes. Character classes define the + valid word characters for hyphenation. If a word contains + a character not defined in any of the classes, it is not hyphenated. + It also defines a way to normalize the characters in order + to compare them with the stored patterns. Usually pattern + files use only lower case characters, in this case a class + for letter 'a', for example, should be defined as "aA", the first + character being the normalization char. + + + Add an exception to the tree. It is used by + {@link SimplePatternParser SimplePatternParser} class as callback to + store the hyphenation exceptions. + @param word normalized word + @param hyphenatedword a vector of alternating strings and + {@link Hyphen hyphen} objects. + + + Add a pattern to the tree. Mainly, to be used by + {@link SimplePatternParser SimplePatternParser} class as callback to + add a pattern to the tree. + @param pattern the hyphenation pattern + @param ivalue interletter weight values indicating the + desirability and priority of hyphenating at a given point + within the pattern. It should contain only digit characters. + (i.e. '0' to '9'). + + + + TODO: Don't use statics + + + @param lang + @param country + @param leftMin + @param rightMin + + + @param lang + @param country + @return the hyphenation tree + + + @param key + @return a hyphenation tree + + + @param lang + @param country + @param word + @param leftMin + @param rightMin + @return a hyphenation object + + + @param lang + @param country + @param word + @param offset + @param len + @param leftMin + @param rightMin + @return a hyphenation object + + + @param min + + + @param min + + + @param lang + @param country + + + @param word + @param offset + @param len + @return a hyphenation object + + + @param word + @return a hyphenation object + + + + Add a character class. + A character class defines characters that are considered + equivalent for the purpose of hyphenation (e.g. "aA"). It + usually means to ignore case. + @param chargroup character group + + + Add a hyphenation exception. An exception replaces the + result obtained by the algorithm for cases for which this + fails or the user wants to provide his own hyphenation. + A hyphenatedword is a vector of alternating String's and + {@link Hyphen Hyphen} instances + + + Add hyphenation patterns. + @param pattern the pattern + @param values interletter values expressed as a string of + digit characters. + + + Parses the xml hyphenation pattern. + + @author Paulo Soares + + + Creates a new instance of PatternParser2 + + +

Ternary Search Tree

+ +

A ternary search tree is a hibrid between a binary tree and + a digital search tree (trie). Keys are limited to strings. + A data value of type char is stored in each leaf node. + It can be used as an index (or pointer) to the data. + Branches that only contain one key are compressed to one node + by storing a pointer to the trailer substring of the key. + This class is intended to serve as base class or helper class + to implement Dictionary collections or the like. Ternary trees + have some nice properties as the following: the tree can be + traversed in sorted order, partial matches (wildcard) can be + implemented, retrieval of all keys within a given distance + from the target, etc. The storage requirements are higher than + a binary tree but a lot less than a trie. Performance is + comparable with a hash table, sometimes it outperforms a hash + function (most of the time can determine a miss faster than a hash).

+ +

The main purpose of this java port is to serve as a base for + implementing TeX's hyphenation algorithm (see The TeXBook, + appendix H). Each language requires from 5000 to 15000 hyphenation + patterns which will be keys in this tree. The strings patterns + are usually small (from 2 to 5 characters), but each char in the + tree is stored in a node. Thus memory usage is the main concern. + We will sacrify 'elegance' to keep memory requirenments to the + minimum. Using java's char type as pointer (yes, I know pointer + it is a forbidden word in java) we can keep the size of the node + to be just 8 bytes (3 pointers and the data char). This gives + room for about 65000 nodes. In my tests the english patterns + took 7694 nodes and the german patterns 10055 nodes, + so I think we are safe.

+ +

All said, this is a map with strings as keys and char as value. + Pretty limited!. It can be extended to a general map by + using the string representation of an object and using the + char value as an index to an array that contains the object + values.

+ + @author cav@uniscope.co.jp +
+ + We use 4 arrays to represent a node. I guess I should have created + a proper node class, but somehow Knuth's pascal code made me forget + we now have a portable language with memory management and + automatic garbage collection! And now is kind of late, furthermore, + if it ain't broken, don't fix it. + Pointer to low branch and to rest of the key when it is + stored directly in this node, we don't have unions in java! + + + Pointer to high branch. + + + Pointer to equal branch and to data when this node is a string terminator. + + +

The character stored in this node: splitchar + Two special values are reserved:

+
  • 0x0000 as string terminator
  • +
  • 0xFFFF to indicate that the branch starting at + this node is compressed
+

This shouldn't be a problem if we give the usual semantics to + strings since 0xFFFF is garanteed not to be an Unicode character.

+
+ + This vector holds the trailing of the keys when the branch is compressed. + + + Branches are initially compressed, needing + one node per key plus the size of the string + key. They are decompressed as needed when + another key with same prefix + is inserted. This saves a lot of space, + specially for long keys. + + + The actual insertion function, recursive version. + + + Compares 2 null terminated char arrays + + + Compares a string with null terminated char array + + + Recursively insert the median first and then the median of the + lower and upper halves, and so on in order to get a balanced + tree. The array of keys is assumed to be sorted in ascending + order. + + + Balance the tree for best search performance + + + Each node stores a character (splitchar) which is part of + some Key(s). In a compressed branch (one that only contain + a single string key) the trailer of the key which is not + already in nodes is stored externally in the kv array. + As items are inserted, key substrings decrease. + Some substrings may completely disappear when the whole + branch is totally decompressed. + The tree is traversed to find the key substrings actually + used. In addition, duplicate substrings are removed using + a map (implemented with a TernaryTree!). + + + + current node index + + + current key + + + TernaryTree parent + + + Node stack + + + key stack implemented with a StringBuilder + + + traverse upwards + + + traverse the tree to find next key + + + + Summary description for ICC_Profile. + + + + Classes implementing this interface can create custom encodings or + replace existing ones. It is used in the context of PdfEncoding. + @author Paulo Soares + + + Converts an Unicode string to a byte array according to some encoding. + @param text the Unicode string + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts an Unicode char to a byte array according to some encoding. + @param char1 the Unicode char + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Converts a byte array to an Unicode string according to some encoding. + @param b the input byte array + @param encoding the requested encoding. It's mainly of use if the same class + supports more than one encoding. + @return the conversion or null if no conversion is supported + + + Called by Chunk to hyphenate a word. + + @author Paulo Soares + + + Gets the hyphen symbol. + @return the hyphen symbol + + + Hyphenates a word and returns the first part of it. To get + the second part of the hyphenated word call getHyphenatedWordPost(). + @param word the word to hyphenate + @param font the font used by this word + @param fontSize the font size used by this word + @param remainingWidth the width available to fit this word in + @return the first part of the hyphenated word including + the hyphen symbol, if any + + + Gets the second part of the hyphenated word. Must be called + after getHyphenatedWordPre(). + @return the second part of the hyphenated word + + + This is the AcroForm object for the complete document. + + + This is the array containing the references to annotations + that were added to the document. + + + This is an array containg references to some delayed annotations + (that were added for a page that doesn't exist yet). + + + Checks if the AcroForm is valid. + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + Stores the PDF version information, + knows how to write a PDF Header, + and how to add the version to the catalog (if necessary). + + + Contains different strings that are part of the header. + + + Indicates if the header was already written. + + + Indicates if we are working in append mode. + + + The version that was or will be written to the header. + + + The version that will be written to the catalog. + + + The version that user can use to get the actual version of PDF document * + + + The extensions dictionary. + @since 2.1.6 + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + Sets the append mode. + + + Writes the header to the OutputStreamCounter. + @throws IOException + + + Returns the PDF version as a name. + @param version the version character. + + + Returns the version as a byte[]. + @param version the version character + + + Adds the version to the Catalog dictionary. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Stores the information concerning viewer preferences, + and contains the business logic that allows you to set viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences. + + + A series of viewer preferences + + + A series of viewer preferences. + + + This value will hold the viewer preferences for the page layout and page mode. + + + This dictionary holds the viewer preferences (other than page layout and page mode). + + + The mask to decide if a ViewerPreferences dictionary is needed + + + Returns the page layout and page mode value. + + + Returns the viewer preferences. + + + Sets the viewer preferences as the sum of several constants. + + @param preferences + the viewer preferences + @see PdfWriter#setViewerPreferences + + + Given a key for a viewer preference (a PdfName object), + this method returns the index in the VIEWER_PREFERENCES array. + @param key a PdfName referring to a viewer preference + @return an index in the VIEWER_PREFERENCES array + + + Checks if some value is valid for a certain key. + + + Sets the viewer preferences for printing. + + + Adds the viewer preferences defined in the preferences parameter to a + PdfDictionary (more specifically the root or catalog of a PDF file). + + @param catalog + + + The value indicating if the PDF has to be in conformance with PDF/X. + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#setPDFXConformance(int) + + + @see com.itextpdf.text.pdf.interfaces.PdfIsoConformance#isPdfIso() + + + Checks if the PDF/X Conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF/X specifications + + + Checks if the PDF has to be in conformance with PDF/X-1a:2001 + @return true of the PDF has to be in conformance with PDF/X-1a:2001 + + + Checks if the PDF has to be in conformance with PDF/X-3:2002 + @return true of the PDF has to be in conformance with PDF/X-3:2002 + + + Business logic that checks if a certain object is in conformance with PDF/X. + @param writer the writer that is supposed to write the PDF/X file + @param key the type of PDF ISO conformance that has to be checked + @param obj1 the object that is checked for conformance + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A key for an aspect that can be checked for PDF ISO Conformance. + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + The interface common to all layer types. + + @author Paulo Soares + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Gets the object representing the layer. + @return the object representing the layer + + + Allows a class to catch several document events. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + Called when a page is initialized. +

+ Note that if even if a page is not written this method is still + called. It is preferable to use onEndPage to avoid + infinite loops. +

+

+ Note that this method isn't called for the first page. You should apply modifications for the first + page either before opening the document or by using the onOpenDocument() method. +

+ + @param writer the PdfWriter for this document + @param document the document +
+ + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + + Summary description for IPdfPCellEvent. + + + + + An interface that can be used to retrieve the position of cells in PdfPTable. + + @author Paulo Soares + + + + Implementation of the IndicLigaturizer for Gujarati. + + + Constructor for the IndicLigaturizer for Gujarati. + + + Hebrew is written from right to left. + @return true + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Interface that needs to be implemented by classes that process bytes + representing text in specific languages. Processing involves changing + order to Right to Left and/or applying ligatures. + + + Processes a String + @param s the original String + @return the processed String + + + Indicates if the rundirection is right-to-left. + @return true if text needs to be rendered from right to left. + + + Superclass for processors that can convert a String of bytes in an Indic + language to a String in the same language of which the bytes are reordered + for rendering using a font that contains the necessary glyphs. + + + The table mapping specific character indexes to the characters in a + specific language. + + + Reorders the bytes in a String making Indic ligatures + + @param s + the original String + @return the ligaturized String + + + Indic languages are written from right to left. + + @return false + @see com.itextpdf.text.pdf.languages.LanguageProcessor#isRTL() + + + Checks if a character is vowel letter. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel letter + + + Checks if a character is vowel sign. + + @param ch + the character that needs to be checked + @return true if the characters is a vowel sign + + + Checks if a character is consonant letter. + + @param ch + the character that needs to be checked + @return true if the chracter is a consonant letter + + + Swaps two characters in a StringBuilder object + + @param s + the StringBuilder + @param i + the index of one character + @param j + the index of the other character + + + A class for performing LZW decoding. + + + + + Method to decode LZW compressed data. + + @param data The compressed data. + @param uncompData Array to return the uncompressed data in. + + + Initialize the string table. + + + Write out the string just uncompressed. + + + Add a new string to the string table. + + + Add a new string to the string table. + + + Append newstring to the end of oldstring. + + + Represents a Bezier curve. + + @since 5.5.6 + + + If the distance between a point and a line is less than + this constant, then we consider the point lies on the line. + + + In the case when neither the line ((x1, y1), (x4, y4)) passes + through both (x2, y2) and (x3, y3) nor (x1, y1) = (x4, y4) we + use the square of the sum of the distances mentioned below in + compare to this field as the criterion of good approximation. + 1. The distance between the line and (x2, y2) + 2. The distance between the line and (x3, y3) + + + The Manhattan distance is used in the case when either the line + ((x1, y1), (x4, y4)) passes through both (x2, y2) and (x3, y3) + or (x1, y1) = (x4, y4). The essential observation is that when + the curve is a uniform speed straight line from end to end, the + control points are evenly spaced from beginning to end. Our measure + of how far we deviate from that ideal uses distance of the middle + controls: point 2 should be halfway between points 1 and 3; point 3 + should be halfway between points 2 and 4. + + + Constructs new bezier curve. + @param controlPoints Curve's control points. + + + {@inheritDoc} + + + You can adjust precision of the approximation by varying the following + parameters: {@link #curveCollinearityEpsilon}, {@link #distanceToleranceSquare}, + {@link #distanceToleranceManhattan} + + @return {@link java.util.List} containing points of piecewise linear approximation + for this bezier curve. + @since 5.5.6 + + + @author kevin + @since 5.0.1 + + + Gets the content bytes from a content object, which may be a reference + a stream or an array. + @param contentObject the object to read bytes from + @return the content bytes + @throws IOException + + + Gets the content bytes of a page from a reader + @param reader the reader to get content bytes from + @param pageNum the page number of page you want get the content stream from + @return a byte array with the effective content stream of a page + @throws IOException + @since 5.0.1 + + + Simply extends the {@link com.itextpdf.text.pdf.parser.RenderListener} interface to provide + additional methods. + + {@inheritDoc} + + @since 5.5.6 + + + Called when the current path is being modified. E.g. new segment is being added, + new subpath is being started etc. + + @param renderInfo Contains information about the path segment being added to the current path. + + + Called when the current path should be rendered. + + @param renderInfo Contains information about the current path which should be rendered. + @return The path which can be used as a new clipping path. + + + Called when the current path should be set as a new clipping path. + + @param rule Either {@link PathPaintingRenderInfo#EVEN_ODD_RULE} or {@link PathPaintingRenderInfo#NONZERO_WINDING_RULE} + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + The filters to be applied + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + Applies filters, then delegates to the deleg if all filters pass + @param renderInfo contains info to render text + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + Applies filters, then delegates to the deleg if all filters pass + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + A text render listener that filters text operations before passing them on to a deleg + @since 5.0.1 + + + The deleg that will receive the text render operation if the filters all pass + + + Construction + @param deleg the deleg {@link RenderListener} that will receive filtered text operations + @param filters the Filter(s) to apply + + + This class delegates this call + @see com.itextpdf.text.pdf.parser.TextExtractionStrategy#getResultantText() + + + Keeps all the parameters of the graphics state. + @since 2.1.4 + + + The current transformation matrix. + + + The current character spacing. + + + The current word spacing. + + + The current horizontal scaling + + + The current leading. + + + The active font. + + + The current font size. + + + The current render mode. + + + The current text rise + + + The current knockout value. + + + The current color space for stroke. + + + The current color space for stroke. + + + The current fill color. + + + The current stroke color. + + + The line width for stroking operations + + + The line cap style. For possible values + see {@link PdfContentByte} + + + The line join style. For possible values + see {@link PdfContentByte} + + + The mitir limit value + + + The line dash pattern + + + Constructs a new Graphics State object with the default values. + + + Copy constructor. + @param source another GraphicsState object + + + Getter for the current transformation matrix + @return the ctm + @since iText 5.0.1 + + + Getter for the character spacing. + @return the character spacing + @since iText 5.0.1 + + + Getter for the word spacing + @return the word spacing + @since iText 5.0.1 + + + Getter for the horizontal scaling + @return the horizontal scaling + @since iText 5.0.1 + + + Getter for the leading + @return the leading + @since iText 5.0.1 + + + Getter for the font + @return the font + @since iText 5.0.1 + + + Getter for the font size + @return the font size + @since iText 5.0.1 + + + Getter for the render mode + @return the renderMode + @since iText 5.0.1 + + + Getter for text rise + @return the text rise + @since iText 5.0.1 + + + Getter for knockout + @return the knockout + @since iText 5.0.1 + + + Gets the current color space for fill operations + + + Gets the current color space for stroke operations + + + Gets the current fill color + @return a BaseColor + + + Gets the current stroke color + @return a BaseColor + + + Getter and setter for the line width. + @return The line width + @since 5.5.6 + + + Getter and setter for the line cap style. + For possible values see {@link PdfContentByte} + @return The line cap style. + @since 5.5.6 + + + Getter and setter for the line join style. + For possible values see {@link PdfContentByte} + @return The line join style. + @since 5.5.6 + + + Getter and setter for the miter limit value. + @return The miter limit. + @since 5.5.6 + + + Getter for the line dash pattern. + @return The line dash pattern. + @since 5.5.6 + + + Setter for the line dash pattern. + @param lineDashPattern New line dash pattern. + @since 5.5.6 + + + Interface implemented by a series of content operators + @since 2.1.4 + + + Invokes a content operator. + @param processor the processor that is dealing with the PDF content + @param operator the literal PDF syntax of the operator + @param operands the operands that come with the operator + @throws Exception any exception can be thrown - it will be re-packaged into a runtime exception and re-thrown by the {@link PdfContentStreamProcessor} + + + Represents image data from a PDF + @since 5.0.1 + + + The graphics state that was in effect when the image was rendered + + + A reference to the image XObject + + + A reference to an inline image + + + the color space associated with the image + + + the image object to be rendered, if it has been parsed already. Null otherwise. + + + Array containing marked content info for the text. + @since 5.5.11 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on an XObject (this is the most common way of including an image in PDF) + @param ctm the coordinate transformation matrix at the time the image is rendered + @param ref a reference to the image XObject + @return the ImageRenderInfo representing the rendered XObject + @since 5.0.1 + + + Create an ImageRenderInfo object based on inline image data. This is nowhere near completely thought through + and really just acts as a placeholder. + @param ctm the coordinate transformation matrix at the time the image is rendered + @param imageObject the image object representing the inline image + @return the ImageRenderInfo representing the rendered embedded image + @since 5.0.1 + + + Gets an object containing the image dictionary and bytes. + @return an object containing the image dictionary and byte[] + @since 5.0.2 + + + @return a vector in User space representing the start point of the xobject + + + @return The coordinate transformation matrix active when this image was rendered. Coordinates are in User space. + @since 5.0.3 + + + @return the size of the image, in User space units + + + @return an indirect reference to the image + @since 5.0.2 + + + @return the current fill color from the graphics state at the time this render operation occured + @since 5.5.7 + + + Checks if the image belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.5.11 + + + * Checks if the image belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.5.11 + + + @return the marked content associated with the ImageRenderInfo instance. + + + + Called when a new text block is beginning (i.e. BT) + @since iText 5.0.1 + + + Called when text should be rendered + @param renderInfo information specifying what to render + + + Called when a text block has ended (i.e. ET) + @since iText 5.0.1 + + + Called when image should be rendered + @param renderInfo information specifying what to render + @since iText 5.0.1 + + + Defines an interface for {@link RenderListener}s that can return text + @since 5.0.2 + + + Returns the result so far. + @return a String with the resulting text. + + + Represents a line. + + @since 5.5.6 + + + Constructs a new zero-length line starting at zero. + + + Constructs a new line based on the given coordinates. + + + Constructs a new line based on the given coordinates. + + + Represents the line dash pattern. The line dash pattern shall control the pattern + of dashes and gaps used to stroke paths. It shall be specified by a dash array and + a dash phase. + + @since 5.5.6 + + + Creates new {@link LineDashPattern} object. + @param dashArray The dash array. See {@link #getDashArray()} + @param dashPhase The dash phase. See {@link #getDashPhase()} + + + Getter and setter for the dash array. + + The dash array’s elements is number that specify the lengths of + alternating dashes and gaps; the numbers are nonnegative. The + elements are expressed in user space units. + + @return The dash array. + + + Getter and setter for the dash phase. + + The dash phase shall specify the distance into the dash pattern at which + to start the dash. The elements are expressed in user space units. + + @return The dash phase. + + + Calculates and returns the next element which is either gap or dash. + @return The next dash array's element. + + + Checks whether the dashed pattern is solid or not. It's solid when the + size of a dash array is even and sum of all the units off in the array + is 0.
+ For example: [3 0 4 0 5 0 6 0] (sum is 0), [3 0 4 0 5 1] (sum is 1). +
+ + Resets the dash array so that the {@link #next()} method will start + from the beginning of the dash array. + + + Represents a line segment in a particular coordinate system. This class is immutable. + @since 5.0.2 + + + Start vector of the segment. + + + End vector of the segment. + + + Creates a new line segment. + @param startPoint the start point of a line segment. + @param endPoint the end point of a line segment. + + + @return the start point + + + @return the end point + + + @return the length of this line segment + @since 5.0.2 + + + Computes the bounding rectangle for this line segment. The rectangle has a rotation 0 degrees + with respect to the coordinate system that the line system is in. For example, if a line segment + is 5 unit long and sits at a 37 degree angle from horizontal, the bounding rectangle will have + origin of the lower left hand end point of the segment, with width = 4 and height = 3. + @return the bounding rectangle + @since 5.0.2 + + + Transforms the segment by the specified matrix + @param m the matrix for the transformation + @return the transformed segment + + + + set to true for debugging + + + a summary of all found text + + + Creates a new text extraction renderer. + + + Creates a new text extraction renderer, with a custom strategy for + creating new TextChunkLocation objects based on the input of the + TextRenderInfo. + @param strat the custom strategy + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @param str + @return true if the string starts with a space character, false if the string is empty or starts with a non-space character + + + @param str + @return true if the string ends with a space character, false if the string is empty or ends with a non-space character + + + Filters the provided list with the provided filter + @param textChunks a list of all TextChunks that this strategy found during processing + @param filter the filter to apply. If null, filtering will be skipped. + @return the filtered list + @since 5.3.3 + + + Determines if a space character should be inserted between a previous chunk and the current chunk. + This method is exposed as a callback so subclasses can fine time the algorithm for determining whether a space should be inserted or not. + By default, this method will insert a space if the there is a gap of more than half the font space character width between the end of the + previous chunk and the beginning of the current chunk. It will also indicate that a space is needed if the starting point of the new chunk + appears *before* the end of the previous chunk (i.e. overlapping text). + @param chunk the new chunk being evaluated + @param previousChunk the chunk that appeared immediately before the current chunk + @return true if the two chunks represent different words (i.e. should have a space between them). False otherwise. + + + Gets text that meets the specified filter + If multiple text extractions will be performed for the same page (i.e. for different physical regions of the page), + filtering at this level is more efficient than filtering using {@link FilteredRenderListener} - but not nearly as powerful + because most of the RenderInfo state is not captured in {@link TextChunk} + @param chunkFilter the filter to to apply + @return the text results so far, filtered using the specified filter + + + Returns the result so far. + @return a String with the resulting text. + + + Used for debugging only + + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + the starting location of the chunk + + + the ending location of the chunk + + + the orientation as a scalar for quick sorting + + + perpendicular distance to the orientation unit vector (i.e. the Y position in an unrotated coordinate system) + we round to the nearest integer to handle the fuzziness of comparing floats + + + distance of the start of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + distance of the end of the chunk parallel to the orientation unit vector (i.e. the X position in an unrotated coordinate system) + + + the width of a single space character in the font of the chunk + + + @param comparedLine the location to compare to + @return true is this location is on the the same line as the other + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + unit vector in the orientation of the chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + Represents a chunk of text, it's orientation, and location relative to the orientation vector + + + the text of the chunk + + + @return the start location of the text + + + @return the end location of the text + + + @return the width of a single space character as rendered by this chunk + + + Computes the distance between the end of 'other' and the beginning of this chunk + in the direction of this chunk's orientation vector. Note that it's a bad idea + to call this for chunks that aren't on the same line and orientation, but we don't + explicitly check for that condition for performance reasons. + @param other + @return the number of spaces between the end of 'other' and the beginning of this chunk + + + Compares based on orientation, perpendicular distance, then parallel distance + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @param as the location to compare to + @return true is this location is on the the same line as the other + + + + @param int1 + @param int2 + @return comparison of the two integers + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + Specifies a filter for filtering {@link TextChunk} objects during text extraction + @see LocationTextExtractionStrategy#getResultantText(TextChunkFilter) + @since 5.3.3 + + + @param textChunk the chunk to check + @return true if the chunk should be allowed + + + Represents a Marked Content block in a PDF + @since 5.0.2 + + + Get the tag of this marked content + @return the tag of this marked content + + + Determine if an MCID is available + @return true if the MCID is available, false otherwise + + + Gets the MCID value If the Marked Content contains + an MCID entry, returns that value. Otherwise, a {@link NullPointerException} is thrown. + @return the MCID value + @throws NullPointerException if there is no MCID (see {@link MarkedContentInfo#hasMcid()}) + + + A {@link RenderFilter} that only allows text within a specified marked content sequence. + @since 5.0.2 + + + The MCID to match. + + + Constructs a filter + @param mcid the MCID to match + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Keeps all the values of a 3 by 3 matrix + and allows you to do some math with matrices. + @since 2.1.4 + + + the row=1, col=1 position ('a') in the matrix. + + + the row=1, col=2 position ('b') in the matrix. + + + the row=1, col=3 position (always 0 for 2-D) in the matrix. + + + the row=2, col=1 position ('c') in the matrix. + + + the row=2, col=2 position ('d') in the matrix. + + + the row=2, col=3 position (always 0 for 2-D) in the matrix. + + + the row=3, col=1 ('e', or X translation) position in the matrix. + + + the row=3, col=2 ('f', or Y translation) position in the matrix. + + + the row=3, col=3 position (always 1 for 2-D) in the matrix. + + + the values inside the matrix (the identity matrix by default). + default initialization is performed in the default constructor. + + + constructs a new Matrix with identity. + !shall be called from any other constructor! + + + Constructs a matrix that represents translation + @param tx + @param ty + + + Creates a Matrix with 6 specified entries + @param a + @param b + @param c + @param d + @param e + @param f + + + Gets a specific value inside the matrix. + @param index an array index corresponding with a value inside the matrix + @return the value at that specific position. + + + multiplies this matrix by 'b' and returns the result + See http://en.wikipedia.org/wiki/Matrix_multiplication + @param by The matrix to multiply by + @return the resulting matrix + + + Subtracts a matrix from this matrix and returns the results + @param arg the matrix to subtract from this matrix + @return a Matrix object + + + Computes the determinant of the matrix. + @return the determinant of the matrix + + + Checks equality of matrices. + @param obj the other Matrix that needs to be compared with this matrix. + @return true if both matrices are equal + @see java.lang.Object#equals(java.lang.Object) + + + Generates a hash code for this object. + @return the hash code of this object + @see java.lang.Object#hashCode() + + + Generates a String representation of the matrix. + @return the values, delimited with tabs and newlines. + @see java.lang.Object#toString() + + + Attaches a {@link RenderListener} for the corresponding filter set. + @param delegate RenderListener instance to be attached. + @param filterSet filter set to be attached. The delegate will be invoked if all the filters pass. + + + Paths define shapes, trajectories, and regions of all sorts. They shall be used + to draw lines, define the shapes of filled areas, and specify boundaries for clipping + other graphics. A path shall be composed of straight and curved line segments, which + may connect to one another or may be disconnected. + + @since 5.5.6 + + + @return A {@link java.util.List} of subpaths forming this path. + + + Adds the subpath to this path. + + @param subpath The subpath to be added to this path. + + + Adds the subpaths to this path. + + @param subpaths {@link java.util.List} of subpaths to be added to this path. + + + The current point is the trailing endpoint of the segment most recently added to the current path. + + @return The current point. + + + Begins a new subpath by moving the current point to coordinates (x, y). + + + Appends a straight line segment from the current point to the point (x, y). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3). + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the current + point represents two control points. + + + Appends a cubic Bezier curve to the current path. The curve shall extend from + the current point to the point (x3, y3) with the note that the (x3, y3) + point represents two control points. + + + Appends a rectangle to the current path as a complete subpath. + + + Closes the current subpath. + + + Closes all subpathes contained in this path. + + + Adds additional line to each closed subpath and makes the subpath unclosed. + The line connects the last and the first points of the subpaths. + + @returns Indices of modified subpaths. + + + Path is empty if it contains no subpaths. + + + Contains information relating to construction the current path. + + @since 5.5.6 + + + See {@link com.itextpdf.text.pdf.parser.Path#moveTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#lineTo(float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#curveFromTo(float, float, float, float)} + + + See {@link com.itextpdf.text.pdf.parser.Path#closeSubpath()} + + + See {@link com.itextpdf.text.pdf.parser.Path#rectangle(float, float, float, float)} + + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains data of a new segment being added to the current path. + E.g. x, y, w, h for rectangle; x, y for line etc. + @param ctm Current transformation matrix. + + + See {@link #PathConstructionRenderInfo(int, java.util.List, Matrix)} + + + @return construction operation should be performed on the current path. + + + @return {@link java.util.List} containing data of a new segment (E.g. x, y, w, h for rectangle; + x, y for line etc.) if the specified operation relates to adding the segment to the + current path, null otherwise. + + + @return Current transformation matrix. + + + Contains information relating to painting current path. + + @since 5.5.6 + + + The nonzero winding number rule determines whether a given point is inside a path by + conceptually drawing a ray from that point to infinity in any direction and then examining + the places where a segment of the path crosses the ray. Starting with a count of 0, the rule + adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a + segment crosses from right to left. After counting all the crossings, if the result is 0, the + point is outside the path; otherwise, it is inside. + + For more details see PDF spec. + + + The even-odd rule determines whether a point is inside a path by drawing a ray from that point in + any direction and simply counting the number of path segments that cross the ray, regardless of + direction. If this number is odd, the point is inside; if even, the point is outside. + + For more details see PDF spec. + + + End the path object without filling or stroking it. This operator shall be a path-painting no-op, + used primarily for the side effect of changing the current clipping path + + + Value specifying stroke operation to perform on the current path. + + + Value specifying fill operation to perform on the current path. When the fill operation + is performed it should use either nonzero winding or even-odd rule. + + + @param operation One of the possible combinations of {@link #STROKE} and {@link #FILL} values or {@link #NO_OP} + @param rule Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + @param gs The graphics state. + + + If the operation is {@link #NO_OP} then the rule is ignored, + otherwise {@link #NONZERO_WINDING_RULE} is used by default. + + See {@link #PathPaintingRenderInfo(int, int, GraphicsState)} + + + @return int value which is either {@link #NO_OP} or one of possible + combinations of {@link #STROKE} and {@link #FILL} + + + @return Either {@link #NONZERO_WINDING_RULE} or {@link #EVEN_ODD_RULE}. + + + @return Current transformation matrix. + + + Tool that parses the content of a PDF document. + @since 2.1.4 + + + Shows the detail of a dictionary. + This is similar to the PdfLister functionality. + @param dic the dictionary of which you want the detail + @return a String representation of the dictionary + + + Shows the detail of a dictionary. + @param dic the dictionary of which you want the detail + @param depth the depth of the current dictionary (for nested dictionaries) + @return a String representation of the dictionary + + + Displays a summary of the entries in the XObject dictionary for the stream + @param resourceDic the resource dictionary for the stream + @return a string with the summary of the entries + @throws IOException + @since 5.0.2 + + + Writes information about a specific page from PdfReader to the specified output stream. + @since 2.1.5 + @param reader the PdfReader to read the page content from + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param out the output stream to send the content to + @throws IOException + + + Writes information about the specified page in a PDF file to the specified output stream. + @since 2.1.5 + @param pdfFile a File instance referring to a PDF file + @param pageNum the page number to read + @param out the output stream to send the content to + @throws IOException + + + Writes information about each page in a PDF file to the specified file, or System.out. + @param args + + + Processor for a PDF content Stream. + @since 2.1.4 + + + Default oper + @since 5.0.1 + + + A map with all supported operators (PDF syntax). + + + Resources for the content stream. + + + Stack keeping track of the graphics state. + + + Text matrix. + + + Text line matrix. + + + Listener that will be notified of render events + + + A map with all supported XObject handlers + + + The font cache. + @since 5.0.6 + + + + A stack containing marked content info. + @since 5.0.2 + + + Creates a new PDF Content Stream Processor that will send it's output to the + designated render listener. + + @param renderListener the {@link RenderListener} that will receive rendering notifications + + + + Gets the font pointed to by the indirect reference. The font may have been cached. + @param ind the indirect reference ponting to the font + @return the font + @since 5.0.6 + + + Loads all the supported graphics and text state operators in a map. + + + + @return {@link java.util.Collection} containing all the registered operators strings + @since 5.5.6 + + + Resets the graphics state stack, matrices and resources. + + + Returns the current graphics state. + @return the graphics state + + + Invokes an oper. + @param oper the PDF Syntax of the oper + @param operands a list with operands + + + Add to the marked content stack + @param tag the tag of the marked content + @param dict the PdfDictionary associated with the marked content + @since 5.0.2 + + + Remove the latest marked content from the stack. Keeps track of the BMC, BDC and EMC operators. + @since 5.0.2 + + + Used to trigger beginTextBlock on the renderListener + + + Used to trigger endTextBlock on the renderListener + + + Displays text. + @param string the text to display + + + Displays an XObject using the registered handler for this XObject's subtype + @param xobjectName the name of the XObject to retrieve from the resource dictionary + + + Displays the current path. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any int value. + @param close Indicates whether the path should be closed or not. + @since 5.5.6 + + + Modifies the current path. + + @param operation Indicates which path-construction operation should be performed. + @param segmentData Contains x, y components of points of a new segment being added to the current path. + E.g. x1 y1 x2 y2 x3 y3 etc. It's ignored for "close subpath" operarion (h). + + + Adjusts the text matrix for the specified adjustment value (see TJ oper in the PDF spec for information) + @param tj the text adjustment + + + Processes PDF syntax. + Note: If you re-use a given {@link PdfContentStreamProcessor}, you must call {@link PdfContentStreamProcessor#reset()} + @param contentBytes the bytes of a content stream + @param resources the resources that come with the content stream + + + Callback when an inline image is found. This requires special handling because inline images don't follow the standard operator syntax + @param info the inline image + @param colorSpaceDic the color space for the inline immage + + + Property for the RenderListener object maintained in this class. + Necessary for implementing custom ContentOperator implementations. + @return the renderListener + + + A resource dictionary that allows stack-like behavior to support resource dictionary inheritance + + + A content oper implementation (unregistered). + + + A content oper implementation (TJ). + + + A content oper implementation ("). + + + A content oper implementation ('). + + + A content oper implementation (Tj). + + + A content oper implementation (T*). + + + A content oper implementation (Tm). + + + A content oper implementation (TD). + + + A content oper implementation (Td). + + + A content oper implementation (Tf). + + + A content oper implementation (Tr). + + + A content oper implementation (Ts). + + + A content oper implementation (TL). + + + A content oper implementation (Tz). + + + A content oper implementation (Tc). + + + A content oper implementation (Tw). + + + A content oper implementation (gs). + + + A content oper implementation (q). + + + A content oper implementation (cm). + + + Gets a color based on a list of operands. + + + Gets a color based on a list of operands. + + + A content operator implementation (g). + + + A content operator implementation (G). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (rg). + + + A content operator implementation (RG). + + + A content operator implementation (cs). + + + A content operator implementation (CS). + + + A content operator implementation (sc / scn). + + + A content operator implementation (SC / SCN). + + + A content oper implementation (Q). + + + A content oper implementation (BT). + + + A content oper implementation (ET). + + + A content oper implementation (BMC). + @since 5.0.2 + + + A content oper implementation (BDC). + @since 5.0.2 + + + A content oper implementation (EMC). + @since 5.0.2 + + + A content oper implementation (Do). + + + A content operator implementation (w). + + + A content operator implementation (J). + + + A content operator implementation (j). + + + A content operator implementation (M). + + + A content operator implementation (d). + + + A content operator implementation (m). + + @since 5.5.6 + + + A content operator implementation (l). + + @since 5.5.6 + + + A content operator implementation (c). + + @since 5.5.6 + + + A content operator implementation (v). + + @since 5.5.6 + + + A content operator implementation (y). + + @since 5.5.6 + + + A content operator implementation (h). + + @since 5.5.6 + + + A content operator implementation (re). + + @since 5.5.6 + + + A content operator implementation (S, s, f, F, f*, B, B*, b, b*). + + @since 5.5.6 + + + Constructs PainPath object. + + @param operation One of the possible combinations of {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#STROKE} + and {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#FILL} values or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NO_OP} + @param rule Either {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#NONZERO_WINDING_RULE} or + {@link com.itextpdf.text.pdf.parser.PathPaintingRenderInfo#EVEN_ODD_RULE} + In case it isn't applicable pass any value. + @param close Indicates whether the path should be closed or not. + + + A content operator implementation (n). + + @since 5.5.6 + + + An XObject subtype handler for FORM + + + An XObject subtype handler for IMAGE + + + An XObject subtype handler that does nothing + + + An object that contains an image dictionary and image bytes. + @since 5.0.2 + + + Different types of data that can be stored in the bytes of a {@link PdfImageObject} + @since 5.0.4 + + + the recommended file extension for streams of this type + + + @param fileExtension the recommended file extension for use with data of this type (for example, if the bytes were just saved to a file, what extension should the file have) + + + @return the file extension registered when this type was created + + + A filter that does nothing, but keeps track of the filter type that was used + @since 5.0.4 + + + The image dictionary. + + + The decoded image bytes (after applying filters), or the raw image bytes if unable to decode + + + Tracks the type of data that is actually stored in the streamBytes member + + + @return the type of image data that is returned by getImageBytes() + + + Creates a PdfImage object. + @param stream a PRStream + @throws IOException + + + Creates a PdfImage object. + @param stream a PRStream + @param colorSpaceDic a color space dictionary + @throws IOException + + + Creats a PdfImage object using an explicitly provided dictionary and image bytes + @param dictionary the dictionary for the image + @param samples the samples + @since 5.0.3 + + + Returns an entry from the image dictionary. + @param key a key + @return the value + + + Returns the image dictionary. + @return the dictionary + + + Sets state of this object according to the color space + @param colorspace the colorspace to use + @param allowIndexed whether indexed color spaces will be resolved (used for recursive call) + @throws IOException if there is a problem with reading from the underlying stream + + + decodes the bytes currently captured in the streamBytes and replaces it with an image representation of the bytes + (this will either be a png or a tiff, depending on the color depth of the image) + @throws IOException + + + @return the bytes of the image (the format will be as specified in {@link PdfImageObject#getImageBytesType()} + @throws IOException + @since 5.0.4 + + + A utility class that makes it cleaner to process content from pages of a PdfReader + through a specified RenderListener. + @since 5.0.2 + + + the reader this parser will process + + + + + Extracts text from a PDF file. + @since 2.1.4 + + + Extract text from a specified page using an extraction strategy. + Also allows registration of custom ContentOperators + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @param additionalContentOperators an optional dictionary of custom IContentOperators for rendering instructions + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + + + Extract text from a specified page using an extraction strategy. + @param reader the reader to extract text from + @param pageNumber the page to extract text from + @param strategy the strategy to use for extracting text + @return the extracted text + @throws IOException if any operation fails while reading from the provided PdfReader + @since 5.0.2 + + + + A {@link RenderFilter} that only allows text within a specified rectangular region + @since 5.0.1 + + + the region to allow text from + + + Constructs a filter + @param filterRect the rectangle to filter text against. Note that this is a java.awt.Rectangle ! + + + Constructs a filter + @param filterRect the rectangle to filter text against. + + + @see com.itextpdf.text.pdf.parser.RenderFilter#allowText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Interface for defining filters for use with {@link FilteredRenderListener} + @since 5.0.1 + + + @param renderInfo + @return true if the text render operation should be performed + + + + @param renderInfo + @return true if the image render operation should be performed + + + Represents segment from a PDF path. + + @since 5.5.6 + + + Treat base points as the points which are enough to construct a shape. + E.g. for a bezier curve they are control points, for a line segment - the start and the end points + of the segment. + + @return Ordered list consisting of shape's base points. + + + A simple text extraction renderer. + + This renderer keeps track of the current Y position of each string. If it detects + that the y position has changed, it inserts a line break into the output. If the + PDF renders text in a non-top-to-bottom fashion, this will result in the text not + being a true representation of how it appears in the PDF. + + This renderer also uses a simple strategy based on the font metrics to determine if + a blank space should be inserted into the output. + + @since 2.1.5 + + + used to store the resulting String. + + + Creates a new text extraction renderer. + + + @since 5.0.1 + + + @since 5.0.1 + + + Returns the result so far. + @return a String with the resulting text. + + + Used to actually append text to the text results. Subclasses can use this to insert + text that wouldn't normally be included in text parsing (e.g. result of OCR performed against + image content) + @param text the text to append to the text results accumulated so far + + + Captures text using a simplified algorithm for inserting hard returns and spaces + @param renderInfo render info + + + no-op method - this renderer isn't interested in image events + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + @since 5.0.1 + + + As subpath is a part of a path comprising a sequence of connected segments. + + @since 5.5.6 + + + Copy constuctor. + @param subpath + + + Constructs a new subpath starting at the given point. + + + Constructs a new subpath starting at the given point. + + + Sets the start point of the subpath. + @param startPoint + + + Sets the start point of the subpath. + @param x + @param y + + + @return The point this subpath starts at. + + + @return The last point of the subpath. + + + Adds a segment to the subpath. + Note: each new segment shall start at the end of the previous segment. + @param segment new segment. + + + @return {@link java.util.List} comprising all the segments + the subpath made on. + + + Checks whether subpath is empty or not. + @return true if the subpath is empty, false otherwise. + + + @return true if this subpath contains only one point and it is not closed, + false otherwise + + + Returns or sets a bool value indicating whether the subpath must be closed or not. + Ignore this value if the subpath is a rectangle because in this case it is already closed + (of course if you paint the path using re operator) + + @return bool value indicating whether the path must be closed or not. + @since 5.5.6 + + + Returns a bool indicating whether the subpath is degenerate or not. + A degenerate subpath is the subpath consisting of a single-point closed path or of + two or more points at the same coordinates. + + @return bool value indicating whether the path is degenerate or not. + @since 5.5.6 + + + @return {@link java.util.List} containing points of piecewise linear approximation + for this subpath. + @since 5.5.6 + + + Converts a tagged PDF document into an XML file. + + @since 5.0.2 + + + The reader obj from which the content streams are read. + + + The writer obj to which the XML will be written + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + @param charset + the charset to encode the data + @since 5.0.5 + + + Parses a string with structured content. + + @param reader + the PdfReader that has access to the PDF file + @param os + the Stream to which the resulting xml will be written + + + Inspects a child of a structured element. This can be an array or a + dictionary. + + @param k + the child to inspect + @throws IOException + + + If the child of a structured element is an array, we need to loop over + the elements. + + @param k + the child array to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + If the child of a structured element is a dictionary, we inspect the + child; we may also draw a tag. + + @param k + the child dictionary to inspect + + + Searches for a tag in a page. + + @param tag + the name of the tag + @param obj + an identifier to find the marked content + @param page + a page dictionary + @throws IOException + + + Allows you to find the rectangle that contains all the text in a page. + @since 5.0.2 + + + Method invokes by the PdfContentStreamProcessor. + Passes a TextRenderInfo for every text chunk that is encountered. + We'll use this object to obtain coordinates. + @see com.itextpdf.text.pdf.parser.RenderListener#renderText(com.itextpdf.text.pdf.parser.TextRenderInfo) + + + Getter for the left margin. + @return the X position of the left margin + + + Getter for the bottom margin. + @return the Y position of the bottom margin + + + Getter for the right margin. + @return the X position of the right margin + + + Getter for the top margin. + @return the Y position of the top margin + + + Gets the width of the text block. + @return a width + + + Gets the height of the text block. + @return a height + + + @see com.itextpdf.text.pdf.parser.RenderListener#beginTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#endTextBlock() + + + @see com.itextpdf.text.pdf.parser.RenderListener#renderImage(com.itextpdf.text.pdf.parser.ImageRenderInfo) + + + + ! .NET SPECIFIC ! + is used for caching "UTF-16BE" encoding to improve performance + + + Array containing marked content info for the text. + @since 5.0.2 + + + Creates a new TextRenderInfo object + @param string the PDF string that should be displayed + @param gs the graphics state (note: at this time, this is not immutable, so don't cache it) + @param textMatrix the text matrix at the time of the render operation + @param markedContentInfo the marked content sequence, if available + + + Used for creating sub-TextRenderInfos for each individual character + @param parent the parent TextRenderInfo + @param string the content of a TextRenderInfo + @param horizontalOffset the unscaled horizontal offset of the character that this TextRenderInfo represents + @since 5.3.3 + + + @return the text to render + + + @return original PDF string + + + Checks if the text belongs to a marked content sequence + with a given mcid. + @param mcid a marked content id + @return true if the text is marked with this id + @since 5.0.2 + + + * Checks if the text belongs to a marked content sequence + * with a given mcid. + * @param mcid a marked content id + * @param checkTheTopmostLevelOnly indicates whether to check the topmost level of marked content stack only + * @return true if the text is marked with this id + * @since 5.3.5 + + + @return the marked content associated with the TextRenderInfo instance. + + + @return the unscaled (i.e. in Text space) width of the text + + + Gets the baseline for the text (i.e. the line that the text 'sits' on) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the baseline line segment + @since 5.0.2 + + + Gets the ascentline for the text (i.e. the line that represents the topmost extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the ascentline line segment + @since 5.0.2 + + + Gets the descentline for the text (i.e. the line that represents the bottom most extent that a string of the current font could have) + This value includes the Rise of the draw operation - see {@link #getRise()} for the amount added by Rise + @return the descentline line segment + @since 5.0.2 + + + Getter for the font + @return the font + @since iText 5.0.2 + + + The rise represents how far above the nominal baseline the text should be rendered. The {@link #getBaseline()}, {@link #getAscentLine()} and {@link #getDescentLine()} methods already include Rise. + This method is exposed to allow listeners to determine if an explicit rise was involved in the computation of the baseline (this might be useful, for example, for identifying superscript rendering) + @return The Rise for the text draw operation, in user space units (Ts value, scaled to user space) + @since 5.3.3 + + + + @param width the width, in text space + @return the width in user space + @since 5.3.3 + + + + @param height the height, in text space + @return the height in user space + @since 5.3.3 + + + @return The width, in user space units, of a single space character in the current font + + + @return the text render mode that should be used for the text. From the + PDF specification, this means: +
    +
  • 0 = Fill text
  • +
  • 1 = Stroke text
  • +
  • 2 = Fill, then stroke text
  • +
  • 3 = Invisible
  • +
  • 4 = Fill text and add to path for clipping
  • +
  • 5 = Stroke text and add to path for clipping
  • +
  • 6 = Fill, then stroke text and add to path for clipping
  • +
  • 7 = Add text to padd for clipping
  • +
+ @since iText 5.0.1 +
+ + @return the current fill color. + + + @return the current stroke color. + + + Calculates the width of a space character. If the font does not define + a width for a standard space character \u0020, we also attempt to use + the width of \u00A0 (a non-breaking space in many fonts) + @return the width of a single space character in text space units + + + Gets the width of a String in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Gets the width of a PDF string in text space units + @param string the string that needs measuring + @return the width of a String in text space units + + + Provides detail useful if a listener needs access to the position of each individual glyph in the text render operation + @return A list of {@link TextRenderInfo} objects that represent each glyph used in the draw operation. The next effect is if there was a separate Tj opertion for each character in the rendered string + @since 5.3.3 + + + Calculates width and word spacing of a single character PDF string. + @param string a character to calculate width. + @param singleCharString true if PDF string represents single character, false otherwise. + @return array of 2 items: first item is a character width, second item is a calculated word spacing. + + + Decodes a PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + ! .NET SPECIFIC; this method is used to avoid unecessary using of StringBuilder because it is slow in .NET ! + Decodes a single character PdfString (which will contain glyph ids encoded in the font's encoding) + based on the active font, and determine the unicode equivalent + @param in the String that needs to be encoded + @return the encoded String + + + Converts a single character string to char code. + + @param string single character string to convert to. + @return char code. + + + Split PDF string into array of single character PDF strings. + @param string PDF string to be splitted. + @return splitted PDF string. + + + + index of the X coordinate + + + index of the Y coordinate + + + index of the Z coordinate + + + the values inside the vector + + + Creates a new Vector + @param x the X coordinate + @param y the Y coordinate + @param z the Z coordinate + + + Gets the value from a coordinate of the vector + @param index the index of the value to get (I1, I2 or I3) + @return a coordinate value + + + Computes the cross product of this vector and the specified matrix + @param by the matrix to cross this vector with + @return the result of the cross product + + + Computes the difference between this vector and the specified vector + @param v the vector to subtract from this one + @return the results of the subtraction + + + Computes the cross product of this vector and the specified vector + @param with the vector to cross this vector with + @return the cross product + + + Normalizes the vector (i.e. returns the unit vector in the same orientation as this vector) + @return the unit vector + @since 5.0.1 + + + Multiplies the vector by a scalar + @param by the scalar to multiply by + @return the result of the scalar multiplication + @since 5.0.1 + + + Computes the dot product of this vector with the specified vector + @param with the vector to dot product this vector with + @return the dot product + + + + + @see java.lang.Object#toString() + + + @since 5.0.1 + @see java.lang.Object#equals(java.lang.Object) + + + @author Kevin Day + @since iText 5.0.1 + + + Represents an inline image from a PDF + @since 5.1.4 + + + @return the image dictionary associated with this inline image + + + @return the raw samples associated with this inline image + + + Utility methods to help with processing of inline images + @since 5.0.4 + + + Simple class in case users need to differentiate an exception from processing + inline images vs other exceptions + @since 5.0.4 + + + Map between key abbreviations allowed in dictionary of inline images and their + equivalent image dictionary keys + + + Map between value abbreviations allowed in dictionary of inline images for COLORSPACE + + + Map between value abbreviations allowed in dictionary of inline images for FILTER + + + Parses an inline image from the provided content parser. The parser must be positioned immediately following the BI operator in the content stream. + The parser will be left with current position immediately following the EI operator that terminates the inline image + @param ps the content parser to use for reading the image. + @return the parsed image + @throws IOException if anything goes wring with the parsing + @throws InlineImageParseException if parsing of the inline image failed due to issues specific to inline image processing + + + Parses the next inline image dictionary from the parser. The parser must be positioned immediately following the EI operator. + The parser will be left with position immediately following the whitespace character that follows the ID operator that ends the inline image dictionary. + @param ps the parser to extract the embedded image information from + @return the dictionary for the inline image, with any abbreviations converted to regular image dictionary keys and values + @throws IOException if the parse fails + + + Transforms value abbreviations into their corresponding real value + @param key the key that the value is for + @param value the value that might be an abbreviation + @return if value is an allowed abbreviation for the key, the expanded value for that abbreviation. Otherwise, value is returned without modification + + + @param colorSpaceName the name of the color space. If null, a bi-tonal (black and white) color space is assumed. + @return the components per pixel for the specified color space + + + Computes the number of unfiltered bytes that each row of the image will contain. + If the number of bytes results in a partial terminating byte, this number is rounded up + per the PDF specification + @param imageDictionary the dictionary of the inline image + @return the number of bytes per row of the image + + + Parses the samples of the image from the underlying content parser, ignoring all filters. + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + This is primarily useful if no filters have been applied. + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Parses the samples of the image from the underlying content parser, accounting for filters + The parser must be positioned immediately after the ID operator that ends the inline image's dictionary. + The parser will be left positioned immediately following the EI operator. + Note:This implementation does not actually apply the filters at this time + @param imageDictionary the dictionary of the inline image + @param ps the content parser + @return the samples of the image + @throws IOException if anything bad happens during parsing + + + Represents a pattern. Can be used in high-level constructs (Paragraph, Cell, etc.). + + + The actual pattern. + + + Creates a color representing a pattern. + @param painter the actual pattern + + + Gets the pattern. + @return the pattern + + + Each PDF document can contain maximum 1 AcroForm. + + + This is a map containing FieldTemplates. + + + This is an array containing DocumentFields. + + + This is an array containing the calculationorder of the fields. + + + Contains the signature flags. + + + Creates new PdfAcroForm + + + Adds fieldTemplates. + + + Adds documentFields. + + + Closes the AcroForm. + + + Adds an object to the calculationOrder. + + + Sets the signature flags. + + + Adds a formfield to the AcroForm. + + + @param field + @param name + @param llx + @param lly + @param urx + @param ury + + + @param field + @param llx + @param lly + @param urx + @param ury + + + A PdfAction defines an action that can be triggered from a PDF file. + + @see PdfDictionary + + + A named action to go to the first page. + + + A named action to go to the previous page. + + + A named action to go to the next page. + + + A named action to go to the last page. + + + A named action to open a print dialog. + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + a possible submitvalue + + + Create an empty action. + + + Constructs a new PdfAction of Subtype URI. + + @param url the Url to go to + + + Constructs a new PdfAction of Subtype URI. + + @param url the url to go to + + + Constructs a new PdfAction of Subtype GoTo. + @param destination the destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param name the named destination to go to + + + Constructs a new PdfAction of Subtype GoToR. + @param filename the file name to go to + @param page the page destination to go to + + + Implements name actions. The action can be FIRSTPAGE, LASTPAGE, + NEXTPAGE and PREVPAGE. + @param named the named action + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + + + Launchs an application or a document. + @param application the application to be launched or the document to be opened or printed. + @param parameters (Windows-specific) A parameter string to be passed to the application. + It can be null. + @param operation (Windows-specific) the operation to perform: "open" - Open a document, + "print" - Print a document. + It can be null. + @param defaultDir (Windows-specific) the default directory in standard DOS syntax. + It can be null. + @return a Launch action + + + Creates a Rendition action + @param file + @param fs + @param mimeType + @param ref + @return a Media Clip action + @throws IOException + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be placed as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + @return the JavaScript action + + + Creates a JavaScript action. If the JavaScript is smaller than + 50 characters it will be place as a string, otherwise it will + be placed as a compressed stream. + @param code the JavaScript code + @param writer the writer for this action + @return the JavaScript action + + + Add a chained action. + @param na the next action + + + Creates a GoTo action to an internal page. + @param page the page to go. First page is 1 + @param dest the destination for the page + @param writer the writer for this action + @return a GoTo action + + + Creates a GoTo action to a named destination. + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToR action + + + Creates a GoToR action to a named destination. + @param filename the file name to go to + @param dest the destination name + @param isName if true sets the destination as a name, if false sets it as a String + @param newWindow open the document in a new window if true, if false the current document is replaced by the new document. + @return a GoToR action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param dest the named destination + @param isName if true sets the destination as a name, if false sets it as a String + @return a GoToE action + + + Creates a GoToE action to an embedded file. + @param filename the root document of the target (null if the target is in the same document) + @param target a path to the target document of this action + @param dest the destination inside the target document, can be of type PdfDestination, PdfName, or PdfString + @param newWindow if true, the destination document should be opened in a new window + @return a GoToE action + + + + A PdfAnnotation is a note that is associated with a page. + + @see PdfDictionary + + + flagvalue PDF 1.7 + + + attributevalue + + + Holds value of property used. + + + Holds value of property placeInPage. + + + Constructs a new PdfAnnotation of subtype text. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates a screen PdfAnnotation + @param writer + @param rect + @param clipTitle + @param fs + @param mimeType + @param playOnDisplay + @return a screen PdfAnnotation + @throws IOException + + + Creates a file attachment annotation. + @param writer the PdfWriter + @param rect the dimensions in the page of the annotation + @param contents the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + @return the annotation + + + Creates a file attachment annotation + @param writer + @param rect + @param contents + @param fs + @return the annotation + @throws IOException + + + Creates a polygon or -line annotation + @param writer the PdfWriter + @param rect the annotation position + @param contents the textual content of the annotation + @param polygon if true, the we're creating a polygon annotation, if false, a polyline + @param vertices an array with the vertices of the polygon or -line + @since 5.0.2 + + + Sets the annotation's highlighting mode. The values can be + HIGHLIGHT_NONE, HIGHLIGHT_INVERT, + HIGHLIGHT_OUTLINE and HIGHLIGHT_PUSH; + @param highlight the annotation's highlighting mode + + + Getter for property form. + @return Value of property form. + + + Getter for property annotation. + @return Value of property annotation. + + + Getter for property placeInPage. + @return Value of property placeInPage. + + + Sets the layer this annotation belongs to. + @param layer the layer this annotation belongs to + + + Sets the name of the annotation. + With this name the annotation can be identified among + all the annotations on a page (it has to be unique). + + + This class processes links from imported pages so that they may be active. The following example code reads a group + of files and places them all on the output PDF, four pages in a single page, keeping the links active. +
+            String[] files = new String[] {"input1.pdf", "input2.pdf"};
+            String outputFile = "output.pdf";
+            int firstPage=1;
+            Document document = new Document();
+            PdfWriter writer = PdfWriter.GetInstance(document, new FileOutputStream(outputFile));
+            document.SetPageSize(PageSize.A4);
+            float W = PageSize.A4.GetWidth() / 2;
+            float H = PageSize.A4.GetHeight() / 2;
+            document.Open();
+            PdfContentByte cb = writer.GetDirectContent();
+            for (int i = 0; i < files.length; i++) {
+               PdfReader currentReader = new PdfReader(files[i]);
+               currentReader.ConsolidateNamedDestinations();
+               for (int page = 1; page <= currentReader.GetNumberOfPages(); page++) {
+                   PdfImportedPage importedPage = writer.GetImportedPage(currentReader, page);
+                   float a = 0.5f;
+                   float e = (page % 2 == 0) ? W : 0;
+                   float f = (page % 4 == 1 || page % 4 == 2) ? H : 0;
+                   ArrayList links = currentReader.GetLinks(page);
+                   cb.AddTemplate(importedPage, a, 0, 0, a, e, f);
+                   for (int j = 0; j < links.Size(); j++) {
+                       PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.Get(j);
+                       if (link.IsInternal()) {
+                           int dPage = link.GetDestinationPage();
+                           int newDestPage = (dPage-1)/4 + firstPage;
+                           float ee = (dPage % 2 == 0) ? W : 0;
+                           float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0;
+                           link.SetDestinationPage(newDestPage);
+                           link.TransformDestination(a, 0, 0, a, ee, ff);
+                       }
+                       link.TransformRect(a, 0, 0, a, e, f);
+                       writer.AddAnnotation(link.CreateAnnotation(writer));
+                   }
+                   if (page % 4 == 0)
+                   document.NewPage();
+               }
+               if (i < files.length - 1)
+               document.NewPage();
+               firstPage += (currentReader.GetNumberOfPages()+3)/4;
+            }
+            document.Close();
+            
+
+ + Returns a String representation of the link. + @return a String representation of the imported link + @since 2.1.6 + + + Implements the appearance stream to be used with form fields.. + + + Creates a PdfAppearance. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + + this is the actual array of PdfObjects + + + Constructs an empty PdfArray-object. + + + Constructs an PdfArray-object, containing 1 PdfObject. + + @param object a PdfObject that has to be added to the array + + + Constructs a PdfArray with the elements of an ArrayList. + Throws a ClassCastException if the ArrayList contains something + that isn't a PdfObject. + @param l an ArrayList with PdfObjects + @since 2.1.3 + + + Constructs an PdfArray-object, containing all the PdfObjects in a given PdfArray. + + @param array a PdfArray that has to be added to the array + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + Overwrites a specified location of the array. + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Returns the PdfObject with the specified index. + + A possible indirect references is not resolved, so the returned + PdfObject may be either a direct object or an indirect + reference, depending on how the object is stored in the + PdfArray. + + @param idx The index of the PdfObject to be returned + @return A PdfObject + + + Overwrites a specified location of the array, returning the previous + value + + @param idx The index of the element to be overwritten + @param obj new value for the specified index + @throws IndexOutOfBoundsException if the specified position doesn't exist + @return the previous value + @since 2.1.5 + + + Remove the element at the specified position from the array. + + Shifts any subsequent elements to the left (subtracts one from their + indices). + + @param idx The index of the element to be removed. + @throws IndexOutOfBoundsException the specified position doesn't exist + @since 2.1.5 + + + Returns an ArrayList containing PdfObjects. + + @return an ArrayList + + + Returns the number of entries in the array. + + @return the size of the ArrayList + + + Returns true if the array is empty. + + @return true if the array is empty + @since 2.1.5 + + + Adds a PdfObject to the PdfArray. + + @param object PdfObject to add + @return true + + + Inserts the specified element at the specified position. + + Shifts the element currently at that position (if any) and + any subsequent elements to the right (adds one to their indices). + + @param index The index at which the specified element is to be inserted + @param element The element to be inserted + @throws IndexOutOfBoundsException if the specified index is larger than the + last position currently set, plus 1. + @since 2.1.5 + + + Inserts a PdfObject at the beginning of the + PdfArray. + + The PdfObject will be the first element, any other elements + will be shifted to the right (adds one to their indices). + + @param object The PdfObject to add + + + Checks if the PdfArray already contains a certain PdfObject. + + @param object PdfObject to check + @return true + + + + @return this PdfArray's values as a long[] + @since 5.3.5 + + + + @return this PdfArray's values as a double[] + @since 5.5.6 + + + + A possible value of PdfBoolean + + + A possible value of PdfBoolean + + + the bool value of this object + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject + + + Constructs a PdfBoolean-object. + + @param value the value of the new PdfObject, represented as a string + + @throws BadPdfFormatException thrown if the value isn't 'true' or 'false' + + + Returns the primitive value of the PdfBoolean-object. + + @return the actual value of the object. + + + A PdfBorderArray defines the border of a PdfAnnotation. + + @see PdfArray + + + Constructs a new PdfBorderArray. + + + Constructs a new PdfBorderArray. + + + A PdfBorderDictionary define the appearance of a Border (Annotations). + + @see PdfDictionary + + + Constructs a PdfBorderDictionary. + + + + The allowed attributes in variable attributes. + + + The allowed attributes in variable noStroke. + + + The value of this object. + + + The encoding. + + + The font for this PdfChunk. + + + + + true if the chunk split was cause by a newline. + + + The image in this PdfChunk, if it has one + + + The offset in the x direction for the image + + + The offset in the y direction for the image + + + Indicates if the height and offset of the Image has to be taken into account + + + The leading that can overrule the existing leading. + + + Constructs a PdfChunk-object. + + @param string the content of the PdfChunk-object + @param font the PdfFont + @param attributes the metrics attributes + @param noStroke the non metric attributes + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + + + Constructs a PdfChunk-object. + + @param chunk the original Chunk-object + @param action the PdfAction if the Chunk comes from an Anchor + @param tabSettings the Phrase tab settings + + + + + + Returns the font of this Chunk. + + @return a PdfFont + + + Returns the color of this Chunk. + + @return a BaseColor + + + Returns the width of this PdfChunk. + + @return a width + + + Checks if the PdfChunk split was caused by a newline. + @return true if the PdfChunk split was caused by a newline. + + + Gets the width of the PdfChunk taking into account the + extra character and word spacing. + @param charSpacing the extra character spacing + @param wordSpacing the extra word spacing + @return the calculated width + + + Gets the text displacement relatiev to the baseline. + @return a displacement in points + + + Trims the last space. + @return the width of the space trimmed, otherwise 0 + + + Gets an attribute. The search is made in attributes + and noStroke. + @param name the attribute key + @return the attribute value or null if not found + + + Checks if the attribute exists. + @param name the attribute key + @return true if the attribute exists + + + Checks if this PdfChunk needs some special metrics handling. + @return true if this PdfChunk needs some special metrics handling. + + + Checks if this PdfChunk is a Separator Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Checks if this PdfChunk is a horizontal Separator Chunk. + @return true if this chunk is a horizontal separator. + @since 2.1.2 + + + Checks if this PdfChunk is a tab Chunk. + @return true if this chunk is a separator. + @since 2.1.2 + + + Correction for the tab position based on the left starting position. + @param newValue the new value for the left X. + @since 2.1.2 + + + Checks if there is an image in the PdfChunk. + @return true if an image is present + + + Gets the image in the PdfChunk. + @return the image or null + + + Returns a scalePercentage in case the image needs to be scaled. + Sets a scale percentage in case the image needs to be scaled. + + + Gets the image offset in the x direction + @return the image offset in the x direction + + + Gets the image offset in the y direction + @return Gets the image offset in the y direction + + + sets the value. + + + Tells you if this string is in Chinese, Japanese, Korean or Identity-H. + + + Gets the encoding of this string. + + @return a string + + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + Constructs a new PdfColor. + + @param red a value between 0 and 255 + @param green a value between 0 and 255 + @param blue a value between 0 and 255 + + + PdfContentByte is an object containing the user positioned + text and graphic contents of a page. It knows how to apply the proper + font encoding. + + + This class keeps the graphic state of the current page + + + This is the font in use + + + This is the color in use + + + This is the font size in use + + + The x position of the text line matrix. + + + The y position of the text line matrix. + + + The current text leading. + + + The current horizontal scaling + + + The current character spacing + + + The current word spacing + + + The alignement is center + + + The alignement is left + + + The alignement is right + + + A possible line cap value + + + A possible line cap value + + + A possible line cap value + + + A possible line join value + + + A possible line join value + + + A possible line join value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + A possible text rendering value + + + This is the actual content + + + This is the writer + + + This is the PdfDocument + + + This is the GraphicState in use + + + The list were we save/restore the layer depth + + + The list were we save/restore the state + + + The separator between commands. + + + Constructs a new PdfContentByte-object. + + @param wr the writer associated to this content + + + Returns the string representation of this PdfContentByte-object. + + @return a string + + + [SUP-1395] If set, prevents iText from marking content and creating structure tags for items added to this content stream. + (By default, iText automatically marks content using BDC/EMC operators, and adds a structure tag for the new content + at the end of the page.) + + + Checks if the content needs to be tagged. + @return false if no tags need to be added + + + Gets the internal buffer. + @return the internal buffer + + + Returns the PDF representation of this PdfContentByte-object. + + @param writer the PdfWriter + @return a byte array with the representation + + + Adds the content of another PdfContent-object to this object. + + @param other another PdfByteContent-object + + + Gets the x position of the text line matrix. + + @return the x position of the text line matrix + + + Gets the y position of the text line matrix. + + @return the y position of the text line matrix + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current word spacing. + + @return the current word spacing + + + Gets the current character spacing. + + @return the current character spacing + + + Gets the current text leading. + + @return the current text leading + + + + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + + + + + + + + + + + + + + Modify the current clipping path by intersecting it with the current path, using the + nonzero winding number rule to determine which regions lie inside the clipping + path. + + + Modify the current clipping path by intersecting it with the current path, using the + even-odd rule to determine which regions lie inside the clipping path. + + + Changes the currentgray tint for filling paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for filling paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for filling paths to black. + + + Changes the currentgray tint for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceGray (or the DefaultGray color space), + and sets the gray tint to use for stroking paths.

+ + @param gray a value between 0 (black) and 1 (white) +
+ + Changes the current gray tint for stroking paths to black. + + + Helper to validate and write the RGB color components + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (minimum intensity) and + 1 (maximum intensity).

+ + @param red the intensity of red. A value between 0 and 1 + @param green the intensity of green. A value between 0 and 1 + @param blue the intensity of blue. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + Changes the current color for stroking paths to black. + + + + Helper to validate and write the CMYK color components. + + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink).

+ + @param cyan the intensity of cyan. A value between 0 and 1 + @param magenta the intensity of magenta. A value between 0 and 1 + @param yellow the intensity of yellow. A value between 0 and 1 + @param black the intensity of black. A value between 0 and 1 +
+ + Changes the current color for filling paths to black. + + + + + Changes the current color for stroking paths to black. + + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Move the current point (x, y), omitting any connecting line segment. + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a straight line segment from the current point (x, y). The new current + point is (x, y). + + @param x new x-coordinate + @param y new y-coordinate + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x2 x-coordinate of the second control point + @param y2 y-coordinate of the second control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Appends a Bezier curve to the path, starting from the current point. + + @param x1 x-coordinate of the first control point + @param y1 y-coordinate of the first control point + @param x3 x-coordinaat of the ending point (= new current point) + @param y3 y-coordinaat of the ending point (= new current point) + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Draws a circle. The endpoint will (x+r, y). + + @param x x center of circle + @param y y center of circle + @param r radius of circle + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + + + Adds a variable width border to the current path. + Only use if {@link com.lowagie.text.Rectangle#isUseVariableBorders() Rectangle.isUseVariableBorders} + = true. + @param rect a Rectangle + + + Adds a border (complete or partially) to the current path.. + + @param rectangle a Rectangle + + + Closes the current subpath by appending a straight line segment from the current point + to the starting point of the subpath. + + + Ends the path without filling or stroking it. + + + Strokes the path. + + + Closes the path and strokes it. + + + Fills the path, using the non-zero winding number rule to determine the region to fill. + + + Fills the path, using the even-odd rule to determine the region to fill. + + + Fills the path using the non-zero winding number rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the non-zero winding number rule to determine the region to fill and strokes it. + + + Fills the path, using the even-odd rule to determine the region to fill and strokes it. + + + Closes the path, fills it using the even-odd rule to determine the region to fill and strokes it. + + + Adds an Image to the page. The Image must have + absolute positioning. + @param image the Image object + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The Image must have + absolute positioning. The image can be placed inline. + @param image the Image object + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException if the Image does not have absolute positioning + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @throws DocumentException on error + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + + + adds an image with the given matrix. + @param image image to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + use AddImage(image, image_width, 0, 0, image_height, x, y). The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @throws DocumentException on error + + + Adds an Image to the page. The positioning of the Image + is done with the transformation matrix. To position an image at (x,y) + The image can be placed inline. + @param image the Image object + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param inlineImage true to place this image inline, false otherwise + @param isMCBlockOpened true not to open MCBlock, false otherwise + @throws DocumentException on error + + + Makes this PdfContentByte empty. + Calls reset( true ) + + + Makes this PdfContentByte empty. + @param validateContent will call sanityCheck() if true. + @since 2.1.6 + + + Starts the writing of text. + @param restoreTM indicates if to restore text matrix of the previous text block. + + + Starts the writing of text. + + + Ends the writing of text and makes the current font invalid. + + + Saves the graphic state. saveState and + restoreState must be balanced. + + + Restores the graphic state. saveState and + restoreState must be balanced. + + + Sets the character spacing parameter. + + @param charSpace a parameter + + + Sets the word spacing parameter. + + @param wordSpace a parameter + + + Sets the horizontal scaling parameter. + + @param scale a parameter + + + Set the font and the size for the subsequent text writing. + + @param bf the font + @param size the font size in points + + + Sets the text rendering parameter. + + @param rendering a parameter + + + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + Sets the text rise parameter. +

+ This allows to write text in subscript or basescript mode.

+ + @param rise a parameter +
+ + A helper to insert into the content stream the text + converted to bytes according to the font's encoding. + + @param text the text to write + + + Shows the text. + + @param text the text to write + + + Constructs a kern array for a text in a certain font + @param text the text + @param font the font + @return a PdfTextArray + + + Shows the text kerned. + + @param text the text to write + + + Moves to the next line and shows text. + + @param text the text to write + + + Moves to the next line and shows text string, using the given values of the character and word spacing parameters. + + @param wordSpacing a parameter + @param charSpacing a parameter + @param text the text to write + + + Changes the text matrix. +

+ Remark: this operation also initializes the current point position.

+ + @param a operand 1,1 in the matrix + @param b operand 1,2 in the matrix + @param c operand 2,1 in the matrix + @param d operand 2,2 in the matrix + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + + + Changes the text matrix. The first four parameters are {1,0,0,1}. +

+ Remark: this operation also initializes the current point position.

+ + @param x operand 3,1 in the matrix + @param y operand 3,2 in the matrix +
+ + Moves to the start of the next line, offset from the start of the current line. + + @param x x-coordinate of the new current point + @param y y-coordinate of the new current point + + + Moves to the start of the next line, offset from the start of the current line. +

+ As a side effect, this sets the leading parameter in the text state.

+ + @param x offset of the new current point + @param y y-coordinate of the new current point +
+ + Moves to the start of the next line. + + + Gets the size of this content. + + @return the size of the content + + + Adds a named outline to the document. + + @param outline the outline + @param name the name for the local destination + + + Gets the root outline. + + @return the root outline + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The additional spacing is not computed for the last character + of the string. + @param text the string to get width of + @param kerned the kerning option + @return the width + + + Computes the width of the given string taking in account + the current values of "Character spacing", "Word Spacing" + and "Horizontal Scaling". + The spacing for the last character is also computed. + It also takes into account kerning that can be specified within TJ operator (e.g. [(Hello) 123 (World)] TJ) + @param text the string to get width of + @param kerned the kerning option + @param kerning the kerning option from TJ array + @return the width + + + Shows text right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + Shows text kerned right, left or center aligned with rotation. + @param alignment the alignment can be ALIGN_CENTER, ALIGN_RIGHT or ALIGN_LEFT + @param text the text to show + @param x the x pivot position + @param y the y pivot position + @param rotation the rotation to be applied in degrees counterclockwise + + + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + + + Concatenate a matrix to the current transformation matrix. + @param transform added to the Current Transformation Matrix + @since 5.0.1 + + + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws a partial ellipse inscribed within the rectangle x1,y1,x2,y2, + starting at startAng degrees and covering extent degrees. Angles + start with 0 to the right (+x) and increase counter-clockwise. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + @param startAng starting angle in degrees + @param extent angle extent in degrees + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Draws an ellipse inscribed within the rectangle x1,y1,x2,y2. + + @param x1 a corner of the enclosing rectangle + @param y1 a corner of the enclosing rectangle + @param x2 a corner of the enclosing rectangle + @param y2 a corner of the enclosing rectangle + + + Create a new colored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @return the PdfPatternPainter where the pattern will be created + + + Create a new colored tiling pattern. Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + + @param width the width of the pattern + @param height the height of the pattern + @param xstep the desired horizontal spacing between pattern cells. + May be either positive or negative, but not zero. + @param ystep the desired vertical spacing between pattern cells. + May be either positive or negative, but not zero. + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + Create a new uncolored tiling pattern. + Variables xstep and ystep are set to the same values + of width and height. + @param width the width of the pattern + @param height the height of the pattern + @param color the default color. Can be null + @return the PdfPatternPainter where the pattern will be created + + + + Creates a new appearance to be used with form fields. + + @param width the bounding box width + @param height the bounding box height + @return the appearance created + + + Adds a PostScript XObject to this content. + + @param psobject the object + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a template to this content. + + @param template the template + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + Adds a form XObject to this content. + + @param formXObj the form XObject + @param name the name of form XObject in content stream. The name is changed, if if it already exists in page resources + @param a an element of the transformation matrix + @param b an element of the transformation matrix + @param c an element of the transformation matrix + @param d an element of the transformation matrix + @param e an element of the transformation matrix + @param f an element of the transformation matrix + + @return Name under which XObject was stored in resources. See name parameter + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @param tagContent true - template content will be tagged(all that will be added after), false - only a Do operator will be tagged. + taken into account only if isTagged() - true. + + + adds a template with the given matrix. + @param template template to add + @param transform transform to apply to the template prior to adding it. + @since 5.0.1 + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Adds a template to this content. + + @param template the template + @param x the x location of this template + @param y the y location of this template + + + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (no ink) and + 1 (maximum ink). This method however accepts only ints between 0x00 and 0xFF.

+ + @param cyan the intensity of cyan + @param magenta the intensity of magenta + @param yellow the intensity of yellow + @param black the intensity of black +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceCMYK (or the DefaultCMYK color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param cyan the intensity of red + @param magenta the intensity of green + @param yellow the intensity of blue + @param black the intensity of black +
+ + Changes the current color for filling paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for filling paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF.

+ + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Changes the current color for stroking paths (device dependent colors!). +

+ Sets the color space to DeviceRGB (or the DefaultRGB color space), + and sets the color to use for stroking paths.

+

+ This method is described in the 'Portable Document Format Reference Manual version 1.3' + section 8.5.2.1 (page 331).

+ Following the PDF manual, each operand must be a number between 0 (miniumum intensity) and + 1 (maximum intensity). This method however accepts only ints between 0x00 and 0xFF. + + @param red the intensity of red + @param green the intensity of green + @param blue the intensity of blue +
+ + Sets the stroke color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color. color can be an + ExtendedColor. + @param color the color + + + Sets the fill color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the stroke color to a spot color. + @param sp the spot color + @param tint the tint for the spot color. 0 is no color and 1 + is 100% color + + + Sets the fill color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Outputs the color values to the content. + @param color The color + @param tint the tint if it is a spot color, ignored otherwise + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the fill color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + + + Sets the stroke color to an uncolored pattern. + @param p the pattern + @param color the color of the pattern + @param tint the tint if the color is a spot color, ignored otherwise + + + Sets the stroke color to a pattern. The pattern can be + colored or uncolored. + @param p the pattern + + + Paints using a shading object. + @param shading the shading object + + + Paints using a shading pattern. + @param shading the shading pattern + + + Sets the shading fill pattern. + @param shading the shading pattern + + + Sets the shading stroke pattern + @param shading the shading pattern + + + Check if we have a valid PdfWriter. + + + + Show an array of text. + @param text array of text + + + Gets the PdfWriter in use by this object. + @return the PdfWriter in use by this object + + + Gets the PdfDocument in use by this object. + @return the PdfDocument in use by this object + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + The local destination to where a local goto with the same + name will jump. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already exists + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Adds a round rectangle to the current path. + + @param x x-coordinate of the starting point + @param y y-coordinate of the starting point + @param w width + @param h height + @param r radius of the arc corner + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Outputs a string directly to the content. + @param s the string + + + Outputs a char directly to the content. + @param c the char + + + Outputs a float directly to the content. + @param n the float + + + Throws an error if it is a pattern. + @param t the object to check + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a TextField. + + + Draws a button. + + + Draws a button. + + + Sets the graphic state + @param gstate the graphic state + + + + Ends a layer controled graphic block. It will end the most recent open block. + + + Sets the default colorspace. + @param name the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB + or PdfName.DEFAULTCMYK + @param obj the colorspace. A null or PdfNull removes any colorspace with the same name + + + Concatenates a transformation to the current transformation + matrix. + @param af the transformation + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Begins a marked content sequence. This sequence will be tagged with the structure struc. + The same structure can be used several times to connect text that belongs to the same logical segment + but is in a different location, like the same paragraph crossing to another page, for example. + @param struc the tagging structure + + + Ends a marked content sequence + + + Begins a marked content sequence. If property is null the mark will be of the type + BMC otherwise it will be BDC. + @param tag the tag + @param property the property + @param inline true to include the property in the content or false + to include the property in the resource dictionary with the possibility of reusing + + + This is just a shorthand to beginMarkedContentSequence(tag, null, false). + @param tag the tag + + + Checks for any dangling state: Mismatched save/restore state, begin/end text, + begin/end layer, or begin/end marked content sequence. + If found, this function will throw. This function is called automatically + during a Reset() (from Document.NewPage() for example), and before writing + itself out in ToPdf(). + One possible cause: not calling myPdfGraphics2D.Dispose() will leave dangling + SaveState() calls. + @since 2.1.6 + @throws IllegalPdfSyntaxException (a runtime exception) + + + Parses the page or template content. + @author Paulo Soares + + + Commands have this type. + + + Holds value of property tokeniser. + + + Creates a new instance of PdfContentParser + @param tokeniser the tokeniser with the content + + + Parses a single command from the content. Each command is output as an array of arguments + having the command itself as the last element. The returned array will be empty if the + end of content was reached. + @param ls an ArrayList to use. It will be cleared before using. If it's + null will create a new ArrayList + @return the same ArrayList given as argument or a new one + @throws IOException on error + + + Gets the tokeniser. + @return the tokeniser. + + + Sets the tokeniser. + @param tokeniser the tokeniser + + + Reads a dictionary. The tokeniser must be positioned past the "<<" token. + @return the dictionary + @throws IOException on error + + + Reads an array. The tokeniser must be positioned past the "[" token. + @return an array + @throws IOException on error + + + Reads a pdf object. + @return the pdf object + @throws IOException on error + + + Reads the next token skipping over the comments. + @return true if a token was read, false if the end of content was reached + @throws IOException on error + + + PdfContents is a PdfStream containing the contents (text + graphics) of a PdfPage. + + + Constructs a PdfContents-object, containing text and general graphics. + + @param under the direct content that is under all others + @param content the graphics in a page + @param text the text in a page + @param secondContent the direct content that is over all others + @throws BadPdfFormatException on error + + + Make copies of PDF documents. Documents can be edited after reading and + before writing them out. + @author Mark Thompson + + + This class holds information about indirect references, since they are + renumbered by iText. + + + Holds value of property rotateContents. + + + Constructor + @param document + @param os outputstream + + + Setting page events isn't possible with Pdf(Smart)Copy. + Use the PageStamp class if you want to add content to copied pages. + @see com.itextpdf.text.pdf.PdfWriter#setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Grabs a page from the input document + @param reader the reader of the document + @param pageNumber which page to get + @return the page + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file. + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRDictionary to a PdfDictionary. Also translate all of the + objects contained in it. + + + Translate a PRStream to a PdfStream. The data part copies itself. + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PRArray to a PdfArray. Also translate all of the objects contained + in it + + + Translate a PR-object to a Pdf-object + + + Translate a PR-object to a Pdf-object + + + convenience method. Given an importedpage, set our "globals" + + + convenience method. Given a reader, set our "globals" + + + Add an imported page to our output + @param iPage an imported page + @throws IOException, BadPdfFormatException + + + Adds a blank page. + @param rect The page dimension + @param rotation The rotation angle in degrees + @since 2.1.5 + @throws DocumentException + + + Copy document fields to a destination document. + @param reader a document where fields are copied from. + @throws DocumentException + @throws IOException + + + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Concatenates PDF documents including form fields. The rules for the form field + concatenation are the same as in Acrobat. All the documents are kept in memory unlike + PdfCopy. + @author Paulo Soares + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + @throws IOException on error + + + Creates a new instance. + @param os the output stream + @param pdfVersion the pdf version the output will have + @throws DocumentException on error + @throws IOException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as AddDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + + @author psoares + + + Sets a reference to "visited" in the copy process. + @param ref the reference that needs to be set to "visited" + @return true if the reference was set to visited + + + Checks if a reference has already been "visited" in the copy process. + @param ref the reference that needs to be checked + @return true if the reference was already visited + + + Checks if a reference refers to a page object. + @param ref the reference that needs to be checked + @return true is the reference refers to a page object. + + + Allows you to add one (or more) existing PDF document(s) to + create a new PDF and add the form of another PDF document to + this new PDF. + @since 2.1.5 + @deprecated since 5.5.2 + + + The class with the actual implementations. + + + Creates a new instance. + @param os the output stream + @throws DocumentException on error + + + Concatenates a PDF document. + @param reader the PDF document + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param pagesToKeep the pages to keep + @throws DocumentException on error + + + Concatenates a PDF document selecting the pages to keep. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. + @param reader the PDF document + @param ranges the comma separated ranges as described in {@link SequenceList} + @throws DocumentException on error + + + Copies the form fields of this PDFDocument onto the PDF-Document which was added + @param reader the PDF document + @throws DocumentException on error + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length. false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Closes the output document. + + + Opens the document. This is usually not needed as addDocument() will do it + automatically. + + + Adds JavaScript to the global document + @param js the JavaScript + + + Sets the bookmarks. The list structure is defined in + SimpleBookmark#. + @param outlines the bookmarks or null to remove any + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(byte[], byte[], int, int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfEncryptionSettings#setEncryption(java.security.cert.Certificate[], int[], int) + + + Allows you to add one (or more) existing PDF document(s) + and add the form(s) of (an)other PDF document(s). + @since 2.1.5 + @deprecated since 5.5.2 + + + This sets up the output document + @param os The Outputstream pointing to the output document + @throws DocumentException + + + This method feeds in the source document + @param reader The PDF reader containing the source document + @throws DocumentException + + + This merge fields is slightly different from the mergeFields method + of PdfCopyFields. + + + A PdfDashPattern defines a dash pattern as described in + the PDF Reference Manual version 1.3 p 325 (section 8.4.3). + + @see PdfArray + + + This is the length of a dash. + + + This is the length of a gap. + + + This is the phase. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Constructs a new PdfDashPattern. + + + Returns the PDF representation of this PdfArray. + + @return an array of bytes + + + + Constructs a PdfDate-object. + + @param d the date that has to be turned into a PdfDate-object + + + Constructs a PdfDate-object, representing the current day and time. + + + Adds a number of leading zeros to a given string in order to get a string + of a certain length. + + @param i a given number + @param length the length of the resulting string + @return the resulting string + + + Gives the W3C format of the PdfDate. + @return a formatted date + + + Gives the W3C format of the PdfDate. + @param d the date in the format D:YYYYMMDDHHmmSSOHH'mm' + @return a formatted date + + + A PdfColor defines a Color (it's a PdfArray containing 3 values). + + @see PdfDictionary + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + This is a possible destination type + + + Is the indirect reference to a page already added? + + + + + + + Creates a PdfDestination based on a String. + Valid Strings are for instance the values returned by SimpleNamedDestination: + "Fit", "XYZ 36 806 0",... + @param dest a String notation of a destination. + @since iText 5.0 + + + Checks if an indirect reference to a page has been added. + + @return true or false + + + Adds the indirect reference of the destination page. + + @param page an indirect reference + @return true if the page reference was added + + + Beginning with BaseVersion 1.7, the extensions dictionary lets developers + designate that a given document contains extensions to PDF. The presence + of the extension dictionary in a document indicates that it may contain + developer-specific PDF properties that extend a particular base version + of the PDF specification. + The extensions dictionary enables developers to identify their own extensions + relative to a base version of PDF. Additionally, the convention identifies + extension levels relative to that base version. The intent of this dictionary + is to enable developers of PDF-producing applications to identify company-specific + specifications (such as this one) that PDF-consuming applications use to + interpret the extensions. + @since 2.1.6 + + + An instance of this class for Adobe 1.7 Extension level 3. + + + An instance of this class for ETSI 1.7 Extension level 2. + + + An instance of this class for ETSI 1.7 Extension level 5. + + + The prefix used in the Extensions dictionary added to the Catalog. + + + The base version. + + + The extension level within the baseversion. + + + Creates a PdfDeveloperExtension object. + @param prefix the prefix referring to the developer + @param baseversion the number of the base version + @param extensionLevel the extension level within the baseverion. + + + Gets the prefix name. + @return a PdfName + + + Gets the baseversion name. + @return a PdfName + + + Gets the extension level within the baseversion. + @return an integer + + + Generations the developer extension dictionary corresponding + with the prefix. + @return a PdfDictionary + + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is a possible type of dictionary + + + This is the type of this dictionary + + + This is the hashmap that contains all the values and keys of the dictionary + + + Constructs an empty PdfDictionary-object. + + + Constructs a PdfDictionary-object of a certain type. + + @param type a PdfName + + + Returns the PDF representation of this PdfDictionary. + + @return an array of byte + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null or PdfNull the key is deleted. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Adds a PdfObject and its key to the PdfDictionary. + If the value is null it does nothing. + + @param key key of the entry (a PdfName) + @param value value of the entry (a PdfObject) + + + Copies all of the mappings from the specified PdfDictionary + to this PdfDictionary. + + These mappings will replace any mappings previously contained in this + PdfDictionary. + + @param dic The PdfDictionary with the mappings to be + copied over + + + Removes a PdfObject and its key from the PdfDictionary. + + @param key key of the entry (a PdfName) + + + Removes all the PdfObjects and its keys from the + PdfDictionary. + @since 5.0.2 + + + + Checks if a Dictionary is of the type FONT. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGE. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type PAGES. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type CATALOG. + + @return true if it is, false if it isn't. + + + Checks if a Dictionary is of the type OUTLINES. + + @return true if it is, false if it isn't. + + + Checks the type of the dictionary. + @param type the type you're looking for + @return true if the type of the dictionary corresponds with the type you're looking for + + + This function behaves the same as 'get', but will never return an indirect reference, + it will always look such references up and return the actual object. + @param key + @return null, or a non-indirect object + + + All the getAs functions will return either null, or the specified object type + This function will automatically look up indirect references. There's one obvious + exception, the one that will only return an indirect reference. All direct objects + come back as a null. + Mark A Storer (2/17/06) + @param key + @return the appropriate object in its final type, or null + + + + + Construct a PdfInfo-object. + + + Constructs a PdfInfo-object. + + @param author name of the author of the document + @param title title of the document + @param subject subject of the document + + + Adds the title of the document. + + @param title the title of the document + + + Adds the subject to the document. + + @param subject the subject of the document + + + Adds some keywords to the document. + + @param keywords the keywords of the document + + + Adds the name of the author to the document. + + @param author the name of the author + + + Adds the name of the creator to the document. + + @param creator the name of the creator + + + Adds the name of the producer to the document. + + + Adds the date of creation to the document. + + + + Constructs a PdfCatalog. + + @param pages an indirect reference to the root of the document's Pages tree. + @param writer the writer the catalog applies to + + + Adds the names of the named destinations to the catalog. + @param localDestinations the local destinations + @param documentJavaScript the javascript used in the document + @param writer the writer the catalog applies to + + + Sets the document level additional actions. + @param actions dictionary of actions + + + Constructs a new PDF document. + @throws DocumentException on error + + + The PdfWriter. + + + Adds a PdfWriter to the PdfDocument. + + @param writer the PdfWriter that writes everything + what is added to this document to an outputstream. + @throws DocumentException on error + + + This is the PdfContentByte object, containing the text. + + + This is the PdfContentByte object, containing the borders and other Graphics. + + + This represents the leading of the lines. + + + Getter for the current leading. + @return the current leading + @since 2.1.2 + + + This is the current height of the document. + + + Signals that onParagraph is valid (to avoid that a Chapter/Section title is treated as a Paragraph). + @since 2.1.2 + + + This represents the current alignment of the PDF Elements. + + + The current active PdfAction when processing an Anchor. + + + The current tab settings. + @return the current + @since 5.4.0 + + + Signals that the current leading has to be subtracted from a YMark object when positive + and save current leading + @since 2.1.2 + + + Save current @leading + + + Restore @leading from leadingStack + + + Getter and setter for the current tab stops. + @since 5.4.0 + + + Signals that an Element was added to the Document. + + @param element the element to add + @return true if the element was added, false if not. + @throws DocumentException when a document isn't open yet, or has been closed + + + + + Use this method to set the XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + @throws IOException + + + Makes a new page and sends it to the PdfWriter. + + @return true if new page was added + @throws DocumentException on error + + + Sets the pagesize. + + @param pageSize the new pagesize + @return true if the page size was set + + + margin in x direction starting from the left. Will be valid in the next page + + + margin in x direction starting from the right. Will be valid in the next page + + + margin in y direction starting from the top. Will be valid in the next page + + + margin in y direction starting from the bottom. Will be valid in the next page + + + Sets the margins. + + @param marginLeft the margin on the left + @param marginRight the margin on the right + @param marginTop the margin on the top + @param marginBottom the margin on the bottom + @return a bool + + + @see com.lowagie.text.DocListener#setMarginMirroring(bool) + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + Sets the page number. + + @param pageN the new page number + + + Sets the page number to 0. + + + Signals that OnOpenDocument should be called. + + + + The line that is currently being written. + + + The lines that are written until now. + + + Adds the current line to the list of lines and also adds an empty line. + @throws DocumentException on error + + + line.height() is usually the same as the leading + We should take leading into account if it is not the same as the line.height + + @return float combined height of the line + @since 5.5.1 + + + If the current line is not empty or null, it is added to the arraylist + of lines and a new empty line is added. + @throws DocumentException on error + + + Gets the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Holds the type of the last element, that has been added to the document. + + + Ensures that a new line has been started. + + + Writes all the lines to the text-object. + + @return the displacement that was caused + @throws DocumentException on error + + + The characters to be applied the hanging punctuation. + + + + This represents the current indentation of the PDF Elements on the left side. + + + Indentation to the left caused by a section. + + + This represents the current indentation of the PDF Elements on the left side. + + + This is the indentation caused by an image on the left. + + + This represents the current indentation of the PDF Elements on the right side. + + + Indentation to the right caused by a section. + + + This is the indentation caused by an image on the right. + + + This represents the current indentation of the PDF Elements on the top side. + + + This represents the current indentation of the PDF Elements on the bottom side. + + + Gets the indentation on the left side. + + @return a margin + + + Gets the indentation on the right side. + + @return a margin + + + Gets the indentation on the top side. + + @return a margin + + + Gets the indentation on the bottom side. + + @return a margin + + + Calls addSpacing(float, float, Font, boolean (false)). + + + Adds extra space. + + + some meta information about the Document. + + + + Gets the PdfCatalog-object. + + @param pages an indirect reference to this document pages + @return PdfCatalog + + + This is the root outline of the document. + + + This is the current PdfOutline in the hierarchy of outlines. + + + Adds a named outline to the document . + @param outline the outline to be added + @param name the name of this local destination + + + Gets the root outline. All the outlines must be created with a parent. + The first level is created with this outline. + @return the root outline + + + Contains the Viewer preferences of this PDF document. + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#setViewerPreferences(int) + + + @see com.lowagie.text.pdf.interfaces.PdfViewerPreferences#addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject) + + + Implements a link to other part of the document. The jump will + be made to a local destination with the same name, that must exist. + @param name the name for this link + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param name the name to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements a link to another document. + @param filename the filename for the remote document + @param page the page to jump to + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Implements an action in an area. + @param action the PdfAction + @param llx the lower left x corner of the activation area + @param lly the lower left y corner of the activation area + @param urx the upper right x corner of the activation area + @param ury the upper right y corner of the activation area + + + Stores the destinations keyed by name. Value is + Object[]{PdfAction,PdfIndirectReference,PdfDestintion}. + + + The local destination to where a local goto with the same + name will jump to. + @param name the name of this local destination + @param destination the PdfDestination with the jump coordinates + @return true if the local destination was added, + false if a local destination with the same name + already existed + + + Stores a list of document level JavaScript actions. + + + Sets the collection dictionary. + @param collection a dictionary of type PdfCollection + + + Gets the AcroForm object. + @return the PdfAcroform object of the PdfDocument + + + This is the size of the next page. + + + This is the size of the several boxes of the current Page. + + + This is the size of the several boxes that will be used in + the next page. + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + This checks if the page is empty. + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the PdfTransition object + + + This are the page resources of the current Page. + + + Holds value of property strictImageSequence. + + + Setter for property strictImageSequence. + @param strictImageSequence New value of property strictImageSequence. + + + + This is the position where the image ends. + + + Method added by Pelikan Stephan + @see com.lowagie.text.DocListener#clearTextWrap() + + + This is the image that could not be shown on a previous page. + + + Adds an image to the document. + @param image the Image to add + @throws PdfException on error + @throws DocumentException on error + + + Adds a PdfPTable to the document. + @param ptable the PdfPTable to be added to the document. + @throws DocumentException on error + + + @since 5.0.1 + + + Extends PdfStream and should be used to create Streams for Embedded Files + (file attachments). + @since 2.1.3 + + + Creates a Stream object using an InputStream and a PdfWriter object + @param in the InputStream that will be read to get the Stream object + @param writer the writer to which the stream will be added + + + Creates a Stream object using a byte array + @param fileStore the bytes for the stream + + + @see com.lowagie.text.pdf.PdfDictionary#toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream) + + + Supports fast encodings for winansi and PDFDocEncoding. + + @author Paulo Soares + + + + + Checks is text only has PdfDocEncoding characters. + @param text the String to test + @return true if only PdfDocEncoding characters are present + + + Adds an extra encoding. + @param name the name of the encoding. The encoding recognition is case insensitive + @param enc the conversion class + + + + @author Paulo Soares + + + The encryption key for a particular object/generation + + + The encryption key length for a particular object/generation + + + The global encryption key + + + Work area to prepare the object/generation bytes + + + The message digest algorithm MD5 + + + The encryption key for the owner + + + The encryption key for the user + + + The public key security handler for certificate encryption + + + The generic key length. It may be 40 or 128. + + + Indicates if the encryption is only necessary for embedded files. + @since 2.1.3 + + + Indicates if only the embedded files have to be encrypted. + @return if true only the embedded files will be encrypted + @since 2.1.3 + + + + + + ownerKey, documentID must be setuped + + + + mkey must be setuped + + + + + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 algorithm (Revision 2 - 4). + + @param ownerPassword owner password of the encrypted document. + @return user password, or null if revision 5 (AES256) or greater of standard encryption handler was used. + + + This class takes any PDF and returns exactly the same but + encrypted. All the content, links, outlines, etc, are kept. + It is also possible to change the info dictionary. + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param newInfo an optional String map to add or change + the info dictionary. Entries with null + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Entry point to encrypt a PDF document. The encryption parameters are the same as in + PdfWriter. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param reader the read PDF + @param os the output destination + @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + values delete the key in the original info dictionary + @throws DocumentException on error + @throws IOException on error + + + Give you a verbose analysis of the permissions. + @param permissions the permissions value of a PDF file + @return a String that explains the meaning of the permissions value + + + Tells you if printing is allowed. + @param permissions the permissions value of a PDF file + @return true if printing is allowed + + @since 2.0.7 + + + Tells you if modifying content is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying content is allowed + + @since 2.0.7 + + + Tells you if copying is allowed. + @param permissions the permissions value of a PDF file + @return true if copying is allowed + + @since 2.0.7 + + + Tells you if modifying annotations is allowed. + @param permissions the permissions value of a PDF file + @return true if modifying annotations is allowed + + @since 2.0.7 + + + Tells you if filling in fields is allowed. + @param permissions the permissions value of a PDF file + @return true if filling in fields is allowed + + @since 2.0.7 + + + Tells you if repurposing for screenreaders is allowed. + @param permissions the permissions value of a PDF file + @return true if repurposing for screenreaders is allowed + + @since 2.0.7 + + + Tells you if document assembly is allowed. + @param permissions the permissions value of a PDF file + @return true if document assembly is allowed + + @since 2.0.7 + + + Tells you if degraded printing is allowed. + @param permissions the permissions value of a PDF file + @return true if degraded printing is allowed + + @since 2.0.7 + + + Signals that an unspecified problem while constructing a PDF document. + + @see BadPdfFormatException + + + Specifies a file or an URL. The file can be extern or embedded. + + @author Paulo Soares + + + Creates a new instance of PdfFileSpecification. The static methods are preferred. + + + Creates a file specification of type URL. + @param writer the PdfWriter + @param url the URL + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. The data is flate compressed. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compressionLevel the compression level to be used for compressing the file + it takes precedence over filePath + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param compress sets the compression on the data. Multimedia content will benefit little + from compression + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @throws IOException on error + @return the file specification + + + Creates a file specification with the file embedded. The file may + come from the file system or from a byte array. + @param writer the PdfWriter + @param filePath the file path + @param fileDisplay the file information that is presented to the user + @param fileStore the byte array with the file. If it is not null + it takes precedence over filePath + @param mimeType the optional mimeType + @param fileParameter the optional extra file parameters such as the creation or modification date + @param compressionLevel the level of compression + @throws IOException on error + @return the file specification + @since 2.1.3 + + + Creates a file specification for an external file. + @param writer the PdfWriter + @param filePath the file path + @return the file specification + + + Gets the indirect reference to this file specification. + Multiple invocations will retrieve the same value. + @throws IOException on error + @return the indirect reference + + + Sets the file name (the key /F) string as an hex representation + to support multi byte file names. The name must have the slash and + backslash escaped according to the file specification rules + @param fileName the file name as a byte array + + + Adds the unicode file name (the key /UF). This entry was introduced + in PDF 1.7. The filename must have the slash and backslash escaped + according to the file specification rules. + @param filename the filename + @param unicode if true, the filename is UTF-16BE encoded; otherwise PDFDocEncoding is used; + + + Sets a flag that indicates whether an external file referenced by the file + specification is volatile. If the value is true, applications should never + cache a copy of the file. + @param volatile_file if true, the external file should not be cached + + + Adds a description for the file that is specified here. + @param description some text + @param unicode if true, the text is added as a unicode string + + + Adds the Collection item dictionary. + + + + the font metrics. + + + the size. + + + Compares this PdfFont with another + + @param object the other PdfFont + @return a value + + + Returns the size of this font. + + @return a size + + + Returns the approximative width of 1 character of this font. + + @return a width in Text Space + + + Returns the width of a certain character of this font. + + @param character a certain character + @return a width in Text Space + + + Implements form fields. + + @author Paulo Soares + + + Allows text fields to support rich text. + @since 5.0.6 + + + Holds value of property parent. + + + Constructs a new PdfAnnotation of subtype link (Action). + + + Creates new PdfFormField + + + Getter for property parent. + @return Value of property parent. + + + Sets the rich value for this field. + It is suggested that the regular value of this field be set to an + equivalent value. Rich text values are only supported since PDF 1.5, + and require that the FF_RV flag be set. See PDF Reference chapter + 12.7.3.4 for details. + @param rv HTML markup for the rich value of this field + @since 5.0.6 + + + PdfFormObject is a type of XObject containing a template-object. + + + This is a PdfNumber representing 0. + + + This is a PdfNumber representing 1. + + + This is the 1 - matrix. + + + Constructs a PdfFormXObject-object. + + @param template the template + @param compressionLevel the compression level for the stream + @since 2.1.3 (Replacing the existing constructor with param compressionLevel) + + + Implements PDF functions. + + @author Paulo Soares + + + Creates new PdfFunction + + + The graphic state dictionary. + + @author Paulo Soares + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + A possible blend mode + + + Sets the flag whether to apply overprint for stroking. + @param ov + + + Sets the flag whether to apply overprint for non stroking painting operations. + @param ov + + + Sets the flag whether to toggle knockout behavior for overprinted objects. + @param ov - accepts 0 or 1 + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for stroking operations in the transparent + imaging model. + @param n + + + Sets the current stroking alpha constant, specifying the constant shape or + constant opacity value to be used for nonstroking operations in the transparent + imaging model. + @param n + + + The alpha source flag specifying whether the current soft mask + and alpha constant are to be interpreted as shape values (true) + or opacity values (false). + @param v + + + Determines the behaviour of overlapping glyphs within a text object + in the transparent imaging model. + @param v + + + The current blend mode to be used in the transparent imaging model. + @param bm + + + Set the rendering intent, possible values are: PdfName.ABSOLUTECOLORIMETRIC, + PdfName.RELATIVECOLORIMETRIC, PdfName.SATURATION, PdfName.PERCEPTUAL. + @param ri + + + A PdfICCBased defines a ColorSpace + + @see PdfStream + + + Creates an ICC stream. + @param profile an ICC profile + + + Creates an ICC stream. + + @param compressionLevel the compressionLevel + + @param profile an ICC profile + @since 2.1.3 (replacing the constructor without param compressionLevel) + + + PdfImage is a PdfStream containing an image-Dictionary and -stream. + + + This is the PdfName of the image. + + + Constructs a PdfImage-object. + + @param image the Image-object + @param name the PdfName for this image + @throws BadPdfFormatException on error + + + Returns the PdfName of the image. + + @return the name + + + Called when no resource name is provided in our constructor. This generates a + name that is required to be unique within a given resource dictionary. + @since 5.0.1 + + + Represents an imported page. + + @author Paulo Soares + + + True if the imported page has been copied to a writer. + @since iText 5.0.4 + + + Reads the content from this PdfImportedPage-object from a reader. + + @return self + + + + Always throws an error. This operation is not allowed. + @param image dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + @throws DocumentException dummy + + + Always throws an error. This operation is not allowed. + @param template dummy + @param a dummy + @param b dummy + @param c dummy + @param d dummy + @param e dummy + @param f dummy + + + Always throws an error. This operation is not allowed. + @return dummy + + + Gets the stream representing this page. + + @param compressionLevel the compressionLevel + @return the stream representing this page + @since 2.1.3 (replacing the method without param compressionLevel) + + + Always throws an error. This operation is not allowed. + @param bf dummy + @param size dummy + + + Checks if the page has to be copied. + @return true if the page has to be copied. + @since iText 5.0.4 + + + Indicate that the resources of the imported page have been copied. + @since iText 5.0.4 + + + + The object number + + + the generation number + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param objecti the direct objecti + + + Constructs a PdfIndirectObject. + + @param number the objecti number + @param generation the generation number + @param objecti the direct objecti + + + Returns a PdfIndirectReference to this PdfIndirectObject. + + @return a PdfIndirectReference + + + Writes eficiently to a stream + + @param os the stream to write to + @throws IOException on write error + + + + the object number + + + the generation number + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param type the type of the PdfObject that is referenced to + @param number the object number. + + + Returns the number of the object. + + @return a number. + + + Returns the generation of the object. + + @return a number. + + + An optional content group is a dictionary representing a collection of graphics + that can be made visible or invisible dynamically by users of viewer applications. + In iText they are referenced as layers. + + @author Paulo Soares + + + Holds value of property on. + + + Holds value of property onPanel. + + + Creates a title layer. A title layer is not really a layer but a collection of layers + under the same title heading. + @param title the title text + @param writer the PdfWriter + @return the title layer + + + Creates a new layer. + @param name the name of the layer + @param writer the writer + + + Adds a child layer. Nested layers can only have one parent. + @param child the child layer + + + Gets the parent layer. + @return the parent layer or null if the layer has no parent + + + Gets the children layers. + @return the children layers or null if the layer has no children + + + Gets the PdfIndirectReference that represents this layer. + @return the PdfIndirectReference that represents this layer + + + Sets the name of this layer. + @param name the name of this layer + + + Gets the dictionary representing the layer. It just returns this. + @return the dictionary representing the layer + + + Gets the initial visibility of the layer. + @return the initial visibility of the layer + + + Used by the creating application to store application-specific + data associated with this optional content group. + @param creator a text string specifying the application that created the group + @param subtype a string defining the type of content controlled by the group. Suggested + values include but are not limited to Artwork, for graphic-design or publishing + applications, and Technical, for technical designs such as building plans or + schematics + + + Specifies the language of the content controlled by this + optional content group + @param lang a language string which specifies a language and possibly a locale + (for example, es-MX represents Mexican Spanish) + @param preferred used by viewer applications when there is a partial match but no exact + match between the system language and the language strings in all usage dictionaries + + + Specifies the recommended state for content in this + group when the document (or part of it) is saved by a viewer application to a format + that does not support optional content (for example, an earlier version of + PDF or a raster image format). + @param export the export state + + + Specifies a range of magnifications at which the content + in this optional content group is best viewed. + @param min the minimum recommended magnification factors at which the group + should be ON. A negative value will set the default to 0 + @param max the maximum recommended magnification factor at which the group + should be ON. A negative value will set the largest possible magnification supported by the + viewer application + + + Specifies that the content in this group is intended for + use in printing + @param subtype a name specifying the kind of content controlled by the group; + for example, Trapping, PrintersMarks and Watermark + @param printstate indicates that the group should be + set to that state when the document is printed from a viewer application + + + Indicates that the group should be set to that state when the + document is opened in a viewer application. + @param view the view state + + + Indicates that the group contains a pagination artifact. + @param pe one of the following names: "HF" (Header Footer), + "FG" (Foreground), "BG" (Background), or "L" (Logo). + @since 5.0.2 + + + One of more users for whom this optional content group is primarily intended. + @param type should be "Ind" (Individual), "Ttl" (Title), or "Org" (Organization). + @param names one or more names + @since 5.0.2 + + + Gets the layer visibility in Acrobat's layer panel + @return the layer visibility in Acrobat's layer panel + Sets the visibility of the layer in Acrobat's layer panel. If false + the layer cannot be directly manipulated by the user. Note that any children layers will + also be absent from the panel. + @param onPanel the visibility of the layer in Acrobat's layer panel + + + Content typically belongs to a single optional content group, + and is visible when the group is ON and invisible when it is OFF. To express more + complex visibility policies, content should not declare itself to belong to an optional + content group directly, but rather to an optional content membership dictionary + represented by this class. + + @author Paulo Soares + + + Visible only if all of the entries are ON. + + + Visible if any of the entries are ON. + + + Visible if any of the entries are OFF. + + + Visible only if all of the entries are OFF. + + + Creates a new, empty, membership layer. + @param writer the writer + + + Gets the PdfIndirectReference that represents this membership layer. + @return the PdfIndirectReference that represents this layer + + + Adds a new member to the layer. + @param layer the new member to the layer + + + Gets the member layers. + @return the member layers + + + Sets the visibility policy for content belonging to this + membership dictionary. Possible values are ALLON, ANYON, ANYOFF and ALLOFF. + The default value is ANYON. + @param type the visibility policy + + + Sets the visibility expression for content belonging to this + membership dictionary. + @param ve A (nested) array of which the first value is /And, /Or, or /Not + followed by a series of indirect references to OCGs or other visibility + expressions. + @since 5.0.2 + + + Gets the dictionary representing the membership layer. It just returns this. + @return the dictionary representing the layer + + + PdfLine defines an array with PdfChunk-objects + that fit into 1 line. + + + The arraylist containing the chunks. + + + The left indentation of the line. + + + The width of the line. + + + The alignment of the line. + + + The heigth of the line. + + + true if the chunk splitting was caused by a newline. + + + The original width. + + + Constructs a new PdfLine-object. + + @param left the limit of the line at the left + @param right the limit of the line at the right + @param alignment the alignment of the line + @param height the height of the line + + + Creates a PdfLine object. + @param left the left offset + @param originalWidth the original width of the line + @param remainingWidth bigger than 0 if the line isn't completely filled + @param alignment the alignment of the line + @param newlineSplit was the line splitted (or does the paragraph end with this line) + @param line an array of PdfChunk objects + @param isRTL do you have to read the line from Right to Left? + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @param currentLeading new value for the height of the line + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Adds a PdfChunk to the PdfLine. + + @param chunk the PdfChunk to add + @return null if the chunk could be added completely; if not + a PdfChunk containing the part of the chunk that could + not be added is returned + + + Returns the number of chunks in the line. + + @return a value + + + Returns an iterator of PdfChunks. + + @return an Iterator + + + Returns the height of the line. + + @return a value + + + Returns the left indentation of the line taking the alignment of the line into account. + + @return a value + + + Checks if this line has to be justified. + + @return true if the alignment equals ALIGN_JUSTIFIED and there is some width left. + + + + Adds extra indentation to the left (for Paragraph.setFirstLineIndent). + + + Returns the width that is left, after a maximum of characters is added to the line. + + @return a value + + + Returns the number of space-characters in this line. + + @return a value + + + + Returns the listsymbol of this line. + + @return a PdfChunk if the line has a listsymbol; null otherwise + + + Return the indentation needed to show the listsymbol. + + @return a value + + + Get the string representation of what is in this line. + + @return a string + + + Checks if a newline caused the line split. + @return true if a newline caused the line split + + + Gets the index of the last PdfChunk with metric attributes + @return the last PdfChunk with metric attributes + + + Gets a PdfChunk by index. + @param idx the index + @return the PdfChunk or null if beyond the array + + + Gets the original width of the line. + @return the original width of the line + + + Gets the difference between the "normal" leading and the maximum + size (for instance when there are images in the chunk and the leading + has to be taken into account). + @return an extra leading for images + @since 2.1.5 + + + Gets the number of separators in the line. + Returns -1 if there's a tab in the line. + @return the number of separators in the line + @since 2.1.2 + + + Gets the maximum size of the ascender for all the fonts used + in this line. + @return maximum size of all the ascenders used in this line + + + Gets the biggest descender for all the fonts used + in this line. Note that this is a negative number. + @return maximum size of all the ascenders used in this line + + + a Literal + + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from ABSOLUTECALORIMETRIC + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + a name used in PDF structure + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 5.0.3 + + + A name + + + A name + + + A name + + + Use ALT to specify alternate texts in Tagged PDF. + For alternate ICC profiles, use {@link #ALTERNATE} + + + Use ALTERNATE only in ICC profiles. It specifies an alternative color + space, in case the primary one is not supported, for legacy purposes. + For various types of alternate texts in Tagged PDF, use {@link #ALT} + + + A name + @since 5.5.8 + + + A name + @since 5.4.5 + + + A name + @since 5.4.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.0.7 + + + A name + + + A name + + + A name + + + A name + @since 5.3.2 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.2 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 renamed from DEFAULTCRYPTFILER + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + + + A name + + + A name + @since 5.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 2.1.3 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + @since 2.1.6 + + + A name + @since 5.4.0 + + + A name of an attribute. + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name + @since 5.4.5 + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.5 + + + A name + @since 2.1.5 + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.4 + + + An entry specifying the natural language, and optionally locale. Use this + to specify the Language attribute on a Tagged Pdf element. + For the content usage dictionary, use {@link #LANGUAGE} + + + A dictionary type, strictly for use in the content usage dictionary. For + dictionary entries in Tagged Pdf, use {@link #LANG} + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.2 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + @since 5.2.1 + + + A name + @since 2.1.6 + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 renamed from MAX + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 renamed from MIN + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name used with Document Structure + @since 2.1.5 + + + a name used with Document Structure + @since 2.1.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name used in defining Document Structure. + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + @since 5.5.0 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.0.2 + + + A name + @since 5.0.2 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name. + @since 5.4.5 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.4.3 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.5 renamed from RELATIVECALORIMETRIC + + + A name + + + A name + @since 5.5.4 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name + @since 5.4.4 + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 5.4.0 + + + A name + @since 5.4.3 + + + A name + @since 5.1.0 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.3 + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + T is very commonly used for various dictionary entries, including title + entries in a Tagged PDF element dictionary, and target dictionaries. + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.5 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 5.3.5 + + + A name + @since 5.4.3 + + + A name + + + A name + @since 5.3.4 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.5 + + + A name + @since 5.3.4 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + A name of a base 14 type 1 font + + + Use Title for the document's top level title (optional), and for document + outline dictionaries, which can store bookmarks. + For all other uses of a title entry, including Tagged PDF, use {@link #T} + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.4.3 + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.4 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 5.2.1 + + + A name + @since 5.4.0 + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + @since 5.4.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + @since 5.0.2 + + + A name + @since 2.1.6 + + + A name + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + @since 2.1.6 + + + A name + @since 5.1.0 + + + A name of an attribute. + + + A name of an attribute. + + + A name + @since 2.1.6 + + + A name + @since 5.4.5 + + + A name of an attribute. + + + A name of an attribute. + + + A name of an attribute. + + + A name + + + A name of an encoding + + + A name of an encoding + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name of an encoding + + + A name + + + A name of an attribute. + @since 5.1.0 + + + A name + + + A name of an encoding + + + A name + @since 5.4.3 + + + A name + + + A name + @since 2.1.6 + + + A name + @since 2.1.6 + + + A name + + + A name + + + A name + + + A name + @since 5.1.0 + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name + + + A name of a base 14 type 1 font + + + A name + + + map strings to all known static names + @since 2.1.6 + + + Use reflection to cache all the static public readonly names so + future PdfName additions don't have to be "added twice". + A bit less efficient (around 50ms spent here on a 2.2ghz machine), + but Much Less error prone. + @since 2.1.6 + + + Constructs a new PdfName. The name length will be checked. + @param name the new name + + + Constructs a new PdfName. + @param name the new name + @param lengthCheck if true check the lenght validity, if false the name can + have any length + + + + Indicates whether some other object is "equal to" this one. + + @param obj the reference object with which to compare. + @return true if this object is the same as the obj + argument; false otherwise. + + + Returns a hash code value for the object. This method is + supported for the benefit of hashtables such as those provided by + java.util.Hashtable. + + @return a hash code value for this object. + + + Encodes a plain name given in the unescaped form "AB CD" into "/AB#20CD". + + @param name the name to encode + @return the encoded name + @since 2.1.5 + + + Decodes an escaped name in the form "/AB#20CD" into "AB CD". + @param name the name to decode + @return the decoded name + + + Creates a name tree. + @author Paulo Soares + + + Creates a name tree. + @param items the item of the name tree. The key is a String + and the value is a PdfObject. Note that although the + keys are strings only the lower byte is used and no check is made for chars + with the same lower byte and different upper byte. This will generate a wrong + tree name. + @param writer the writer + @throws IOException on error + @return the dictionary with the name tree. This dictionary is the one + generally pointed to by the key /Dests, for example + + + + This is an instance of the PdfNull-object. + + + + + actual value of this PdfNumber, represented as a double + + + Constructs a PdfNumber-object. + + @param content value of the new PdfNumber-object + + + Constructs a new int PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new long PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Constructs a new REAL PdfNumber-object. + + @param value value of the new PdfNumber-object + + + Returns the primitive int value of this object. + + @return a value + + + Returns the primitive long value of this object. + + @return a value + + + Returns the primitive double value of this object. + + @return a value + + + Increments the value of the PdfNumber-object with 1. + + + Creates a number tree. + @author Paulo Soares + + + Creates a number tree. + @param items the item of the number tree. The key is an Integer + and the value is a PdfObject. + @param writer the writer + @throws IOException on error + @return the dictionary with the number tree. + + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + a possible type of PdfObject + + + This is an empty string used for the PdfNull-object and for an empty PdfString-object. + + + This is the default encoding to be used for converting strings into bytes and vice versa. + The default encoding is PdfDocEcoding. + + + This is the encoding to be used to output text in Unicode. + + + the content of this PdfObject + + + the type of this PdfObject + + + Holds value of property indRef. + + + Hash code of the PdfObject instance. + Unfortunately, default C# behavior does not generate unique hash code. + + + Used for generating hash code. + + + Making hash code generation thread safe. + + + Constructs a PdfObject of a certain type without any content. + + @param type type of the new PdfObject + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param content content of the new PdfObject as a String. + + + Constructs a PdfObject of a certain type with a certain content. + + @param type type of the new PdfObject + @param bytes content of the new PdfObject as an array of byte. + + + Writes the PDF representation of this PdfObject as an array of bytes to the writer. + @param writer for backwards compatibility + @param os the outputstream to write the bytes to. + @throws IOException + + + Gets the presentation of this object in a byte array + @return a byte array + + + Can this object be in an object stream? + @return true if this object can be in an object stream. + + + Returns the String-representation of this PdfObject. + + @return a String + + + Returns the length of the actual content of the PdfObject. +

+ In some cases, namely for PdfString and PdfStream, + this method differs from the method pdfLength because pdfLength + returns the length of the PDF representation of the object, not of the actual content + as does the method length.

+

+ Remark: the actual content of an object is in some cases identical to its representation. + The following statement is always true: Length() >= PdfLength().

+ + @return a length +
+ + Changes the content of this PdfObject. + + @param content the new content of this PdfObject + + + Returns the type of this PdfObject. + + @return a type + + + Checks if this PdfObject is of the type PdfNull. + + @return true or false + + + Checks if this PdfObject is of the type PdfBoolean. + + @return true or false + + + Checks if this PdfObject is of the type PdfNumber. + + @return true or false + + + Checks if this PdfObject is of the type PdfString. + + @return true or false + + + Checks if this PdfObject is of the type PdfName. + + @return true or false + + + Checks if this PdfObject is of the type PdfArray. + + @return true or false + + + Checks if this PdfObject is of the type PdfDictionary. + + @return true or false + + + Checks if this PdfObject is of the type PdfStream. + + @return true or false + + + Checks if this is an indirect object. + @return true if this is an indirect object + + + + the PdfIndirectReference of this object + + + value of the Count-key + + + value of the Parent-key + + + value of the Destination-key + + + The PdfAction for this outline. + + + Holds value of property tag. + + + Holds value of property open. + + + Holds value of property color. + + + Holds value of property style. + + + + + + + + + + + + + + + + Helper for the constructors. + @param parent the parent outline + @param title the title for this outline + @param open true if the children are visible + + + Gets the indirect reference of this PdfOutline. + + @return the PdfIndirectReference to this outline. + + + Gets the parent of this PdfOutline. + + @return the PdfOutline that is the parent of this outline. + + + Set the page of the PdfDestination-object. + + @param pageReference indirect reference to the page + @return true if this page was set as the PdfDestination-page. + + + Gets the destination for this outline. + @return the destination + + + returns the level of this outline. + + @return a level + + + Returns the PDF representation of this PdfOutline. + + @param writer the encryption information + @param os + @throws IOException + + + Getter for property tag. + @return Value of property tag. + + + Setter for property open. + @param open New value of property open. + + + + value of the Rotate key for a page in PORTRAIT + + + value of the Rotate key for a page in LANDSCAPE + + + value of the Rotate key for a page in INVERTEDPORTRAIT + + + value of the Rotate key for a page in SEASCAPE + + + value of the MediaBox key + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @param rotate a value for the Rotate key + @throws DocumentException + + + Constructs a PdfPage. + + @param mediaBox a value for the MediaBox key + @param resources an indirect reference to a PdfResources-object + @throws DocumentException + + + + Adds an indirect reference pointing to a PdfContents-object. + + @param contents an indirect reference to a PdfContents-object + + + Rotates the mediabox, but not the text in it. + + @return a PdfRectangle + + + Returns the MediaBox of this Page. + + @return a PdfRectangle + + + Helps the use of PdfPageEvent by implementing all the interface methods. + A class can extend PdfPageEventHelper and only implement the + needed methods. + + @author Paulo Soares + + + Called when the document is opened. + + @param writer the PdfWriter for this document + @param document the document + + + + Called when a page is finished, just before being written to the document. + + @param writer the PdfWriter for this document + @param document the document + + + + + + + + + + + Page labels are used to identify each + page visually on the screen or in print. + @author Paulo Soares + + + Logical pages will have the form 1,2,3,... + + + Logical pages will have the form I,II,III,IV,... + + + Logical pages will have the form i,ii,iii,iv,... + + + Logical pages will have the form of uppercase letters + (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on) + + + Logical pages will have the form of uppercase letters + (a to z for the first 26 pages, aa to zz for the next 26, and so on) + + + No logical page numbers are generated but fixed text may + still exist + + + Dictionary values to set the logical page styles + + + The sequence of logical pages. Will contain at least a value for page 1 + + + Creates a new PdfPageLabel with a default logical page 1 + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + + + Adds or replaces a page label. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + @param firstPage the first logical page number + @param includeFirstPage If true, the page label will be added to the first page if it is page 1. + If the first page is not page 1 or this value is false, the value will not be added to the dictionary. + + + Adds or replaces a page label. The first logical page has the default + of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param text the text to prefix the number. Can be null or empty + + + Adds or replaces a page label. There is no text prefix and the first + logical page has the default of 1. + @param page the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + + + Adds or replaces a page label. + + + Removes a page label. The first page lagel can not be removed, only changed. + @param page the real page to remove + + + Gets the page label dictionary to insert into the document. + @return the page label dictionary + + + Retrieves the page labels from a PDF as an array of String objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a String array or null if no page labels are present + + + Retrieves the page labels from a PDF as an array of {@link PdfPageLabelFormat} objects. + @param reader a PdfReader object that has the page labels you want to retrieve + @return a PdfPageLabelEntry array, containing an entry for each format change + or null if no page labels are present + + + Creates a page label format. + @param physicalPage the real page to start the numbering. First page is 1 + @param numberStyle the numbering style such as LOWERCASE_ROMAN_NUMERALS + @param prefix the text to prefix the number. Can be null or empty + @param logicalPage the first logical page number + + + + Constructs a PdfPages-object. + + + A PdfPattern defines a ColorSpace + + @see PdfStream + + + Creates a PdfPattern object. + @param painter a pattern painter instance + + + Creates a PdfPattern object. + @param painter a pattern painter instance + @param compressionLevel the compressionLevel for the stream + @since 2.1.3 + + + Implements the pattern. + + + Creates a PdfPattern. + + + Creates new PdfPattern + + @param wr the PdfWriter + + + Gets the stream representing this pattern + @return the stream representing this pattern + + + Gets the stream representing this pattern + @param compressionLevel the compression level of the stream + @return the stream representing this pattern + @since 2.1.3 + + + Gets a duplicate of this PdfPatternPainter. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPatternPainter + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayFill(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setGrayStroke(float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetGrayStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFillF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStrokeF(float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetRGBColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFillF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorFill() + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStrokeF(float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#resetCMYKColorStroke() + + + @see com.lowagie.text.pdf.PdfContentByte#addImage(com.lowagie.text.Image, float, float, float, float, float, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorFill(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setCMYKColorStroke(int, int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorFill(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setRGBColorStroke(int, int, int) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(java.awt.Color) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorFill(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setColorStroke(com.lowagie.text.pdf.PdfSpotColor, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternFill(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter, java.awt.Color, float) + + + @see com.lowagie.text.pdf.PdfContentByte#setPatternStroke(com.lowagie.text.pdf.PdfPatternPainter) + + + A cell in a PdfPTable. + + + Holds value of property verticalAlignment. + + + Holds value of property paddingLeft. + + + Holds value of property paddingLeft. + + + Holds value of property paddingTop. + + + Holds value of property paddingBottom. + + + Holds value of property fixedHeight. + + + Fixed height of the cell. + + + Holds value of property noWrap. + + + Holds value of property table. + + + Holds value of property minimumHeight. + + + This field is used to cache the height which is calculated on getMaxHeight() method call; + this helps to avoid unnecessary recalculations on table drawing. + + + Holds value of property colspan. + + + Holds value of property rowspan. + @since 2.1.6 + + + Holds value of property image. + + + Holds value of property cellEvent. + + + Holds value of property useDescender. + + + Increases padding to include border if true + + + The text in the cell. + + + The rotation of the cell. Possible values are + 0, 90, 180 and 270. + + + Constructs an empty PdfPCell. + The default padding is 2. + + + Constructs a PdfPCell with a Phrase. + The default padding is 2. + @param phrase the text + + + Constructs a PdfPCell with an Image. + The default padding is 0. + @param image the Image + + + Constructs a PdfPCell with an Image. + The default padding is 0.25 for a border width of 0.5. + @param image the Image + @param fit true to fit the image to the cell + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + The default padding is 0. + @param table The PdfPTable + + + Constructs a PdfPCell with a PdfPtable. + This constructor allows nested tables. + + @param table The PdfPTable + @param style The style to apply to the cell (you could use getDefaultCell()) + @since 2.1.0 + + + Constructs a deep copy of a PdfPCell. + @param cell the PdfPCell to duplicate + + + Adds an iText element to the cell. + @param element + + + Gets the Phrase from this cell. + @return the Phrase + + + Gets the horizontal alignment for the cell. + @return the horizontal alignment for the cell + + + Gets the vertical alignment for the cell. + @return the vertical alignment for the cell + + + Gets the effective left padding. This will include + the left border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingLeft. + + + @return Value of property paddingLeft. + + + Gets the effective right padding. This will include + the right border width if {@link #UseBorderPadding} is true. + @return effective value of property paddingRight. + + + Getter for property paddingRight. + @return Value of property paddingRight. + + + Gets the effective top padding. This will include + the top border width if {@link #isUseBorderPadding()} is true. + @return effective value of property paddingTop. + + + Getter for property paddingTop. + @return Value of property paddingTop. + + + /** Gets the effective bottom padding. This will include + * the bottom border width if {@link #UseBorderPadding} is true. + * @return effective value of property paddingBottom. + + + Getter for property paddingBottom. + @return Value of property paddingBottom. + + + Sets the padding of the contents in the cell (space between content and border). + @param padding + + + Adjusts effective padding to include border widths. + @param use adjust effective padding if true + + + Sets the leading fixed and variable. The resultant leading will be + fixedLeading+multipliedLeading*maxFontSize where maxFontSize is the + size of the bigest font in the line. + @param fixedLeading the fixed leading + @param multipliedLeading the variable leading + + + Gets the fixed leading + @return the leading + + + Gets the variable leading + @return the leading + + + Gets the first paragraph line indent. + @return the indent + + + Gets the extra space between paragraphs. + @return the extra space between paragraphs + + + Getter for property fixedHeight. + @return Value of property fixedHeight. + + + Tells you whether the cell has a fixed height. + + @return true is a fixed height was set. + @since 2.1.5 + + + Gets the height which was calculated on last call of getMaxHeight(). + If cell's bBox and content wasn't changed this value is actual maxHeight of the cell. + @return max height which was calculated on last call of getMaxHeight(); if getMaxHeight() wasn't called the return value is 0 + + + Setter for property noWrap. + @param noWrap New value of property noWrap. + + + Getter for property table. + @return Value of property table. + + + Getter for property minimumHeight. + @return Value of property minimumHeight. + + + Tells you whether the cell has a minimum height. + + @return true if a minimum height was set. + @since 2.1.5 + + + Getter for property colspan. + @return Value of property colspan. + + + Getter for property rowspan. + @return Value of property rowspan. + + + Gets the following paragraph lines indent. + @return the indent + + + Gets the right paragraph lines indent. + @return the indent + + + Gets the space/character extra spacing ratio for + fully justified text. + @return the space/character extra spacing ratio + + + Gets the run direction of the text content in the cell + @return One of the following values: PdfWriter.RUN_DIRECTION_DEFAULT, PdfWriter.RUN_DIRECTION_NO_BIDI, PdfWriter.RUN_DIRECTION_LTR or PdfWriter.RUN_DIRECTION_RTL. + + + Getter for property image. + @return Value of property image. + + + + Gets the cell event for this cell. + @return the cell event + + + + Gets the arabic shaping options. + @return the arabic shaping options + + + Gets state of first line height based on max ascender + @return true if an ascender is to be used. + + + Getter for property useDescender. + @return Value of property useDescender. + + + + Gets the ColumnText with the content of the cell. + @return a columntext object + + + Returns the list of composite elements of the column. + @return a List object. + @since 2.1.1 + + + Sets the rotation of the cell. Possible values are + 0, 90, 180 and 270. + @param rotation the rotation of the cell + + + Returns the height of the cell. + @return the height of the cell + @since 3.0.0 + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + A row in a PdfPTable. + + @author Paulo Soares + + + True if the table may not break after this row. + + + the bottom limit (bottom right y) + + + the right limit + @since 2.1.5 + + + extra heights that needs to be added to a cell because of rowspans. + @since 2.1.6 + + + Constructs a new PdfPRow with the cells in the array that was passed + as a parameter. + + @param cells + + + Makes a copy of an existing row. + + @param row + + + Sets the widths of the columns in the row. + + @param widths + @return true if everything went right + + + Initializes the extra heights array. + @since 2.1.6 + + + Sets an extra height for a cell. + @param cell the index of the cell that needs an extra height + @param height the extra height + @since 2.1.6 + + + Calculates the heights of each cell in the row. + + @return the maximum height of the row. + + + Writes the border and background of one cell in the row. + + @param xPos The x-coordinate where the table starts on the canvas + @param yPos The y-coordinate where the table starts on the canvas + @param currentMaxHeight The height of the cell to be drawn. + @param cell + @param canvases + @since 2.1.6 extra parameter currentMaxHeight + + + @since 2.1.6 private is now protected + + + @since 2.1.6 private is now protected + + + @since 3.0.0 protected is now public static + + + * Writes a number of cells (not necessarily all cells). + * + * @param colStart The first column to be written. + * Remember that the column index starts with 0. + * @param colEnd The last column to be written. + * Remember that the column index starts with 0. + * If -1, all the columns to the end are written. + * @param xPos The x-coordinate where the table starts on the canvas + * @param yPos The y-coordinate where the table starts on the canvas + * @param reusable if set to false, the content in the cells is "consumed"; + * if true, you can reuse the cells, the row, the parent table as many times you want. + * @since 5.1.0 added the reusable parameter + + + Checks if the dimensions of the columns were calculated. + + @return true if the dimensions of the columns were calculated + + + Gets the maximum height of the row (i.e. of the 'highest' cell). + @return the maximum height of the row + + + Copies the content of a specific row in a table to this row. + Don't do this if the rows have a different number of cells. + @param table the table from which you want to copy a row + @param idx the index of the row that needs to be copied + @since 5.1.0 + + + Splits a row to newHeight. + The returned row is the remainder. It will return null if the newHeight + was so small that only an empty row would result. + + @param new_height the new height + @return the remainder row or null if the newHeight was so small that only + an empty row would result + + + Split rowspan of cells with rowspan on next page by inserting copies with the remaining rowspan + and reducing the previous rowspan appropriately, i.e. if a cell with rowspan 7 gets split after 3 rows + of that rowspan have been laid out, its column on the next page should start with an empty cell + having the same attributes and rowspan 7 - 3 = 4. + + @since iText 5.4.3 + + + Returns the array of cells in the row. + Please be extremely careful with this method. + Use the cells as read only objects. + + @return an array of cells + @since 2.1.1 + + + Checks if a cell in the row has a rowspan greater than 1. + @since 5.1.0 + + + Implements the PostScript XObject. + + + Creates a new instance of PdfPSXObject + + + Constructs a PSXObject + @param wr + + + Gets the stream representing this object. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + @throws IOException + + + Gets a duplicate of this PdfPSXObject. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfPSXObject + + + This is a table that can be put at an absolute position but can also + be added to the document as the class Table. + In the last case when crossing pages the table always break at full rows; if a + row is bigger than the page it is dropped silently to avoid infinite loops. +

+ A PdfPTableEvent can be associated to the table to do custom drawing + when the table is rendered. + @author Paulo Soares + + + The index of the original PdfcontentByte. + + + The index of the duplicate PdfContentByte where the background will be drawn. + + + The index of the duplicate PdfContentByte where the border lines will be drawn. + + + The index of the duplicate PdfContentByte where the text will be drawn. + + + The current column index. + + @since 5.1.0 renamed from currentColIdx + + + Holds value of property headerRows. + + + Holds value of property widthPercentage. + + + Holds value of property horizontalAlignment. + + + Holds value of property skipFirstHeader. + + + Holds value of property skipLastFooter. + + @since 2.1.6 + + + Holds value of property lockedWidth. + + + Holds value of property splitRows. + + + The spacing before the table. + + + The spacing after the table. + + + Holds value of property extendLastRow. + + + Holds value of property headersInEvent. + + + Holds value of property splitLate. + + + Defines if the table should be kept + on one page if possible + + + Indicates if the PdfPTable is complete once added to the document. + @since iText 2.0.8 + + + Keeps track of the completeness of the current row. + + @since 2.1.6 + + + Constructs a PdfPTable with the relative column widths. + @param relativeWidths the relative column widths + + + Constructs a PdfPTable with numColumns columns. + @param numColumns the number of columns + + + Constructs a copy of a PdfPTable. + @param table the PdfPTable to be copied + + + Makes a shallow copy of a table (format without content). + @param table + @return a shallow copy of the table + + + Copies the format of the sourceTable without copying the content. + @param sourceTable + @since 2.1.6 private is now protected + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the relative widths of the table. + @param relativeWidths the relative widths of the table. + @throws DocumentException if the number of widths is different than the number + of columns + + + @since 2.1.6 private is now protected + + + Sets the full width of the table from the absolute column width. + @param columnWidth the absolute width of each column + @throws DocumentException if the number of widths is different than the number + of columns + + + Sets the percentage width of the table from the absolute column width. Warning: Don't use this with setLockedWidth(true). These two settings don't mix. + @param columnWidth the absolute width of each column + @param pageSize the page size + @throws DocumentException + + + Gets the full width of the table. + @return the full width of the table + + + Calculates the heights of the table. + + @return the total height of the table. Note that it will be 0 if you didn't + specify the width of the table with SetTotalWidth(). + and made it public + + + Changes the number of columns. Any existing rows will be deleted. + + @param the new number of columns + + + Gets the default PdfPCell that will be used as + reference for all the addCell methods except + addCell(PdfPCell). + @return default PdfPCell + + + Adds a cell element. + + @param cell the cell element + + + When updating the row index, cells with rowspan should be taken into account. + This is what happens in this method. + + @since 2.1.6 + + + Added by timmo3. This will return the correct cell taking it's cellspan into account + + @param row the row index + @param col the column index + @return PdfPCell at the given row and position or null otherwise + + + Checks if there are rows above belonging to a rowspan. + @param currRow the current row to check + @param currCol the current column to check + @return true if there's a cell above that belongs to a rowspan + @since 2.1.6 + + + Adds a cell element. + @param text the text for the cell + + + Adds a nested table. + @param table the table to be added to the cell + + + Adds an Image as Cell. + @param image the Image to add to the table. + This image will fit in the cell + + + Adds a cell element. + @param phrase the Phrase to be added to the cell + + + + + Writes the selected rows and columns to the document. + This method does not clip the columns; this is only important + if there are columns with colspan at boundaries. + canvases is obtained from beginWritingRows(). + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvases an array of 4 PdfContentByte obtained from + beginWritingRows() + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @return the y coordinate position of the bottom of the last row + @see #beginWritingRows(com.itextpdf.text.pdf.PdfContentByte) + @since 5.1.0 added the reusable parameter + + + Writes the selected rows to the document. + + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coodinate + @param yPos the y write coodinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + + + + Writes the selected rows and columns to the document. + This method clips the columns; this is only important + if there are columns with colspan at boundaries. + The table event is only fired for complete rows. + + @param colStart the first column to be written, zero index + @param colEnd the last column to be written + 1. If it is -1 all the + columns to the end are written + @param rowStart the first row to be written, zero index + @param rowEnd the last row to be written + 1. If it is -1 all the + rows to the end are written + @param xPos the x write coordinate + @param yPos the y write coordinate + @param canvas the PdfContentByte where the rows will + be written to + @return the y coordinate position of the bottom of the last row + @param reusable if set to false, the content in the cells is "consumed"; + if true, you can reuse the cells, the row, the parent table as many times you want. + @since 5.1.0 added the reusable parameter + + + + Finishes writing the table. + @param canvases the array returned by beginWritingRows() + + + Gets the number of rows in this table. + @return the number of rows in this table + + + Gets the total height of the table. + @return the total height of the table + + + Gets the height of a particular row. + @param idx the row index (starts at 0) + @return the height of a particular row + + + Gets the height of a particular row. + + @param idx the row index (starts at 0) + @param firsttime is this the first time the row heigh is calculated? + @return the height of a particular row + @since 5.0.0 + + + Gets the maximum height of a cell in a particular row (will only be different + from getRowHeight is one of the cells in the row has a rowspan > 1). + + @param rowIndex the row index + @param cellIndex the cell index + @return the height of a particular row including rowspan + @since 2.1.6 + + + Checks if a cell in a row has a rowspan greater than 1. + + @since 5.1.0 + + + Makes sure the footers value is lower than the headers value. + + @since 5.0.1 + + + Gets the height of the rows that constitute the header as defined by + setHeaderRows(). + @return the height of the rows that constitute the header and footer + + + Gets the height of the rows that constitute the header as defined by + setFooterRows(). + @return the height of the rows that constitute the footer + @since 2.1.1 + + + Deletes a row from the table. + @param rowNumber the row to be deleted + @return true if the row was deleted + + + Deletes the last row in the table. + @return true if the last row was deleted + + + Removes all of the rows except headers + + + Returns the number of columns. + @return the number of columns. + @since 2.1.1 + + + Gets all the chunks in this element. + + @return an List + + + Gets the type of the text element. + + @return a type + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isContent() + + + @since iText 2.0.8 + @see com.lowagie.text.Element#isNestable() + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets a row with a given index. + + @param idx + @return the row at position idx + + + Returns the index of the last completed row. + + @return the index of a row + + + Defines where the table may be broken (if necessary). + + @param breakPoints int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines which rows should not allow a page break (if possible). + + @param rows int[] + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows that should not allow a page break (if possible). + + @param start int + @param end int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Defines a range of rows (from the parameter to the last row) that should not allow a page break (if possible). + The equivalent of calling {@link #keepRowsTogether(int,int) keepRowsTogether(start, rows.size()}. + + @param start int + @throws System.IndexOutOfRangeException if a row index is passed that is out of bounds + + + Gets an arraylist with all the rows in the table. + @return an arraylist + + + Gets an arraylist with a selection of rows. + @param start the first row in the selection + @param end the first row that isn't part of the selection + @return a selection of rows + @since 2.1.6 + + + Calculates the extra height needed in a row because of rowspans. + @param start the index of the start row (the one to adjust) + @param end the index of the end row on the page + @since 2.1.6 + + + Sets the table event for this table. + + @param event the table event for this table + + + Gets the absolute sizes of each column width. + @return he absolute sizes of each column width + + + Tells you if the last footer needs to be skipped + (for instance if the footer says "continued on the next page") + + @return Value of property skipLastFooter. + @since 2.1.6 + + + When set the last row on every page will be extended to fill + all the remaining space to the bottom boundary; except maybe the + row. + + @param extendLastRows true to extend the last row on each page; false otherwise + @param extendFinalRow false if you don't want to extend the row of the complete table + @since iText 5.0.0 + + + * Gets the value of the last row extension, taking into account + * if the row is reached or not. + * + * @return true if the last row will extend; + * false otherwise + * @since iText 5.0.0 + + + If true the table will be kept on one page if it fits, by forcing a + new page if it doesn't fit on the current page. The default is to + split the table over multiple pages. + + @param p_KeepTogether whether to try to keep the table on one page + + + Completes the current row with the default cell. An incomplete row will be dropped + but calling this method will make sure that it will be present in the table. + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Gets row index where cell overlapping (rowIdx, colIdx) starts + @param rowIdx + @param colIdx + @return row index + @since iText 5.4.3 + + + + @since iText 5.4.3 + + + Correct chosen last fitting row so that the content of all cells with open rowspans will fit on the page, + i.e. the cell content won't be split. + (Only to be used with splitLate == true) + + + + @since iText 5.4.3 + + + Determine which rows fit on the page, respecting isSplitLate(). + Note: sets max heights of the inspected rows as a side effect, + just like PdfPTable.getRowHeight(int, boolean) does. + Respect row.getMaxHeights() if it has been previously set (which might be independent of the height of + individual cells). + The last row written on the page will be chosen by the caller who might choose not + the calculated one but an earlier one (due to mayNotBreak settings on the rows). + The height of the chosen last row has to be corrected if splitLate == true + by calling FittingRows.correctLastRowChosen() by the caller to avoid splitting the content of + cells with open rowspans. + + @since iText 5.4.3 + + + + @author Aiken Sam (aikensam@ieee.org) + + + Reads a PDF document. + @author Paulo Soares + @author Kazuya Ujihara + + + The iText developers are not responsible if you decide to change the + value of this static parameter. + @since 5.0.2 + + + Handler which will be used for decompression of pdf streams. + + + Holds value of property appendable. + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param partialRead if true, the reader is opened in partial mode (PDF is parsed on demand), if false, the entire PDF is parsed into memory as the reader opens + @param ownerPassword the password or null if no password is required + @param certificate the certificate or null if no certificate is required + @param certificateKey the key or null if no certificate key is required + @param certificateKeyProvider the name of the key provider, or null if no key is required + @param closeSourceOnConstructorError if true, the byteSource will be closed if there is an error during construction of this reader + + + Constructs a new PdfReader. This is the master constructor. + @param byteSource source of bytes for the reader + @param properties the properties which will be used to create the reader + + + Reads and parses a PDF document. + @param filename the file name of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param properties the properties which will be used to create the reader + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @throws IOException on error + + + Reads and parses a PDF document. + @param pdfIn the byte array with the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param filename the file name of the document + @param certificate the certificate to read the document + @param certificateKey the private key of the certificate + @param certificateKeyProvider the security provider for certificateKey + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @throws IOException on error + + + Reads and parses a PDF document. + @param url the Uri of the document + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param is the InputStream containing the document. The stream is read to the + end but is not closed + @param ownerPassword the password to read the document + @throws IOException on error + + + Reads and parses a PDF document. + @param properties the properties which will be used to create the reader + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a PDF document. + @param isp the InputStream containing the document. The stream is read to the + end but is not closed + @throws IOException on error + + + Reads and parses a pdf document. Contrary to the other constructors only the xref is read + into memory. The reader is said to be working in "partial" mode as only parts of the pdf + are read as needed. + @param raf the document location + @param ownerPassword the password or null for no password + @throws IOException on error + + + Reads and parses a pdf document. + @param raf the document location + @param ownerPassword the password or null for no password + @param partial indicates if the reader needs to read the document only partially. See {@link PdfReader#PdfReader(RandomAccessFileOrArray, byte[])} + @throws IOException on error + + + Creates an independent duplicate. + @param reader the PdfReader to duplicate + + + Utility method that checks the provided byte source to see if it has junk bytes at the beginning. If junk bytes + are found, construct a tokeniser that ignores the junk. Otherwise, construct a tokeniser for the byte source as it is + @param byteSource the source to check + @return a tokeniser that is guaranteed to start at the PDF header + @throws IOException if there is a problem reading the byte source + + + Gets a new file instance of the original PDF + document. + @return a new file instance of the original PDF document + + + Gets the number of pages in the document. + @return the number of pages in the document + + + Returns the document's catalog. This dictionary is not a copy, + any changes will be reflected in the catalog. + @return the document's catalog + + + Returns the document's acroform, if it has one. + @return the document's acroform + + + Gets the page rotation. This value can be 0, 90, 180 or 270. + @param index the page number. The first page is 1 + @return the page rotation + + + Gets the page size, taking rotation into account. This + is a Rectangle with the value of the /MediaBox and the /Rotate key. + @param index the page number. The first page is 1 + @return a Rectangle + + + Gets the rotated page from a page dictionary. + @param page the page dictionary + @return the rotated page + + + Gets the page size without taking rotation into account. This + is the value of the /MediaBox key. + @param index the page number. The first page is 1 + @return the page size + + + Gets the page from a page dictionary + @param page the page dictionary + @return the page + + + Gets the crop box without taking rotation into account. This + is the value of the /CropBox key. The crop box is the part + of the document to be displayed or printed. It usually is the same + as the media box but may be smaller. If the page doesn't have a crop + box the page size will be returned. + @param index the page number. The first page is 1 + @return the crop box + + + Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media". + @param index the page number. The first page is 1 + @param boxName the box name + @return the box rectangle or null + + + Returns the content of the document information dictionary as a Hashtable + of String. + @return content of the document information dictionary + + + Normalizes a Rectangle so that llx and lly are smaller than urx and ury. + @param box the original rectangle + @return a normalized Rectangle + + + Checks if the PDF is a tagged PDF. + + + Parses the entire PDF + + + @throws IOException + + + @param obj + @return a PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. + @param obj the PdfObject to read + @return the resolved PdfObject + + + Reads a PdfObject resolving an indirect reference + if needed. If the reader was opened in partial mode the object will be released + to save memory. + @param obj the PdfObject to read + @param parent + @return a PdfObject + + + @param obj + @param parent + @return a PdfObject + + + @param idx + @return a PdfObject + + + @param idx + @return aPdfObject + + + + + + + + + @param obj + + + @param obj + @return an indirect reference + + + @return the percentage of the cross reference table that has been read + + + Eliminates the reference to the object freeing the memory used by it and clearing + the xref entry. + @param obj the object. If it's an indirect reference it will be eliminated + @return the object or the already erased dereferenced object + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the FlateDecode filter. + @param in the input data + @return the decoded data + + + @param in + @param dicPar + @return a byte array + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + A helper to FlateDecode. + @param in the input data + @param strict true to read a correct stream. false + to try to read a corrupted stream + @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the ASCIIHexDecode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the ASCII85Decode filter. + @param in the input data + @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + * @param in the input data + * @return the decoded data + + + Decodes a stream that has the LZWDecode filter. + @param in the input data + @return the decoded data + + + Checks if the document had errors and was rebuilt. + @return true if rebuilt. + + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a Dictionary object + + + @param pageNum + + + + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @param file the location of the PDF document + @throws IOException on error + @return the content + + + Gets the content from the page dictionary. + @param page the page dictionary + @throws IOException on error + @return the content + @since 5.0.6 + + + Retrieve the given page's resource dictionary + @param pageNum 1-based page number from which to retrieve the resource dictionary + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Retrieve the given page's resource dictionary + @param pageDict the given page + @return The page's resources, or 'null' if the page has none. + @since 5.1 + + + Gets the contents of the page. + @param pageNum the page number. 1 is the first + @throws IOException on error + @return the content + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @throws IOException on error + + + Sets the contents of the page. + @param content the new page content + @param pageNum the page number. 1 is the first + @since 2.1.3 (the method already existed without param compressionLevel) + + + Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers. + @param b the bytes to decode + @param streamDictionary the dictionary that contains filter information + @param filterHandlers the map used to look up a handler for each type of filter + @return the decoded bytes + @throws IOException if there are any problems decoding the bytes + @since 5.0.4 + + + Get the content from a stream applying the required filters. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream applying the required filters. + @param stream the stream + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @param file the location where the stream is + @throws IOException on error + @return the stream content + + + Get the content from a stream as it is without applying any filter. + @param stream the stream + @throws IOException on error + @return the stream content + + + Eliminates shared streams if they exist. + + + Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper. + @param tampered the tampered state + + + Gets the XML metadata. + @throws IOException on error + @return the XML metadata + + + Gets the byte address of the last xref table. + @return the byte address of the last xref table + + + Gets the number of xref objects. + @return the number of xref objects + + + Gets the byte address of the %%EOF marker. + @return the byte address of the %%EOF marker + + + Gets the PDF version. Only the last version char is returned. For example + version 1.4 is returned as '4'. + @return the PDF version + + + Returns true if the PDF is encrypted. + @return true if the PDF is encrypted + + + Gets the encryption permissions. It can be used directly in + PdfWriter.SetEncryption(). + @return the encryption permissions + + + Returns true if the PDF has a 128 bit key encryption. + @return true if the PDF has a 128 bit key encryption + + + Gets the trailer dictionary + @return the trailer dictionary + + + Finds all the font subsets and changes the prefixes to some + random values. + @return the number of font subsets altered + + + Finds all the fonts not subset but embedded and marks them as subset. + @return the number of fonts altered + + + Gets all the named destinations as an Hashtable. The key is the name + and the value is the destinations array. + @return gets all the named destinations + + + Gets all the named destinations as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets all the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Dests key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name + and the value is the destinations array. + @param keepNames true if you want the keys to be real PdfNames instead of Strings + @return gets the named destinations + @since 2.1.6 + + + Gets the named destinations from the /Names key in the catalog as an Hashtable. The key is the name + and the value is the destinations array. + @return gets the named destinations + + + Removes all the fields from the document. + + + Removes all the annotations and fields from the document. + + + Replaces remote named links with local destinations that have the same name. + @since 5.0 + + + Converts a remote named destination GoToR with a local named destination + if there's a corresponding name. + @param obj an annotation that needs to be screened for links to external named destinations. + @param names a map with names of local named destinations + @since iText 5.0 + + + Replaces all the local named links with the actual destinations. + + + Closes the reader, and any underlying stream or data source used to create the reader + + + Removes all the unreachable objects. + @return the number of indirect objects removed + + + Gets a read-only version of AcroFields. + @return a read-only version of AcroFields + + + Gets the global document JavaScript. + @param file the document file + @throws IOException on error + @return the global document JavaScript + + + Gets the global document JavaScript. + @throws IOException on error + @return the global document JavaScript + + + Selects the pages to keep in the document. The pages are described as + ranges. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param ranges the comma separated ranges as described in {@link SequenceList} + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + + + Selects the pages to keep in the document. The pages are described as a + List of Integer. The page ordering can be changed but + no page repetitions are allowed. Note that it may be very slow in partial mode. + @param pagesToKeep the pages to keep in the document + @param removeUnused indicate if to remove unsed objects. @see removeUnusedObjects + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param key a key for a viewer preference + @param value a value for the viewer preference + @see PdfViewerPreferences#addViewerPreference + + + Returns a bitset representing the PageMode and PageLayout viewer preferences. + Doesn't return any information about the ViewerPreferences dictionary. + @return an int that contains the Viewer Preferences. + + + Getter for property newXrefType. + @return Value of property newXrefType. + + + Getter for property fileLength. + @return Value of property fileLength. + + + Getter for property hybridXref. + @return Value of property hybridXref. + + + Keeps track of all pages nodes to avoid circular references. + + + Gets the dictionary that represents a page. + @param pageNum the page number. 1 is the first + @return the page dictionary + + + @param pageNum + @return a dictionary object + + + @param pageNum + @return an indirect reference + + + Gets the page reference to this page. + @param pageNum the page number. 1 is the first + @return the page reference + + + @param pageNum + + + + + + Checks if this PDF has usage rights enabled. + + @return true if usage rights are present; false otherwise + + + Removes any usage rights that this PDF may have. Only Adobe can grant usage rights + and any PDF modification with iText will invalidate them. Invalidated usage rights may + confuse Acrobat and it's advisabe to remove them altogether. + + + Gets the certification level for this document. The return values can be PdfSignatureAppearance.NOT_CERTIFIED, + PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, + PdfSignatureAppearance.CERTIFIED_FORM_FILLING and + PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS. +

+ No signature validation is made, use the methods availabe for that in AcroFields. +

+ @return gets the certification level for this document +
+ + Checks if the document was opened with the owner password so that the end application + can decide what level of access restrictions to apply. If the document is not encrypted + it will return true. + @return true if the document was opened with the owner password or if it's not encrypted, + false if the document was opened with the user password + + + Computes user password if standard encryption handler is used with Standard40, Standard128 or AES128 encryption algorithm. + + @return user password, or null if not a standard encryption handler was used, + if standard encryption handler was used with AES256 encryption algorithm, + or if ownerPasswordUsed wasn't use to open the document. + + + Instance of PdfReader in each output document. + + @author Paulo Soares + + + Gets the content stream of a page as a PdfStream object. + @param pageNumber the page of which you want the stream + @param compressionLevel the compression level you want to apply to the stream + @return a PdfStream object + @since 2.1.3 (the method already existed without param compressionLevel) + + + + lower left x + + + lower left y + + + upper right x + + + upper right y + + + Constructs a PdfRectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + + @since rugPdf0.10 + + + Constructs a PdfRectangle-object starting from the origin (0, 0). + + @param urx upper right x + @param ury upper right y + + + Constructs a PdfRectangle-object with a Rectangle-object. + + @param rectangle a Rectangle + + + Returns the high level version of this PdfRectangle + @return this PdfRectangle translated to class Rectangle + + + Overrides the add-method in PdfArray in order to prevent the adding of extra object to the array. + + @param object PdfObject to add (will not be added here) + @return false + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param values stuff we'll ignore. Ha! + @return false. You can't add anything to a PdfRectangle + @since 2.1.5 + + + Block changes to the underlying PdfArray + @param object Ignored. + @since 2.1.5 + + + Returns the lower left x-coordinate. + + @return the lower left x-coordinaat + + + Returns the upper right x-coordinate. + + @return the upper right x-coordinate + + + Returns the upper right y-coordinate. + + @return the upper right y-coordinate + + + Returns the lower left y-coordinate. + + @return the lower left y-coordinate + + + Returns the lower left x-coordinate, considering a given margin. + + @param margin a margin + @return the lower left x-coordinate + + + Returns the upper right x-coordinate, considering a given margin. + + @param margin a margin + @return the upper right x-coordinate + + + Returns the upper right y-coordinate, considering a given margin. + + @param margin a margin + @return the upper right y-coordinate + + + Returns the lower left y-coordinate, considering a given margin. + + @param margin a margin + @return the lower left y-coordinate + + + Returns the width of the rectangle. + + @return a width + + + Returns the height of the rectangle. + + @return a height + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + @return a PdfRectangle + + + A Rendition dictionary (pdf spec 1.5) + + + + Constructs a PDF ResourcesDictionary. + + + Implements the shading dictionary (or stream). + + @author Paulo Soares + + + Holds value of property bBox. + + + Holds value of property antiAlias. + + + Creates new PdfShading + + + Implements the shading pattern dictionary. + + @author Paulo Soares + + + Creates new PdfShadingPattern + + + Implements the signature dictionary. + + @author Paulo Soares + + + Creates new PdfSignature + + + Sets the signature creator name in the + {@link PdfSignatureBuildProperties} dictionary. + + @param name + + + Gets the {@link PdfSignatureBuildProperties} instance if it exists, if + not it adds a new one and returns this. + + @return {@link PdfSignatureBuildProperties} + + + Class that takes care of the cryptographic options + and appearances that form a signature. + + + Constructs a PdfSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Approval signature + + + Author signature, no changes allowed + + + Author signature, form filling allowed + + + Author signature, form filling and annotations allowed + + + The certification level + + + Sets the document type to certified instead of simply signed. + @param certificationLevel the values can be: NOT_CERTIFIED, CERTIFIED_NO_CHANGES_ALLOWED, + CERTIFIED_FORM_FILLING and CERTIFIED_FORM_FILLING_AND_ANNOTATIONS + + + The caption for the reason for signing. + + + The caption for the location of signing. + + + The reason for signing. + + + Holds value of property location. + + + Holds value of property signDate. + + + Gets and setsthe signing reason. + @return the signing reason + + + Sets the caption for signing reason. + @param reasonCaption the signing reason caption + + + Gets and sets the signing location. + @return the signing location + + + Sets the caption for the signing location. + @param locationCaption the signing location caption + + + Holds value of the application that creates the signature + + + Gets the signature creator. + @return the signature creator + + Sets the name of the application used to create the signature. + @param signatureCreator the name of the signature creating application + + + The contact name of the signer. + + + Gets the signing contact. + @return the signing contact + + + Gets the signature date. + @return the signature date + + + The file right before the signature is added (can be null). + + + The bytes of the file right before the signature is added (if raf is null) + + + Array containing the byte positions of the bytes that need to be hashed. + + + + @return the underlying source + @throws IOException + + + The signing certificate + + + Adds the appropriate developer extension. + + + The crypto dictionary + + + Gets the user made signature dictionary. This is the dictionary at the /V key. + @return the user made signature dictionary + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + An interface to retrieve the signature dictionary for modification. + + + Allows modification of the signature dictionary. + @param sig the signature dictionary + + + Holds value of property signatureEvent. + + + Sets the signature event to allow modification of the signature dictionary. + @param signatureEvent the signature event + + + The name of the field + + + Gets the field name. + @return the field name + + + Gets a new signature field name that + doesn't clash with any existing name. + @return a new signature field name + + + The page where the signature will appear. + + + Gets the page number of the field. + @return the page number of the field + + + The coordinates of the rectangle for a visible signature, + or a zero-width, zero-height rectangle for an invisible signature. + + + Gets the rectangle representing the signature dimensions. + @return the rectangle representing the signature dimensions. It may be null + or have zero width or height for invisible signatures + + + rectangle that represent the position and dimension of the signature in the page. + + + Gets the rectangle that represent the position and dimension of the signature in the page. + @return the rectangle that represent the position and dimension of the signature in the page + + + Gets the visibility status of the signature. + @return the visibility status of the signature + + + Sets the signature to be visible. It creates a new visible signature field. + @param pageRect the position and dimension of the field in the page + @param page the page to place the field. The fist page is 1 + @param fieldName the field name or null to generate automatically a new field name + + + Sets the signature to be visible. An empty signature field with the same name must already exist. + @param fieldName the existing empty signature field name + + + Signature rendering modes + @since 5.0.1 + + + The rendering mode is just the description. + + + The rendering mode is the name of the signer and the description. + + + The rendering mode is an image and the description. + + + The rendering mode is just an image. + + + The rendering mode chosen for visible signatures + + + Gets the rendering mode for this signature. + @return the rendering mode for this signature + @since 5.0.1 + + + The image that needs to be used for a visible signature + + + Sets the Image object to render when Render is set to RenderingMode.GRAPHIC + or RenderingMode.GRAPHIC_AND_DESCRIPTION. + @param signatureGraphic image rendered. If null the mode is defaulted + to RenderingMode.DESCRIPTION + + + Appearance compliant with the recommendations introduced in Acrobat 6? + + + Acrobat 6.0 and higher recommends that only layer n0 and n2 be present. + Use this method with value false if you want to ignore this recommendation. + @param acro6Layers if true only the layers n0 and n2 will be present + @deprecated Adobe no longer supports Adobe Acrobat / Reader versions older than 9 + + + Layers for a visible signature. + + + + Indicates if we need to reuse the existing appearance as layer 0. + + + Indicates that the existing appearances needs to be reused as layer 0. + + + An appearance that can be used for layer 1 (if acro6Layers is false). + + + A background image for the text in layer 2. + + + Gets the background image for the layer 2. + @return the background image for the layer 2 + + + the scaling to be applied to the background image.t + + + Sets the scaling to be applied to the background image. If it's zero the image + will fully fill the rectangle. If it's less than zero the image will fill the rectangle but + will keep the proportions. If it's greater than zero that scaling will be applied. + In any of the cases the image will always be centered. It's zero by default. + @param imageScale the scaling to be applied to the background image + + + The text that goes in Layer 2 of the signature appearance. + + + Sets the signature text identifying the signer. + @param text the signature text identifying the signer. If null or not set + a standard description will be used + + + Font for the text in Layer 2. + + + Sets the n2 and n4 layer font. If the font size is zero, auto-fit will be used. + @param layer2Font the n2 and n4 font + + + Run direction for the text in layers 2 and 4. + + + Sets the run direction in the n2 and n4 layer. + @param runDirection the run direction + + + The text that goes in Layer 4 of the appearance. + + + Sets the text identifying the signature status. Will be ignored if acro6Layers is true. + @param text the text identifying the signature status. If null or not set + the description "Signature Not Verified" will be used + + + Template containing all layers drawn on top of each other. + + + + extra space at the top. + + + margin for the content inside the signature rectangle. + + + + The PdfStamper that creates the signed PDF. + + + Gets the PdfStamper associated with this instance. + @return the PdfStamper associated with this instance + + + Sets the PdfStamper + @param stamper PdfStamper + + + The PdfStamperImp object corresponding with the stamper. + + + A byte buffer containing the bytes of the Stamper. + + + Getter for the byte buffer. + + + OutputStream for the bytes of the stamper. + + + Temporary file in case you don't want to sign in memory. + + + Gets the temporary file. + @return the temporary file or null is the document is created in memory + + + Name and content of keys that can only be added in the close() method. + + + Length of the output. + + + Indicates if the stamper has already been pre-closed. + + + + Signature field lock dictionary. + + + + + Signature field lock dictionary. + + + If a signature is created on an existing signature field, then its /Lock dictionary + takes the precedence (if it exists). + + + + Checks if the document is in the process of closing. + @return true if the document is in the process of closing, + false otherwise + + + + Adds keys to the signature dictionary that define + the certification level and the permissions. + This method is only used for Certifying signatures. + @param crypto the signature dictionary + + + Adds keys to the signature dictionary that define + the field permissions. + This method is only used for signatures that lock fields. + @param crypto the signature dictionary + + + + PdfSmartCopy has the same functionality as PdfCopy, + but when resources (such as fonts, images,...) are + encountered, a reference to these resources is saved + in a cache, so that they can be reused. + This requires more memory, but reduces the file size + of the resulting PDF document. + + + the cache with the streams and references. + + + Creates a PdfSmartCopy instance. + + + Translate a PRIndirectReference to a PdfIndirectReference + In addition, translates the object numbers, and copies the + referenced object to the output file if it wasn't available + in the cache yet. If it's in the cache, the reference to + the already used stream is returned. + + NB: PRIndirectReferences (and PRIndirectObjects) really need to know what + file they came from, because each file has its own namespace. The translation + we do from their namespace to ours is *at best* heuristic, and guaranteed to + fail under some circumstances. + + + A PdfSpotColor defines a ColorSpace + + @see PdfDictionary + + + Constructs a new PdfSpotColor. + + @param name a string value + @param tint a tint value between 0 and 1 + @param altcs a altnative colorspace value + + + + The writer + + + + + + Gets the optional String map to add or change values in + the info dictionary. + @return the map or null + + An optional String map to add or change values in + the info dictionary. Entries with null + values delete the key in the original info dictionary + @param moreInfo additional entries to the info dictionary + + + + Replaces a page from this document with a page from other document. Only the content + is replaced not the fields and annotations. This method must be called before + getOverContent() or getUndercontent() are called for the same page. + @param r the PdfReader from where the new page will be imported + @param pageImported the page number of the imported page + @param pageReplaced the page to replace in this document + + + Inserts a blank page. All the pages above and including pageNumber will + be shifted up. If pageNumber is bigger than the total number of pages + the new page will be the last one. + @param pageNumber the page number position where the new page will be inserted + @param mediabox the size of the new page + + + Gets the signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + Gets the xml signing instance. The appearances and other parameters can the be set. + @return the signing instance + + + + Gets a PdfContentByte to write under the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write under the page of + the original document + + + Gets a PdfContentByte to write over the page of + the original document. + @param pageNum the page number where the extra content is written + @return a PdfContentByte to write over the page of + the original document + + + Checks if the content is automatically adjusted to compensate + the original page rotation. + @return the auto-rotation status + Flags the content to be automatically adjusted to compensate + the original page rotation. The default is true. + @param rotateContents true to set auto-rotation, false + otherwise + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if anything was already written to the output + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the encryption was set too late + + + Gets a page from other PDF document. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Gets the underlying PdfWriter. + @return the underlying PdfWriter + + + Gets the underlying PdfReader. + @return the underlying PdfReader + + + Gets the AcroFields object that allows to get and set field values + and to merge FDF forms. + @return the AcroFields object + + + Determines if the fields are flattened on close. The fields added with + {@link #addAnnotation(PdfAnnotation,int)} will never be flattened. + @param flat true to flatten the fields, false + to keep the fields + + + Determines if the FreeText annotations are flattened on close. + @param flat true to flatten the FreeText annotations, false + (the default) to keep the FreeText annotations as active content. + + + Flatten annotations with an appearance stream on close(). + + @param flat boolean to indicate whether iText should flatten annotations or not. + + + Adds an annotation of form field in a specific page. This page number + can be overridden with {@link PdfAnnotation#setPlaceInPage(int)}. + @param annot the annotation + @param page the page + + + Adds an empty signature. + @param name the name of the signature + @param page the page number + @param llx lower left x coordinate of the signature's position + @param lly lower left y coordinate of the signature's position + @param urx upper right x coordinate of the signature's position + @param ury upper right y coordinate of the signature's position + @return a signature form field + @since 2.1.4 + + + Adds the comments present in an FDF file. + @param fdf the FDF file + @throws IOException on error + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + Sets the thumbnail image for a page. + @param image the image + @param page the page + @throws PdfException on error + @throws DocumentException on error + + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param js the JavaScript code + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. The existing JavaScript will be replaced. + @param name the name for the JavaScript snippet in the name tree + @param js the JavaScript code + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. Existing attachments will be kept. + @param description the file description + @param fs the file specification + + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Sets the XMP metadata. + @param xmp + @see PdfWriter#setXmpMetadata(byte[]) + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. Be attentive!!! If you want set full compression , you should set immediately after creating PdfStamper, + before editing the document.It can be set once and it can't be unset. + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + Integer(page number) -> PageStamp + + + Holds value of property rotateContents. + + + Creates new PdfStamperImp. + @param reader the read PDF + @param os the output destination + @param pdfVersion the new pdf version or '\0' to keep the same version as the original + document + @param append + @throws DocumentException on error + @throws IOException + + + @param reader + @param openFile + @throws IOException + + + @param reader + + + @param fdf + @throws IOException + + + If true, annotations with an appearance stream will be flattened. + + @since 5.5.3 + @param flatAnnotations boolean + + + @see com.lowagie.text.pdf.PdfWriter#getPageReference(int) + + + @see com.lowagie.text.pdf.PdfWriter#addAnnotation(com.lowagie.text.pdf.PdfAnnotation) + + + Adds or replaces the Collection Dictionary in the Catalog. + @param collection the new collection dictionary. + + + Sets the viewer preferences. + @param preferences the viewer preferences + @see PdfWriter#setViewerPreferences(int) + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + Always throws an UnsupportedOperationException. + @param actionType ignore + @param action ignore + @throws PdfException ignore + @see PdfStamper#setPageAction(PdfName, PdfAction, int) + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @param page the page where the action will be applied. The first page is 1 + @throws PdfException if the action type is invalid + + + Always throws an UnsupportedOperationException. + @param seconds ignore + + + Always throws an UnsupportedOperationException. + @param transition ignore + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page. A negative value removes the entry + @param page the page where the duration will be applied. The first page is 1 + + + Sets the transition for the page + @param transition the transition object. A null removes the transition + @param page the page where the transition will be applied. The first page is 1 + + + Getter for property append. + @return Value of property append. + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(com.lowagie.text.pdf.PdfAction) + + + @see com.lowagie.text.pdf.PdfWriter#setOpenAction(java.lang.String) + + + @see com.lowagie.text.pdf.PdfWriter#setThumbnail(com.lowagie.text.Image) + + + Reads the OCProperties dictionary from the catalog of the existing document + and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. + Note that the original OCProperties of the existing document can contain more information. + @since 2.1.2 + + + Recursive method to reconstruct the documentOCGorder variable in the writer. + @param parent a parent PdfLayer (can be null) + @param arr an array possibly containing children for the parent PdfLayer + @param ocgmap a Hashtable with indirect reference Strings as keys and PdfLayer objects as values. + @since 2.1.2 + + + Gets the PdfLayer objects in an existing document as a Map + with the names/titles of the layers as keys. + @return a Map with all the PdfLayers in the document (and the name/title of the layer as key) + @since 2.1.2 + + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + A possible compression level. + @since 2.1.3 + + + is the stream compressed? + + + The level of compression. + @since 2.1.3 + + + Constructs a PdfStream-object. + + @param bytes content of the new PdfObject as an array of byte. + + + Creates an efficient stream. No temporary array is ever created. The InputStream + is totally consumed but is not closed. The general usage is: +
+            InputStream in = ...;
+            PdfStream stream = new PdfStream(in, writer);
+            stream.FlateCompress();
+            writer.AddToBody(stream);
+            stream.WriteLength();
+            in.Close();
+            
+ @param inputStream the data to write to this stream + @param writer the PdfWriter for this stream +
+ + Constructs a PdfStream-object. + + + Writes the stream length to the PdfWriter. +

+ This method must be called and can only be called if the contructor {@link #PdfStream(InputStream,PdfWriter)} + is used to create the stream. +

+ @throws IOException on error + @see #PdfStream(InputStream,PdfWriter) +
+ + Compresses the stream. + + + Compresses the stream. + @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default) + @since 2.1.3 + + + Writes the data content to an Stream. + @param os the destination to write to + @throws IOException on error + + + @see com.lowagie.text.pdf.PdfObject#toString() + + + + The value of this object. + + + The encoding. + + + Constructs an empty PdfString-object. + + + Constructs a PdfString-object. + + @param value the content of the string + + + Constructs a PdfString-object. + + @param value the content of the string + @param encoding an encoding + + + Constructs a PdfString-object. + + @param bytes an array of byte + + + Returns the PDF representation of this PdfString. + + @return an array of bytes + + + Returns the string value of the PdfString-object. + + @return a string + + + Gets the encoding of this string. + + @return a string + + + This is a node in a document logical structure. It may contain a mark point or it may contain + other nodes. + @author Paulo Soares + + + Holds value of property kids. + + + Holds value of property reference. + + + Creates a new instance of PdfStructureElement. + @param parent the parent of this node + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Creates a new instance of PdfStructureElement. + @param root the structure tree root + @param structureType the type of structure. It may be a standard type or a user type mapped by the role map + + + Gets the parent of this node. + @return the parent of this node + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + The structure tree root corresponds to the highest hierarchy level in a tagged PDF. + @author Paulo Soares + + + Holds value of property writer. + + + Creates a new instance of PdfStructureTreeRoot + + + Maps the user tags to the standard tags. The mapping will allow a standard application to make some sense of the tagged + document whatever the user tags may be. + @param used the user tag + @param standard the standard tag + + + Gets the writer. + @return the writer + + + Gets the reference this object will be written to. + @return the reference this object will be written to + + + Gets the first entarance of attribute. + @returns PdfObject + @since 5.3.4 + + + Sets the attribute value. + @since 5.3.4 + + + Implements the form XObject. + + + The indirect reference to this template + + + The resources used by this template + + + The bounding box of this template + + + A dictionary with additional information + @since 5.1.0 + + + Creates a PdfTemplate. + + + Creates new PdfTemplate + + @param wr the PdfWriter + + + + Gets the bounding width of this template. + + @return width the bounding width + + + Gets the bounding heigth of this template. + + @return heigth the bounding height + + + Gets the layer this template belongs to. + @return the layer this template belongs to or null for no layer defined + + + Gets the indirect reference to this template. + + @return the indirect reference to this template + + + Constructs the resources used by this template. + + @return the resources used by this template + + + Gets the stream representing this template. + + @param compressionLevel the compressionLevel + @return the stream representing this template + @since 2.1.3 (replacing the method without param compressionLevel) + + + Gets a duplicate of this PdfTemplate. All + the members are copied by reference but the buffer stays different. + @return a copy of this PdfTemplate + + + Sets/gets a dictionary with extra entries, for instance /Measure. + + @param additional + a PdfDictionary with additional information. + @since 5.1.0 + + + + Adds a PdfNumber to the PdfArray. + + @param number displacement of the string + + + Out Vertical Split + + + Out Horizontal Split + + + In Vertical Split + + + IN Horizontal Split + + + Vertical Blinds + + + Vertical Blinds + + + Inward Box + + + Outward Box + + + Left-Right Wipe + + + Right-Left Wipe + + + Bottom-Top Wipe + + + Top-Bottom Wipe + + + Dissolve + + + Left-Right Glitter + + + Top-Bottom Glitter + + + Diagonal Glitter + + + duration of the transition effect + + + type of the transition effect + + + Constructs a Transition. + + + + Constructs a Transition. + + @param type type of the transition effect + + + Constructs a Transition. + + @param type type of the transition effect + @param duration duration of the transition effect + + + The transparency group dictionary. + + @author Paulo Soares + + + Constructs a transparencyGroup. + + + Determining the initial backdrop against which its stack is composited. + @param isolated + + + Determining whether the objects within the stack are composited with one another or only with the group's backdrop. + @param knockout + + + An array specifying a visibility expression, used to compute visibility + of content based on a set of optional content groups. + @since 5.0.2 + + + A boolean operator. + + + A boolean operator. + + + A boolean operator. + + + Creates a visibility expression. + @param type should be AND, OR, or NOT + + + @see com.itextpdf.text.pdf.PdfArray#add(int, com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#addFirst(com.itextpdf.text.pdf.PdfObject) + + + @see com.itextpdf.text.pdf.PdfArray#add(float[]) + + + @see com.itextpdf.text.pdf.PdfArray#add(int[]) + + + A DocWriter class for PDF. +

+ When this PdfWriter is added + to a certain PdfDocument, the PDF representation of every Element + added to this Document will be written to the outputstream.

+
+ + The highest generation number possible. + @since iText 2.1.6 + + + + PdfCrossReference is an entry in the PDF Cross-Reference table. + + + Byte offset in the PDF file. + + + generation of the object. + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + @param generation generationnumber of the object + + + Constructs a cross-reference element for a PdfIndirectObject. + @param refnum + @param offset byte offset of the object + + + Returns the PDF representation of this PdfObject. + @param os + @throws IOException + + + Writes PDF syntax to the Stream + @param midSize + @param os + @throws IOException + + + @see java.lang.Comparable#compareTo(java.lang.Object) + + + @see java.lang.Object#equals(java.lang.Object) + + + array containing the cross-reference table of the normal objects. + + + the current byteposition in the body. + + + Constructs a new PdfBody. + @param writer + + + + Gets a PdfIndirectReference for an object that will be created in the future. + @return a PdfIndirectReference + + + + Returns the offset of the Cross-Reference table. + + @return an offset + + + Returns the total number of objects contained in the CrossReferenceTable of this Body. + + @return a number of objects + + + Returns the CrossReferenceTable of the Body. + @param os + @param root + @param info + @param encryption + @param fileID + @param prevxref + @throws IOException + + + + Constructs a PDF-Trailer. + + @param size the number of entries in the PdfCrossReferenceTable + @param offset offset of the PdfCrossReferenceTable + @param root an indirect reference to the root of the PDF document + @param info an indirect reference to the info object of the PDF document + @param encryption + @param fileID + @param prevxref + + + Returns the PDF representation of this PdfObject. + @param writer + @param os + @throws IOException + + + Constructs a PdfWriter. + + + + Use this method to get an instance of the PdfWriter. + + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @return a new PdfWriter + + @throws DocumentException on error + + + Use this method to get an instance of the PdfWriter. + + @return a new PdfWriter + @param document The Document that has to be written + @param os The Stream the writer has to write to. + @param listener A DocListener to pass to the PdfDocument. + @throws DocumentException on error + + + the pdfdocument object. + + + Gets the PdfDocument associated with this writer. + @return the PdfDocument + + + Use this method to get the info dictionary if you want to + change it directly (add keys and values to the info dictionary). + @return the info dictionary + + + Use this method to get the current vertical page position. + @param ensureNewLine Tells whether a new line shall be enforced. This may cause side effects + for elements that do not terminate the lines they've started because those lines will get + terminated. + @return The current vertical page position. + + + Sets the initial leading for the PDF document. + This has to be done before the document is opened. + @param leading the initial leading + @since 2.1.6 + @throws DocumentException if you try setting the leading after the document was opened. + + + The direct content in this document. + + + The direct content under in this document. + + + Use this method to get the direct content for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Use this method to get the direct content under for this document. + There is only one direct content, multiple calls to this method + will allways retrieve the same object. + @return the direct content + + + Resets all the direct contents to empty. + This happens when a new page is started. + + + body of the PDF document + + + Adds the local destinations to the body of the document. + @param dest the Hashtable containing the destinations + @throws IOException on error + + + Adds an object to the PDF body. + @param object + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param ref + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @return a PdfIndirectObject + @throws IOException + + + Adds an object to the PDF body. + @param object + @param refNumber + @param inObjStm + @return a PdfIndirectObject + @throws IOException + + + Use this method for caching objects. + @param iobj @see PdfIndirectObject + + + Gets a PdfIndirectReference for an object that + will be created in the future. + @return the PdfIndirectReference + + + Returns the outputStreamCounter. + @return the outputStreamCounter + + + Holds value of property extraCatalog. + + + Sets extra keys to the catalog. + @return the catalog to change + + + The root of the page tree. + + + The PdfIndirectReference to the pages. + + + The current page number. + + + The value of the Tabs entry in the page dictionary. + @since 2.1.5 + + + Additional page dictionary entries. + @since 5.1.0 + + + Adds an additional entry for the page dictionary. + @since 5.1.0 + + + Gets the additional pageDictEntries. + @since 5.1.0 + + + Resets the additional pageDictEntries. + @since 5.1.0 + + + Use this method to make sure the page tree has a lineair structure + (every leave is attached directly to the root). + Use this method to allow page reordering with method reorderPages. + + + Use this method to reorder the pages in the document. + A null argument value only returns the number of pages to process. + It is advisable to issue a Document.NewPage() before using this method. + @return the total number of pages + @param order an array with the new page sequence. It must have the + same size as the number of pages. + @throws DocumentException if all the pages are not present in the array + + + Use this method to get a reference to a page existing or not. + If the page does not exist yet the reference will be created + in advance. If on closing the document, a page number greater + than the total number of pages was requested, an exception + is thrown. + @param page the page number. The first page is 1 + @return the reference to the page + + + Gets the pagenumber of this document. + This number can be different from the real pagenumber, + if you have (re)set the page number previously. + @return a page number + + + Sets the Viewport for the next page. + @param viewport an array consisting of Viewport dictionaries. + @since 5.1.0 + + + Sets the value for the Tabs entry in the page tree. + @param tabs Can be PdfName.R, PdfName.C or PdfName.S. + Since the Adobe Extensions Level 3, it can also be PdfName.A + or PdfName.W + @since 2.1.5 + + + + The PdfPageEvent for this document. + + + Gets the PdfPageEvent for this document or null + if none is set. + @return the PdfPageEvent for this document or null + if none is set + + + A number refering to the previous Cross-Reference Table. + + + The original file ID (if present). + + + + + Use this method to get the root outline + and construct bookmarks. + @return the root outline + + + Sets the bookmarks. The list structure is defined in + {@link SimpleBookmark}. + @param outlines the bookmarks or null to remove any + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (header) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + possible PDF version (catalog) + + + Stores the version information for the header and the catalog. + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setAtLeastPdfVersion(char) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#setPdfVersion(com.lowagie.text.pdf.PdfName) + + + @see com.lowagie.text.pdf.interfaces.PdfVersion#addDeveloperExtension(com.lowagie.text.pdf.PdfDeveloperExtension) + @since 2.1.6 + + + Returns the version information. + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + A viewer preference + + + Sets the viewer preferences as the sum of several constants. + @param preferences the viewer preferences + @see PdfViewerPreferences#setViewerPreferences + + + Adds a viewer preference + @param preferences the viewer preferences + @see PdfViewerPreferences#addViewerPreference + + + Use this method to add page labels + @param pageLabels the page labels + + + Adds named destinations in bulk. + Valid keys and values of the map can be found in the map + that is created by SimpleNamedDestination. + @param map a map with strings as keys for the names, + and structured strings as values for the destinations + @param page_offset number of pages that has to be added to + the page numbers in the destinations (useful if you + use this method in combination with PdfCopy). + @since iText 5.0 + + + Adds one named destination. + @param name the name for the destination + @param page the page number where you want to jump to + @param dest an explicit destination + @since iText 5.0 + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param js The JavaScript action + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Adds a JavaScript action at the document level. When the document + opens all this JavaScript runs. + @param code the JavaScript code + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param js The JavaScript action + + + Use this method to add a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + @param unicode select JavaScript unicode. Note that the internal + Acrobat JavaScript engine does not support unicode, + so this may or may not work for you + + + Use this method to adds a JavaScript action at the document level. + When the document opens, all this JavaScript runs. + @param name The name of the JS Action in the name tree + @param code the JavaScript code + + + Adds a file attachment at the document level. + @param description the file description + @param fileStore an array with the file. If it's null + the file will be read from the disk + @param file the path to the file. It will only be used if + fileStore is not null + @param fileDisplay the actual file name stored in the pdf + @throws IOException on error + + + Adds a file attachment at the document level. + @param description the file description + @param fs the file specification + + + Adds a file attachment at the document level. + @param fs the file specification + + + action value + + + action value + + + action value + + + action value + + + action value + + + When the document opens it will jump to the destination with + this name. + @param name the name of the destination to jump to + + + When the document opens this action will be + invoked. + @param action the action to be invoked + + + Additional-actions defining the actions to be taken in + response to various trigger events affecting the document + as a whole. The actions types allowed are: DOCUMENT_CLOSE, + WILL_SAVE, DID_SAVE, WILL_PRINT + and DID_PRINT. + + @param actionType the action type + @param action the action to execute in response to the trigger + @throws PdfException on invalid action type + + + Sets the Collection dictionary. + @param collection a dictionary of type PdfCollection + + + signature value + + + signature value + + + Gets the AcroForm object. + @return the PdfAcroForm + + + Adds a PdfAnnotation or a PdfFormField + to the document. Only the top parent of a PdfFormField + needs to be added. + @param annot the PdfAnnotation or the PdfFormField to add + + + Adds the PdfAnnotation to the calculation order + array. + @param annot the PdfAnnotation to be added + + + Set the signature flags. + @param f the flags. This flags are ORed with current ones + + + XMP Metadata for the document. + + + Sets XMP Metadata. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to set the XMP Metadata for each page. + @param xmpMetadata The xmpMetadata to set. + + + Use this method to creates XMP Metadata based + on the metadata in the PdfDocument. + @since 5.4.4 just creates XmpWriter instance which will be serialized in close. + + + PDF/X level + + + PDF/X level + + + PDF/X level + + + Stores the PDF ISO conformance. + + + Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It + must be called before opening the document. + @param pdfxConformance the conformance level + + + Checks if any PDF ISO conformance is necessary. + @return true if the PDF has to be in conformance with any of the PDF ISO specifications + + + @see com.lowagie.text.pdf.interfaces.PdfXConformance#isPdfX() + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + @param outputConditionIdentifier a value + @param outputCondition a value + @param registryName a value + @param info a value + @param destOutputProfile a value + @throws IOException on error + + + Sets the values of the output intent dictionary. Null values are allowed to + suppress any key. + + Prefer the ICC_Profile-based version of this method. + @param outputConditionIdentifier a value + @param outputCondition a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance. + @param registryName a value + @param info a value + @param destOutputProfile a value + @since 1.x + + @throws IOException + + + Copies the output intent dictionary from other document to this one. + @param reader the other document + @param checkExistence true to just check for the existence of a valid output intent + dictionary, false to insert the dictionary if it exists + @throws IOException on error + @return true if the output intent dictionary exists, false + otherwise + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Type of encryption + + + Mask to separate the encryption type from the encryption mode. + + + Add this to the mode to keep the metadata in clear text + + + Add this to the mode to keep encrypt only the embedded files. + @since 2.1.3 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + The operation permitted when the document is opened with the user password + + @since 2.0.7 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_CONTENTS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_COPY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_MODIFY_ANNOTATIONS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_FILL_IN} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_SCREENREADERS} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_ASSEMBLY} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #ALLOW_DEGRADED_PRINTING} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_40} instead. Scheduled for removal at or after 2.2.0 + + + @deprecated As of iText 2.0.7, use {@link #STANDARD_ENCRYPTION_128} instead. Scheduled for removal at or after 2.2.0 + + + Contains the business logic for cryptography. + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @throws DocumentException if the document is already open + + + Sets the certificate encryption options for this document. An array of one or more public certificates + must be provided together with an array of the same size for the permissions for each certificate. + The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param certs the public certificates to be used for the encryption + @param permissions the user permissions for each of the certicates + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @param strength128Bits true for 128 bit key length, false for 40 bit key length + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param strength true for 128 bit key length, false for 40 bit key length + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Sets the encryption options for this document. The userPassword and the + ownerPassword can be null or have zero length. In this case the ownerPassword + is replaced by a random string. The open permissions for the document can be + AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, + AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. + The permissions can be combined by ORing them. + @param encryptionType the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. + Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext + @param userPassword the user password. Can be null or empty + @param ownerPassword the owner password. Can be null or empty + @param permissions the user permissions + @throws DocumentException if the document is already open + + + Holds value of property fullCompression. + + + Gets the 1.5 compression status. + @return true if the 1.5 compression is on + + + Sets the document's compression to the new 1.5 mode with object streams and xref + streams. It can be set at any time but once set it can't be unset. + + + The compression level of the content streams. + @since 2.1.3 + + + Sets the compression level to be used for streams written by this writer. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + The fonts of this document + + + The font number counter for the fonts in the document. + + + Adds a BaseFont to the document but not to the page resources. + It is used for templates. + @param bf the BaseFont to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The form XObjects in this document. The key is the xref and the value + is Object[]{PdfName, template}. + + + The name counter for the form XObjects name. + + + Adds a template to the document but not to the page resources. + @param template the template to add + @param forcedName the template name, rather than a generated one. Can be null + @return the PdfName for this template + + + Releases the memory used by a template by writing it to the output. The template + can still be added to any content but changes to the template itself won't have + any effect. + @param tp the template to release + @throws IOException on error + + + Gets a page from other PDF document. The page can be used as + any other PdfTemplate. Note that calling this method more than + once with the same parameters will retrieve the same object. + @param reader the PDF document where the page is + @param pageNumber the page number. The first page is 1 + @return the template representing the imported page + + + Returns the PdfReaderInstance associated with the specified reader. + Multiple calls with the same reader object will return the same + PdfReaderInstance. + @param reader the PDF reader that you want an instance for + @return the instance for the provided reader + @since 5.0.3 + + + Writes the reader to the document and frees the memory used by it. + The main use is when concatenating multiple documents to keep the + memory usage restricted to the current appending document. + @param reader the PdfReader to free + @throws IOException on error + + + Gets the current document size. This size only includes + the data already writen to the output stream, it does not + include templates or fonts. It is usefull if used with + freeReader() when concatenating many documents + and an idea of the current size is needed. + @return the approximate size without fonts or templates + + + The colors of this document + + + The color number counter for the colors in the document. + + + Adds a SpotColor to the document but not to the page resources. + @param spc the SpotColor to add + @return an Object[] where position 0 is a PdfName + and position 1 is an PdfIndirectReference + + + The patterns of this document + + + The patten number counter for the colors in the document. + + + Mark this document for tagging. It must be called before open. + + + Check if the document is marked for tagging. + @return true if the document is marked for tagging + + + Fix structure of tagged document: remove unused objects, remove unused items from class map, + fix xref table due to removed objects. + + + Flushes merged AcroFields to document (if any). + + + Gets the structure tree root. If the document is not marked for tagging it will return null. + @return the structure tree root + + + Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer + state. It's advisable to only call this method right before close and do any modifications + at that time. + @return the Optional Content Properties Dictionary + + + Sets a collection of optional content groups whose states are intended to follow + a "radio button" paradigm. That is, the state of at most one optional + content group in the array should be ON at a time: if one group is turned + ON, all others must be turned OFF. + @param group the radio group + + + Use this method to lock an optional content group. + The state of a locked group cannot be changed through the user interface + of a viewer application. Producers can use this entry to prevent the visibility + of content that depends on these groups from being changed by users. + @param layer the layer that needs to be added to the array of locked OCGs + @since 2.1.2 + + + Gives the size of the media box. + @return a Rectangle + + + Sets the crop box. The crop box should not be rotated even if the + page is rotated. This change only takes effect in the next + page. + @param crop the crop box + + + Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed". + @param boxName the box size + @param size the size + + + Gives the size of a trim, art, crop or bleed box, or null if not defined. + @param boxName crop, trim, art or bleed + + + Returns the intersection between the crop, trim art or bleed box and the parameter intersectingRectangle. + This method returns null when + - there is no intersection + - any of the above boxes are not defined + - the parameter intersectingRectangle is null + + @param boxName crop, trim, art, bleed + @param intersectingRectangle the rectangle that intersects the rectangle associated to the boxName + @return the intersection of the two rectangles + + + Use this method to make sure a page is added, + even if it's empty. If you use SetPageEmpty(false), + invoking NewPage() after a blank page will add a newPage. + SetPageEmpty(true) won't have any effect. + @param pageEmpty the state + + + action value + + + action value + + + Sets the open and close page additional action. + @param actionType the action type. It can be PdfWriter.PAGE_OPEN + or PdfWriter.PAGE_CLOSE + @param action the action to perform + @throws PdfException if the action type is invalid + + + Sets the display duration for the page (for presentations) + @param seconds the number of seconds to display the page + + + Sets the transition for the page + @param transition the Transition object + + + Sets the the thumbnail image for the current page. + @param image the image + @throws PdfException on error + @throws DocumentException or error + + + A group attributes dictionary specifying the attributes + of the page�s page group for use in the transparent + imaging model + + + The default space-char ratio. + + + Disable the inter-character spacing. + + + The ratio between the extra word spacing and the extra character spacing. + Extra word spacing will grow ratio times more than extra character spacing. + + + Sets the ratio between the extra word spacing and the extra character spacing + when the text is fully justified. + Extra word spacing will grow spaceCharRatio times more than extra character spacing. + If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing + will be zero. + @param spaceCharRatio the ratio between the extra word spacing and the extra character spacing + + + Use the default run direction. + + + Do not use bidirectional reordering. + + + Use bidirectional reordering with left-to-right + preferential run direction. + + + Use bidirectional reordering with right-to-left + preferential run direction. + + + Sets the run direction. This is only used as a placeholder + as it does not affect anything. + @param runDirection the run direction + + + A UserUnit is a value that defines the default user space unit. + The minimum UserUnit is 1 (1 unit = 1/72 inch). + The maximum UserUnit is 75,000. + Remark that this userunit only works starting with PDF1.6! + + + Gets the default colorspaces. + @return the default colorspaces + + + + Sets the image sequence to follow the text in strict order. + @param strictImageSequence new value of property strictImageSequence + + + + Clears text wrapping around images (if applicable). + Method suggested by Pelikan Stephan + @throws DocumentException + + + Dictionary, containing all the images of the PDF document + + + This is the list with all the images in the document. + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Adds an image to the document but not to the page resources. It is used with + templates and Document.Add(Image). + @param image the Image to add + @param fixedRef the reference to used. It may be null, + a PdfIndirectReference or a PRIndirectReference. + @return the name of the image added + @throws PdfException on error + @throws DocumentException on error + + + Writes a PdfImage to the outputstream. + + @param pdfImage the image to be added + @return a PdfIndirectReference to the encapsulated image + @throws PdfException when a document isn't open yet, or has been closed + + + return the PdfIndirectReference to the image with a given name. + + @param name the name of the image + @return a PdfIndirectReference + + + A Hashtable with Stream objects containing JBIG2 Globals + @since 2.1.5 + + + Gets an indirect reference to a JBIG2 Globals stream. + Adds the stream if it hasn't already been added to the writer. + @param content a byte array that may already been added to the writer inside a stream object. + @since 2.1.5 + + + A flag indicating the presence of structure elements that contain user properties attributes. + + + Sets the flag indicating the presence of structure elements that contain user properties attributes. + @param userProperties the user properties flag + + + Holds value of property RGBTranparency. + + + Sets the transparency blending colorspace to RGB. The default blending colorspace is + CMYK and will result in faded colors in the screen and in printing. Calling this method + will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages + until other value is set. + Note that this is a generic solution that may not work in all cases. + @param rgbTransparencyBlending true to set the transparency blending colorspace to RGB, false + to use the default blending colorspace + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param rect + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param title + @param content + @param subtype + @return + + + A wrapper around PdfAnnotation constructor. + It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed. + + @param llx + @param lly + @param urx + @param ury + @param action + @param subtype + @return + + + Gets the list of the standard structure element names (roles). + @return + + + + @author psoares + + + Creates a new instance of PdfXConformanceException. + + + Creates a new instance of PdfXConformanceException. + @param s + + + Converts a PFM file into an AFM file. + + + Creates a new instance of Pfm2afm + + + Converts a PFM file into an AFM file. + @param inp the PFM file + @param outp the AFM file + @throws IOException on error + + + Translate table from 1004 to psstd. 1004 is an extension of the + Windows translate table used in PM. + + + Character class. This is a minor attempt to overcome the problem that + in the pfm file, all unused characters are given the width of space. + Note that this array isn't used in iText. + + + Windows character names. Give a name to the used locations + for when the all flag is specified. + + + This class captures an AcroForm on input. Basically, it extends Dictionary + by indexing the fields of an AcroForm + @author Mark Thompson + + + This class holds the information for a single field + + + Returns the name of the widget annotation (the /NM entry). + @return a String or null (if there's no /NM key) + + + Constructor + @param reader reader of the input file + + + Number of fields found + @return size + + + Given the title (/T) of a reference, return the associated reference + @param name a string containing the path + @return a reference to the field, or null + + + Read, and comprehend the acroform + @param root the docment root + + + After reading, we index all of the fields. Recursive. + @param fieldlist An array of fields + @param fieldDict the last field dictionary we encountered (recursively) + @param parentPath the pathname of the field, up to this point or null + + + merge field attributes from two dictionaries + @param parent one dictionary + @param child the other dictionary + @return a merged dictionary + + + stack a level of dictionary. Merge in a dictionary from this level + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + @param generation the generation number. + + + Constructs a PdfIndirectReference. + + @param reader a PdfReader + @param number the object number. + + + Creates a new PDF stream object that will replace a stream + in a existing PDF file. + @param reader the reader that holds the existing PDF + @param conts the new content + @param compressionLevel the compression level for the content + @since 2.1.3 (replacing the existing constructor without param compressionLevel) + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @since iText 2.1.1 + + + Sets the data associated with the stream, either compressed or + uncompressed. Note that the data will never be compressed if + Document.compress is set to false. + + @param data raw data, decrypted and uncompressed. + @param compress true if you want the stream to be compresssed. + @param compressionLevel a value between -1 and 9 (ignored if compress == false) + @since iText 2.1.3 + + + Sets the data associated with the stream, as-is. This method will not + remove or change any existing filter: the data has to match an existing + filter or an appropriate filter has to be set. + + @param data data, possibly encrypted and/or compressed + @since 5.5.0 + + + Sets the data associated with the stream + @param data raw data, decrypted and uncompressed. + + + + @author Paulo Soares + + + Creates a PRTokeniser for the specified {@link RandomAccessSource}. + The beginning of the file is read to determine the location of the header, and the data source is adjusted + as necessary to account for any junk that occurs in the byte source before the header + @param file the source + + + Is a certain character a whitespace? Currently checks on the following: '0', '9', '10', '12', '13', '32'. +
The same as calling {@link #isWhitespace(int, boolean) isWhiteSpace(ch, true)}. + @param ch int + @return boolean + @since 5.5.1 +
+ + Checks whether a character is a whitespace. Currently checks on the following: '0', '9', '10', '12', '13', '32'. + @param ch int + @param isWhitespace boolean + @return boolean + @since 5.5.1 + + + Gets current reference number. If parsing was failed with NumberFormatException -1 will be return. + + + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. +
The same as calling {@link #readLineSegment(byte[], boolean) readLineSegment(input, true)}. + + @param input byte[] + @return boolean + @throws IOException + @since 5.5.1 +
+ + Reads data into the provided byte[]. Checks on leading whitespace. + See {@link #isWhitespace(int) isWhiteSpace(int)} or {@link #isWhitespace(int, boolean) isWhiteSpace(int, boolean)} + for a list of whitespace characters. + + @param input byte[] + @param isNullWhitespace boolean to indicate whether '0' is whitespace or not. + If in doubt, use true or overloaded method {@link #readLineSegment(byte[]) readLineSegment(input)} + @return boolean + @throws IOException + @since 5.5.1 + + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + A layout option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + An icon scaling option + + + Holds value of property layout. + + + Holds value of property image. + + + Holds value of property template. + + + Holds value of property scaleIcon. + + + Holds value of property proportionalIcon. + + + Holds value of property iconVerticalAdjustment. + + + Holds value of property iconHorizontalAdjustment. + + + Holds value of property iconFitToBounds. + + + Creates a new instance of PushbuttonField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, + LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, + LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, + LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. + The default is LAYOUT_LABEL_ONLY. + @param layout New value of property layout. + + + Sets the icon as an image. + @param image the image + + + Sets the icon as a template. + @param template the template + + + Sets the way the icon will be scaled. Possible values are + SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, + SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. + The default is SCALE_ICON_ALWAYS. + @param scaleIcon the way the icon will be scaled + + + Sets the way the icon is scaled. If true the icon is scaled proportionally, + if false the scaling is done anamorphicaly. + @param proportionalIcon the way the icon is scaled + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. + A value of 0 positions the icon at the bottom of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconVerticalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon + + + A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. + A value of 0 positions the icon at the left of the annotation rectangle. + A value of 0.5 centers it within the rectangle. The default is 0.5. + @param iconHorizontalAdjustment a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon + + + Gets the button appearance. + @throws IOException on error + @throws DocumentException on error + @return the button appearance + + + Gets the pushbutton field. + @throws IOException on error + @throws DocumentException on error + @return the pushbutton field + + + If true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account. The default + is false. + @param iconFitToBounds if true the icon will be scaled to fit fully within the bounds of the annotation, + if false the border width will be taken into account + + + Holds value of property iconReference. + + + Sets the reference to an existing icon. + @param iconReference the reference to an existing icon + + +

A simple, fast array of bits, represented compactly by an array of ints internally.

+ + @author Sean Owen +
+ + @param i bit to get + @return true iff bit i is set + + + Sets bit i. + + @param i bit to set + + + Flips bit i. + + @param i bit to set + + + Sets a block of 32 bits, starting at bit i. + + @param i first bit to set + @param newBits the new value of the next 32 bits. Note again that the least-significant bit + corresponds to bit i, the next-least-significant to i+1, and so on. + + + Clears all bits (sets to false). + + + Efficient method to check if a range of bits is set, or not set. + + @param start start of range, inclusive. + @param end end of range, exclusive + @param value if true, checks that bits in range are set, otherwise checks that they are not set + @return true iff all bits are set or not set in range, according to value argument + @throws IllegalArgumentException if end is less than or equal to start + + + @return underlying array of ints. The first element holds the first 32 bits, and the least + significant bit is bit 0. + + + Reverses all bits in the array. + + +

Represents a 2D matrix of bits. In function arguments below, and throughout the common + module, x is the column position, and y is the row position. The ordering is always x, y. + The origin is at the top-left.

+ +

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins + with a new int. This is done intentionally so that we can copy out a row into a BitArray very + efficiently.

+ +

The ordering of bits is row-major. Within each int, the least significant bits are used first, + meaning they represent lower x values. This is compatible with BitArray's implementation.

+ + @author Sean Owen + @author dswitkin@google.com (Daniel Switkin) +
+ +

Gets the requested bit, where true means black.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) + @return value of given bit in matrix +
+ +

Sets the given bit to true.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ +

Flips the given bit.

+ + @param x The horizontal component (i.e. which column) + @param y The vertical component (i.e. which row) +
+ + Clears all bits (sets to false). + + +

Sets a square region of the bit matrix to true.

+ + @param left The horizontal position to begin at (inclusive) + @param top The vertical position to begin at (inclusive) + @param width The width of the region + @param height The height of the region +
+ + A fast method to retrieve one row of data from the matrix as a BitArray. + + @param y The row to retrieve + @param row An optional caller-allocated BitArray, will be allocated if null or too small + @return The resulting BitArray - this reference should always be used even when passing + your own row + + + @return The width of the matrix + + + @return The height of the matrix + + + This method is for compatibility with older code. It's only logical to call if the matrix + is square, so I'm throwing if that's not the case. + + @return row/column dimension of this matrix + + + JAVAPORT: This should be combined with BitArray in the future, although that class is not yet + dynamically resizeable. This implementation is reasonable but there is a lot of function calling + in loops I'd like to get rid of. + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This class implements an array of unsigned bytes. + + @author dswitkin@google.com (Daniel Switkin) + + + Access an unsigned byte at location index. + @param index The index in the array to access. + @return The unsigned value of the byte as an int. + + + + Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 + of ISO 18004. + + @author Sean Owen + + + @param name character set ECI encoding name + @return {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal + but unsupported + + + These are a set of hints that you may pass to Writers to specify their behavior. + + @author dswitkin@google.com (Daniel Switkin) + + + Specifies what degree of error correction to use, for example in QR Codes (type Integer). + + + Specifies what character encoding to use where applicable (type String) + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + Encode "bytes" with the error correction level "ecLevel". The encoding mode will be chosen + internally by ChooseMode(). On success, store the result in "qrCode". + + We recommend you to use QRCode.EC_LEVEL_L (the lowest level) for + "getECLevel" since our primary use is to show QR code on desktop screens. We don't need very + strong error correction for this purpose. + + Note that there is no way to encode bytes in MODE_KANJI. We might want to add EncodeWithMode() + with which clients can specify the encoding mode. For now, we don't need the functionality. + + + @return the code point of the table used in alphanumeric mode or + -1 if there is no corresponding code in the table. + + + Choose the best mode by examining the content. Note that 'encoding' is used as a hint; + if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. + + + Initialize "qrCode" according to "numInputBytes", "ecLevel", and "mode". On success, + modify "qrCode". + + + Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). + + + Get number of data bytes and number of error correction bytes for block id "blockID". Store + the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of + JISX0510:2004 (p.30) + + + Interleave "bits" with corresponding error correction bytes. On success, store the result in + "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. + + + Append mode info. On success, store the result in "bits". + + + Append length info. On success, store the result in "bits". + + + Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". + + +

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels + defined by the QR code standard.

+ + @author Sean Owen +
+ + L = ~7% correction + + + M = ~15% correction + + + Q = ~25% correction + + + H = ~30% correction + + + @param bits int containing the two bits encoding a QR Code's error correction level + @return {@link ErrorCorrectionLevel} representing the encoded error correction level + + +

Encapsulates a QR Code's format information, including the data mask used and + error correction level.

+ + @author Sean Owen + @see ErrorCorrectionLevel +
+ + See ISO 18004:2006, Annex C, Table C.1 + + + Offset i holds the number of 1 bits in the binary representation of i + + + @param maskedFormatInfo1 format info indicator, with mask still applied + @param maskedFormatInfo2 second copy of same info; both are checked at the same time + to establish best match + @return information about the format it specifies, or null + if doesn't seem to match any known pattern + + +

This class contains utility methods for performing mathematical operations over + the Galois Field GF(256). Operations use a given primitive polynomial in calculations.

+ +

Throughout this package, elements of GF(256) are represented as an int + for convenience and speed (but at the cost of memory). + Only the bottom 8 bits are really used.

+ + @author Sean Owen +
+ + Create a representation of GF(256) using the given primitive polynomial. + + @param primitive irreducible polynomial whose coefficients are represented by + the bits of an int, where the least-significant bit represents the constant + coefficient + + + @return the monomial representing coefficient * x^degree + + + Implements both addition and subtraction -- they are the same in GF(256). + + @return sum/difference of a and b + + + @return 2 to the power of a in GF(256) + + + @return base 2 log of a in GF(256) + + + @return multiplicative inverse of a + + + @param a + @param b + @return product of a and b in GF(256) + + +

Represents a polynomial whose coefficients are elements of GF(256). + Instances of this class are immutable.

+ +

Much credit is due to William Rucklidge since portions of this code are an indirect + port of his C++ Reed-Solomon implementation.

+ + @author Sean Owen +
+ + @param field the {@link GF256} instance representing the field to use + to perform computations + @param coefficients coefficients as ints representing elements of GF(256), arranged + from most significant (highest-power term) coefficient to least significant + @throws IllegalArgumentException if argument is null or empty, + or if leading coefficient is 0 and this is not a + constant polynomial (that is, it is not the monomial "0") + + + @return degree of this polynomial + + + @return true iff this polynomial is the monomial "0" + + + @return coefficient of x^degree term in this polynomial + + + @return evaluation of this polynomial at a given point + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + +

See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which + data can be encoded to bits in the QR code standard.

+ + @author Sean Owen +
+ + @param bits four bits encoding a QR Code data mode + @return {@link Mode} encoded by these bits + @throws IllegalArgumentException if bits do not correspond to a known mode + + + @param version version in question + @return number of bits used, in this QR Code symbol {@link Version}, to encode the + count of characters that will follow encoded in this {@link Mode} + + + @author satorux@google.com (Satoru Takabayashi) - creator + @author dswitkin@google.com (Daniel Switkin) - ported from C++ + + + This object renders a QR Code as a ByteMatrix 2D array of greyscale values. + + @author dswitkin@google.com (Daniel Switkin) + + +

Implements Reed-Solomon enbcoding, as the name implies.

+ + @author Sean Owen + @author William Rucklidge +
+ +

Thrown when an exception occurs during Reed-Solomon decoding, such as when + there are too many errors to correct.

+ + @author Sean Owen +
+ + See ISO 18004:2006 Annex D + + @author Sean Owen + + + See ISO 18004:2006 Annex D. + Element i represents the raw version bits that specify version i + 7 + + +

Deduces version information purely from QR Code dimensions.

+ + @param dimension dimension in modules + @return {@link Version} for a QR Code of that dimension + @throws FormatException if dimension is not 1 mod 4 +
+ + See ISO 18004:2006 Annex E + + +

Encapsulates a set of error-correction blocks in one symbol version. Most versions will + use blocks of differing sizes within one version, so, this encapsulates the parameters for + each set of blocks. It also holds the number of error-correction codewords per block since it + will be the same across all blocks within one version.

+
+ +

Encapsualtes the parameters for one error-correction block in one symbol version. + This includes the number of data codewords, and the number of times a block with these + parameters is used consecutively in the QR code version's format.

+
+ + See ISO 18004:2006 6.5.1 Table 9 + + + A base class which covers the range of exceptions which may occur when encoding a barcode using + the Writer framework. + + @author dswitkin@google.com (Daniel Switkin) + + + + A field with the symbol check + + + A field with the symbol circle + + + A field with the symbol cross + + + A field with the symbol diamond + + + A field with the symbol square + + + A field with the symbol star + + + Holds value of property checkType. + + + Holds value of property onValue. + + + Holds value of property checked. + + + Creates a new instance of RadioCheckField + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. It must not be null + @param onValue the value when the field is checked + + + Sets the checked symbol. It can be + TYPE_CHECK, + TYPE_CIRCLE, + TYPE_CROSS, + TYPE_DIAMOND, + TYPE_SQUARE and + TYPE_STAR. + @param checkType the checked symbol + + + Sets the value when the field is checked. + @param onValue the value when the field is checked + + + Sets the state of the field to checked or unchecked. + @param checked the state of the field, true for checked + and false for unchecked + + + Gets the field appearance. + @param isRadio true for a radio field and false + for a check field + @param on true for the checked state, false + otherwise + @throws IOException on error + @throws DocumentException on error + @return the appearance + + + Gets the special field appearance for the radio circle. + @param on true for the checked state, false + otherwise + @return the appearance + + + Gets a radio group. It's composed of the field specific keys, without the widget + ones. This field is to be used as a field aggregator with {@link PdfFormField#addKid(PdfFormField) AddKid()}. + @param noToggleToOff if true, exactly one radio button must be selected at all + times; clicking the currently selected button has no effect. + If false, clicking + the selected button deselects it, leaving no button selected. + @param radiosInUnison if true, a group of radio buttons within a radio button field that + use the same value for the on state will turn on and off in unison; that is if + one is checked, they are all checked. If false, the buttons are mutually exclusive + (the same behavior as HTML radio buttons) + @return the radio group + + + Gets the radio field. It's only composed of the widget keys and must be used + with {@link #getRadioGroup(bool,bool)}. + @return the radio field + @throws IOException on error + @throws DocumentException on error + + + Gets the check field. + @return the check field + @throws IOException on error + @throws DocumentException on error + + + Gets a radio or check field. + @param isRadio true to get a radio field, false to get + a check field + @throws IOException on error + @throws DocumentException on error + @return the field + + + Intended to be layered on top of a low level RandomAccessSource object. Provides + functionality useful during parsing: +
    +
  • tracks current position in the file
  • +
  • allows single byte pushback
  • +
  • allows reading of multi-byte data structures (int, long, String) for both Big and Little Endian representations
  • +
  • allows creation of independent 'views' of the underlying data source
  • +
+ + @author Paulo Soares, Kevin Day +
+ + The source that backs this object + + + The physical location in the underlying byte source. + + + the pushed back byte, if any + + + Whether there is a pushed back byte + + + @deprecated use {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + @param filename + @throws IOException + + + Creates an independent view of the specified source. Closing the new object will not close the source. + Closing the source will have adverse effect on the behavior of the new view. + @deprecated use {@link RandomAccessFileOrArray#createView()} instead + @param source the source for the new independent view + + + Creates an independent view of this object (with it's own file pointer and pushback queue). Closing the new object will not close this object. + Closing this object will have adverse effect on the view. + @return the new view + + + Creates a RandomAccessFileOrArray that wraps the specified byte source. The byte source will be closed when + this RandomAccessFileOrArray is closed. + @param byteSource the byte source to wrap + + + Constructs a new RandomAccessFileOrArrayObject + @param filename the file to open (can be a file system file or one of the following url strings: file://, http://, https://, jar:, wsjar:, vfszip: + @param forceRead if true, the entire file will be read into memory + @param plainRandomAccess if true, a regular RandomAccessFile is used to access the file contents. If false, a memory mapped file will be used, unless the file cannot be mapped into memory, in which case regular RandomAccessFile will be used + @throws IOException if there is a failure opening or reading the file + @deprecated use {@link RandomAccessSourceFactory#createBestSource(String)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param url + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(URL)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param is + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(InputStream)} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + @param arrayIn + @throws IOException + @deprecated use {@link RandomAccessSourceFactory#createSource(byte[])} and {@link RandomAccessFileOrArray#RandomAccessFileOrArray(RandomAccessSource)} instead + + + Pushes a byte back. The next get() will return this byte instead of the value from the underlying data source + @param b the byte to push + + + Reads a single byte + @return the byte, or -1 if EOF is reached + @throws IOException + + + + + + + + + This class allows you to sign with either an RSACryptoServiceProvider/DSACryptoServiceProvider from a X509Certificate2, + or from manually created RSACryptoServiceProvider/DSACryptoServiceProvider. + Depending on the certificate's CSP, sometimes you will not be able to sign with SHA-256/SHA-512 hash algorithm with + RSACryptoServiceProvider taken directly from the certificate. + This class allows you to use a workaround in this case and sign with certificate's private key and SHA-256/SHA-512 anyway. + + An example of a workaround for CSP that does not support SHA-256/SHA-512: + + if (certificate.PrivateKey is RSACryptoServiceProvider) + { + RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey; + + // Modified by J. Arturo + // Workaround for SHA-256 and SHA-512 + + if (rsa.CspKeyContainerInfo.ProviderName == "Microsoft Strong Cryptographic Provider" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Enhanced Cryptographic Provider v1.0" || + rsa.CspKeyContainerInfo.ProviderName == "Microsoft Base Cryptographic Provider v1.0") + { + string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider"; + int providerType = 24; + + Type CspKeyContainerInfo_Type = typeof(CspKeyContainerInfo); + + FieldInfo CspKeyContainerInfo_m_parameters = CspKeyContainerInfo_Type.GetField("m_parameters", BindingFlags.NonPublic | BindingFlags.Instance); + CspParameters parameters = (CspParameters)CspKeyContainerInfo_m_parameters.GetValue(rsa.CspKeyContainerInfo); + + var cspparams = new CspParameters(providerType, providerName, rsa.CspKeyContainerInfo.KeyContainerName); + cspparams.Flags = parameters.Flags; + + using (var rsaKey = new RSACryptoServiceProvider(cspparams)) + { + // use rsaKey now + } + } + else + { + // Use rsa directly + } + } + + + + + + + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + Interface to sign a document. The signing is fully done externally, including the container composition. + @author Paulo Soares + + + Produces the container with the signature. + @param data the data to sign + @return a container with the signature and other objects, like CRL and OCSP. The container will generally be a PKCS7 one. + @throws GeneralSecurityException + + + Modifies the signature dictionary to suit the container. At least the keys PdfName.FILTER and + PdfName.SUBFILTER will have to be set. + @param signDic the signature dictionary + + + Helps to locate xml stream + + + Constructor for XPath2 expression + + + Get XPath2 expression + + + Get XmlNamespaceManager to resolve namespace conflicts + + + Class that signs your XML. + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param keyInfo KeyInfo for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param includeSignaturePolicy if true SignaturePolicyIdentifier will be included (XAdES-EPES) + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml with XAdES BES using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs the xml using the enveloped mode, with optional xpath transform (see XmlSignatureAppearance). + @param sap the XmlSignatureAppearance + @param externalSignature the interface providing the actual signing + @param publicKey PublicKey for verification + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + A dictionary that stores the name of the application that signs the PDF. + + + Creates new PdfSignatureAppDictionary + + + Sets the signature created property in the Prop_Build dictionary's App + dictionary + + @param name + + + Dictionary that stores signature build properties. + @author Kwinten Pisman + + + Creates new PdfSignatureBuildProperties + + + Sets the signatureCreator property in the underlying + {@link PdfSignatureAppDictionary} dictionary. + + @param name + + + Gets the {@link PdfSignatureAppDictionary} from this dictionary. If it + does not exist, it adds a new {@link PdfSignatureAppDictionary} and + returns this instance. + + @return {@link PdfSignatureAppDictionary} + + + Class that encapsulates the signature policy information + @author J. Arturo + + Sample: + + SignaturePolicyInfo spi = new SignaturePolicyInfo("2.16.724.1.3.1.1.2.1.9", + "G7roucf600+f03r/o0bAOQ6WAs0=", "SHA-1", "https://sede.060.gob.es/politica_de_firma_anexo_1.pdf"); + + + Class containing static methods that allow you to get information from + an X509 Certificate: the issuer and the subject. + + + a class that holds an X509 name + + + country code - StringType(SIZE(2)) + + + organization - StringType(SIZE(1..64)) + + + organizational unit name - StringType(SIZE(1..64)) + + + Title + + + common name - StringType(SIZE(1..64)) + + + device serial number name - StringType(SIZE(1..64)) + + + locality name - StringType(SIZE(1..64)) + + + state, or province name - StringType(SIZE(1..64)) + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + Naming attribute of type X520name + + + + email address in Verisign certificates + + + object identifier + + + LDAP User id. + + + A Hashtable with default symbols + + + A Hashtable with values + + + Constructs an X509 name + @param seq an Asn1 Sequence + + + Constructs an X509 name + @param dirName a directory name + + + gets a field array from the values Hashmap + @param name + @return an ArrayList + + + getter for values + @return a Hashtable with the fields of the X509 name + + + @see java.lang.Object#toString() + + + class for breaking up an X500 Name into it's component tokens, ala + java.util.StringTokenizer. We need this class as some of the + lightweight Java environment don't support classes like + StringTokenizer. + + + Get the issuer fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "issuer" from the TBSCertificate bytes that are passed in + @param enc a TBSCertificate in a byte array + @return a DERObject + + + Get the subject fields from an X509 Certificate + @param cert an X509Certificate + @return an X509Name + + + Get the "subject" from the TBSCertificate bytes that are passed in + @param enc A TBSCertificate in a byte array + @return a DERObject + + + This class contains a series of static methods that + allow you to retrieve information from a Certificate. + + + Gets the URL of the Certificate Revocation List for a Certificate + @param certificate the Certificate + @return the String where you can check if the certificate was revoked + @throws CertificateParsingException + @throws IOException + + + Retrieves the OCSP URL from the given certificate. + @param certificate the certificate + @return the URL or null + @throws IOException + + + Gets the URL of the TSA if it's available on the certificate + @param certificate a certificate + @return a TSA URL + @throws IOException + + + @param certificate the certificate from which we need the ExtensionValue + @param oid the Object Identifier value for the extension. + @return the extension value as an ASN1Primitive object + @throws IOException + + + Gets a String from an ASN1Primitive + @param names the ASN1Primitive + @return a human-readable String + @throws IOException + + + This class consists of some methods that allow you to verify certificates. + + + Verifies a single certificate. + @param cert the certificate to verify + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return a String with the error description or null + if no error + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param crls the certificate revocation list or null + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies a certificate chain against a KeyStore. + @param certs the certificate chain + @param keystore the KeyStore + @param calendar the date or null for the current date + @return null if the certificate chain could be validated or a + Object[]{cert,error} where cert is the + failed certificate and error is the error message + + + Verifies an OCSP response against a KeyStore. + @param ocsp the OCSP response + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + Verifies a time stamp against a KeyStore. + @param ts the time stamp + @param keystore the KeyStore + @param provider the provider or null to use the BouncyCastle provider + @return true is a certificate was found + + + The previous CertificateVerifier in the chain of verifiers. + + + Indicates if going online to verify a certificate is allowed. + + + Creates the CertificateVerifier in a chain of verifiers. + @param verifier the previous verifier in the chain + + + Decide whether or not online checking is allowed. + @param onlineCheckingAllowed + + + Checks the validity of the certificate, and calls the next + verifier in the chain, if any. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @param signDate the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + + + An implementation of the CrlClient that handles offline + Certificate Revocation Lists. + @author Paulo Soares + + + The CRL as a byte array. + + + Creates an instance of a CrlClient in case you + have a local cache of the Certificate Revocation List. + @param crlEncoded the CRL bytes + + + Returns the CRL bytes (the parameters are ignored). + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + An implementation of the CrlClient that fetches the CRL bytes + from an URL. + @author Paulo Soares + + + The Logger instance. + + + The URLs of the CRLs. + + + Creates a CrlClientOnline instance that will try to find + a single CRL by walking through the certificate chain. + + + Creates a CrlClientOnline instance using one or more URLs. + + + Creates a CrlClientOnline instance using a certificate chain. + + + Adds an URL to the list of CRL URLs + @param url an URL in the form of a String + + + Fetches the CRL bytes from an URL. + If no url is passed as parameter, the url will be obtained from the certificate. + If you want to load a CRL from a local file, subclass this method and pass an + URL with the path to the local file to this method. An other option is to use + the CrlClientOffline class. + @see com.itextpdf.text.pdf.security.CrlClient#getEncoded(java.security.cert.X509Certificate, java.lang.String) + + + The Logger instance + + + The list of CRLs to check for revocation date. + + + Creates a CRLVerifier instance. + @param verifier the next verifier in the chain + @param crls a list of CRLs + + + Verifies if a a valid CRL is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any CRL that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single CRL. + @param crl the Certificate Revocation List + @param signCert a certificate that needs to be verified + @param issuerCert its issuer + @param signDate the sign date + @return true if the verification succeeded + @throws GeneralSecurityException + + + Fetches a CRL for a specific certificate online (without further checking). + @param signCert the certificate + @param issuerCert its issuer + @return an X509CRL object + + + Checks if a CRL verifies against the issuer certificate or a trusted anchor. + @param crl the CRL + @param crlIssuer the trusted anchor + @return true if the CRL can be trusted + + + Class that contains a map with the different message digest algorithms. + + + Algorithm available for signatures since PDF 1.3 + + + Algorithm available for signatures since PDF 1.6 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Algorithm available for signatures since PDF 1.7 + + + Maps the digest IDs with the human-readable name of the digest algorithm. + + + Maps the name of a digest algorithm with its ID. + + + Creates a MessageDigest object that can be used to create a hash. + @param hashAlgorithm the algorithm you want to use to create a hash + @param provider the provider you want to use to create the hash + @return a MessageDigest object + @throws NoSuchAlgorithmException + @throws NoSuchProviderException + @throws GeneralSecurityException + + + Creates a hash using a specific digest algorithm and a provider. + @param data the message of which you want to create a hash + @param hashAlgorithm the algorithm used to create the hash + @param provider the provider used to create the hash + @return the hash + @throws GeneralSecurityException + @throws IOException + + + Gets the digest name for a certain id + @param oid an id (for instance "1.2.840.113549.2.5") + @return a digest name (for instance "MD5") + + + Returns the id of a digest algorithms that is allowed in PDF, + or null if it isn't allowed. + @param name the name of the digest algorithm + @return an oid + + + Class that contains a map with the different encryption algorithms. + + + Maps IDs of encryption algorithms with its human-readable name. + + + Gets the algorithm name for a certain id. + @param oid an id (for instance "1.2.840.113549.1.1.1") + @return an algorithm name (for instance "RSA") + @since 2.1.6 + + + Interface that needs to be implemented if you want to embed + Certificate Revocation Lists into your PDF. + @author Paulo Soares + + + Gets a collection of byte array each representing a crl. + @param checkCert the certificate from which a CRL URL can be obtained + @param url a CRL url if you don't want to obtain it from the certificate + @return a collection of byte array each representing a crl. It may return null or an empty collection + + + Interface that needs to be implemented to do the actual signing. + For instance: you'll have to implement this interface if you want + to sign a PDF using a smart card. + @author Paulo Soares + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + + + Signs it using the encryption algorithm in combination with + the digest algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @throws GeneralSecurityException + + + Interface for the OCSP Client. + @since 2.1.6 + + + * Gets an encoded byte array with OCSP validation. The method should not throw an exception. + * @param checkCert to certificate to check + * @param rootCert the parent certificate + * @param url the url to get the verification. It it's null it will be taken + * from the check cert or from other implementation specific source + * @return a byte array with the validation or null if the validation could not be obtained + + + + Get the time stamp token size estimate. + Implementation must return value large enough to accomodate the entire token + returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call. + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint byte[] - data imprint to be time-stamped + @return byte[] - encoded, TSA signed data of the timeStampToken + @throws Exception - TSA request failed + + + PAdES-LTV Timestamp + @author Pulo Soares + + + Signs a document with a PAdES-LTV Timestamp. The document is closed at the end. + @param sap the signature appearance + @param tsa the timestamp generator + @param signatureName the signature name or null to have a name generated + automatically + @throws Exception + + + Add verification according to PAdES-LTV (part 4) + @author psoares + + + What type of verification to include + + + Include only OCSP + + + Include only CRL + + + Include both OCSP and CRL + + + Include CRL only if OCSP can't be read + + + Options for how many certificates to include + + + Include verification just for the signing certificate + + + Include verification for the whole chain of certificates + + + Certificate inclusion in the DSS and VRI dictionaries in the CERT and CERTS + keys + + + Include certificates in the DSS and VRI dictionaries + + + Do not include certificates in the DSS and VRI dictionaries + + + The verification constructor. This class should only be created with + PdfStamper.getLtvVerification() otherwise the information will not be + added to the Pdf. + @param stp the PdfStamper to apply the validation to + + + Add verification for a particular signature + @param signatureName the signature to validate (it may be a timestamp) + @param ocsp the interface to get the OCSP + @param crl the interface to get the CRL + @param certOption + @param level the validation options to include + @param certInclude + @return true if a validation was generated, false otherwise + @throws Exception + + + Returns the issuing certificate for a child certificate. + @param cert the certificate for which we search the parent + @param certs an array with certificates that contains the parent + @return the partent certificate + + + Alternative addVerification. + I assume that inputs are deduplicated. + + @throws IOException + @throws GeneralSecurityException + + + + Merges the validation with any validation already in the document or creates + a new one. + @throws IOException + + + The Logger instance + + + Do we need to check all certificate, or only the signing certificate? + + + Verify root. + + + A reader object for the revision that is being verified. + + + The fields in the revision that is being verified. + + + The date the revision was signed, or null for the highest revision. + + + The signature that covers the revision. + + + The PdfPKCS7 object for the signature. + + + Indicates if we're working with the latest revision. + + + The document security store for the revision that is being verified + + + Creates a VerificationData object for a PdfReader + @param reader a reader for the document we want to verify. + @throws GeneralSecurityException + + + Sets an extra verifier. + @param verifier the verifier to set + + + Sets the certificate option. + @param option Either CertificateOption.SIGNING_CERTIFICATE (default) or CertificateOption.WHOLE_CHAIN + + + Set the verifyRootCertificate to false if you can't verify the root certificate. + + + Checks if the signature covers the whole document + and throws an exception if the document was altered + @return a PdfPKCS7 object + @throws GeneralSecurityException + + + Verifies all the document-level timestamps and all the signatures in the document. + @throws IOException + @throws GeneralSecurityException + + + Verifies a document level timestamp. + @throws GeneralSecurityException + @throws IOException + + + Checks the certificates in a certificate chain: + are they valid on a specific date, and + do they chain up correctly? + @param chain + @throws GeneralSecurityException + + + Verifies certificates against a list of CRLs and OCSP responses. + @param signingCert + @param issuerCert + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @throws GeneralSecurityException + @throws IOException + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate) + + + Switches to the previous revision. + @throws IOException + @throws GeneralSecurityException + + + Gets a list of X509CRL objects from a Document Security Store. + @return a list of CRLs + @throws GeneralSecurityException + @throws IOException + + + Gets OCSP responses from the Document Security Store. + @return a list of BasicOCSPResp objects + @throws IOException + @throws GeneralSecurityException + + + Class that signs your PDF. + @author Paulo Soares + + + The Logger instance. + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Signs the document using the detached mode, CMS or CAdES equivalent. + @param sap the PdfSignatureAppearance + @param externalSignature the interface providing the actual signing + @param chain the certificate chain + @param crlList the CRL list + @param ocspClient the OCSP client + @param tsaClient the Timestamp client + @param provider the provider or null + @param estimatedSize the reserved size for the signature. It will be estimated if 0 + @param cades true to sign CAdES equivalent PAdES-BES, false to sign CMS + @param signaturePolicy the signature policy (for EPES signatures) + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + @throws NoSuchAlgorithmException + @throws Exception + + + Processes a CRL list. + @param cert a Certificate if one of the CrlList implementations needs to retrieve the CRL URL from it. + @param crlList a list of CrlClient implementations + @return a collection of CRL bytes that can be embedded in a PDF. + + + Sign the document using an external container, usually a PKCS7. The signature is fully composed + externally, iText will just put the container inside the document. + @param sap the PdfSignatureAppearance + @param externalSignatureContainer the interface providing the actual signing + @param estimatedSize the reserved size for the signature + @throws GeneralSecurityException + @throws IOException + @throws DocumentException + + + Signs a PDF where space was already reserved. + @param reader the original PDF + @param fieldName the field to sign. It must be the last field + @param outs the output PDF + @param externalSignatureContainer the signature container doing the actual signing. Only the + method ExternalSignatureContainer.sign is used + @throws DocumentException + @throws IOException + @throws GeneralSecurityException + + + OcspClient implementation using BouncyCastle. + @author Paulo Soares + + + Create default implemention of {@code OcspClient}. + Note, if you use this constructor, OCSP response will not be verified. + + + Create {@code OcspClient} + @param verifier will be used for response verification. {@see OCSPVerifier}. + + + Gets OCSP response. If {@see OCSPVerifier} was set, the response will be checked. + + + Gets an encoded byte array with OCSP validation. The method should not throw an exception. + + @param checkCert to certificate to check + @param rootCert the parent certificate + @param url to get the verification. It it's null it will be taken + from the check cert or from other implementation specific source + @return a byte array with the validation or null if the validation could not be obtained + + + Generates an OCSP request using BouncyCastle. + @param issuerCert certificate of the issues + @param serialNumber serial number + @return an OCSP request + @throws OCSPException + @throws IOException + + + The Logger instance + + + The list of OCSP responses. + + + Creates an OCSPVerifier instance. + @param verifier the next verifier in the chain + @param ocsps a list of OCSP responses + + + Verifies if a a valid OCSP response is found for the certificate. + If this method returns false, it doesn't mean the certificate isn't valid. + It means we couldn't verify it against any OCSP response that was available. + @param signCert the certificate that needs to be checked + @param issuerCert its issuer + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + @see com.itextpdf.text.pdf.security.RootStoreVerifier#verify(java.security.cert.X509Certificate, java.security.cert.X509Certificate, java.util.Date) + + + Verifies a certificate against a single OCSP response + @param ocspResp the OCSP response + @param signCert the certificate that needs to be checked + @param issuerCert the certificate of CA + @param signDate sign date + @return {@code true}, in case successful check, otherwise false. + @throws GeneralSecurityException + @throws IOException + + + Verifies if an OCSP response is genuine + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + @param ocspResp the OCSP response + @param issuerCert the issuer certificate + @throws GeneralSecurityException + @throws IOException + + + Verifies if the response is valid. + If it doesn't verify against the issuer certificate and response's certificates, it may verify + using a trusted anchor or cert. + NOTE. Use {@code isValidResponse()} instead. + @param ocspResp the response object + @param issuerCert the issuer certificate + @return true if the response can be trusted + + + Checks if an OCSP response is genuine + @param ocspResp the OCSP response + @param responderCert the responder certificate + @return true if the OCSP response verifies against the responder certificate + + + Gets an OCSP response online and returns it if the status is GOOD + (without further checking). + @param signCert the signing certificate + @param issuerCert the issuer certificate + @return an OCSP response + + + This class does all the processing related to signing + and verifying a PKCS#7 signature. + + + Assembles all the elements needed to create a signature, except for the data. + @param privKey the private key + @param certChain the certificate chain + @param interfaceDigest the interface digest + @param hashAlgorithm the hash algorithm + @param provider the provider or null for the default provider + @param hasRSAdata true if the sub-filter is adbe.pkcs7.sha1 + @throws InvalidKeyException on error + @throws NoSuchProviderException on error + @throws NoSuchAlgorithmException on error + + + Use this constructor if you want to verify a signature using the sub-filter adbe.x509.rsa_sha1. + @param contentsKey the /Contents key + @param certsKey the /Cert key + + + Use this constructor if you want to verify a signature. + @param contentsKey the /Contents key + @param filterSubtype the filtersubtype + @param provider the provider or null for the default provider + + + Holds value of property signName. + + + Holds value of property reason. + + + Holds value of property location. + + + Holds value of property signDate. + + + Getter/setter for property sigName. + @return Value of property sigName. + + + Getter for property reason. + @return Value of property reason. + + + Getter for property location. + @return Value of property location. + + + Getter for property signDate. + @return Value of property signDate. + + + Version of the PKCS#7 object + + + Version of the PKCS#7 "SignerInfo" object. + + + Get the version of the PKCS#7 object. + @return the version of the PKCS#7 object. + + + Get the version of the PKCS#7 "SignerInfo" object. + @return the version of the PKCS#7 "SignerInfo" object. + + + The ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1". + + + The object that will create the digest + + + The digest algorithms + + + The digest attributes + + + Getter for the ID of the digest algorithm, e.g. "2.16.840.1.101.3.4.2.1" + + + Returns the name of the digest algorithm, e.g. "SHA256". + @return the digest algorithm name, e.g. "SHA256" + + + The encryption algorithm. + + + Getter for the digest encryption algorithm + + + Get the algorithm used to calculate the message digest, e.g. "SHA1withRSA". + @return the algorithm used to calculate the message digest + + + The signed digest if created outside this class + + + External RSA data + + + Sets the digest/signature to an external calculated value. + @param digest the digest. This is the actual signature + @param RSAdata the extra data that goes into the data tag in PKCS#7 + @param digestEncryptionAlgorithm the encryption algorithm. It may must be null if the digest + is also null. If the digest is not null + then it may be "RSA" or "DSA" + + + Class from the Java SDK that provides the functionality of a digital signature algorithm. + + + The signed digest as calculated by this class (or extracted from an existing PDF) + + + The RSA data + + + Update the digest with the specified bytes. + This method is used both for signing and verifying + @param buf the data buffer + @param off the offset in the data buffer + @param len the data length + @throws SignatureException on error + + + Gets the bytes for the PKCS#1 object. + @return a byte array + + + Gets the bytes for the PKCS7SignedData object. + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set. If either of the parameters is null, none will be used. + @param secondDigest the digest in the authenticatedAttributes + @return the bytes for the PKCS7SignedData object + + + Gets the bytes for the PKCS7SignedData object. Optionally the authenticatedAttributes + in the signerInfo can also be set, OR a time-stamp-authority client + may be provided. + @param secondDigest the digest in the authenticatedAttributes + @param tsaClient TSAClient - null or an optional time stamp authority client + @return byte[] the bytes for the PKCS7SignedData object + @since 2.1.6 + + + Added by Aiken Sam, 2006-11-15, modifed by Martin Brunecky 07/12/2007 + to start with the timeStampToken (signedData 1.2.840.113549.1.7.2). + Token is the TSA response without response status, which is usually + handled by the (vendor supplied) TSA request/response interface). + @param timeStampToken byte[] - time stamp token, DER encoded signedData + @return ASN1EncodableVector + @throws IOException + + + + This method provides that encoding and the parameters must be + exactly the same as in {@link #getEncodedPKCS7(byte[],Calendar)}. + + @param secondDigest the content digest + @return the byte array representation of the authenticatedAttributes ready to be signed + + + Signature attributes + + + Signature attributes (maybe not necessary, but we use it as fallback) + + + encrypted digest + + + Indicates if a signature has already been verified + + + The result of the verification + + + Verify the digest. + @throws SignatureException on error + @return true if the signature checks out, false otherwise + + + Checks if the timestamp refers to this document. + @throws java.security.NoSuchAlgorithmException on error + @return true if it checks false otherwise + @since 2.1.6 + + + All the X.509 certificates in no particular order. + + + All the X.509 certificates used for the main signature. + + + The X.509 certificate that is used to sign the digest. + + + Get all the X.509 certificates associated with this PKCS#7 object in no particular order. + Other certificates, from OCSP for example, will also be included. + @return the X.509 certificates associated with this PKCS#7 object + + + Get the X.509 sign certificate chain associated with this PKCS#7 object. + Only the certificates used for the main signature will be returned, with + the signing certificate first. + @return the X.509 certificates associated with this PKCS#7 object + @since 2.1.6 + + + Get the X.509 certificate actually used to sign the digest. + @return the X.509 certificate actually used to sign the digest + + + Helper method that creates the collection of certificates + used for the main signature based on the complete list + of certificates and the sign certificate. + + + Get the X.509 certificate revocation lists associated with this PKCS#7 object + @return the X.509 certificate revocation lists associated with this PKCS#7 object + + + Helper method that tries to construct the CRLs. + + + BouncyCastle BasicOCSPResp + + + Gets the OCSP basic response if there is one. + @return the OCSP basic response or null + @since 2.1.6 + + + Checks if OCSP revocation refers to the document signing certificate. + @return true if it checks, false otherwise + @since 2.1.6 + + + Helper method that creates the BasicOCSPResp object. + @param seq + @throws IOException + + + True if there's a PAdES LTV time stamp. + + + BouncyCastle TimeStampToken. + + + Check if it's a PAdES-LTV time stamp. + @return true if it's a PAdES-LTV time stamp, false otherwise + + + Gets the timestamp token if there is one. + @return the timestamp token or null + @since 2.1.6 + + + Gets the timestamp date + @return a date + @since 2.1.6 + + + Returns the filter subtype. + + + Returns the encryption algorithm + @return the name of an encryption algorithm + + + Implementation of the ExternalSignature interface that can be used + when you have a PrivateKey object. + @author Paulo Soares + + + The private key object. + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + Creates an ExternalSignature instance + @param pk a PrivateKey object + @param hashAlgorithm the hash algorithm (e.g. "SHA-1", "SHA-256",...) + @param provider the security provider (e.g. "BC") + + + Creates a message digest using the hash algorithm + and signs it using the encryption algorithm. + @param message the message you want to be hashed and signed + @return a signed message digest + @see com.itextpdf.text.pdf.security.ExternalSignature#sign(byte[]) + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + The Logger instance + + + A key store against which certificates can be verified. + + + Creates a RootStoreVerifier in a chain of verifiers. + + @param verifier + the next verifier in the chain + + + Sets the Key Store against which a certificate can be checked. + + @param keyStore + a root store + + + Verifies a single certificate against a key store (if present). + + @param signCert + the certificate to verify + @param issuerCert + the issuer certificate + @param signDate + the date the certificate needs to be valid + @return a list of VerificationOK objects. + The list will be empty if the certificate couldn't be verified. + + + A list of IDs that are used by the security classes + + + Class that contains a field lock action and + an array of the fields that are involved. + + + Can be /All, /Exclude or /Include + + + An array of PdfString values with fieldnames + + + Creates a FieldLock instance + + + Getter for the field lock action. + + + Getter for the fields involved in the lock action. + + + toString method + + + Is the signature a cerification signature (true) or an approval signature (false)? + + + Is form filling allowed by this signature? + + + Is adding annotations allowed by this signature? + + + Does this signature lock specific fields? + + + Creates an object that can inform you about the type of signature + in a signature dictionary as well as some of the permissions + defined by the signature. + + + Getter to find out if the signature is a certification signature. + @return true if the signature is a certification signature, false for an approval signature. + + + Getter to find out if filling out fields is allowed after signing. + @return true if filling out fields is allowed + + + Getter to find out if adding annotations is allowed after signing. + @return true if adding annotations is allowed + + + Getter for the field lock actions, and fields that are impacted by the action + @return an Array with field names + + + Time Stamp Authority Client interface implementation using Bouncy Castle + org.bouncycastle.tsp package. +

+ Created by Aiken Sam, 2006-11-15, refactored by Martin Brunecky, 07/15/2007 + for ease of subclassing. +

+ @since 2.1.6 +
+ + The Logger instance. + + + URL of the Time Stamp Authority + + + TSA Username + + + TSA password + + + An interface that allows you to inspect the timestamp info. + + + The default value for the hash algorithm + + + Estimate of the received time stamp token + + + The default value for the hash algorithm + + + Hash algorithm + + + TSA request policy + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + + + Creates an instance of a TSAClient that will use BouncyCastle. + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + + + Constructor. + Note the token size estimate is updated by each call, as the token + size is not likely to change (as long as we call the same TSA using + the same imprint length). + @param url String - Time Stamp Authority URL (i.e. "http://tsatest1.digistamp.com/TSA") + @param username String - user(account) name + @param password String - password + @param tokSzEstimate int - estimated size of received time stamp token (DER encoded) + + + @param tsaInfo the tsaInfo to set + + + Get the token size estimate. + Returned value reflects the result of the last succesfull call, padded + @return an estimate of the token size + + + Gets the MessageDigest to digest the data imprint + @return the digest algorithm name + + + Get RFC 3161 timeStampToken. + Method may return null indicating that timestamp should be skipped. + @param imprint data imprint to be time-stamped + @return encoded, TSA signed data of the timeStampToken + + + Get timestamp token - communications layer + @return - byte[] - TSA response, raw bytes (RFC 3161 encoded) + + + Interface you can implement and pass to TSAClientBouncyCastle in case + you want to do something with the information returned + + + When a timestamp is created using TSAClientBouncyCastle, + this method is triggered passing an object that contains + info about the timestamp and the time stamping authority. + @param info a TimeStampTokenInfo object + + + An exception that is thrown when something is wrong with a certificate. + + + Creates a VerificationException + + + The certificate that was verified successfully. + + + The CertificateVerifier that was used for verifying. + + + The reason why the certificate verified successfully. + + + Creates a VerificationOK object + @param certificate the certificate that was successfully verified + @param verifierClass the class that was used for verification + @param message the reason why the certificate could be verified + + + A single String explaining which certificate was verified, how and why. + @see java.lang.Object#toString() + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + + + + The certificate with the private key + + + + The hash algorithm. + + + The encryption algorithm (obtained from the private key) + + + + Creates a signature using a X509Certificate2. It supports smartcards without + exportable private keys. + + The certificate with the private key + The hash algorithm for the signature. As the Windows CAPI is used + to do the signature the only hash guaranteed to exist is SHA-1 + + + Returns the hash algorithm. + @return the hash algorithm (e.g. "SHA-1", "SHA-256,...") + @see com.itextpdf.text.pdf.security.ExternalSignature#getHashAlgorithm() + + + Returns the encryption algorithm used for signing. + @return the encryption algorithm ("RSA" or "DSA") + @see com.itextpdf.text.pdf.security.ExternalSignature#getEncryptionAlgorithm() + + + + Generates a list of numbers from a string. + @param ranges the comma separated ranges + @param maxNumber the maximum number in the range + @return a list with the numbers as Integer + + + Implements a shading pattern as a Color. + + @author Paulo Soares + + + + Creates a new instance of SimpleBookmark + + + Gets number of indirect. If type of directed indirect is PAGES, it refers PAGE object through KIDS. + (Contributed by Kazuya Ujihara) + @param indirect + 2004-06-13 + + + Gets a List with the bookmarks. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @return a List with the bookmarks or null if the + document doesn't have any + + + Gets a List with the bookmarks that are children of outline. It returns null if + the document doesn't have any bookmarks. + @param reader the document + @param outline the outline dictionary to get bookmarks from + @param includeRoot indicates if to include outline parameter itself into returned list of bookmarks + @return a List with the bookmarks or null if the + document doesn't have any + + + Removes the bookmark entries for a number of page ranges. The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageRange the page ranges, always in pairs. + + + For the pages in range add the pageShift to the page number. + The page ranges + consists of a number of pairs with the start/end page range. The page numbers + are inclusive. + @param list the bookmarks + @param pageShift the number to add to the pages in range + @param pageRange the page ranges, always in pairs. It can be null + to include all the pages + + + Exports the bookmarks to XML. Only of use if the generation is to be include in + some other XML document. + @param list the bookmarks + @param out the export destination. The writer is not closed + @param indent the indentation level. Pretty printing significant only. Use -1 for no indents. + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + + Exports the bookmarks to XML. + @param list the bookmarks + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the bookmarks from XML. + @param in the XML source. The stream is not closed + @throws IOException on error + @return the bookmarks + + + Import the bookmarks from XML. + @param in the XML source. The reader is not closed + @throws IOException on error + @return the bookmarks + + + + @author Paulo Soares + + + + Exports the bookmarks to XML. + @param names the names + @param wrt the export destination. The writer is not closed + @param encoding the encoding according to IANA conventions + @param onlyASCII codes above 127 will always be escaped with &#nn; if true, + whatever the encoding + @throws IOException on error + + + Import the names from XML. + @param inp the XML source. The stream is not closed + @throws IOException on error + @return the names + + + Import the names from XML. + @param inp the XML source. The reader is not closed + @throws IOException on error + @return the names + + + + @author psoares + + + Creates a new instance of StampContent + + + Gets a duplicate of this PdfContentByte. All + the members are copied by reference but the buffer stays different. + + @return a copy of this PdfContentByte + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + @return an escaped byte array + + + Escapes a byte array according to the PDF conventions. + + @param b the byte array to escape + + + Converts an array of unsigned 16bit numbers to an array of bytes. + The input values are presented as chars for convenience. + + @param chars the array of 16bit numbers that should be converted + @return the resulting byte array, twice as large as the input + + + Supports text, combo and list fields generating the correct appearances. + All the option in the Acrobat GUI are supported in an easy to use API. + @author Paulo Soares + + + Holds value of property defaultText. + + + Holds value of property choices. + + + Holds value of property choiceExports. + + + Holds value of property choiceSelection. + + + Represents the /TI value + + + Creates a new TextField. + @param writer the document PdfWriter + @param box the field location and dimensions + @param fieldName the field name. If null only the widget keys + will be included in the field allowing it to be used as a kid field. + + + Obfuscates a password String. + Every character is replaced by an asterisk (*). + + @param text + @return String + @since 2.1.5 + + + Get the PdfAppearance of a text or combo field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Get the PdfAppearance of a list field + @throws IOException on error + @throws DocumentException on error + @return A PdfAppearance + + + Gets a new text field. + @throws IOException on error + @throws DocumentException on error + @return a new text field + + + Gets a new combo field. + @throws IOException on error + @throws DocumentException on error + @return a new combo field + + + Gets a new list field. + @throws IOException on error + @throws DocumentException on error + @return a new list field + + + Sets the default text. It is only meaningful for text fields. + @param defaultText the default text + + + Sets the choices to be presented to the user in list/combo + fields. + @param choices the choices to be presented to the user + + + Sets the export values in list/combo fields. If this array + is null then the choice values will also be used + as the export values. + @param choiceExports the export values in list/combo fields + + + Sets the zero based index of the selected item. + @param choiceSelection the zero based index of the selected item + + + Sets the top visible choice for lists; + + @since 5.5.3 + @param visibleTopChoice index of the first visible item (zero-based array) + Returns the index of the top visible choice of a list. Default is -1. + @return the index of the top visible choice + + + + Sets extra margins in text fields to better mimic the Acrobat layout. + @param extraMarginLeft the extra marging left + @param extraMarginTop the extra margin top + + + Holds value of property substitutionFonts. + + + Sets a list of substitution fonts. The list is composed of BaseFont and can also be null. The fonts in this list will be used if the original + font doesn't contain the needed glyphs. + @param substitutionFonts the list + + + Holds value of property extensionFont. + + + Sets the extensionFont. This font will be searched before the + substitution fonts. It may be null. + @param extensionFont New value of property extensionFont. + + + Reads a Truetype font + + @author Paulo Soares + + + The code pages possible for a True Type font. + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[2] where position 0 + is the offset from the start of the file and position 1 is the length + of the table. + + + The file in use. + + + The file name. + + + The offset from the start of the file to the table directory. + It is 0 for TTF and may vary for TTC depending on the chosen font. + + + The index for the TTC font. It is an empty string for a + TTF file. + + + The style modifier + + + The content of table 'head'. + + + The content of table 'hhea'. + + + The content of table 'OS/2'. + + + The width of the glyphs. This is essentially the content of table + 'hmtx' normalized to 1000 units. + + + The map containing the code information for the table 'cmap', encoding 1.0. + The key is the code and the value is an int[2] where position 0 + is the glyph number and position 1 is the glyph width normalized to 1000 + units. + + + + + By James for unicode Ext.B + + + + The map containing the kerning information. It represents the content of + table 'kern'. The key is an Integer where the top 16 bits + are the glyph number for the first character and the lower 16 bits are the + glyph number for the second character. The value is the amount of kerning in + normalized 1000 units as an Integer. This value is usually negative. + + + The font name. + This name is usually extracted from the table 'name' with + the 'Name ID' 6. + + + The font subfamily + This subFamily name is usually extracted from the table 'name' with + the 'Name ID' 2 or 'Name ID' 17. + + + The full name of the font 'Name ID' 1 or 'Name ID' 16 + + + All the names auf the Names-Table + + + The family name of the font + + + + true if all the glyphs have the same width. + + + The components of table 'head'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'hhea'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + The components of table 'OS/2'. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + This constructor is present to allow extending the class. + + + Creates a new TrueType font. + @param ttFile the location of the font on file. The file must end in '.ttf' or + '.ttc' but can have modifiers after the name + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the name from a composed TTC file name. + If I have for input "myfont.ttc,2" the return will + be "myfont.ttc". + @param name the full name + @return the simple file name + + + Reads the tables 'head', 'hhea', 'OS/2', 'post' and 'maxp' filling several variables. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the Postscript font name. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + @return the Postscript font name + + + Extracts the names of the font in all the languages available. + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Extracts all the names of the names-Table + @param id the name id to retrieve + @throws DocumentException on error + @throws IOException on error + + + Reads the font data. + @param ttfAfm the font as a byte array, possibly null + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Reads a Unicode string from the font file. Each character is + represented by two bytes. + @param length the length of bytes to read. The string will have length/2 + characters + @return the string read + @throws IOException the font file could not be read + + + Reads the glyphs widths. The widths are extracted from the table 'hmtx'. + The glyphs are normalized to 1000 units. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets a glyph width. + @param glyph the glyph to get the width of + @return the width of the glyph in normalized 1000 units + + + Reads the several maps from the table 'cmap'. The maps of interest are 1.0 for symbolic + fonts and 3.1 for all others. A symbolic font is defined as having the map 3.0. + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 0 is the Apple standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 4 is the Microsoft standard character to glyph index mapping table. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + The information in the maps of the table 'cmap' is coded in several formats. + Format 6 is a trimmed table mapping. It is similar to format 0 but can have + less than 256 entries. + @return a Hashtable representing this map + @throws IOException the font file could not be read + + + Reads the kerning information from the 'kern' table. + @throws IOException the font file could not be read + + + Gets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Gets the width from the font according to the unicode char c. + If the name is null it's a symbolic font. + @param c the unicode char + @param name the glyph name + @return the width of the char + + + Generates the font descriptor for this font. + @return the PdfDictionary containing the font descriptor or null + @param subsetPrefix the subset prefix + @param fontStream the indirect reference to a PdfStream containing the font or null + @throws DocumentException if there is an error + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param subsetPrefix the subset prefx + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + @throws DocumentException if there is an error + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param params several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + If this font file is using the Compact Font File Format, then this method + will return the raw bytes needed for the font stream. If this method is + ever made public: make sure to add a test if (cff == true). + @return a byte array + @since 2.1.3 + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT + and ITALICANGLE. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Gets the postscript font name. + @return the postscript font name + + + Gets the code pages supported by the font. + @return the code pages supported by the font + + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + Checks whether this font may be used with winansi encoding. + + @return true if the font can be correctly used with winansi encodings + + + Subsets a True Type font by removing the unneeded glyphs from + the font. + + @author Paulo Soares + + + Contains the location of the several tables. The key is the name of + the table and the value is an int[3] where position 0 + is the checksum, position 1 is the offset from the start of the file + and position 2 is the length of the table. + + + The file in use. + + + The file name. + + + Creates a new TrueTypeFontSubSet + @param directoryOffset The offset from the start of the file to the table directory + @param fileName the file name of the font + @param glyphsUsed the glyphs used + @param includeCmap true if the table cmap is to be included in the generated font + + + Does the actual work of subsetting the font. + @throws IOException on error + @throws DocumentException on error + @return the subset font + + + Reads a string from the font file as bytes using the Cp1252 + encoding. + @param length the length of bytes to read + @return the string read + @throws IOException the font file could not be read + + + Represents a True Type font with Unicode encoding. All the character + in the font can be used directly by using the encoding Identity-H or + Identity-V. This is the only way to represent some character sets such + as Thai. + @author Paulo Soares + + + Creates a new TrueType font addressed by Unicode characters. The font + will always be embedded. + @param ttFile the location of the font on file. The file must end in '.ttf'. + The modifiers after the name are ignored. + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @param ttfAfm the font as a byte array + @throws DocumentException the font is invalid + @throws IOException the font file could not be read + + + Gets the width of a char in normalized 1000 units. + @param char1 the unicode char to get the width of + @return the width in normalized 1000 units + + + Gets the width of a string in normalized 1000 units. + @param text the string to get the witdth of + @return the width in normalized 1000 units + + + Creates a ToUnicode CMap to allow copy and paste from Acrobat. + @param metrics metrics[0] contains the glyph index and metrics[2] + contains the Unicode code + @throws DocumentException on error + @return the stream representing this CMap or null + + + Gets an hex string in the format "<HHHH>". + @param n the number + @return the hex string + + + Generates the CIDFontTyte2 dictionary. + @param fontDescriptor the indirect reference to the font descriptor + @param subsetPrefix the subset prefix + @param metrics the horizontal width metrics + @return a stream + + + Generates the font dictionary. + @param descendant the descendant dictionary + @param subsetPrefix the subset prefix + @param toUnicode the ToUnicode stream + @return the stream + + + The method used to sort the metrics array. + @param o1 the first element + @param o2 the second element + @return the comparisation + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Returns a PdfStream object with the full font program. + @return a PdfStream with the font program + @since 2.1.3 + + + A forbidden operation. Will throw a null pointer exception. + @param text the text + @return always null + + + Gets the glyph index and metrics for a character. + @param c the character + @return an int array with {glyph index, width} + + + Checks if a character exists in this font. + @param c the character to check + @return true if the character has a glyph, + false otherwise + + + Sets the character advance. + @param c the character + @param advance the character advance normalized to 1000 units + @return true if the advance was set, + false otherwise + + + Reads a Type1 font + + @author Paulo Soares + + + The PFB file if the input was made with a byte array. + + + The Postscript font name. + + + The full name of the font. + + + The family name of the font. + + + The weight of the font: normal, bold, etc. + + + The italic angle of the font, usually 0.0 or negative. + + + true if all the characters have the same + width. + + + The character set of the font. + + + The llx of the FontBox. + + + The lly of the FontBox. + + + The lurx of the FontBox. + + + The ury of the FontBox. + + + The underline position. + + + The underline thickness. + + + The font's encoding name. This encoding is 'StandardEncoding' or + 'AdobeStandardEncoding' for a font that can be totally encoded + according to the characters names. For all other names the + font is treated as symbolic. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + A variable. + + + Represents the section CharMetrics in the AFM file. Each + value of this array contains a Object[4] with an + Integer, Integer, String and int[]. This is the code, width, name and char bbox. + The key is the name of the char and also an Integer with the char number. + + + Represents the section KernPairs in the AFM file. The key is + the name of the first character and the value is a Object[] + with 2 elements for each kern pair. Position 0 is the name of + the second character and position 1 is the kerning distance. This is + repeated for all the pairs. + + + The file in use. + + + true if this font is one of the 14 built in fonts. + + + Types of records in a PFB file. ASCII is 1 and BINARY is 2. + They have to appear in the PFB file in this sequence. + + + Creates a new Type1 font. + @param ttfAfm the AFM file if the input is made with a byte array + @param pfb the PFB file if the input is made with a byte array + @param afmFile the name of one of the 14 built-in fonts or the location of an AFM file. The file must end in '.afm' + @param enc the encoding to be applied to this font + @param emb true if the font is to be embedded in the PDF + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + Gets the width from the font according to the name or, + if the name is null, meaning it is a symbolic font, + the char c. + @param c the char if the font is symbolic + @param name the glyph name + @return the width of the char + + + Gets the kerning between two Unicode characters. The characters + are converted to names and this names are used to find the kerning + pairs in the Hashtable KernPairs. + @param char1 the first char + @param char2 the second char + @return the kerning to be applied + + + Reads the font metrics + @param rf the AFM file + @throws DocumentException the AFM file is invalid + @throws IOException the AFM file could not be read + + + If the embedded flag is false or if the font is + one of the 14 built in types, it returns null, + otherwise the font is read and output in a PdfStream object. + @return the PdfStream containing the font or null + @throws DocumentException if there is an error reading the font + + + Generates the font descriptor for this font or null if it is + one of the 14 built in fonts. + @param fontStream the indirect reference to a PdfStream containing the font or null + @return the PdfDictionary containing the font descriptor or null + + + Generates the font dictionary for this font. + @return the PdfDictionary containing the font dictionary + @param firstChar the first valid character + @param lastChar the last valid character + @param shortTag a 256 bytes long byte array where each unused byte is represented by 0 + @param fontDescriptor the indirect reference to a PdfDictionary containing the font descriptor or null + + + Outputs to the writer the font dictionaries and streams. + @param writer the writer for this document + @param ref the font indirect reference + @param parms several parameters that depend on the font type + @throws IOException on error + @throws DocumentException error in generating the object + + + Gets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be extracted + @param fontSize the font size in points + @return the parameter in points + + + Sets the font parameter identified by key. Valid values + for key are ASCENT, CAPHEIGHT, DESCENT, + ITALICANGLE, BBOXLLX, BBOXLLY, BBOXURX + and BBOXURY. + @param key the parameter to be updated + @param value the parameter value + + + Gets the postscript font name. + @return the postscript font name + + + + + + Checks if the font has any kerning pairs. + @return true if the font has any kerning pairs + + + Sets the kerning between two Unicode chars. + @param char1 the first char + @param char2 the second char + @param kern the kerning to apply in normalized 1000 units + @return true if the kerning was applied, false otherwise + + + A class to support Type3 fonts. + + + Creates a Type3 font. + @param writer the writer + @param chars an array of chars corresponding to the glyphs used (not used, prisent for compability only) + @param colorized if true the font may specify color, if false no color commands are allowed + and only images as masks can be used + + + + Defines a glyph. If the character was already defined it will return the same content + @param c the character to match this glyph. + @param wx the advance this character will have + @param llx the X lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param lly the Y lower left corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param urx the X upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @param ury the Y upper right corner of the glyph bounding box. If the colorize option is + true the value is ignored + @return a content where the glyph can be defined + + + Always returns null, because you can't get the FontStream of a Type3 font. + @return null + @since 2.1.3 + + + The content where Type3 glyphs are written to. + + + Writes text vertically. Note that the naming is done according + to horizontal text although it referrs to vertical text. + A line with the alignment Element.LEFT_ALIGN will actually + be top aligned. + + + Signals that there are no more text available. + + + Signals that there is no more column. + + + The chunks that form the text. + + + The PdfContent where the text will be written to. + + + The column Element. Default is left Element. + + + Marks the chunks to be eliminated when the line is written. + + + The chunk created by the splitting. + + + The chunk created by the splitting. + + + The leading + + + The X coordinate. + + + The Y coordinate. + + + The maximum number of vertical lines. + + + The height of the text. + + + Creates new VerticalText + @param text the place where the text will be written to. Can + be a template. + + + Adds a Phrase to the current text array. + @param phrase the text + + + Adds a Chunk to the current text array. + @param chunk the text + + + Sets the layout. + @param startX the top right X line position + @param startY the top right Y line position + @param height the height of the lines + @param maxLines the maximum number of lines + @param leading the separation between the lines + + + Gets the separation between the vertical lines. + @return the vertical line separation + + + Creates a line from the chunk array. + @param width the width of the line + @return the line or null if no more chunks + + + Normalizes the list of chunks when the line is accepted. + + + Outputs the lines to the document. It is equivalent to go(false). + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Outputs the lines to the document. The output can be simulated. + @param simulate true to simulate the writting to the document + @return returns the result of the operation. It can be NO_MORE_TEXT + and/or NO_MORE_COLUMN + @throws DocumentException on error + + + Sets the new text origin. + @param startX the X coordinate + @param startY the Y coordinate + + + Gets the X coordinate where the next line will be writen. This value will change + after each call to go(). + @return the X coordinate + + + Gets the Y coordinate where the next line will be writen. + @return the Y coordinate + + + Gets the maximum number of available lines. This value will change + after each call to go(). + @return Value of property maxLines. + + + Gets the height of the line + @return the height + + + Gets the Element. + @return the alignment + + + Processes XFA forms. + @author Paulo Soares + + + An empty constructor to build on. + + + Return the XFA Object, could be an array, could be a Stream. + Returns null f no XFA Object is present. + @param reader a PdfReader instance + @return the XFA object + @since 2.1.3 + + + A constructor from a PdfReader. It basically does everything + from finding the XFA stream to the XML parsing. + @param reader the reader + @throws java.io.IOException on error + @throws javax.xml.parsers.ParserConfigurationException on error + @throws org.xml.sax.SAXException on error + + + Extracts the nodes from the domDocument. + @since 2.1.5 + + + Some XFA forms don't have a datasets node. + If this is the case, we have to add one. + + + Sets the XFA key from a byte array. The old XFA is erased. + @param form the data + @param reader the reader + @param writer the writer + @throws java.io.IOException on error + + + Sets the XFA key from the instance data. The old XFA is erased. + @param writer the writer + @throws java.io.IOException on error + + + Serializes a XML document to a byte array. + @param n the XML document + @throws java.io.IOException on error + @return the serialized XML document + + + Returns true if it is a XFA form. + @return true if it is a XFA form + + + Gets the top level DOM document. + @return the top level DOM document + + + Finds the complete field name contained in the "classic" forms from a partial + name. + @param name the complete or partial name + @param af the fields + @return the complete name or null if not found + + + Finds the complete SOM name contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the complete name or null if not found + + + Finds the Node contained in the datasets section from a + possibly partial name. + @param name the complete or partial name + @return the Node or null if not found + + + Gets all the text contained in the child nodes of this node. + @param n the Node + @return the text found or "" if no text was found + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param n the Node to add the text to + @param text the text to add + + + Sets the PdfReader to be used by this instance. + @param reader the PdfReader to be used by this instance + + + Checks if this XFA form was changed. + @return true if this XFA form was changed + + + A structure to store each part of a SOM name and link it to the next part + beginning from the lower hierarchie. + + + Gets the full name by traversing the hiearchie using only the + index 0. + @return the full name + + + Search the current node for a similar name. A similar name starts + with the same name but has a differnt index. For example, "detail[3]" + is similar to "detail[9]". The main use is to discard names that + correspond to out of bounds records. + @param name the name to search + @return true if a similitude was found + + + Another stack implementation. The main use is to facilitate + the porting to other languages. + + + Looks at the object at the top of this stack without removing it from the stack. + @return the object at the top of this stack + + + Removes the object at the top of this stack and returns that object as the value of this function. + @return the object at the top of this stack + + + Pushes an item onto the top of this stack. + @param item the item to be pushed onto this stack + @return the item argument + + + Tests if this stack is empty. + @return true if and only if this stack contains no items; false otherwise + + + A class for some basic SOM processing. + + + The order the names appear in the XML, depth first. + + + The mapping of full names to nodes. + + + The data to do a search from the bottom hierarchie. + + + A stack to be used when parsing. + + + A temporary store for the repetition count. + + + Escapes a SOM string fragment replacing "." with "\.". + @param s the unescaped string + @return the escaped string + + + Unescapes a SOM string fragment replacing "\." with ".". + @param s the escaped string + @return the unescaped string + + + Outputs the stack as the sequence of elements separated + by '.'. + @return the stack as the sequence of elements separated by '.' + + + Gets the name with the #subform removed. + @param s the long name + @return the short name + + + Adds a SOM name to the search node chain. + @param unstack the SOM name + + + Adds a SOM name to the search node chain. + @param inverseSearch the start point + @param stack the stack with the separeted SOM parts + @param unstack the full name + + + Searchs the SOM hiearchie from the bottom. + @param parts the SOM parts + @return the full name or null if not found + + + Splits a SOM name in the individual parts. + @param name the full SOM name + @return the split name + + + Gets the order the names appear in the XML, depth first. + @return the order the names appear in the XML, depth first + + + Gets the mapping of full names to nodes. + @return the mapping of full names to nodes + + + Gets the data to do a search from the bottom hierarchie. + @return the data to do a search from the bottom hierarchie + + + Processes the datasets section in the XFA form. + + + Creates a new instance from the datasets node. This expects + not the datasets but the data node that comes below. + @param n the datasets node + + + Inserts a new Node that will match the short name. + @param n the datasets top Node + @param shortName the short name + @return the new Node of the inserted name + + + A class to process "classic" fields. + + + Creates a new instance from a Collection with the full names. + @param items the Collection + + + Gets the mapping from short names to long names. A long + name may contain the #subform name part. + @return the mapping from short names to long names + + + Processes the template section in the XFA form. + + + Creates a new instance from the datasets node. + @param n the template node + + + Gets the field type as described in the template section of the XFA. + @param s the exact template name + @return the field type or null if not found + + + true if it's a dynamic form; false + if it's a static form. + @return true if it's a dynamic form; false + if it's a static form + + + Gets the class that contains the template processing section of the XFA. + @return the class that contains the template processing section of the XFA + + + Gets the class that contains the datasets processing section of the XFA. + @return the class that contains the datasets processing section of the XFA + + + Gets the class that contains the "classic" fields processing. + @return the class that contains the "classic" fields processing + + + Gets the Node that corresponds to the datasets part. + @return the Node that corresponds to the datasets part + + + Replaces the data under datasets/data. + @since iText 5.0.0 + + + Helps to locate xml stream inside PDF document with Xfa form. + + + Gets Document to sign + + + Save document as single XML stream in AcroForm. + @param document signed document + @throws IOException + @throws DocumentException + + + Constructor for xpath expression for signing XfaForm + + + Possible xdp packages to sign + + + Empty constructor, no transform. + + + Construct for Xpath expression. Depends from selected xdp package. + @param xdpPackage + + + Get XPath expression + + + Reads a XFDF. + @author Leonard Rosenthol (leonardr@pdfsages.com) + + + Storage for field values if there's more than one value for a field. + @since 2.1.4 + + + Reads an XFDF form. + @param filename the file name of the form + @throws IOException on error + + + Reads an XFDF form. + @param xfdfIn the byte array with the form + @throws IOException on error + + + Reads an XFDF form. + @param is an InputStream to read the form + @throws IOException on error + @since 5.0.1 + + + Gets all the fields. The map is keyed by the fully qualified + field name and the value is a merged PdfDictionary + with the field content. + @return all the fields + + + Gets the field value. + @param name the fully qualified field name + @return the field's value + + + Gets the field value or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field value or null + + + Gets the field values for a list or null if the field does not + exist or has no value defined. + @param name the fully qualified field name + @return the field values or null + @since 2.1.4 + + + Gets the PDF file specification contained in the FDF. + @return the PDF file specification contained in the FDF + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + Constructs XmlSignatureAppearance object. + @param writer the writer to which the signature will be written. + + + Holds value of property xades:SigningTime. + + + Holds value of property xades:Description. + + + Holds value of property xades:MimeType. + + + Sets the certificate used to provide the text in the appearance. + This certificate doesn't take part in the actual signing process. + @param signCertificate the certificate + + + Gets the signature date. + @return the signature date + + + Sets the signature date. + @param signDate the signature date + + + Helps to locate xml stream + @return XmlLocator, cannot be null. + + + Constructor for xpath expression in case signing only part of XML document. + @return XpathConstructor, can be null + + + Close PdfStamper + @throws IOException + @throws DocumentException + + + A Hashtable that uses ints as the keys. + + + The hash table data. + + + The total number of entries in the hash table. + + + Rehashes the table when count exceeds this threshold. + + + The load factor for the hashtable. + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable with the specified initial + + + Constructs a new, empty hashtable. A default capacity and load factor + + + Returns the number of elements contained in the hashtable. + + + Returns true if the hashtable contains no elements. + + + Returns true if the specified object is an element of the hashtable. + + + Returns true if the collection contains an element for the key. + + + Gets the object associated with the specified key in the + + + Rehashes the content of the table into a bigger table. + + + Removes the element corresponding to the key. Does nothing if the + + + Clears the hash table so that it has no more elements in it. + + + Encapsulates filter behavior for PDF streams. Classes generally interace with this + using the static GetDefaultFilterHandlers() method, then obtain the desired {@link IFilterHandler} + via a lookup. + @since 5.0.4 + + + The main interface for creating a new {@link IFilterHandler} + + + The default {@link IFilterHandler}s used by iText + + + @return the default {@link IFilterHandler}s used by iText + + + Creates a {@link MemoryLimitsAwareOutputStream} which will be used for decompression of the passed pdf stream. + + @param streamDictionary the pdf stream which is going to be decompressed. + @return the {@link ByteArrayOutputStream} which will be used for decompression of the passed pdf stream + + + Handles FLATEDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles ASCIIHEXDECODE filter + + + Handles LZWDECODE filter + + + Handles CCITTFAXDECODE filter + + + A filter that doesn't modify the stream at all + + + Handles RUNLENGTHDECODE filter + + + A PdfArray object consisting of nothing but PdfNumber objects + @since 5.1.0 + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers float values + + + Creates a PdfArray consisting of PdfNumber objects. + @param numbers a List containing PdfNumber objects + + + Signals that a table will continue in the next page. + + @since 5.0.6 + + + This method is called to indicate that table is being split. It's called + before the tableLayout method and before the table is drawn. + + @param table the PdfPTable in use + + + Wrapper class for PdfCopy and PdfSmartCopy. + Allows you to concatenate existing PDF documents with much less code. + + + The Document object for PdfCopy. + + + The actual PdfWriter + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + + + Creates an instance of the concatenation class. + @param os the Stream for the PDF document + @param smart do we want PdfCopy to detect redundant content? + + + Adds the pages from an existing PDF document. + @param reader the reader for the existing PDF document + @return the number of pages that were added + @throws DocumentException + @throws IOException + + + Gets the PdfCopy instance so that you can add bookmarks or change preferences before you close PdfConcatenate. + + + Opens the document (if it isn't open already). + Opening the document is done implicitly. + + + We've finished writing the concatenated document. + + + The spacing before the table. + + + The spacing after the table. + + + Defines if the div should be kept on one page if possible + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual height the div would require to layout it's content + + + IMPROTANT NOTE: be careful with this method because it would return correct result + only in case if {@link PdfDiv#layout(PdfContentByte, boolean, boolean, float, float, float, float)} + was already called. + @return the actual width the div would require to layout it's content + + + Image will be scaled to fit in the div occupied area. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Gets the type of the text element. + + @return a type + + + @see com.itextpdf.text.Element#isContent() + @since iText 2.0.8 + + + @see com.itextpdf.text.Element#isNestable() + @since iText 2.0.8 + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Serial version UID + + + Creates a new instance of PdfIsoConformanceException. + + + Creates a new instance of PdfIsoConformanceException. + @param s + + + A signature field lock dictionary. + + + Enumerates the different actions of a signature lock. + Indicates the set of fields that should be locked: + all the fields in the document, + all the fields specified in the /Fields array + all the fields except those specified in the /Fields array + + + Enumerates the different levels of permissions. + + + Creates a signature lock valid for all fields in the document. + + + Creates a signature lock for all fields in the document, + setting specific permissions. + + + Creates a signature lock for specific fields in the document. + + + Creates a signature lock for specific fields in the document. + + + Add kid to structureTreeRoot from structTreeRoot + + + + An Anchor can be a reference or a destination of a reference. + + + An Anchor is a special kind of . + It is constructed in the same way. + + + + + + + This is the name of the Anchor. + + + + + This is the reference of the Anchor. + + + + + Constructs an Anchor without specifying a leading. + + + Has nine overloads. + + + + + Constructs an Anchor with a certain leading. + + the leading + + + + Constructs an Anchor with a certain Chunk. + + a Chunk + + + + Constructs an Anchor with a certain string. + + a string + + + + Constructs an Anchor with a certain string + and a certain Font. + + a string + a Font + + + + Constructs an Anchor with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs an Anchor with a certain leading + and a certain string. + + the leading + a string + + + + Constructs an Anchor with a certain leading, + a certain string and a certain Font. + + the leading + a string + a Font + + + Constructs an Anchor with a certain Phrase. + + @param phrase a Phrase + + + + Processes the element by adding it (or the different parts) to an + + + an IElementListener + true if the element was processed successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + Applies the properties of the Anchor to a Chunk. + @param chunk the Chunk (part of the Anchor) + @param notGotoOK if true, this chunk will determine the local destination + @param localDestination true if the chunk is a local goto and the reference a local destination + @return the value of notGotoOK or false, if a previous Chunk was used to determine the local destination + + + + Gets the type of the text element. + + a type + + + + Name of this Anchor. + + + + + reference of this Anchor. + + + + + reference of this Anchor. + + an Uri + + + + An Annotation is a little note that can be added to a page + on a document. + + + + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible annotation type. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is a possible attribute. + + + This is the type of annotation. + + + This is the title of the Annotation. + + + This is the lower left x-value + + + This is the lower left y-value + + + This is the upper right x-value + + + This is the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + + + + Constructs an Annotation with a certain title and some text. + + the title of the annotation + the content of the annotation + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + the external reference + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + the destination in this file + + + + Creates a Screen anotation to embed media clips + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + path to the media clip file + mime type of the media + if true play on display of the page + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external PDF file + a page number in this file + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + a named destination in this file + + Has nine overloads. + + + + + Constructs an Annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + an external application + parameters to pass to this application + the operation to pass to this application + the default directory to run this application in + + + + Gets the type of the text element + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was process successfully + + + + Gets all the chunks in this element. + + an ArrayList + + + + Sets the dimensions of this annotation. + + the lower left x-value + the lower left y-value + the upper right x-value + the upper right y-value + + + + Returns the lower left x-value. + + a value + + + + Returns the lower left y-value. + + a value + + + + Returns the uppper right x-value. + + a value + + + + Returns the uppper right y-value. + + a value + + + + Returns the lower left x-value. + + the default value + a value + + + + Returns the lower left y-value. + + the default value + a value + + + + Returns the upper right x-value. + + the default value + a value + + + + Returns the upper right y-value. + + the default value + a value + + + + Returns the type of this Annotation. + + a type + + + + Returns the title of this Annotation. + + a name + + + + Gets the content of this Annotation. + + a reference + + + + Gets the content of this Annotation. + + a reference + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Signals an attempt to create an Element that hasn't got the right form. + + + + + + + Base class for Color, serves as wrapper class for + to allow extension. + + + + Construct a new BaseColor. + @param red the value for the red gamma + @param green the value for the green gamma + @param blue the value for the blue gamma + @param alpha the value for the alpha gamma + + + @param red + @param green + @param blue + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + @param alpha + + + Construct a BaseColor with float values. + @param red + @param green + @param blue + + + Construct a BaseColor by setting the combined value. + @param argb + + + Construct a BaseColor by System.Drawing.Color. + @param color + + + @return the combined color value + + + + @return the value for red + + + + @return the value for green + + + + @return the value for blue + + + + @return the value for the alpha channel + + + Make this BaseColor brighter. Factor used is 0.7. + @return the new BaseColor + + + Make this color darker. Factor used is 0.7 + @return the new BaseColor + + + + A Chapter is a special Section. + + + A chapter number has to be created using a Paragraph as title + and an int as chapter number. The chapter number is shown be + default. If you don't want to see the chapter number, you have to set the + numberdepth to 0. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + chapter2.SetNumberDepth(0); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new BaseColor(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + + + + + Constructs a new Chapter. + @param number the Chapter number + + + + Constructs a new Chapter. + + the Chapter title (as a Paragraph) + the Chapter number + + Has three overloads. + + + + + Constructs a new Chapter. + + the Chapter title (as a string) + the Chapter number + + Has three overloads. + + + + + Gets the type of the text element. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Chapter with auto numbering. + + @author Michael Niedermair + + + Is the chapter number already set? + @since 2.1.4 + + + Create a new object. + + @param para the Chapter title (as a Paragraph) + + + Create a new objet. + + @param title the Chapter title (as a String) + + + Create a new section for this chapter and ad it. + + @param title the Section title (as a String) + @return Returns the new section. + + + Create a new section for this chapter and add it. + + @param title the Section title (as a Paragraph) + @return Returns the new section. + + + Changes the Chapter number. + @param number the new chapter number + @since 2.1.4 + + + + This is the smallest significant part of text that can be added to a document. + + + Most elements can be divided in one or more Chunks. + A chunk is a string with a certain Font. + all other layoutparameters should be defined in the object to which + this chunk of text is added. + + + + Chunk chunk = new Chunk("Hello world", FontFactory.GetFont(FontFactory.COURIER, 20, Font.ITALIC, new BaseColor(255, 0, 0))); + document.Add(chunk); + + + + + The character stand in for an image or a separator. + + + This is a Chunk containing a newline. + + + This is a Chunk containing a newpage. + + + This is the content of this chunk of text. + + + This is the Font of this chunk of text. + + + Contains some of the attributes for this Chunk. + + + + Empty constructor. + + + Has six overloads. + + + + A Chunk copy constructor. + @param ck the Chunk to be copied + + + + Constructs a chunk of text with a certain content and a certain Font. + + the content + the font + + + + Constructs a chunk of text with a certain content, without specifying a Font. + + the content + + + Constructs a chunk of text with a char and a certain Font. + + @param c the content + @param font the font + + + Constructs a chunk of text with a char, without specifying a Font. + + @param c the content + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + + + Key for drawInterface of the Separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @since 2.1.2 + + + Creates a separator Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the separator. + @param vertical true if this is a vertical separator + @since 2.1.2 + + + Key for drawInterface of the tab. + @since 2.1.2 + + + Key for tab stops of the tab. + @since 5.4.1 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @since 2.1.2 + + + Creates a tab Chunk. + Note that separator chunks can't be used in combination with tab chunks! + @param separator the drawInterface to use to draw the tab. + @param tabPosition an X coordinate that will be used as start position for the next Chunk. + @param newline if true, a newline will be added if the tabPosition has already been reached. + @since 2.1.2 + + + Creates a tab Chunk. + + @param tabInterval an interval that will be used if tab stops are omitted. + @param isWhitespace if true, the current tab is treated as white space. + @since 5.4.1 + + + + Constructs a chunk containing an Image. + + the image + the image offset in the x direction + the image offset in the y direction + true if the leading has to be adapted to the image + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + appends some text to this Chunk. + + a string + a StringBuilder + + + + Get/set the font of this Chunk. + + a Font + + + + Returns the content of this Chunk. + + a string + + + + Checks is this Chunk is empty. + + false if the Chunk contains other characters than space. + + + Gets the width of the Chunk in points. + @return a width in points + + + + Checks the attributes of this Chunk. + + false if there aren't any. + + + Checks the accessible attributes of this Chunk. + + @return false if there aren't any. + + + + Sets/Gets the attributes for this Chunk. + + + It may be null. + + a Hashtable + + + + Sets an arbitrary attribute. + + the key for the attribute + the value of the attribute + this Chunk + + + Key for text horizontal scaling. + + + Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f + shrinks the text to half it's width. + @param scale the horizontal scaling factor + @return this Chunk + + + Gets the horizontal scaling. + @return a percentage in float + + + Key for underline. + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param thickness the absolute thickness of the line + @param yPosition the absolute y position relative to the baseline + @return this Chunk + + + Sets an horizontal line that can be an underline or a strikethrough. + Actually, the line can be anywhere vertically and has always the + Chunk width. Multiple call to this method will + produce multiple lines. + @param color the color of the line or null to follow + the text color + @param thickness the absolute thickness of the line + @param thicknessMul the thickness multiplication factor with the font size + @param yPosition the absolute y position relative to the baseline + @param yPositionMul the position multiplication factor with the font size + @param cap the end line cap. Allowed values are + PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and + PdfContentByte.LINE_CAP_PROJECTING_SQUARE + @return this Chunk + + + Key for sub/basescript. + + + + Sets the text displacement relative to the baseline. Positive values rise the text, + negative values lower the text. + + + It can be used to implement sub/basescript. + + the displacement in points + this Chunk + + + Key for text skewing. + + + Skews the text to simulate italic and other effects. + Try alpha=0 and beta=12. + @param alpha the first angle in degrees + @param beta the second angle in degrees + @return this Chunk + + + Key for background. + + + + Sets the color of the background Chunk. + + the color of the background + this Chunk + + + Sets the color and the size of the background Chunk. + @param color the color of the background + @param extraLeft increase the size of the rectangle in the left + @param extraBottom increase the size of the rectangle in the bottom + @param extraRight increase the size of the rectangle in the right + @param extraTop increase the size of the rectangle in the top + @return this Chunk + + + Key for text rendering mode. + + + Sets the text rendering mode. It can outline text, simulate bold and make + text invisible. + @param mode the text rendering mode. It can be PdfContentByte.TEXT_RENDER_MODE_FILL, + PdfContentByte.TEXT_RENDER_MODE_STROKE, PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE + and PdfContentByte.TEXT_RENDER_MODE_INVISIBLE. + @param strokeWidth the stroke line width for the modes PdfContentByte.TEXT_RENDER_MODE_STROKE and + PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE. + @param strokeColor the stroke color or null to follow the text color + @return this Chunk + + + Key for split character. + + + + Sets the split characters. + + the SplitCharacter interface + this Chunk + + + Key for hyphenation. + + + + sets the hyphenation engine to this Chunk. + + the hyphenation engine + this Chunk + + + Key for remote goto. + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the name of the destination to go to + this Chunk + + + + Sets a goto for a remote destination for this Chunk. + + the file name of the destination document + the page of the destination to go to. First page is 1 + this Chunk + + + Key for local goto. + + + + Sets a local goto for this Chunk. + + + There must be a local destination matching the name. + + the name of the destination to go to + this Chunk + + + Key for local destination. + + + + Sets a local destination for this Chunk. + + the name for this destination + this Chunk + + + Key for generic tag. + + + + Sets the generic tag Chunk. + + + The text for this tag can be retrieved with PdfPageEvent. + + the text for the tag + this Chunk + + + Key for line-height (alternative for leading in Phrase). + + + Sets a line height tag. + + @return this Chunk + + + Key for image. + + + + Returns the image. + + an Image + + + Key for Action. + + + + Sets an action for this Chunk. + + the action + this Chunk + + + + Sets an anchor for this Chunk. + + the Uri to link to + this Chunk + + + + Sets an anchor for this Chunk. + + the url to link to + this Chunk + + + Key for newpage. + + + + Sets a new page tag. + + this Chunk + + + Key for annotation. + + + + Sets a generic annotation to this Chunk. + + the annotation + this Chunk + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Returns the hyphenation (if present). + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Key for color. + + + Key for encoding. + + + Key for character spacing. + + + Sets the character spacing. + + @param charSpace the character spacing value + @return this Chunk + + + Gets the character spacing. + + @return a value in float + + + Key for word spacing. + + + Sets the word spacing. + + @param wordSpace the word spacing value + @return this Chunk + + + Gets the word spacing. + + @return a value in float + + + Sets the textual expansion of the abbreviation or acronym. + It is highly recommend to set textuual expansion when generating PDF/UA documents. + @param value + + + + A generic Document class. + + + All kinds of Text-elements can be added to a HTMLDocument. + The Document signals all the listeners when an element + has been added.

+

    +
  1. Once a document is created you can add some meta information. +
  2. You can also set the headers/footers. +
  3. You have to open the document before you can write content. +
  4. You can only write content (no more meta-formation!) once a document is opened. +
  5. When you change the header/footer on a certain page, this will be effective starting on the next page. +
  6. Ater closing the document, every listener (as well as its OutputStream) is closed too. +
+
+ + + // creation of the document with a certain size and certain margins + Document document = new Document(PageSize.A4, 50, 50, 50, 50); + try { + // creation of the different writers + HtmlWriter.GetInstance(document, System.out); + PdfWriter.GetInstance(document, new FileOutputStream("text.pdf")); + // we add some meta information to the document + document.AddAuthor("Bruno Lowagie"); + document.AddSubject("This is the result of a Test."); + + // we define a header and a footer + HeaderFooter header = new HeaderFooter(new Phrase("This is a header."), false); + HeaderFooter footer = new HeaderFooter(new Phrase("This is page "), new Phrase(".")); + footer.SetAlignment(Element.ALIGN_CENTER); + document.SetHeader(header); + document.SetFooter(footer); + // we open the document for writing + document.Open(); + document.Add(new Paragraph("Hello world")); + } + catch (DocumentException de) { + Console.Error.WriteLine(de.Message); + } + document.Close(); + + +
+ + Allows the pdf documents to be produced without compression for debugging purposes. + + + Scales the WMF font size. The default value is 0.86. + + + The IDocListener. + + + Is the document open or not? + + + Has the document already been closed? + + + The size of the page. + + + margin in x direction starting from the left + + + margin in x direction starting from the right + + + margin in y direction starting from the top + + + margin in y direction starting from the bottom + + + mirroring of the top/bottom margins + @since 2.1.6 + + + Content of JavaScript onLoad function + + + Content of JavaScript onUnLoad function + + + Style class in HTML body tag + + + Current pagenumber + + + This is a chapter number in case ChapterAutoNumber is used. + + + + Constructs a new Document-object. + + + Has three overloads. + + + + + Constructs a new Document-object. + + the pageSize + + + + Constructs a new Document-object. + + the pageSize + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Adds a IDocListener to the Document. + + the new IDocListener + + + + Removes a IDocListener from the Document. + + the IDocListener that has to be removed. + + + + Adds an Element to the Document. + + the Element to add + true if the element was added, false if not + + + + Opens the document. + + + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Opens the document. + + + Version for languages that are not case-dependant. + Once the document is opened, you can't write any Header- or Meta-information + anymore. You have to open the document before you can begin to add content + to the body of the document. + + + + + Sets the pagesize. + + the new pagesize + a bool + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + + + Sets the page number. + + an int + + + + Returns the current page number. + + an int + + + + Closes the document. + + + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Closes the document. + + + Version for languages that are not case-dependant. + Once all the content has been written in the body, you have to close + the body. After that nothing can be written to the body anymore. + + + + + Adds a user defined header to the document. + + the name of the header + the content of the header + true if successful, false otherwise + + + + Adds the title to a Document. + + the title + true if successful, false otherwise + + + + Adds the subject to a Document. + + the subject + true if successful, false otherwise + + + + Adds the keywords to a Document. + + keywords to add + true if successful, false otherwise + + + + Adds the author to a Document. + + the name of the author + true if successful, false otherwise + + + + Adds the creator to a Document. + + the name of the creator + true if successful, false otherwise + + + + Adds the producer to a Document. + + true if successful, false otherwise + + + Adds a language to th document. Required for PDF/UA compatible documents. + @param language + @return true if successfull, false otherwise + + + + Adds the current date and time to a Document. + + true if successful, false otherwise + + + + Returns the left margin. + + the left margin + + + + Return the right margin. + + the right margin + + + + Returns the top margin. + + the top margin + + + + Returns the bottom margin. + + the bottom margin + + + + Returns the lower left x-coordinate. + + the lower left x-coordinate + + + + Returns the upper right x-coordinate. + + the upper right x-coordinate. + + + + Returns the upper right y-coordinate. + + the upper right y-coordinate. + + + + Returns the lower left y-coordinate. + + the lower left y-coordinate. + + + + Returns the lower left x-coordinate considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Gets the pagesize. + + the page size + + + + Checks if the document is open. + + true if the document is open + + + + Gets the JavaScript onLoad command. + + the JavaScript onLoad command. + + + + Gets the JavaScript onUnLoad command. + + the JavaScript onUnLoad command + + + + Gets the style class of the HTML body tag + + the style class of the HTML body tag + + + + + Gets the margin mirroring flag. + + @return the margin mirroring flag + + + + Signals that an error has occurred in a Document. + + + + + + + + + Constructs a new DocumentException + + + Has two overloads. + + + + + Construct a new DocumentException + + error message + + + + Constructs a DocumentException with a message and a Exception. + + a message describing the exception + an exception that has to be turned into a DocumentException + + + + An abstract Writer class for documents. + + + DocWriter is the abstract class of several writers such + as PdfWriter and HtmlWriter. + A DocWriter can be added as a DocListener + to a certain Document by getting an instance (see method + GetInstance() in the specific writer-classes). + Every Element added to the original Document + will be written to the stream of the listening + DocWriter. + + + + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + This is some byte that is often used. + + + The pageSize. + + + This is the document that has to be written. + + + The stream of this writer. + + + Is the writer open for writing? + + + Do we have to pause all writing actions? + + + Closes the stream on document close + + + + Constructs a DocWriter. + + The Document that has to be written + The Stream the writer has to write to. + + + + Signals that an Element was added to the Document. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class. + + + false + + + + Signals that the Document was opened. + + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + + This does nothing. Has to be overridden if needed. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + + Signals that an new page has to be started. + + + This does nothing. Has to be overridden if needed. + + true if the page was added, false if not. + + + + Sets the page number to 0. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Sets the page number. + + + This method should be overriden in the specific DocWriter classes + derived from this abstract class if they actually support the use of + pagenumbers. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + + + Converts a string into a Byte array + according to the ISO-8859-1 codepage. + + the text to be converted + the conversion result + + + + Let the writer know that all writing has to be paused. + + + + Checks if writing is paused. + + @return true if writing temporarely has to be paused, false otherwise. + + + + Let the writer know that writing may be resumed. + + + + + Flushes the Stream. + + + + + Writes a string to the stream. + + the string to write + + + + Writes a number of tabs. + + the number of tabs to add + + + + Writes a key-value pair to the stream. + + the name of an attribute + the value of an attribute + + + + Writes a starttag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + the name of the tag + + + + Writes an endtag to the stream. + + + + + Writes the markup attributes of the specified MarkupAttributes + object to the stream. + + the MarkupAttributes to write. + + + + @see com.lowagie.text.DocListener#setMarginMirroring(boolean) + @since 2.1.6 + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.5 + + + This is a possible type of Element. + @since 5.3.0 + + + This is a possible type of Element. + + + This is a possible type of Element. + @since 2.1.2 + + + This is an element thats not an element. + @see WritableDirectElement + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the left + indent and extra whitespace should be placed on + the right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the center + and extra whitespace should be placed equally on + the left and right. + + + + + A possible value for paragraph Element. This + specifies that the text is aligned to the right + indent and extra whitespace should be placed on + the left. + + + + + A possible value for paragraph Element. This + specifies that extra whitespace should be spread + out through the rows of the paragraph with the + text lined up with the left and right indent + except on the last line which should be aligned + to the left. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + A possible value for vertical Element. + + + + + Does the same as ALIGN_JUSTIFIED but the last line is also spread out. + + + + + Pure two-dimensional encoding (Group 4) + + + + + Pure one-dimensional encoding (Group 3, 1-D) + + + + + Mixed one- and two-dimensional encoding (Group 3, 2-D) + + + + + A flag indicating whether 1-bits are to be interpreted as black pixels + and 0-bits as white pixels, + + + + + A flag indicating whether the filter expects extra 0-bits before each + encoded line so that the line begins on a byte boundary. + + + + + A flag indicating whether end-of-line bit patterns are required to be + present in the encoding. + + + + + A flag indicating whether the filter expects the encoded data to be + terminated by an end-of-block pattern, overriding the Rows + parameter. The use of this flag will set the key /EndOfBlock to false. + + + + Localizes error messages. The messages are located in the package + com.lowagie.text.error_messages in the form language_country.lng. + The internal file encoding is UTF-8 without any escape chars, it's not a + normal property file. See en.lng for more information on the internal format. + @author Paulo Soares (psoares@glintt.com) + + + Get a message without parameters. + @param key the key to the message + @return the message + + + Get a message with parameters. The parameters will replace the strings + "{1}", "{2}", ..., "{n}" found in the message. + @param key the key to the message + @param p the variable parameter + @return the message + + + Sets the language to be used globally for the error messages. The language + is a two letter lowercase country designation like "en" or "pt". The country + is an optional two letter uppercase code like "US" or "PT". + @param language the language + @param country the country + @return true if the language was found, false otherwise + @throws IOException on error + + + Sets the error messages directly from a Reader. + @param r the Reader + @throws IOException on error + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 It was written for iText 2.0.8, but moved to another package + + + Creates an exception saying the user password was incorrect. + + + Typed exception used when creating PDF syntax that isn't valid. + @since 2.1.6 + + + Creates an exception saying the PDF syntax isn't correct. + @param message some extra info about the exception + + + RuntimeException to indicate that the provided Image is invalid/corrupted. + Should only be thrown/not caught when ignoring invalid images. + @since 5.4.2 + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document. + @since 2.1.5 + + + Creates an instance of with a message and no cause + @param message the reason why the document isn't a PDF document according to iText. + + + Creates an exception with a message and a cause + @param message the reason why the document isn't a PDF document according to iText. + @param cause the cause of the exception, if any + + + Typed exception used when opening an existing PDF document. + Gets thrown when the document isn't a valid PDF document according to iText, + but it's different from the InvalidPdfException in the sense that it may + be an iText limitation (most of the times it isn't but you might have + bumped into something that has been added to the PDF specs, but that isn't + supported in iText yet). + @since 2.1.5 + + + Creates an instance of an UnsupportedPdfException. + @param message the reason why the document isn't a PDF document according to iText. + + + This class can produce String combinations representing a number built with + Greek letters (from alpha to omega, then alpha alpha, alpha beta, alpha gamma). + We are aware of the fact that the original Greek numbering is different; + See http://www.cogsci.indiana.edu/farg/harry/lan/grknum.htm#ancient + but this isn't implemented yet; the main reason being the fact that we + need a font that has the obsolete Greek characters qoppa and sampi. + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a lower case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a upper case Greek letter combination. + @param index the original number + @return the letter combination + + + Changes an int into a Greek letter combination. + @param index the original number + @return the letter combination + + + This class can produce String combinations representing a number. + "a" to "z" represent 1 to 26, "AA" represents 27, "AB" represents 28, + and so on; "ZZ" is followed by "AAA". + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z'; + 1 = a, 2 = b, ..., 26 = z, 27 = aa, 28 = ab,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'A' to 'Z'; + 1 = A, 2 = B, ..., 26 = Z, 27 = AA, 28 = AB,... + + + Translates a positive integer (not equal to zero) + into a String using the letters 'a' to 'z' + (a = 1, b = 2, ..., z = 26, aa = 27, ab = 28,...). + + + This class can produce String combinations representing a roman number. + + + Helper class for Roman Digits + + + part of a roman number + + + value of the roman digit + + + can the digit be used as a prefix + + + Constructs a roman digit + @param digit the roman digit + @param value the value + @param pre can it be used as a prefix + + + Array with Roman digits. + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a lower case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into an upper case roman number. + @param index the original number + @return the roman number (lower case) + + + Changes an int into a roman number. + @param index the original number + @return the roman number (lower case) + + + + Contains all the specifications of a font: fontfamily, size, style and color. + + + + Paragraph p = new Paragraph("This is a paragraph", + new Font(Font.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + this is a possible style. + + + the value of an undefined attribute. + + + the value of the default size. + + + the value of the fontfamily. + + + the value of the fontsize. + + + the value of the style. + + + the value of the color. + + + the external font + + + Copy constructor of a Font + @param other the font that has to be copied + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + the BaseColor of this font. + + + + Constructs a Font. + + the external font + the size of this font + the style of this font + + + + Constructs a Font. + + the external font + the size of this font + + + + Constructs a Font. + + the external font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + the style of this font + + + + Constructs a Font. + + the family to which this font belongs + the size of this font + + + + Constructs a Font. + + the family to which this font belongs + + + + Constructs a Font. + + + Has nine overloads. + + + + + Compares this Font with another + + the other Font + a value + + + + Gets the family of this font. + + the value of the family + + + + Gets the familyname as a string. + + the familyname + + + + Sets the family using a String ("Courier", + "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats"). + + A String representing a certain font-family. + + + + Translates a string-value of a certain family + into the index that is used for this family in this class. + + A string representing a certain font-family + the corresponding index + + + + Get/set the size of this font. + + the size of this font + + + Gets the size that can be used with the calculated BaseFont. + @return the size that can be used with the calculated BaseFont + + + Gets the leading that can be used with this font. + + @param multipliedLeading + a certain multipliedLeading + @return the height of a line + + + + Gets the style of this font. + + the style of this font + + + Gets the style that can be used with the calculated BaseFont. + @return the style that can be used with the calculated BaseFont + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is Bold. + + a boolean + + + + checks if this font is underlined. + + a boolean + + + + checks if the style of this font is STRIKETHRU. + + a boolean + + + + Sets the style using a String containing one of + more of the following values: normal, bold, italic, underline, strike. + + A String representing a certain style. + + + Sets the style. + @param style the style. + + + + Translates a string-value of a certain style + into the index value is used for this style in this class. + + a string + the corresponding value + + + + Get/set the color of this font. + + the color of this font + + + + Sets the color. + + the red-value of the new color + the green-value of the new color + the blue-value of the new color + + + + Gets the BaseFont inside this object. + + the BaseFont + + + Gets the BaseFont this class represents. + For the built-in fonts a BaseFont is calculated. + @param specialEncoding true to use the special encoding for Symbol and ZapfDingbats, + false to always use Cp1252 + @return the BaseFont this class represents + + + + Checks if the properties of this font are undefined or null. +

+ If so, the standard should be used. +

+ a boolean +
+ + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this static class first and then create fonts in your code using one of the static getFont-method + without having to enter a path as parameter. + + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is a possible value of a base 14 type 1 font + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in some probable directories. It usually works in Windows, + Linux and Solaris. + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks whether the given font is contained within the object + + the name of the font + true if font is contained within the object + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files + to this class first and then create fonts in your code using one of the getFont method + without having to enter a path as parameter. + + + + + This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file. + + + This is a map of fontfamilies. + + + This is the default encoding to use. + + + This is the default value of the embedded variable. + + + Creates new FontFactory + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + the BaseColor of this font + true if the font comes from the cache or is added to the cache if new, false if the font is always created new + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + the size of this font + + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + true if the font is to be embedded in the PDF + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the encoding of the font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the BaseColor of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + the style of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + the size of this font + a Font object + + + + Constructs a Font-object. + + the name of the font + a Font object + + + Register a font by giving explicitly the font family and name. + @param familyName the font family + @param fullName the font name + @param path the font path + + + + Register a ttf- or a ttc-file. + + the path to a ttf- or ttc-file + + + + Register a ttf- or a ttc-file and use an alias for the font contained in the ttf-file. + + the path to a ttf- or ttc-file + the alias you want to use for the font + + + Register all the fonts in a directory. + @param dir the directory + @return the number of fonts registered + + + + Register fonts in windows + @return the number of fonts registered + + + + Gets a set of registered fontnames. + + a set of registered fontnames + + + + Gets a set of registered font families. + + a set of registered font families + + + + Checks if a certain font is registered. + + the name of the font that has to be checked + true if the font is found + + + + A special-version of LIST whitch use greek-letters. + + @see com.lowagie.text.List + + + Initialization + + @param symbolIndent indent + + + Initialisierung + + @param symbolIndent indent + + + Initialisierung + @param greeklower greek-char in lowercase + @param symbolIndent indent + + + change the font to SYMBOL + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + This is an Element that contains + some userdefined meta information about the document. + + + + Header header = new Header("inspired by", "William Shakespeare"); + + + + + This is the content of this chunk of text. + + + + Constructs a Header. + + the name of the meta-information + the content + + + + Returns the name of the meta information. + + a string + + + + List with the HTML translation of all the characters. + + + Set containing tags that trigger a new line. + @since iText 5.0.6 + + + Converts a String to the HTML-format of this String. + + @param string The String to convert + @return a String + + + Converts a BaseColor into a HTML representation of this BaseColor. + + @param color the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + Translates the alignment value. + + @param alignment the alignment value + @return the translated value + + + Returns true if the tag causes a new line like p, br etc. + @since iText 5.0.6 + + + Static final values of supported HTML tags and attributes. + @since 5.0.6 + @deprecated since 5.5.2 + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of a tag + + + name of a tag. + @since 5.0.6 (reorganized all constants) + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + name of an attribute + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + name of an attribute + + + Name of an attribute. + @since 5.0.6 + + + Name of an attribute. + @since 5.0.6 + + + name of an attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + The possible value of an alignment attribute. + @since 5.0.6 + + + The possible value of an alignment attribute. + @since 5.0.6 + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + the possible value of an alignment attribute + + + This is used for inline css style information + + + Attribute for specifying externally defined CSS class. + @since 5.0.6 + + + the CSS tag for text color + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + The CSS tag for the font size. + @since 5.0.6 + + + the CSS tag for text decorations + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + a CSS value for text decoration + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + A possible attribute. + @since 5.0.6 + + + Stores the hierarchy of tags along with the attributes of each tag. + @since 5.0.6 renamed from ChainedProperties + @deprecated since 5.5.2 + + + Class that stores the info about one tag in the chain. + + + A possible tag + + + The styles corresponding with the tag + + + Constructs a chained property. + @param tag an XML/HTML tag + @param attrs the tag's attributes + + + A list of chained properties representing the tag hierarchy. + + + Creates a new instance of ChainedProperties + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns a value as soon as a match + is found or null if the key can't be found. + @param key the key of the property + @return the value of the property + + + Walks through the hierarchy (bottom-up) looking for + a property key. Returns true as soon as a match is + found or false if the key can't be found. + @param key the key of the property + @return true if the key is found + + + Adds a tag and its corresponding properties to the chain. + @param tag the tags that needs to be added to the chain + @param props the tag's attributes + + + If the properties contain a font size, the size may need to + be adjusted based on font sizes higher in the hierarchy. + @param attrs the attributes that may have to be updated + @since 5.0.6 (renamed) + + + Old iText class that allows you to convert HTML to PDF. + We've completely rewritten HTML to PDF conversion and we made it a separate project named XML Worker. + @deprecated since 5.5.2; please switch to XML Worker instead (this is a separate project) + + + DocListener that will listen to the Elements + produced by parsing the HTML. + This can be a com.lowagie.text.Document adding + the elements to a Document directly, or an + HTMLWorker instance strong the objects in a List + + + The map with all the supported tags. + @since 5.0.6 + + + The object defining all the styles. + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + + + Creates a new instance of HTMLWorker + @param document A class that implements DocListener + @param tags A map containing the supported tags + @param style A StyleSheet + @since 5.0.6 + + + Sets the map with supported tags. + @param tags + @since 5.0.6 + + + Setter for the StyleSheet + @param style the StyleSheet + + + Parses content read from a java.io.Reader object. + @param reader the content + @throws IOException + + + Stack with the Elements that already have been processed. + @since iText 5.0.6 (private => protected) + + + Keeps the content of the current paragraph + @since iText 5.0.6 (private => protected) + + + The current hierarchy chain of tags. + @since 5.0.6 + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Dictionary) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + Adds a new line to the currentParagraph. + @since 5.0.6 + + + Flushes the current paragraph, indicating that we're starting + a new block. + If the stack is empty, the paragraph is added to the document. + Otherwise the Paragraph is added to the stack. + @since 5.0.6 + + + Stacks the current paragraph, indicating that we're starting + a new span. + @since 5.0.6 + + + Pushes an element to the Stack. + @param element + @since 5.0.6 + + + Updates the chain with a new tag and new attributes. + @param tag the new tag + @param attrs the corresponding attributes + @since 5.0.6 + + + Updates the chain by removing a tag. + @param tag the new tag + @since 5.0.6 + + + Key used to store the image provider in the providers map. + @since 5.0.6 + + + Key used to store the image processor in the providers map. + @since 5.0.6 + + + Key used to store the image store in the providers map. + @since 5.0.6 + + + Key used to store the image baseurl provider in the providers map. + @since 5.0.6 + + + Key used to store the font provider in the providers map. + @since 5.0.6 + + + Key used to store the link provider in the providers map. + @since 5.0.6 + + + IDictionary containing providers such as a FontProvider or ImageProvider. + @since 5.0.6 (renamed from interfaceProps) + + + Setter for the providers. + If a FontProvider is added, the ElementFactory is updated. + @param providers a IDictionary with different providers + @since 5.0.6 + + + Factory that is able to create iText Element objects. + @since 5.0.6 + + + Creates a Chunk using the factory. + @param content the content of the chunk + @return a Chunk with content + @since 5.0.6 + + + Creates a Paragraph using the factory. + @return a Paragraph without any content + @since 5.0.6 + + + Creates a List object. + @param tag should be "ol" or "ul" + @return a List object + @since 5.0.6 + + + Creates a ListItem object. + @return a ListItem object + @since 5.0.6 + + + Creates a LineSeparator object. + @param attrs properties of the LineSeparator + @return a LineSeparator object + @since 5.0.6 + + + Creates an Image object. + @param attrs properties of the Image + @return an Image object (or null if the Image couldn't be found) + @throws DocumentException + @throws IOException + @since 5.0.6 + + + Creates a Cell. + @param tag the tag + @return a CellWrapper object + @since 5.0.6 + + + Adds a link to the current paragraph. + @since 5.0.6 + + + Fetches the List from the Stack and adds it to + the TextElementArray on top of the Stack, + or to the Document if the Stack is empty. + @throws DocumentException + @since 5.0.6 + + + Looks for the List object on the Stack, + and adds the ListItem to the List. + @throws DocumentException + @since 5.0.6 + + + Processes an Image. + @param img + @param attrs + @throws DocumentException + @since 5.0.6 + + + Processes the Table. + @throws DocumentException + @since 5.0.6 + + + Gets the TableWrapper from the Stack and adds a new row. + @since 5.0.6 + + + Stack to keep track of table tags. + + + Boolean to keep track of TR tags. + + + Boolean to keep track of TD and TH tags + + + Boolean to keep track of LI tags + + + Boolean to keep track of PRE tags + @since 5.0.6 renamed from isPRE + + + Indicates if text needs to be skipped. + @since iText 5.0.6 (private => protected) + + + Pushes the values of pendingTR and pendingTD + to a state stack. + @since 5.0.6 + + + Pops the values of pendingTR and pendingTD + from a state stack. + @since 5.0.6 + + + @return the pendingTR + @since 5.0.6 + + + @param pendingTR the pendingTR to set + @since 5.0.6 + + + @return the pendingTD + @since 5.0.6 + + + @param pendingTD the pendingTD to set + @since 5.0.6 + + + @return the pendingLI + @since 5.0.6 + + + @param pendingLI the pendingLI to set + @since 5.0.6 + + + @return the insidePRE + @since 5.0.6 + + + @param insidePRE the insidePRE to set + @since 5.0.6 + + + @return the skipText + @since 5.0.6 + + + @param skipText the skipText to set + @since 5.0.6 + + + The resulting list of elements. + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + + + Parses an HTML source to a List of Element objects + @param reader the HTML source + @param style a StyleSheet object + @param tags a map containing supported tags and their processors + @param providers map containing classes with extra info + @return a List of Element objects + @throws IOException + @since 5.0.6 + + + @see com.itextpdf.text.ElementListener#add(com.itextpdf.text.Element) + + + @see com.itextpdf.text.DocListener#close() + + + @see com.itextpdf.text.DocListener#newPage() + + + @see com.itextpdf.text.DocListener#open() + + + @see com.itextpdf.text.DocListener#resetPageCount() + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + + + @see com.itextpdf.text.DocListener#setMarginMirroring(bool) + @since 2.1.6 + + + @see com.itextpdf.text.DocListener#setMargins(float, float, float, float) + + + @see com.itextpdf.text.DocListener#setPageCount(int) + + + @see com.itextpdf.text.DocListener#setPageSize(com.itextpdf.text.Rectangle) + + + Sets the providers. + @deprecated use SetProviders() instead + + + Gets the providers + @deprecated use GetProviders() instead + + + @deprecated since 5.5.2 + + + Old class to define styles for HTMLWorker. + We've completely rewritten HTML to PDF functionality; see project XML Worker. + XML Worker is able to parse CSS files and "style" attribute values. + @deprecated since 5.5.2 + + + IDictionary storing tags and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + IDictionary storing possible names of the "class" attribute + and their corresponding styles. + @since 5.0.6 (changed Dictionary => IDictionary) + + + Creates a new instance of StyleSheet + + + Associates a IDictionary containing styles with a tag. + @param tag the name of the HTML/XML tag + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param tag the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Associates a IDictionary containing styles with a class name. + @param className the value of the class attribute + @param attrs a map containing styles + + + Adds an extra style key-value pair to the styles IDictionary + of a specific tag + @param className the name of the HTML/XML tag + @param key the key specifying a specific style + @param value the value defining the style + + + Resolves the styles based on the tag name and the value + of the class attribute. + @param tag the tag that needs to be resolved + @param attrs existing style map that will be updated + + + Method contributed by Lubos Strapko + @param h + @param chain + @since 2.1.3 + + + We use a CellWrapper because we need some extra info + that isn't available in PdfPCell. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The cell that is wrapped in this stub. + + + The width of the cell. + @since iText 5.0.6 + + + Indicates if the width is a percentage. + @since iText 5.0.6 + + + Creates a new instance of IncCell. + @param tag the cell that is wrapped in this object. + @param chain properties such as width + @since 5.0.6 + + + Creates a PdfPCell element based on a tag and its properties. + @param tag a cell tag + @param chain the hierarchy chain + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Factory that produces iText Element objects, + based on tags and their properties. + @author blowagie + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The font provider that will be used to fetch fonts. + @since iText 5.0 This used to be a FontFactoryImp + + + Creates a new instance of FactoryProperties. + + + Setter for the font provider + @param provider + @since 5.0.6 renamed from setFontImp + + + Creates a Font object based on a chain of properties. + @param chain chain of properties + @return an iText Font object + + + Creates an iText Chunk + @param content the content of the Chunk + @param chain the hierarchy chain + @return a Chunk + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a Paragraph without any content + + + Creates an iText Paragraph object using the properties + of the different tags and properties in the hierarchy chain. + @param chain the hierarchy chain + @return a ListItem without any content + + + Method that does the actual Element creating for + the createParagraph and createListItem method. + @param paragraph + @param chain + + + Sets the leading of a Paragraph object. + @param paragraph the Paragraph for which we set the leading + @param leading the String value of the leading + + + Gets a HyphenationEvent based on the hyphenation entry in + the hierarchy chain. + @param chain the hierarchy chain + @return a HyphenationEvent + @since 2.1.2 + + + Creates a LineSeparator. + @since 5.0.6 + + + This class maps tags such as div and span to their corresponding + TagProcessor classes. + @deprecated since 5.5.2 + + + Creates a Map containing supported tags. + + + Object that processes the following tags: + i, em, b, strong, s, strike, u, sup, sub + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Maps em to i, strong to b, and strike to s. + This is a convention: the style parser expects i, b and s. + @param tag the original tag + @return the mapped tag + + + Object that processes the a tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Object that processes the br tag. + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @throws DocumentException + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#startElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String, java.util.Map) + + + @see com.itextpdf.text.html.simpleparser.HTMLTagProcessors#endElement(com.itextpdf.text.html.simpleparser.HTMLWorker, java.lang.String) + + + Interface that needs to be implemented by every tag that is supported by HTMLWorker. + @deprecated since 5.5.2 + + + Implement this class to tell the HTMLWorker what to do + when an open tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @param attrs the current attributes of the tag + @throws DocumentException + @throws IOException + + + Implement this class to tell the HTMLWorker what to do + when an close tag is encountered. + @param worker the HTMLWorker + @param tag the tag that was encountered + @throws DocumentException + + + Implement this interface to process images and + to indicate if the image needs to be added or + skipped. + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Allows you to (pre)process the image before (or instead of) + adding it to the DocListener with HTMLWorker. + @param img the Image object + @param attrs attributes of the image + @param chain hierarchy of attributes + @param doc the DocListener to which the Image needs to be added + @return false if you still want HTMLWorker to add the Image + + + Allows you to do additional processing on a Paragraph that contains a link. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + Does additional processing on a link paragraph + @param current the Paragraph that has the link + @param attrs the attributes + @return false if the Paragraph no longer needs processing + + + @since 5.0.6 + @deprecated since 5.5.2 + + + We use a TableWrapper because PdfPTable is rather complex + to put on the HTMLWorker stack. + @author psoares + @since 5.0.6 (renamed) + @deprecated since 5.5.2 + + + The styles that need to be applied to the table + @since 5.0.6 renamed from props + + + Nested list containing the PdfPCell elements that are part of this table. + + + Array containing the widths of the columns. + @since iText 5.0.6 + + + Creates a new instance of IncTable. + @param attrs a Map containing attributes + + + Adds a new row to the table. + @param row a list of PdfPCell elements + + + Setter for the column widths + @since iText 5.0.6 + + + Creates a new PdfPTable based on the info assembled + in the table stub. + @return a PdfPTable + + + This class is a HashMap that contains the names of colors as a key and the + corresponding Color as value. (Source: Wikipedia + http://en.wikipedia.org/wiki/Web_colors ) + + @author blowagie + @deprecated since 5.5.2 + + + A web color string without the leading # will be 3 or 6 characters long + and all those characters will be hex digits. NOTE: colStr must be all + lower case or the current hex letter test will fail. + + @param colStr + A non-null, lower case string that might describe an RGB color + in hex. + @return Is this a web color hex string without the leading #? + @since 5.0.6 + + + Gives you a BaseColor based on a name. + + @param name + a name such as black, violet, cornflowerblue or #RGB or + #RRGGBB or RGB or RRGGBB or rgb(R,G,B) + @return the corresponding BaseColor object. Never returns null. + @throws IllegalArgumentException + if the String isn't a know representation of a color. + + + A class that contains some utilities to parse HTML attributes and content. + @since 5.0.6 (some of these methods used to be in the Markup class) + @deprecated since 5.5.2 + + + a default value for font-size + @since 2.1.3 + + + Parses a length. + + @param str + a length in the form of an optional + or -, followed by a + number and a unit. + @return a float + + + New method contributed by: Lubos Strapko + + @since 2.1.3 + + + Converts a BaseColor into a HTML representation of this + BaseColor. + + @param s + the BaseColor that has to be converted. + @return the HTML representation of this BaseColor + + + This method parses a String with attributes and returns a Properties + object. + + @param str + a String of this form: 'key1="value1"; key2="value2";... + keyN="valueN" ' + @return a Properties object + + + Removes the comments sections of a String. + + @param str + the original String + @param startComment + the String that marks the start of a Comment section + @param endComment + the String that marks the end of a Comment section. + @return the String stripped of its comment section + + + Helper class that reduces the white space in a String + @param content content containing whitespace + @return the content without all unnecessary whitespace + + + A series of predefined font sizes. + @since 5.0.6 (renamed) + + + Picks a font size from a series of predefined font sizes. + @param value the new value of a font, expressed as an index + @param previous the previous value of the font size + @return a new font size. + + + Translates a String value to an alignment value. + (written by Norman Richards, integrated into iText by Bruno) + @param alignment a String (one of the ALIGN_ constants of this class) + @return an alignment value (one of the ALIGN_ constants of the Element interface) + + + + A class that implements DocListener will perform some + actions when some actions are performed on a Document. + + + + + + + + Signals that the Document has been opened and that + Elements can be added. + + + + + Signals that the Document was closed and that no other + Elements will be added. + + + The output stream of every writer implementing IDocListener will be closed. + + + + + Signals that an new page has to be started. + + true if the page was added, false if not. + + + + Sets the pagesize. + + the new pagesize + a boolean + + + + Sets the margins. + + the margin on the left + the margin on the right + the margin on the top + the margin on the bottom + + + + Parameter that allows you to do margin mirroring (odd/even pages) + @param marginMirroring + @return true if succesfull + + + Parameter that allows you to do top/bottom margin mirroring (odd/even pages) + @param marginMirroringTopBottom + @return true if successful + @since 2.1.6 + + + + Sets the page number. + + the new page number + + + + Sets the page number to 0. + + + + + Interface for a text element. + + + + + + + + + + + + + + + + + + + + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + Checks if this element is a content object. + If not, it's a metadata object. + @since iText 2.0.8 + @return true if this is a 'content' element; false if this is a 'medadata' element + + + Checks if this element is nestable. + @since iText 2.0.8 + @return true if this element can be nested inside other elements. + + + + Gets all the chunks in this element. + + an ArrayList + + + + Gets the content of the text element. + + the content of the text element + + + + A class that implements ElementListener will perform some + actions when an Element is added. + + + + + Signals that an Element was added to the Document. + + Element added + true if the element was added, false if not. + + + These two methods are used by FactoryProperties (for HTMLWorker). + It's implemented by FontFactoryImp. + @since iText 5.0 + + + Checks if a certain font is registered. + + @param fontname the name of the font that has to be checked. + @return true if the font is found + + + Constructs a Font-object. + + @param fontname the name of the font + @param encoding the encoding of the font + @param embedded true if the font is to be embedded in the PDF + @param size the size of this font + @param style the style of this font + @param color the BaseColor of this font. + @return the Font constructed based on the parameters + + + Interface implemented by Element objects that can potentially consume + a lot of memory. Objects implementing the LargeElement interface can + be added to a Document more than once. If you have invoked setCompleted(false), + they will be added partially and the content that was added will be + removed until you've invoked setCompleted(true); + @since iText 2.0.8 + + + If you invoke setCompleted(false), you indicate that the content + of the object isn't complete yet; it can be added to the document + partially, but more will follow. If you invoke setCompleted(true), + you indicate that you won't add any more data to the object. + @since iText 2.0.8 + @param complete false if you'll be adding more data after + adding the object to the document. + + + Flushes the content that has been added. + + + + An Image is the representation of a graphic element (JPEG, PNG or GIF) + that has to be inserted into the document + + + + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + this is a kind of image Element. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + This represents a coordinate in the transformation matrix. + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + + + type of image + @since 2.1.5 + + + Image color inversion + + + The imagetype. + + + The URL of the image. + + + The raw data of the image. + + + The template to be treated as an image. + + + The alignment of the Image. + + + Text that can be shown instead of the image. + + + This is the absolute X-position of the image. + + + This is the absolute Y-position of the image. + + + This is the width of the image without rotation. + + + This is the width of the image without rotation. + + + This is the scaled width of the image taking rotation into account. + + + This is the original height of the image taking rotation into account. + + + The compression level of the content streams. + @since 2.1.3 + + + This is the rotation of the image. + + + this is the colorspace of a jpeg-image. + + + this is the bits per component of the raw image. It also flags a CCITT image. + + + this is the transparency information of the raw image + + + the indentation to the left. + + + the indentation to the right. + + + Holds value of property dpiX. + + + Holds value of property dpiY. + + + Holds value of property interpolation. + + + if the annotation is not null the image will be clickable. + + + ICC Profile attached + + + Holds value of property deflated. + + + Holds value of property smask. + + + Holds value of property XYRatio. + + + Holds value of property originalType. + + + Holds value of property originalData. + + + The spacing before the image. + + + The spacing after the image. + + + Holds value of property widthPercentage. + + + Holds value of property initialRotation. + + + + Constructs an Image-object, using an url. + + the URL where the image can be found. + + + + Constructs an Image object duplicate. + + another Image object. + + + + Gets an instance of an Image. + + an Image + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + an URL + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image. + + a byte array + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image from a System.Drwaing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + if true the image is treated as black and white + an object of type ImgRaw + + + + Converts a .NET image to a Native(PNG, JPG, GIF, WMF) image + + + + + + + + Gets an instance of an Image from a System.Drawing.Image. + + the System.Drawing.Image to convert + + if different from null the transparency + pixels are replaced by this color + + an object of type ImgRaw + + + + Gets an instance of an Image. + + a filename + an object of type Gif, Jpeg or Png + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + an object of type ImgRaw + + + Creates a JBIG2 Image. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + @since 2.1.5 + + + Reuses an existing image. + @param ref the reference to the image dictionary + @throws BadElementException on error + @return the image + + + + Gets an instance of an Image in raw mode. + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + + + + + + + + + + + + + + + + + + + + + + Gets an instance of an Image in raw mode. + + the width of the image in pixels + the height of the image in pixels + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component + the image data + + transparency information in the Mask format of the + image dictionary + + an object of type ImgRaw + + + + Sets the absolute position of the Image. + + + + + + + Scale the image to the dimensions of the rectangle + + dimensions to scale the Image + + + + Scale the image to an absolute width and an absolute height. + + the new width + the new height + + + + Scale the image to an absolute width. + + the new width + + + + Scale the image to an absolute height. + + the new height + + + + Scale the image to a certain percentage. + + the scaling percentage + + + + Scale the width and height of an image to a certain percentage. + + the scaling percentage of the width + the scaling percentage of the height + + + + Scales the images to the dimensions of the rectangle. + + the dimensions to fit + + + + Scales the image so that it fits a certain width and height. + + the width to fit + the height to fit + + + Gets the current image rotation in radians. + @return the current image rotation in radians + + + + Sets the rotation of the image in radians. + + rotation in radians + + + + Sets the rotation of the image in degrees. + + rotation in degrees + + + + Get/set the annotation. + + the Annotation + + + + Gets the bpc for the image. + + + this only makes sense for Images of the type RawImage. + + a bpc value + + + + Gets the raw data for the image. + + + this only makes sense for Images of the type RawImage. + + the raw data + + + + Get/set the template to be used as an image. + + + this only makes sense for Images of the type ImgTemplate. + + the template + + + + Checks if the Images has to be added at an absolute position. + + a bool + + + + Checks if the Images has to be added at an absolute X position. + + a bool + + + + Returns the absolute X position. + + a position + + + + Returns the absolute Y position. + + a position + + + + Returns the type. + + a type + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Returns true if the image is a Jpeg-object. + + a bool + + + + Returns true if the image is a ImgRaw-object. + + a bool + + + + Returns true if the image is an ImgTemplate-object. + + a bool + + + + Gets the string-representation of the reference to the image. + + a string + + + + Get/set the alignment for the image. + + a value + + + + Get/set the alternative text for the image. + + a string + + + + Gets the scaled width of the image. + + a value + + + + Gets the scaled height of the image. + + a value + + + + Gets the colorspace for the image. + + + this only makes sense for Images of the type Jpeg. + + a colorspace value + + + + Returns the transformation matrix of the image. + + an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + Returns the transformation matrix of the image. + + @return an array [AX, AY, BX, BY, CX, CY, DX, DY] + + + + Returns the transparency. + + the transparency + + + + Gets the plain width of the image. + + a value + + + + Gets the plain height of the image. + + a value + + + + generates new serial id + + + + + returns serial id for this object + + + + + Gets the dots-per-inch in the X direction. Returns 0 if not available. + + the dots-per-inch in the X direction + + + + Gets the dots-per-inch in the Y direction. Returns 0 if not available. + + the dots-per-inch in the Y direction + + + Sets the dots per inch value + + @param dpiX + dpi for x coordinates + @param dpiY + dpi for y coordinates + + + + Returns true if this Image has the + requisites to be a mask. + + true if this Image can be a mask + + + + Make this Image a mask. + + + + + Get/set the explicit masking. + + the explicit masking + + + + Returns true if this Image is a mask. + + true if this Image is a mask + + + + Inverts the meaning of the bits of a mask. + + true to invert the meaning of the bits of a mask + + + + Sets the image interpolation. Image interpolation attempts to + produce a smooth transition between adjacent sample values. + + New value of property interpolation. + + + Tags this image with an ICC profile. + @param profile the profile + + + Checks is the image has an ICC profile. + @return the ICC profile or null + + + Indicates if the image should be scaled to fit the line + when the image exceeds the available width. + @since iText 5.0.6 + + + Indicates if the image should be scaled to fit + when the image exceeds the available height. + @since iText 5.4.2 + + + Gets and sets the value of scaleToFitHeight. + @return true if the image size has to scale to the available height + @since iText 5.4.2 + + + Replaces CalRGB and CalGray colorspaces with DeviceRGB and DeviceGray. + + + Some image formats, like TIFF may present the images rotated that have + to be compensated. + + + Sets the compression level to be used if the image is written as a compressed stream. + @param compressionLevel a value between 0 (best speed) and 9 (best compression) + @since 2.1.3 + + + CCITT Image data that has to be inserted into the document + + @see Element + @see Image + + @author Paulo Soares + + CCITT Image data that has to be inserted into the document + + + + + + + Creats an Image in CCITT mode. + + the exact width of the image + the exact height of the image + + reverses the bits in data. + Bit 0 is swapped with bit 7 and so on + + + the type of compression in data. It can be + CCITTG4, CCITTG31D, CCITTG32D + + + parameters associated with this stream. Possible values are + CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFLINE and CCITT_ENDOFBLOCK or a + combination of them + + the image data + + + Support for JBIG2 images. + @since 2.1.5 + + + JBIG2 globals + + + A unique hash + + + Copy contstructor. + @param image another Image + + + Empty constructor. + + + Actual constructor for ImgJBIG2 images. + @param width the width of the image + @param height the height of the image + @param data the raw image data + @param globals JBIG2 globals + + + Getter for the JBIG2 global data. + @return an array of bytes + + + Getter for the unique hash. + @return an array of bytes + + + + Raw Image data that has to be inserted into the document + + + + + + + Creats an Image in raw mode. + + the exact width of the image + the exact height of the image + 1,3 or 4 for GrayScale, RGB and CMYK + bits per component. Must be 1,2,4 or 8 + data the image data + + + + PdfTemplate that has to be inserted into the document + + + + + + + Creats an Image from a PdfTemplate. + + the Image + + + + Creats an Image from a PdfTemplate. + + the PdfTemplate + + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + @see Element + @see Image + @see Gif + @see Png + + An ImgWMF is the representation of a windows metafile + that has to be inserted into the document + + + + + Constructs an ImgWMF-object + + a Image + + + + Constructs an ImgWMF-object, using an url. + + the URL where the image can be found + + + + Constructs an ImgWMF-object, using a filename. + + a string-representation of the file that contains the image. + + + + Constructs an ImgWMF-object from memory. + + the memory image + + + + This method checks if the image is a valid WMF and processes some parameters. + + + + + Reads the WMF into a template. + + the template to read to + + + A RandomAccessSource that is based on an underlying byte array + @since 5.3.5 + + + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + A RandomAccessSource that is based on a set of underlying sources, treating the sources as if they were a contiguous block of data. + @since 5.3.5 + + + The underlying sources (along with some meta data to quickly determine where each source begins and ends) + + + Cached value to make multiple reads from the same underlying source more efficient + + + Cached size of the underlying channel + + + Constructs a new {@link GroupedRandomAccessSource} based on the specified set of sources + @param sources the sources used to build this group + + + For a given offset, return the index of the source that contains the specified offset. + This is an optimization feature to help optimize the access of the correct source without having to iterate + through every single source each time. It is safe to always return 0, in which case the full set of sources will be searched. + Subclasses should override this method if they are able to compute the source index more efficiently (for example {@link FileChannelRandomAccessSource} takes advantage of fixed size page buffers to compute the index) + @param offset the offset + @return the index of the input source that contains the specified offset, or 0 if unknown + + + Returns the SourceEntry that contains the byte at the specified offset + sourceReleased is called as a notification callback so subclasses can take care of cleanup when the source is no longer the active source + @param offset the offset of the byte to look for + @return the SourceEntry that contains the byte at the specified offset + @throws IOException if there is a problem with IO (usually the result of the sourceReleased() call) + + + Called when a given source is no longer the active source. This gives subclasses the abilty to release resources, if appropriate. + @param source the source that is no longer the active source + @throws IOException if there are any problems + + + Called when a given source is about to become the active source. This gives subclasses the abilty to retrieve resources, if appropriate. + @param source the source that is about to become the active source + @throws IOException if there are any problems + + + {@inheritDoc} + The source that contains the byte at position is retrieved, the correct offset into that source computed, then the value + from that offset in the underlying source is returned. + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Closes all of the underlying sources + + + Used to track each source, along with useful meta data + + + The underlying source + + + The first byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The last byte (in the coordinates of the GroupedRandomAccessSource) that this source contains + + + The index of this source in the GroupedRandomAccessSource + + + Standard constructor + @param index the index + @param source the source + @param offset the offset of the source in the GroupedRandomAccessSource + + + Given an absolute offset (in the GroupedRandomAccessSource coordinates), calculate the effective offset in the underlying source + @param absoluteOffset the offset in the parent GroupedRandomAccessSource + @return the effective offset in the underlying source + + + A RandomAccessSource that is wraps another RandomAccessSouce but does not propagate close(). This is useful when + passing a RandomAccessSource to a method that would normally close the source. + @since 5.3.5 + + + The source + + + Constructs a new OffsetRandomAccessSource + @param source the source + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + + + Does nothing - the underlying source is not closed + + + Represents an abstract source that bytes can be read from. This class forms the foundation for all byte input in iText. + Implementations do not keep track of a current 'position', but rather provide absolute get methods. Tracking position + should be handled in classes that use RandomAccessSource internally (via composition). + @since 5.3.5 + + + Gets a byte at the specified position + @param position + @return the byte, or -1 if EOF is reached + + + Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be + read will be placed in bytes and the number actually read will be returned. + @param position the position in the RandomAccessSource to read from + @param bytes output buffer + @param off offset into the output buffer where results will be placed + @param len the number of bytes to read + @return the number of bytes actually read, or -1 if the file is at EOF + + + @return the length of this source + + + Closes this source. The underlying data structure or source (if any) will also be closed + @throws IOException + + + + A RandomAccessSource that uses a {@link RandomAccessFile} as it's source + Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe + + + The source + + + The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility + of IOExceptions when reading the length. + + + Creates this object + @param raf the source for this RandomAccessSource + @throws IOException if the RAF can't be read + + + {@inheritDoc} + + + {@inheritDoc} + + + {@inheritDoc} + Note: the length is determined when the {@link RAFRandomAccessSource} is constructed. If the file length changes + after construction, that change will not be reflected in this call. + + + Closes the underlying RandomAccessFile + + + Factory to create {@link RandomAccessSource} objects based on various types of sources + @since 5.3.5 + + + + whether the full content of the source should be read into memory at construction + + + Whether {@link RandomAccessFile} should be used instead of a {@link FileChannel}, where applicable + + + Whether the underlying file should have a RW lock on it or just an R lock + + + Creates a factory that will give preference to accessing the underling data source using memory mapped files + + + Determines whether the full content of the source will be read into memory + @param forceRead true if the full content will be read, false otherwise + @return this object (this allows chaining of method calls) + + + Creates a {@link RandomAccessSource} based on a byte array + @param data the byte array + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a URL. The data available at the URL is read into memory and used + as the source for the {@link RandomAccessSource} + @param url the url to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on an {@link InputStream}. The full content of the InputStream is read into memory and used + as the source for the {@link RandomAccessSource} + @param is the stream to read from + @return the newly created {@link RandomAccessSource} + + + Creates a {@link RandomAccessSource} based on a filename string. + If the filename describes a URL, a URL based source is created + If the filename describes a file on disk, the contents may be read into memory (if forceRead is true), opened using memory mapped file channel (if usePlainRandomAccess is false), or opened using {@link RandomAccessFile} access (if usePlainRandomAccess is true) + This call will automatically failover to using {@link RandomAccessFile} if the memory map operation fails + @param filename the name of the file or resource to create the {@link RandomAccessSource} for + @return the newly created {@link RandomAccessSource} + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + Creates a new {@link RandomAccessSource} by reading the specified file/resource into memory + @param filename the name of the resource to read + @return the newly created {@link RandomAccessSource} + @throws IOException if reading the underling file or stream fails + + + An input stream that uses a RandomAccessSource as it's underlying source + @since 5.3.5 + + + The source + + + The current position in the source + + + Creates an input stream based on the source + @param source the source + + + Utility class with commonly used stream operations + @since 5.3.5 + + + + Reads the full content of a stream and returns them in a byte array + @param is the stream to read + @return a byte array containing all of the bytes from the stream + @throws IOException if there is a problem reading from the input stream + + + Gets the font resources. + @param key the name of the resource + @return the Stream to get the resource or + null if not found + + + A RandomAccessSource that wraps another RandomAccessSouce and provides a window of it at a specific offset and over + a specific length. Position 0 becomes the offset position in the underlying source. + @since 5.3.5 + + + The source + + + The amount to offset the source by + + + The length + + + Constructs a new OffsetRandomAccessSource that extends to the end of the underlying source + @param source the source + @param offset the amount of the offset to use + + + Constructs a new OffsetRandomAccessSource with an explicit length + @param source the source + @param offset the amount of the offset to use + @param length the number of bytes to be included in this RAS + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the position will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + Note that the length will be adjusted to read from the corrected location in the underlying source + + + {@inheritDoc} + + + The RTF jar depends on the iText jar, but the iText jar may not + depend on the RTF jar. This interface offers a temporary solution + until we find a more elegant way to solve this. + + + + Interface for customizing the split character. + + + + + + Interface for a text element to which other objects can be added. + + + + + + + + + + + + Adds an object to the TextElementArray. + + an object that has to be added + true if the addition succeeded; false otherwise + + + + An Jpeg is the representation of a graphic element (JPEG) + that has to be inserted into the document + + + + + + + + This is a type of marker. + + + This is a type of marker. + + + Acceptable Jpeg markers. + + + This is a type of marker. + + + Unsupported Jpeg markers. + + + This is a type of marker. + + + Jpeg markers without additional parameters. + + + Marker value for Photoshop IRB + + + sequence preceding Photoshop resolution data + + + + Construct a Jpeg-object, using a Image + + a Image + + + + Constructs a Jpeg-object, using an Uri. + + + Deprecated, use Image.GetInstance(...) to create an Image + + the Uri where the image can be found + + + + Constructs a Jpeg-object from memory. + + the memory image + + + + Constructs a Jpeg-object from memory. + + the memory image. + the width you want the image to have + the height you want the image to have + + + + Reads a short from the Stream. + + the Stream + an int + + + + Reads an inverted short from the Stream. + + the Stream + an int + + + + Returns a type of marker. + + an int + a type: VALID_MARKER, UNSUPPORTED_MARKER or NOPARAM_MARKER + + + + This method checks if the image is a valid JPEG and processes some parameters. + + + + An Jpeg2000 is the representation of a graphic element (JPEG) + that has to be inserted into the document + + @see Element + @see Image + + + Constructs a Jpeg2000-object, using an url. + + @param url the URL where the image can be found + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image + @throws BadElementException + @throws IOException + + + Constructs a Jpeg2000-object from memory. + + @param img the memory image. + @param width the width you want the image to have + @param height the height you want the image to have + @throws BadElementException + @throws IOException + + + This method checks if the image is a valid JPEG and processes some parameters. + @throws BadElementException + @throws IOException + + + @return true if the image is JP2, false if a codestream. + + + + A List contains several ListItems. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + +
+ + a possible value for the numbered parameter + + + a possible value for the numbered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + a possible value for the lettered parameter + + + This is the ArrayList containing the different ListItems. + + + Indicates if the list has to be numbered. + + + Indicates if the listsymbols are numerical or alphabetical. + + + Indicates if the listsymbols are lowercase or uppercase. + + + Indicates if the indentation has to be set automatically. + + + Indicates if the indentation of all the items has to be aligned. + + + This variable indicates the first number of a numbered list. + + + This is the listsymbol of a list that is not numbered. + + + In case you are using numbered/lettered lists, this String is added before the number/letter. + @since iText 2.1.1 + + + In case you are using numbered/lettered lists, this String is added after the number/letter. + @since iText 2.1.1 + + + The indentation of this list on the left side. + + + The indentation of this list on the right side. + + + The indentation of the listitems. + + + Constructs a List. + + + Constructs a List with a specific symbol indentation. + @param symbolIndent the symbol indentation + @since iText 2.0.8 + + + Constructs a List. + + @param numbered a bool + + + Constructs a List. + + @param numbered a bool + @param lettered has the list to be 'numbered' with letters + + + + Constructs a List. + + + the parameter symbolIndent is important for instance when + generating PDF-documents; it indicates the indentation of the listsymbol. + + a bool + the indentation that has to be used for the listsymbol + + + + Constructs a List. + + a bool + a bool + the indentation that has to be used for the listsymbol + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + + Adds an Object to the List. + + the object to add + true is successful + + + Makes sure all the items in the list have the same indentation. + + + + Alias for VB.NET compatibility. + + + + + Get/set the first number + + an int + + + + Sets the symbol + + a Chunk + + + + Sets the listsymbol. + + + This is a shortcut for SetListSymbol(Chunk symbol). + + a string + + + + Get/set the indentation of this paragraph on the left side. + + the indentation + + + + Get/set the indentation of this paragraph on the right side. + + the indentation + + + + Gets the symbol indentation. + + the symbol indentation + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Gets all the items in the list. + + an ArrayList containing ListItems + + + + Gets the size of the list. + + a size + + + Returns true if the list is empty. + + @return true if the list is empty + + + + Gets the leading of the first listitem. + + a leading + + + + Get/set the symbol indentation. + + a Chunk + + + Returns the String that is after a number or letter in the list symbol. + @return the String that is after a number or letter in the list symbol + @since iText 2.1.1 + + + Sets the String that has to be added after a number or letter in the list symbol. + @since iText 2.1.1 + @param postSymbol the String that has to be added after a number or letter in the list symbol. + + + Sets the String that has to be added before a number or letter in the list symbol. + @since iText 2.1.1 + @param preSymbol the String that has to be added before a number or letter in the list symbol. + + + + A ListItem is a Paragraph + that can be added to a List. + + + Example 1: + + List list = new List(true, 20); + list.Add(new ListItem("First line")); + list.Add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?")); + list.Add(new ListItem("Third line")); + + + The result of this code looks like this: +
    +
  1. + First line +
  2. +
  3. + The second line is longer to see what happens once the end of the line is reached. Will it start on a new line? +
  4. +
  5. + Third line +
  6. +
+ + Example 2: + + List overview = new List(false, 10); + overview.Add(new ListItem("This is an item")); + overview.Add("This is another item"); + + + The result of this code looks like this: +
    +
  • + This is an item +
  • +
  • + This is another item +
  • +
+
+ + + +
+ + this is the symbol that wil proceed the listitem. + + + + Constructs a ListItem. + + + + + Constructs a ListItem with a certain leading. + + the leading + + + + Constructs a ListItem with a certain Chunk. + + a Chunk + + + + Constructs a ListItem with a certain string. + + a string + + + + Constructs a ListItem with a certain string + and a certain Font. + + a string + a string + + + + Constructs a ListItem with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a ListItem with a certain string + and a certain leading. + + the leading + a string + + + Constructs a ListItem with a certain leading, string + and Font. + + @param leading the leading + @param string a string + @param font a Font + + Constructs a ListItem with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a ListItem with a certain Phrase. + + a Phrase + + + + Gets the type of the text element. + + a type + + + + Get/set the listsymbol. + + a Chunk + + + Sets the indentation of this paragraph on the left side. + + @param indentation the new indentation + + + Changes the font of the list symbol to the font of the first chunk + in the list item. + @since 5.0.6 + + + Factory that creates a counter for every reader or writer class. + You can implement your own counter and declare it like this: + CounterFactory.getInstance().setCounter(new SysoCounter()); + SysoCounter is just an example of a Counter implementation. + It writes info about files being read and written to the System.out. + + This functionality can be used to create metrics in a SaaS context. + + + The singleton instance. + + + The current counter implementation. + + + The empty constructor. + + + Returns the singleton instance of the factory. + + + Returns a counter factory. + + + Getter for the counter. + + + Setter for the counter. + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass + @return this Counter implementation + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Interface that can be implemented if you want to count the number of documents + that are being processed by iText. + + Implementers may use this method to record actual system usage for licensing purposes + (e.g. count the number of documents or the volumne in bytes in the context of a SaaS license). + + + Gets a Counter instance for a specific class. + + + This method gets triggered if a file is read. + @param l the length of the file that was written + + + This method gets triggered if a file is written. + @param l the length of the file that was written + + + Implementation of the Counter interface that doesn't do anything. + + + @param klass The Class asking for the Counter + @return the Counter instance + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + The name of the class for which the Counter was created + (or iText if no name is available) + + + Empty SysoCounter constructor. + + + Constructs a SysoCounter for a specific class. + @param klass + + + @see com.itextpdf.text.log.Counter#getCounter(java.lang.Class) + + + @see com.itextpdf.text.log.Counter#read(long) + + + @see com.itextpdf.text.log.Counter#written(long) + + + Logger interface + {@link LoggerFactory#setLogger(Logger)}. + + @author redlab_b + + + + @param klass + @return the logger for the given klass + + + @param level + @return true if there should be logged for the given level + + + Log a warning message. + @param message + + + Log a trace message. + @param message + + + Log a debug message. + @param message + + + Log an info message. + @param message + + + Log an error message. + @param message + + + Log an error message and exception. + @param message + @param e + + + The different log levels. + @author redlab_b + + + + LoggerFactory can be used to set a logger. The logger should be created by + implementing {@link Logger}. In the implementation users can choose how they + log received messages. Added for developers. For some cases it can be handy + to receive logging statements while developing applications with iText + + @author redlab_b + + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param klass + @return the logger. + + + Returns the logger set in this LoggerFactory. Defaults to {@link NoOpLogger} + @param name + @return the logger. + + + Returns the LoggerFactory + @return singleton instance of this LoggerFactory + + + Set the global logger to process logging statements with. + + @param logger the logger + + + Get the logger. + + @return the logger + + + The no-operation logger, it does nothing with the received logging + statements. And returns false by default for {@link NoOpLogger#isLogging(Level)} + + @author redlab_b + + + + A Simple System.out logger. + @author redlab_be + + + + Defaults packageReduce to 1. + + + Amount of characters each package name should be reduced with. + @param packageReduce + + + + @param klass + @param shorten + + + @param name2 + @return + + + Wrapper that allows to add properties to 'basic building block' objects. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + The element that is wrapped in a MarkedObject. + + + Contains extra markupAttributes + + + This constructor is for internal use only. + + + Creates a MarkedObject. + + + Gets all the chunks in this element. + + @return an ArrayList + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Gets the type of the text element. + + @return a type + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + @return the markupAttributes + + + Wrapper that allows to add properties to a Chapter/Section object. + Before iText 1.5 every 'basic building block' implemented the MarkupAttributes interface. + By setting attributes, you could add markup to the corresponding XML and/or HTML tag. + This functionality was hardly used by anyone, so it was removed, and replaced by + the MarkedObject functionality. + + @deprecated since 5.5.9. This class is no longer used. + + + This is the title of this section. + + + Creates a MarkedObject with a Section or Chapter object. + @param section the marked section + + + Adds a Paragraph, List or Table + to this Section. + + @param index index at which the specified element is to be inserted + @param o an object of type Paragraph, List or Table= + @throws ClassCastException if the object is not a Paragraph, List or Table + + + Adds a Paragraph, List, Table or another Section + to this Section. + + @param o an object of type Paragraph, List, Table or another Section + @return a bool + @throws ClassCastException if the object is not a Paragraph, List, Table or Section + + + Processes the element by adding it (or the different parts) to an + ElementListener. + + @param listener an ElementListener + @return true if the element was processed successfully + + + Adds a collection of Elements + to this Section. + + @param collection a collection of Paragraphs, Lists and/or Tables + @return true if the action succeeded, false if not. + @throws ClassCastException if one of the objects isn't a Paragraph, List, Table + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @param indentation the indentation of the new section + @return a new Section object + + + Creates a Section, add it to this Section and returns it. + + @param numberDepth the numberDepth of the section + @return a new Section object + + + Creates a Section, adds it to this Section and returns it. + + @return a new Section object + + + Sets the title of this section. + + @param title the new title + + + + Sets the indentation of this Section on the left side. + + @param indentation the indentation + + + Sets the indentation of this Section on the right side. + + @param indentation the indentation + + + Sets the indentation of the content of this Section. + + @param indentation the indentation + + + Setter for property bookmarkOpen. + @param bookmarkOpen false if the bookmark children are not + visible. + + + Setter for property triggerNewPage. + @param triggerNewPage true if a new page has to be triggered. + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Adds a new page to the section. + @since 2.1.1 + + + + This is an Element that contains + some meta information about the document. + + + An object of type Meta can not be constructed by the user. + Userdefined meta information should be placed in a Header-object. + Meta is reserved for: Subject, Keywords, Author, Title, Producer + and Creationdate information. + + + + + + This is the type of Meta-information this object contains. + + + This is the content of the Meta-information. + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + The possible value of an alignment attribute. + @since 5.0.6 (moved from ElementTags) + + + + Constructs a Meta. + + the type of meta-information + the content + + + + Constructs a Meta. + + the tagname of the meta-information + the content + + + + Processes the element by adding it (or the different parts) to a + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + appends some text to this Meta. + + a string + a StringBuilder + + + + Returns the content of the meta information. + + a string + + + + Returns the name of the meta information. + + a string + + + + Returns the name of the meta information. + + name to match + a string + + + + The PageSize-object contains a number of read only rectangles representing the most common paper sizes. + + + + + This is the letter format + + + This is the note format + + + This is the legal format + + + This is the tabloid format + + + This is the executive format + + + This is the postcard format + + + This is the a0 format + + + This is the a1 format + + + This is the a2 format + + + This is the a3 format + + + This is the a4 format + + + This is the a5 format + + + This is the a6 format + + + This is the a7 format + + + This is the a8 format + + + This is the a9 format + + + This is the a10 format + + + This is the b0 format + + + This is the b1 format + + + This is the b2 format + + + This is the b3 format + + + This is the b4 format + + + This is the b5 format + + + This is the b6 format + + + This is the b7 format + + + This is the b8 format + + + This is the b9 format + + + This is the b10 format + + + This is the archE format + + + This is the archD format + + + This is the archC format + + + This is the archB format + + + This is the archA format + + + This is the American Foolscap format + + + This is the European Foolscap format + + + This is the halfletter format + + + This is the 11x17 format + + + This is the ISO 7810 ID-1 format (85.60 x 53.98 mm or 3.370 x 2.125 inch) + + + This is the ISO 7810 ID-2 format (A7 rotated) + + + This is the ISO 7810 ID-3 format (B7 rotated) + + + This is the ledger format + + + This is the Crown Quarto format + + + This is the Large Crown Quarto format + + + This is the Demy Quarto format. + + + This is the Royal Quarto format. + + + This is the Crown Octavo format + + + This is the Large Crown Octavo format + + + This is the Demy Octavo format + + + This is the Royal Octavo format. + + + This is the small paperback format. + + + This is the Pengiun small paperback format. + + + This is the Penguin large paparback format. + + + This is the letter format + @since iText 5.0.6 + + + This is the legal format + @since iText 5.0.6 + + + This is the a4 format + @since iText 5.0.6 + + + This method returns a Rectangle based on a String. + Possible values are the the names of a constant in this class + (for instance "A4", "LETTER",...) or a value like "595 842" + + + + A Paragraph is a series of Chunks and/or Phrases. + + + A Paragraph has the same qualities of a Phrase, but also + some additional layout-parameters: +
    +
  • the indentation +
  • the alignment of the text +
+
+ + + Paragraph p = new Paragraph("This is a paragraph", + FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new BaseColor(0, 0, 255))); + + + + + +
+ + The alignment of the text. + + + The indentation of this paragraph on the left side. + + + The indentation of this paragraph on the right side. + + + Holds value of property firstLineIndent. + + + The spacing before the paragraph. + + + The spacing after the paragraph. + + + Holds value of property extraParagraphSpace. + + + Does the paragraph has to be kept together on 1 page. + + + + Constructs a Paragraph. + + + + + Constructs a Paragraph with a certain leading. + + the leading + + + + Constructs a Paragraph with a certain Chunk. + + a Chunk + + + + Constructs a Paragraph with a certain Chunk + and a certain leading. + + the leading + a Chunk + + + + Constructs a Paragraph with a certain string. + + a string + + + + Constructs a Paragraph with a certain string + and a certain Font. + + a string + a Font + + + + Constructs a Paragraph with a certain string + and a certain leading. + + the leading + a string + + + + Constructs a Paragraph with a certain leading, string + and Font. + + the leading + a string + a Font + + + + Constructs a Paragraph with a certain Phrase. + + a Phrase + + + Creates a shallow clone of the Paragraph. + @return + + + Creates a shallow clone of the Paragraph. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + Breaks this Paragraph up in different parts, separating paragraphs, lists and tables from each other. + @return + + + + Gets the type of the text element. + + a type + + + + Adds an Object to the Paragraph. + + the object to add + a bool + + + + Get/set the alignment of this paragraph. + + a integer + + + + Get/set the indentation of this paragraph on the left side. + + a float + + + + Get/set the indentation of this paragraph on the right side. + + a float + + + + Set/get if this paragraph has to be kept together on one page. + + a bool + + + + A Phrase is a series of Chunks. + + + A Phrase has a main Font, but some chunks + within the phrase can have a Font that differs from the + main Font. All the Chunks in a Phrase + have the same leading. + + + + // When no parameters are passed, the default leading = 16 + Phrase phrase0 = new Phrase(); + Phrase phrase1 = new Phrase("this is a phrase"); + // In this example the leading is passed as a parameter + Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16"); + // When a Font is passed (explicitely or embedded in a chunk), the default leading = 1.5 * size of the font + Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.GetFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0))); + Phrase phrase4 = new Phrase(new Chunk("this is a phrase")); + Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + + + + + This is the leading of this phrase. + + + The text leading that is multiplied by the biggest font size in the line. + + + This is the font of this phrase. + + + Null, unless the Phrase has to be hyphenated. + @since 2.1.2 + + + Predefined tab position and properties(alignment, leader and etc.); + @since 5.4.1 + + + + Constructs a Phrase without specifying a leading. + + + Has nine overloads. + + + + Copy constructor for Phrase. + + + + Constructs a Phrase with a certain leading. + + the leading + + + + Constructs a Phrase with a certain Chunk. + + a Chunk + + + + Constructs a Phrase with a certain Chunk and a certain leading. + + the leading + a Chunk + + + + Constructs a Phrase with a certain string. + + a string + + + + Constructs a Phrase with a certain string and a certain Font. + + a string + a Font + + + + Constructs a Phrase with a certain leading and a certain string. + + the leading + a string + + + + Processes the element by adding it (or the different parts) to an + . + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Chunk, an Anchor or another Phrase + to this Phrase. + + index at which the specified element is to be inserted + an object of type Chunk, Anchor, or Phrase + + + Adds a String to this Phrase. + + @param s a string + @return a boolean + @since 5.0.1 + + + + Adds a Chunk, Anchor or another Phrase + to this Phrase. + + an object of type Chunk, Anchor or Phrase + a bool + + + + Adds a collection of Chunks + to this Phrase. + + a collection of Chunks, Anchors and Phrases. + true if the action succeeded, false if not. + + + + Adds a Chunk. + + + This method is a hack to solve a problem I had with phrases that were split between chunks + in the wrong place. + + a Chunk + a bool + + + + Adds a Object to the Paragraph. + + the object to add. + + + + Checks is this Phrase contains no or 1 empty Chunk. + + + false if the Phrase + contains more than one or more non-emptyChunks. + + + + + + + Gets/sets the leading of this phrase. + + the linespacing + + + Gets the total leading. + This method is based on the assumption that the + font of the Paragraph is the font of all the elements + that make part of the paragraph. This isn't necessarily + true. + @return the total leading (fixed and multiplied) + + + + Gets the font of the first Chunk that appears in this Phrase. + + a Font + + + Returns the content as a String object. + This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase. + + + Setter/getter for the hyphenation. + @param hyphenation a HyphenationEvent instance + @since 2.1.2 + + + Setter/getter for the tabSettings. + @param tabSettings a TabSettings instance + @since 5.4.1 + + + Constructs a Phrase that can be used in the static GetInstance() method. + @param dummy a dummy parameter + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @return a newly constructed Phrase + + + Gets a special kind of Phrase that changes some characters into corresponding symbols. + @param leading + @param string + @param font + @return a newly constructed Phrase + + + + A Rectangle is the representation of a geometric figure. + + + + + + + + This is the value that will be used as undefined. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents one side of the border of the Rectangle. + + + This represents a rectangle without borders. + + + This represents a type of border. + + + the lower left x-coordinate. + + + the lower left y-coordinate. + + + the upper right x-coordinate. + + + the upper right y-coordinate. + + + This represents the status of the 4 sides of the rectangle. + + + This is the width of the border around this rectangle. + + + This is the color of the border of this rectangle. + + + The color of the left border of this rectangle. + + + The color of the right border of this rectangle. + + + The color of the top border of this rectangle. + + + The color of the bottom border of this rectangle. + + + The width of the left border of this rectangle. + + + The width of the right border of this rectangle. + + + The width of the top border of this rectangle. + + + The width of the bottom border of this rectangle. + + + Whether variable width borders are used. + + + This is the color of the background of this rectangle. + + + This is the rotation value of this rectangle. + + + + Constructs a Rectangle-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a Rectangle-object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation (0, 90, 180, or 270) + @since iText 5.0.6 + + + + Constructs a Rectangle-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a Rectangle-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the rectangle + @since iText 5.0.6 + + + + Constructs a Rectangle-object. + + another Rectangle + + + Constructs a Rectangle-object based on a com.itextpdf.awt.geom.Rectangle object + @param rect com.itextpdf.awt.geom.Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + an IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + Switches lowerleft with upperright + + + + Gets a Rectangle that is altered to fit on the page. + + the top position + the bottom position + a Rectangle + + + + Swaps the values of urx and ury and of lly and llx in order to rotate the rectangle. + + a Rectangle + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Returns the lower left x-coordinate, considering a given margin. + + a margin + the lower left x-coordinate + + + + Returns the upper right x-coordinate, considering a given margin. + + a margin + the upper right x-coordinate + + + + Returns the upper right y-coordinate, considering a given margin. + + a margin + the upper right y-coordinate + + + + Returns the lower left y-coordinate, considering a given margin. + + a margin + the lower left y-coordinate + + + + Returns the width of the rectangle. + + a width + + + + Returns the height of the rectangle. + + a height + + + + Indicates if the table has borders. + + a bool + + + + Indicates if the table has a some type of border. + + the type of border + a bool + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Updates the border flag for a side based on the specified width. A width + of 0 will disable the border on that side. Any other width enables it. + + @param width + width of border + @param side + border side constant + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A RectangleReadOnly is the representation of a geometric figure. + It's the same as a Rectangle but immutable. + + + + + + + + + Constructs a RectangleReadOnly-object. + + lower left x + lower left y + upper right x + upper right y + + + Constructs a RectangleReadOnly -object. + + @param llx lower left x + @param lly lower left y + @param urx upper right x + @param ury upper right y + @param rotation the rotation of the Rectangle (0, 90, 180, 270) + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object starting from the origin (0, 0). + + upper right x + upper right y + + + Constructs a RectangleReadOnly-object starting from the origin + (0, 0) and with a specific rotation (valid values are 0, 90, 180, 270). + + @param urx upper right x + @param ury upper right y + @since iText 5.0.6 + + + + Constructs a RectangleReadOnly-object. + + another Rectangle + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Copies all of the parameters from a Rectangle object + except the position. + + @param rect + Rectangle to copy from + + + Switches lowerleft with upperright + + + + Get/set the upper right y-coordinate. + + a float + + + Enables the border on the specified side. + + @param side + the side to enable. One of LEFT, RIGHT, TOP, BOTTOM + + + + Disables the border on the specified side. + + @param side + the side to disable. One of LEFT, RIGHT, TOP, BOTTOM + + + + + Get/set the border + + a int + + + + Get/set the grayscale of the rectangle. + + a float + + + + Get/set the lower left x-coordinate. + + a float + + + + Get/set the upper right x-coordinate. + + a float + + + + Get/set the lower left y-coordinate. + + a float + + + + Get/set the borderwidth. + + a float + + + Gets the color of the border. + + @return a value + + Get/set the color of the border. + + a BaseColor + + + Gets the backgroundcolor. + + @return a value + + Get/set the backgroundcolor. + + a BaseColor + + + + Set/gets the rotation + + a int + + + Sets a parameter indicating if the rectangle has variable borders + + @param useVariableBorders + indication if the rectangle has variable borders + + + + A special-version of LIST which use roman-letters. + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + Initialization + + + Initialization + + @param symbolIndent indent + + + Initialization + @param romanlower roman-char in lowercase + @param symbolIndent indent + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A Section is a part of a Document containing + other Sections, Paragraphs, List + and/or Tables. + + + You can not construct a Section yourself. + You will have to ask an instance of Section to the + Chapter or Section to which you want to + add the new Section. + + + + Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255))); + Chapter chapter2 = new Chapter(title2, 2); + Paragraph someText = new Paragraph("This is some text"); + chapter2.Add(someText); + Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0))); + Section section1 = chapter2.AddSection(title21); + Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section."); + section1.Add(someSectionText); + Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0))); + Section section11 = section1.AddSection(40, title211, 2); + section11.Add(someSectionText);strong> + + + + + A possible number style. The default number style: "1.2.3." + @since iText 2.0.8 + + + A possible number style. For instance: "1.2.3" + @since iText 2.0.8 + + + This is the title of this section. + + + This is the number of sectionnumbers that has to be shown before the section title. + + + The style for sectionnumbers. + @since iText 2.0.8 + + + The indentation of this section on the left side. + + + The indentation of this section on the right side. + + + The additional indentation of the content of this section. + + + This is the number of subsections. + + + This is the complete list of sectionnumbers of this section and the parents of this section. + + + Indicates if the Section will be complete once added to the document. + @since iText 2.0.8 + + + Indicates if the Section was added completely to the document. + @since iText 2.0.8 + + + Indicates if this is the first time the section was added. + @since iText 2.0.8 + + + false if the bookmark children are not visible + + + true if the section has to trigger a new page + + + The bookmark title if different from the content title + + + + Constructs a new Section. + + + Has 2 overloads. + + + + + Constructs a new Section. + + a Paragraph + the numberDepth + + + + Sets the number of this section. + + the number of this section + an ArrayList, containing the numbers of the Parent + + + + Processes the element by adding it (or the different parts) to an + IElementListener. + + the IElementListener + true if the element was processed successfully + + + + Gets the type of the text element. + + a type + + + + Gets all the chunks in this element. + + an ArrayList + + + @see com.lowagie.text.Element#isContent() + @since iText 2.0.8 + + + @see com.lowagie.text.Element#isNestable() + @since iText 2.0.8 + + + + Adds a Paragraph, List or Table + to this Section. + + index at which the specified element is to be inserted + an object of type Paragraph, List or Table + + + + Adds a Paragraph, List, Table or another Section + to this Section. + + an object of type Paragraph, List, Table or another Section + a bool + + + + Adds a collection of Elements + to this Section. + + a collection of Paragraphs, Lists and/or Tables + true if the action succeeded, false if not. + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + + Creates a Section, adds it to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Creates a Section, add it to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a marked section. For use in class MarkedSection only! + + + + Creates a Section, adds it to this Section and returns it. + + the title of the new section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param indentation the indentation of the new section + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the numberDepth of the section + the newly added Section + + + Adds a Section to this Section and returns it. + + @param title the title of the new section + @param numberDepth the numberDepth of the section + + Adds a Section to this Section and returns it. + + the title of the new section + the numberDepth of the section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the indentation of the new section + the title of the new section + the newly added Section + + + + Adds a Section to this Section and returns it. + + the title of the new section + the newly added Section + + + + Get/set the title of this section + + a Paragraph + + + Sets the style for numbering sections. + Possible values are NUMBERSTYLE_DOTTED: 1.2.3. (the default) + or NUMBERSTYLE_DOTTED_WITHOUT_FINAL_DOT: 1.2.3 + @since iText 2.0.8 + + + Constructs a Paragraph that will be used as title for a Section or Chapter. + @param title the title of the section + @param numbers a list of sectionnumbers + @param numberDepth how many numbers have to be shown + @param numberStyle the numbering style + @return a Paragraph object + @since iText 2.0.8 + + + + Checks if this object is a Chapter. + + + true if it is a Chapter, + false if it is a Section + + + + + Checks if this object is a Section. + + + true if it is a Section, + false if it is a Chapter. + + + + + Get/set the numberdepth of this Section. + + a int + + + + Get/set the indentation of this Section on the left side. + + the indentation + + + + Get/set the indentation of this Section on the right side. + + the indentation + + + + Get/set the indentation of the content of this Section. + + the indentation + + + + Returns the depth of this section. + + the depth + + + + Get/set the bookmark + + a bool + + + Gets the bookmark title. + @return the bookmark title + + + Sets the bookmark title. The bookmark title is the same as the section title but + can be changed with this method. + @param bookmarkTitle the bookmark title + + + Changes the Chapter number. + + + Indicates if this is the first time the section is added. + @since iText2.0.8 + @return true if the section wasn't added yet + + + @see com.lowagie.text.LargeElement#isAddedCompletely() + @since iText 2.0.8 + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#flushContent() + + + @since iText 2.0.8 + @see com.lowagie.text.LargeElement#isComplete() + + + Adds a new page to the section. + @since 2.1.1 + + + Returns the first occurrence of a special symbol in a String. + + @param string a String + @return an index of -1 if no special symbol was found + + + Gets a chunk with a symbol character. + @param c a character that has to be changed into a symbol + @param font Font if there is no SYMBOL character corresponding with c + @return a SYMBOL version of a character + + + Looks for the corresponding symbol in the font Symbol. + + @param c the original ASCII-char + @return the corresponding symbol in font Symbol + + + A collection of convenience methods that were present in many different iText + classes. + + + + + + + + + + Utility method to extend an array. + @param original the original array or null + @param item the item to be added to the array + @return a new array with the item appended + + + Checks for a true/false value of a key in a Properties object. + @param attributes + @param key + @return + + + + This method makes a valid URL from a given filename. + + + + + a given filename + a valid URL + + + Unescapes an URL. All the "%xx" are replaced by the 'xx' hex char value. + @param src the url to unescape + @return the eunescaped value + + + + This method is an alternative for the Stream.Skip()-method + that doesn't seem to work properly for big values of size. + + the stream + the number of bytes to skip + + + Measurement conversion from millimeters to points. + @param value a value in millimeters + @return a value in points + @since 2.1.2 + + + Measurement conversion from millimeters to inches. + @param value a value in millimeters + @return a value in inches + @since 2.1.2 + + + Measurement conversion from points to millimeters. + @param value a value in points + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from points to inches. + @param value a value in points + @return a value in inches + @since 2.1.2 + + + Measurement conversion from inches to millimeters. + @param value a value in inches + @return a value in millimeters + @since 2.1.2 + + + Measurement conversion from inches to points. + @param value a value in inches + @return a value in points + @since 2.1.2 + + + Reads the contents of a file to a String. + @param path the path to the file + @return a String with the contents of the file + @since iText 5.0.0 + + + Converts an array of bytes to a String of hexadecimal values + @param bytes a byte array + @return the same bytes expressed as hexadecimal values + + + + The ParserBase-class provides XML document parsing. + + + + + Begins the process of processing an XML document + + the XML document to parse + + + + This method gets called when a start tag is encountered. + + + + the name of the tag that is encountered + the list of attributes + + + + This method gets called when an end tag is encountered. + + + + the name of the tag that ends + + + + This method gets called when characters are encountered. + + an array of characters + the start position in the array + the number of characters to read from the array + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains all possible id values of the entity tag + that can be translated to a character in font Symbol. + + + Gets a chunk with a symbol character. + @param e a symbol value (see Entities class: alfa is greek alfa,...) + @param font the font if the symbol isn't found (otherwise Font.SYMBOL) + @return a Chunk + + + Looks for the corresponding symbol in the font Symbol. + + @param name the name of the entity + @return the corresponding character in font Symbol + + + This class contains entities that can be used in an entity tag. + + + This is a map that contains the names of entities and their unicode value. + + + Translates an entity to a unicode character. + + @param name the name of the entity + @return the corresponding unicode character + + + + Translates a IANA encoding name to a Java encoding. + + + The object that maps IANA to Java encodings. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a start tag is found. + @param tag the tag name + @param h the tag's attributes + + + Called when an end tag is found. + @param tag the tag name + + + Called when the document starts to be parsed. + + + Called after the document is parsed. + + + Called when a text element is found. + @param str the text element, probably a fragment. + + + The handler for the events fired by SimpleXMLParser. + @author Paulo Soares + + + Called when a comment is found. + @param text the comment text + + + + possible states + + + the state stack + + + The current character. + + + The previous character. + + + the line we are currently reading + + + the column where the current character occurs + + + was the last character equivalent to a newline? + + + A boolean indicating if the next character should be taken into account + if it's a space character. When nospace is false, the previous character + wasn't whitespace. + @since 2.1.5 + + + the current state + + + Are we parsing HTML? + + + current text (whatever is encountered between tags) + + + + current tagname + + + current attributes + + + The handler to which we are going to forward document content + + + The handler to which we are going to forward comments. + + + Keeps track of the number of tags that are open. + + + the quote character that was used to open the quote. + + + the attribute key. + + + the attribute value. + + + Creates a Simple XML parser object. + Call Go(BufferedReader) immediately after creation. + + + Does the actual parsing. Perform this immediately + after creating the parser object. + + + Gets a state from the stack + @return the previous state + + + Adds a state to the stack. + @param s a state to add to the stack + + + Flushes the text that is currently in the buffer. + The text can be ignored, added to the document + as content or as comment,... depending on the current state. + + + Initialized the tag name and attributes. + + + Sets the name of the tag. + + + processes the tag. + @param start if true we are dealing with a tag that has just been opened; if false we are closing a tag. + + + Throws an exception + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param r the document. The encoding is already resolved. The reader is not closed + @throws IOException on error + + + Parses the XML document firing the events to the handler. + @param doc the document handler + @param in the document. The encoding is deduced from the stream. The stream is not closed + @throws IOException on error + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + + + This {@link NewLineHandler} returns true on the tags p, + blockqouteand br + + @author Balder + + + + Default constructor + + @since 5.0.6 + + + Always returns false. + @author Balder + @since 5.0.6 + + + + A NewLineHandler determines if an encountered tag should result in a new line + in a document. + + @author Balder + @since 5.0.6 + + + @param tag the tag to check if after this one a new line should be in a document + @return true in case a new line should be added. + @since 5.0.6 + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + @param shorthand + @throws IOException + + + Adds a title. + @param title + + + Adds a title. + @param title + + + Adds a description. + @param desc + + + Adds a description. + @param desc + + + Adds a subject. + @param subject + + + Adds a subject. + @param subject array of subjects + + + Adds a single author. + @param author + + + Adds an array of authors. + @param author + + + Adds a single publisher. + @param publisher + + + Adds an array of publishers. + @param publisher + + + + A wrapper for an Encoding to suppress the preamble. + + + + Key for the default language. + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Creates a Properties object that stores languages for use in an XmpSchema + + + Add a language. + + + Process a property. + + + Creates a String that can be used in an XmpSchema. + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + @throws IOException + + + Adds keywords. + @param keywords + + + Adds the producer. + @param producer + + + Adds the version. + @param version + + + StringBuilder to construct an XMP array. + + + An array that is unordered. + + + An array that is ordered. + + + An array with alternatives. + + + the type of array. + + + Creates an XmpArray. + @param type the type of array: UNORDERED, ORDERED or ALTERNATIVE. + + + Returns the String representation of the XmpArray. + @return a String representation + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History�s softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + @param shorthand + @throws IOException + + + Adds the creatortool. + @param creator + + + Adds the creation date. + @param date + + + Adds the modification date. + @param date + + + Adds the meta data date. + @param date + + + Adds the identifier. + @param id + + + Adds the nickname. + @param name + + + An implementation of an XmpSchema. + + + default namespace identifier + + + default namespace uri + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + @throws IOException + + + Reads an XMP stream into an org.w3c.dom.Document objects. + Allows you to replace the contents of a specific tag. + @since 2.1.3 + + + String used to fill the extra space. + + + Processing Instruction required at the start of an XMP stream + @since iText 2.1.6 + + + Processing Instruction required at the end of an XMP stream for XMP streams that can be updated + @since iText 2.1.6 + + + Constructs an XMP reader + @param bytes the XMP content + @throws ExceptionConverter + @throws IOException + @throws SAXException + + + Replaces the content of a tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 2.1.6 the return type has changed from void to boolean + + + Replaces the content of an attribute in the description tag. + @param namespaceURI the URI of the namespace + @param localName the tag name + @param value the new content for the tag + @return true if the content was successfully replaced + @since 5.0.0 the return type has changed from void to boolean + + + Adds a tag. + @param namespaceURI the URI of the namespace + @param parent the tag name of the parent + @param localName the name of the tag to add + @param value the new content for the tag + @return true if the content was successfully added + @since 2.1.6 + + + Sets the text of this node. All the child's node are deleted and a new + child text node is created. + @param domDocument the Document that contains the node + @param n the Node to add the text to + @param value the text to add + + + Writes the document to a byte array. + + + Abstract superclass of the XmpSchemas supported by iText. + + + the namesspace + + + Constructs an XMP schema. + @param xmlns + + + The String representation of the contents. + @return a String representation. + + + Processes a property + @param buf + @param p + + + @return Returns the xmlns. + + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @see java.util.Properties#setProperty(java.lang.String, java.lang.String) + + @param key + @param value + @return the previous property (null if there wasn't one) + + + @param content + @return + + + With this class you can create an Xmp Stream that can be used for adding + Metadata to a PDF Dictionary. Remark that this class doesn't cover the + complete XMP specification. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + A possible charset for the XMP. + + + Creates an XmpWriter. + @param os + @param utfEncoding + @param extraSpace + @throws IOException + + + Creates an XmpWriter. + @param os + @throws IOException + + + @param os + @param info + @throws IOException + + + @param os + @param info + @throws IOException + @since 5.0.1 (generic type in signature) + + + Sets the XMP to read-only + + + @param about The about to set. + + + Adds an rdf:Description. + @param xmlns + @param content + @throws IOException + + + Adds an rdf:Description. + @param s + @throws IOException + + + @param schemaNS The namespace URI for the property. Has the same usage as in getProperty. + @param propName The name of the property. + Has the same usage as in getProperty(). + @param value the value for the property (only leaf properties have a value). + Arrays and non-leaf levels of structs do not have values. + Must be null if the value is not relevant.
+ The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and + byte[] are handled, on all other toString() is called. + @throws XMPException Wraps all errors and exceptions that may occur. +
+ + Simplifies the construction of an array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an ordered array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Simplifies the construction of an alternate array by not requiring that you pre-create an empty array. + The array that is assigned is created automatically if it does not yet exist. Each call to + AppendArrayItem() appends an item to the array. + + @param schemaNS The namespace URI for the array. + @param arrayName The name of the array. May be a general path expression, must not be null or + the empty string. + @param value the value of the array item. + @throws XMPException Wraps all errors and exceptions that may occur. + + + Flushes and closes the XmpWriter. + @throws IOException + + + Flushes and closes the XmpWriter. + @throws IOException + + + External Contributors to the resource (other than the authors). + + + The extent or scope of the resource. + + + The authors of the resource (listed in order of precedence, if significant). + + + Date(s) that something interesting happened to the resource. + + + A textual description of the content of the resource. Multiple values may be present for different languages. + + + The file format used when saving the resource. Tools and applications should set this property to the save format of the data. It may include appropriate qualifiers. + + + Unique identifier of the resource. + + + An unordered array specifying the languages used in the resource. + + + Publishers. + + + Relationships to other documents. + + + Informal rights statement, selected by language. + + + Unique identifier of the work from which this resource was derived. + + + An unordered array of descriptive phrases or keywords that specify the topic of the content of the resource. + + + The title of the document, or the name given to the resource. Typically, it will be a name by which the resource is formally known. + + + A document type; for example, novel, poem, or working paper. + + + Adds a title. + + @param xmpMeta + @param title + + + Sets a title. + + @param xmpMeta + @param title + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a description. + + @param xmpMeta + @param desc + + + Sets a description. + + @param xmpMeta + @param desc + @param genericLang The name of the generic language + @param specificLang The name of the specific language + + + Adds a subject. + + @param xmpMeta + @param subject + + + Sets a subject. + + @param xmpMeta + @param subject array of subjects + + + Adds a single author. + + @param xmpMeta + @param author + + + Sets an array of authors. + + @param xmpMeta + @param author + + + Adds a single publisher. + + @param xmpMeta + @param publisher + + + Sets an array of publishers. + + @param xmpMeta + @param publisher + + + Keywords. + + + The PDF file version (for example: 1.0, 1.3, and so on). + + + The Producer. + + + Adds keywords. + + @param xmpMeta + @param keywords + + + Adds the producer. + + @param xmpMeta + @param producer + + + Adds the version. + + @param xmpMeta + @param version + + + An unordered array specifying properties that were edited outside the authoring application. Each item should contain a single namespace and XPath separated by one ASCII space (U+0020). + + + The base URL for relative URLs in the document content. If this document contains Internet links, and those links are relative, they are relative to this base URL. This property provides a standard way for embedded relative URLs to be interpreted by tools. Web authoring tools should set the value based on their notion of where URLs will be interpreted. + + + The date and time the resource was originally created. + + + The name of the first known tool used to create the resource. If history is present in the metadata, this value should be equivalent to that of xmpMM:History's softwareAgent property. + + + An unordered array of text strings that unambiguously identify the resource within a given context. + + + The date and time that any metadata for this resource was last changed. + + + The date and time the resource was last modified. + + + A short informal name for the resource. + + + An alternative array of thumbnail images for a file, which can differ in characteristics such as size or image encoding. + + + Adds the creatortool. + + @param xmpMeta + @param creator + + + Adds the creation date. + + @param xmpMeta + @param date + + + Adds the modification date. + + @param xmpMeta + @param date + + + Adds the meta data date. + + @param xmpMeta + @param date + + + Sets the identifier. + + @param xmpMeta + @param id + + + Adds the nickname. + + @param xmpMeta + @param name + + + A reference to the original document from which this one is derived. It is a minimal reference; missing components can be assumed to be unchanged. For example, a new version might only need to specify the instance ID and version number of the previous version, or a rendition might only need to specify the instance ID and rendition class of the original. + + + The common identifier for all versions and renditions of a document. + + + An ordered array of high-level user actions that resulted in this resource. It is intended to give human readers a general indication of the steps taken to make the changes from the previous version to this one. The list should be at an abstract level; it is not intended to be an exhaustive keystroke or other detailed history. + + + A reference to the document as it was prior to becoming managed. It is set when a managed document is introduced to an asset management system that does not currently own it. It may or may not include references to different management systems. + + + The name of the asset management system that manages this resource. + + + A URI identifying the managed resource to the asset management system; the presence of this property is the formal indication that this resource is managed. The form and content of this URI is private to the asset management system. + + + A URI that can be used to access information about the managed resource through a web browser. It might require a custom browser plugin. + + + Specifies a particular variant of the asset management system. The format of this property is private to the specific asset management system. + + + The rendition class name for this resource. + + + Can be used to provide additional rendition parameters that are too complex or verbose to encode in xmpMM: RenditionClass. + + + The document version identifier for this resource. + + + The version history associated with this resource. + + + + @author psoares + + + Print writer. + + + Canonical output. + + + Processing XML 1.1 document. + + + Default constructor. + + + Sets whether output is canonical. + + + Sets the output stream for printing. + + + Sets the output writer. + + + Writes the specified node, recursively. + + + Returns a sorted list of attributes. + + + Normalizes and prints the given string. + + + Normalizes and print the given character. + + + This class converts XML into plain text stripping all tags. + + + Buffer that stores all content that is encountered. + + + Static method that parses an XML Stream. + @param is the XML input that needs to be parsed + @return a String obtained by removing all tags from the XML + + + Creates an instance of XML to TXT. + + + @return the String after parsing. + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startElement(java.lang.String, java.util.Map) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endElement(java.lang.String) + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#startDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#endDocument() + + + @see com.itextpdf.text.xml.simpleparser.SimpleXMLDocHandler#text(java.lang.String) + + + Contains utility methods for XML. + @author Balder + @since 5.0.6 + + + + Escapes a string with the appropriated XML codes. + @param s the string to be escaped + @param onlyASCII codes above 127 will always be escaped with &#nn; if true + @return the escaped string + @since 5.0.6 + + + + Unescapes 'lt', 'gt', 'apos', 'quote' and 'amp' to the + corresponding character values. + @param s a string representing a character + @return a character value + + + Checks if a character value should be escaped/unescaped. + @param s the String representation of an integer + @return true if it's OK to escape or unescape this value + + + Checks if a character value should be escaped/unescaped. + @param c a character value + @return true if it's OK to escape or unescape this value + + + Looks for a character in a character array, starting from a certain position + @param needle the character you're looking for + @param haystack the character array + @param start the start position + @return the position where the character was found, or -1 if it wasn't found. + + + Returns the IANA encoding name that is auto-detected from + the bytes specified, with the endian-ness of that encoding where appropriate. + (method found in org.apache.xerces.impl.XMLEntityManager, originally published + by the Apache Software Foundation under the Apache Software License; now being + used in iText under the MPL) + @param b4 The first four bytes of the input. + @return an IANA-encoding string + @since 5.0.6 + + + + A special-version of LIST whitch use zapfdingbats-letters. + + @see com.lowagie.text.List + @author Michael Niedermair and Bruno Lowagie + + + char-number in zapfdingbats + + + Creates a ZapfDingbatsList + + @param zn a char-number + + + Creates a ZapfDingbatsList + + @param zn a char-number + @param symbolIndent indent + + + Sets the dingbat's color. + + @param zapfDingbatColor color for the ZapfDingbat + + + set the char-number + @param zn a char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + + A special-version of LIST whitch use zapfdingbats-numbers (1..10). + + @see com.lowagie.text.List + @version 2003-06-22 + @author Michael Niedermair + + + which type + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + Creates a ZapdDingbatsNumberList + @param type the type of list + @param symbolIndent indent + + + get the type + + @return char-number + + + Adds an Object to the List. + + @param o the object to add. + @return true if adding the object succeeded + + + Objects implementing Indentable allow to set indentation left and right. + + + Sets the indentation on the left side. + + @param indentation the new indentation + + + Sets the indentation on the right side. + + @param indentation the new indentation + + + Objects implementing Spaceable allow setting spacing before and after. + + + Sets the spacing before. + + @param spacing the new spacing + + + Sets the spacing after. + + @param spacing the new spacing + + + @author itextpdf.com + + + + Receive a writer and the document to do certain operations on them. + @param writer the PdfWriter + @param doc the document + @throws DocumentException + + + This class contains version information about iText. + DO NOT CHANGE THE VERSION INFORMATION WITHOUT PERMISSION OF THE COPYRIGHT HOLDERS OF ITEXT. + Changing the version makes it extremely difficult to debug an application. + Also, the nature of open source software is that you honor the copyright of the original creators of the software. + + + String that will indicate if the AGPL version is used. + + + The iText version instance. + + + This String contains the name of the product. + iText is a registered trademark by iText Group NV. + Please don't change this constant. + + + This String contains the version number of this iText release. + For debugging purposes, we request you NOT to change this constant. + + + This String contains the iText version as shown in the producer line. + iText is a product developed by iText Group NV. + iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + The license key. + + + Gets an instance of the iText version that is currently used. + Note that iText Group requests that you retain the iText producer line + in every PDF that is created or manipulated using iText. + + + * Gets the product name. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the product name + + + * Gets the release number. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return the release number + + + * Returns the iText version as shown in the producer line. + * iText is a product developed by iText Group NV. + * iText Group requests that you retain the iText producer line + * in every PDF that is created or manipulated using iText. + * @return iText version + + + Returns a license key if one was provided, or null if not. + @return a license key. + + + Checks if the AGPL version is used. + @return returns true if the AGPL version is used. + + + An element that is not an element, it holds {@link Element#WRITABLE_DIRECT} + as Element type. It implements WriterOperation to do operations on the + {@link PdfWriter} and the {@link Document} that must be done at the time of + the writing. Much like a {@link VerticalPositionMark} but little different. + + @author itextpdf.com + + + + @return {@link Element#WRITABLE_DIRECT} + + + The TYPE_UNKNOWN is an initial type value + + + The min value equivalent to zero. If absolute value less then ZERO it considered as zero. + + + The values of transformation matrix + + + The transformation type + + + Multiply matrix of two AffineTransform objects + @param t1 - the AffineTransform object is a multiplicand + @param t2 - the AffineTransform object is a multiplier + @return an AffineTransform object that is a result of t1 multiplied by matrix t2. + + + + A utility class to perform base64 encoding and decoding as specified + in RFC-1521. See also RFC 1421. + + @version $Revision: 1.4 $ + + + + + marker for invalid bytes + + + + marker for accepted whitespace bytes + + + + marker for an equal symbol + + + + Encode the given byte[]. + + the source string. + the base64-encoded data. + + + + Encode the given byte[]. + + the source string. + a linefeed is added after linefeed characters; + must be dividable by four; 0 means no linefeeds + the base64-encoded data. + + + + Encode the given string. + the source string. + the base64-encoded string. + + + + Decode the given byte[]. + + + the base64-encoded data. + the decoded data. + + + + Decode the given string. + + the base64-encoded string. + the decoded string. + + + + Byte buffer container including length of valid data. + + @since 11.10.2006 + + + + the initial capacity for this buffer + + + a byte array that will be wrapped with ByteBuffer. + + + a byte array that will be wrapped with ByteBuffer. + the length of valid bytes in the array + + + + Loads the stream into a buffer. + + an InputStream + If the stream cannot be read. + + + a byte array that will be wrapped with ByteBuffer. + the offset of the provided buffer. + the length of valid bytes in the array + + + Returns a byte stream that is limited to the valid amount of bytes. + + + Returns the length, that means the number of valid bytes, of the buffer; + the inner byte array might be bigger than that. + + + + Detects the encoding of the byte buffer, stores and returns it. + Only UTF-8, UTF-16LE/BE and UTF-32LE/BE are recognized. + Note: UTF-32 flavors are not supported by Java, the XML-parser will complain. + + Returns the encoding string. + + + the index to retrieve the byte from + Returns a byte from the buffer + + + the index to retrieve a byte as int or char. + Returns a byte from the buffer + + + + Appends a byte to the buffer. + a byte + + + + Appends a byte array or part of to the buffer. + + a byte array + an offset with + + + + + Append a byte array to the buffer + a byte array + + + + Append another buffer to this buffer. + another ByteBuffer + + + + Ensures the requested capacity by increasing the buffer size when the + current length is exceeded. + + requested new buffer length + + + + An OutputStream that counts the written bytes. + + @since 08.11.2006 + + + + + the decorated output stream + + + + the byte counter + + + + Constructor with providing the output stream to decorate. + an OutputStream + + + the bytesWritten + + + + + + + Abstract class for reading filtered character streams. + The abstract class FilterReader itself + provides default methods that pass all requests to + the contained stream. Subclasses of FilterReader + should override some of these methods and may also provide + additional methods and fields. + + @author Mark Reinhold + @since JDK1.1 + + + + Reads a single character. + + @exception IOException If an I/O error occurs + + + Reads characters into a portion of an array. + + @exception IOException If an I/O error occurs + + + ** + + + + @since 22.08.2006 + + + + + the result of the escaping sequence + + + + count the digits of the sequence + + + + the state of the automaton + + + + + + Processes numeric escaped chars to find out if they are a control character. + a char + Returns the char directly or as replacement for the escaped sequence. + + + + Converts between ISO 8601 Strings and Calendar with millisecond resolution. + + @since 16.02.2006 + + + + + a date string that is ISO 8601 conform. + an existing XMPDateTime to set with the parsed date + Returns an XMPDateTime-object containing the ISO8601-date. + Is thrown when the string is non-conform. + + + + + @since 22.08.2006 + + + + initializes the parser container + + + Returns the length of the input. + + + Returns whether there are more chars to come. + + + index of char + Returns char at a certain index. + + + Returns the current char or 0x0000 if there are no more chars. + + + + Skips the next char. + + + + Returns the current position. + + + + Parses a integer from the source and sets the pointer after it. + Error message to put in the exception if no number can be found + the max value of the number to return + Returns the parsed integer. + Thrown if no integer can be found. + + + + @since 12.10.2006 + + + + + Private constructor + + + + + + Converts a Cp1252 char (contains all Latin-1 chars above 0x80) into a + UTF-8 byte sequence. The bytes 0x81, 0x8D, 0x8F, 0x90, and 0x9D are + formally undefined by Windows 1252 and therefore replaced by a space + (0x20). + + + an Cp1252 / Latin-1 byte + Returns a byte array containing a UTF-8 byte sequence. + + + + @since 11.08.2006 + + + + + private constructor + + + + + Asserts that an array name is set. + an array name + Array name is null or empty + + + + Asserts that a property name is set. + a property name or path + Property name is null or empty + + + + Asserts that a schema namespace is set. + a schema namespace + Schema is null or empty + + + + Asserts that a prefix is set. + a prefix + Prefix is null or empty + + + + Asserts that a specific language is set. + a specific lang + Specific language is null or empty + + + + Asserts that a struct name is set. + a struct name + Struct name is null or empty + + + + Asserts that any string parameter is set. + any string parameter + Thrown if the parameter is null or has length 0. + + + + Asserts that the xmp object is of this implemention + (). + the XMP object + A wrong implentaion is used. + + + + Parser for "normal" XML serialisation of RDF. + + @since 14.07.2006 + + + + + Start of coreSyntaxTerms. + + + + End of coreSyntaxTerms + + + + Start of additions for syntax Terms. + + + + End of of additions for syntaxTerms. + + + + Start of oldTerms. + + + + End of oldTerms. + + + + ! Yes, the syntax terms include the core terms. + + + + this prefix is used for default namespaces + + + + The main parsing method. The XML tree is walked through from the root node and and XMP tree + is created. This is a raw parse, the normalisation of the XMP tree happens outside. + + the XML root node + Returns an XMP metadata object (not normalized) + Occurs if the parsing fails for any reason. + + + + Each of these parsing methods is responsible for recognizing an RDF + syntax production and adding the appropriate structure to the XMP tree. + They simply return for success, failures will throw an exception. + + the xmp metadata object that is generated + the top-level xml node + thown on parsing errors + + + + + 7.2.5 nodeElementURIs + anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + A node element URI is rdf:Description or anything else that is not an RDF + term. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + + 7.2.7 propertyAttributeURIs + anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + + 7.2.11 nodeElement + start-element ( URI == nodeElementURIs, + attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) + propertyEltList + end-element() + + Process the attribute list for an RDF node element. A property attribute URI is + anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, + as are rdf:about attributes on inner nodes. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.13 propertyEltList + ws* ( propertyElt ws* )* + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.14 propertyElt + + resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | + parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | + parseTypeOtherPropertyElt | emptyPropertyElt + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + 7.2.16 literalPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + 7.2.18 parseTypeResourcePropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( + URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + 7.2.21 emptyPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) + end-element() + + The various property element forms are not distinguished by the XML element name, + but by their attributes for the most part. The exceptions are resourcePropertyElt and + literalPropertyElt. They are distinguished by their XML element content. + + NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can + appear in many of these. We have to allow for it in the attibute counts below. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.15 resourcePropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) + ws* nodeElement ws* + end-element() + + This handles structs using an rdf:Description node, + arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified + properties written with rdf:Description and rdf:value. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.16 literalPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, datatypeAttr?) ) + text() + end-element() + + Add a leaf node with the text value and qualifiers for the attributes. + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.17 parseTypeLiteralPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseLiteral ) ) + literal + end-element() + + thown on parsing errors + + + + 7.2.18 parseTypeResourcePropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseResource ) ) + propertyEltList + end-element() + + Add a new struct node with a qualifier for the possible rdf:ID attribute. + Then process the XML child nodes to get the struct fields. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Flag if the node is a top-level node + thown on parsing errors + + + + 7.2.19 parseTypeCollectionPropertyElt + start-element ( URI == propertyElementURIs, + attributes == set ( idAttr?, parseCollection ) ) + nodeElementList + end-element() + + thown on parsing errors + + + + 7.2.20 parseTypeOtherPropertyElt + start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) + propertyEltList + end-element() + + thown on parsing errors + + + + + Adds a child node. + + the xmp metadata object that is generated + the parent xmp node + the currently processed XML node + Node value + Flag if the node is a top-level node + Returns the newly created child node. + thown on parsing errors + + + + Adds a qualifier node. + + the parent xmp node + the name of the qualifier which has to be + QName including the default prefix + the value of the qualifier + Returns the newly created child node. + thown on parsing errors + + + + The parent is an RDF pseudo-struct containing an rdf:value field. Fix the + XMP data model. The rdf:value node must be the first child, the other + children are qualifiers. The form, value, and children of the rdf:value + node are the real ones. The rdf:value node's qualifiers must be added to + the others. + + the parent xmp node + thown on parsing errors + + + + Checks if the node is a white space. + an XML-node + Returns whether the node is a whitespace node, + i.e. a text node that contains only whitespaces. + + + + 7.2.6 propertyElementURIs + anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms ) + + the term id + Return true if the term is a property element name. + + + + + + Determines the ID for a certain RDF Term. + Arranged to hopefully minimize the parse time for large XMP. + + an XML node + Returns the term ID. + + + + A character-stream reader that allows characters to be pushed back into the + stream. + + @author Mark Reinhold + @since JDK1.1 + + + + + Pushback buffer + + + + Current position in buffer + + + + + Creates a new pushback reader with a one-character pushback buffer. + + The reader from which characters will be read + + + + Checks to make sure that the stream has not been closed. + + + + Reads a single character. + + The character read, or -1 if the end of the stream has been + reached + + If an I/O error occurs + + + + Reads characters into a portion of an array. + + Destination buffer + Offset at which to start writing characters + Maximum number of characters to read + + The number of characters read, or -1 if the end of the + stream has been reached + + If an I/O error occurs + + + + Pushes back a single character by copying it to the front of the + pushback buffer. After this method returns, the next character to be read + will have the value (char)c. + + The int value representing a character to be pushed back + + If the pushback buffer is full, + or if some other I/O error occurs + + + + Pushes back a portion of an array of characters by copying it to the + front of the pushback buffer. After this method returns, the next + character to be read will have the value cbuf[off], the + character after that will have the value cbuf[off+1], and + so forth. + + Character array + Offset of first character to push back + Number of characters to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Pushes back an array of characters by copying it to the front of the + pushback buffer. After this method returns, the next character to be + read will have the value cbuf[0], the character after that + will have the value cbuf[1], and so forth. + + Character array to push back + + If there is insufficient room in the pushback + buffer, or if some other I/O error occurs + + + + Closes the stream and releases any system resources associated with + it. Once the stream has been closed, further read(), + unread(), ready(), or skip() invocations will throw an IOException. + Closing a previously closed stream has no effect. + + If an I/O error occurs + + + + @since 09.11.2006 + + + + + XML localname + + + + XML namespace prefix + + + + Splits a qname into prefix and localname. + a QName + + + + Constructor that initializes the fields + the prefix + the name + + + the localName + + + the prefix + + + Returns whether the QName has a prefix. + + + + Utility functions for the XMPToolkit implementation. + + @since 06.06.2006 + + + + + segments of a UUID + + + + length of a UUID + + + + + + init char tables + + + + Private constructor + + + + + + + + a schema namespace + + an XMP Property + Returns true if the property is defined as "Internal + Property", see XMP Specification. + + + + Check some requirements for an UUID: +
    +
  • Length of the UUID is 32
  • +
  • The Delimiter count is 4 and all the 4 delimiter are on their right + position (8,13,18,23)
  • +
+ +
+ uuid to test + true - this is a well formed UUID, false - UUID has not the expected format +
+ + + + Checks if the value is a legal "unqualified" XML name, as + defined in the XML Namespaces proposed recommendation. + These are XML names, except that they must not contain a colon. + the value to check + Returns true if the name is a valid "unqualified" XML name. + + + a char + Returns true if the char is an ASCII control char. + + + + + Replaces the ASCII control chars with a space. + + + a node value + Returns the cleaned up value + + + + Simple check if a character is a valid XML start name char. + All characters according to the XML Spec 1.1 are accepted: + http://www.w3.org/TR/xml11/#NT-NameStartChar + + a character + Returns true if the character is a valid first char of an XML name. + + + + Simple check if a character is a valid XML name char + (every char except the first one), according to the XML Spec 1.1: + http://www.w3.org/TR/xml11/#NT-NameChar + + a character + Returns true if the character is a valid char of an XML name. + + + + Initializes the char tables for the chars 0x00-0xFF for later use, + according to the XML 1.1 specification + http://www.w3.org/TR/xml11 + + + + + The implementation of XMPDateTime. Internally a calendar is used + plus an additional nano seconds field, because Calendar supports only milli + seconds. The nanoSeconds convers only the resolution beyond a milli second. + + @since 16.02.2006 + + + + + The nano seconds take micro and nano seconds, while the milli seconds are in the calendar. + + + + + Use NO time zone as default + + + + Creates an XMPDateTime-instance with the current time in the default time + zone. + + + + + Creates an XMPDateTime-instance from a calendar. + + a Calendar + + + + Creates an XMPDateTime-instance from + a Date and a TimeZone. + + a date describing an absolute point in time + a TimeZone how to interpret the date + + + + Creates an XMPDateTime-instance from an ISO 8601 string. + + an ISO 8601 string + If the string is a non-conform ISO 8601 string, an exception is thrown + + + + + + + + + + + + + + + + + Returns the ISO string representation. + + + + The XMPIterator implementation. + Iterates the XMP Tree according to a set of options. + During the iteration the XMPMeta-object must not be changed. + Calls to skipSubtree() / skipSiblings() will affect the iteration. + + @since 29.06.2006 + + + + + the node iterator doing the work + + + + stores the iterator options + + + + the base namespace of the property path, will be changed during the iteration + + + + flag to indicate that skipSiblings() has been called. + + + + flag to indicate that skipSiblings() has been called. + + + + Constructor with optionsl initial values. If propName is provided, + schemaNs has also be provided. + the iterated metadata object. + the iteration is reduced to this schema (optional) + the iteration is redurce to this property within the schemaNs + advanced iteration options, see + If the node defined by the paramters is not existing. + + + Exposes the options for inner class. + + + Exposes the options for inner class. + + + + + + + + The XMPIterator implementation. + It first returns the node itself, then recursivly the children and qualifier of the node. + + @since 29.06.2006 + + + + + iteration state + + + + iteration state + + + + iteration state + + + + the recursively accumulated path + + + + the currently visited node + + + + the iterator that goes through the children and qualifier list + + + + index of node with parent, only interesting for arrays + + + + the cached PropertyInfo to return + + + + the state of the iteration + + + + the iterator for each child + + + + Constructor for the node iterator. + the currently visited node + the accumulated path of the node + the index within the parent node (only for arrays) + + + the childrenIterator + + + Returns the returnProperty. + + + + + Sets the returnProperty as next item or recurses into hasNext(). + Returns if there is a next item to return. + + + + Handles the iteration of the children or qualfier + an iterator + Returns if there are more elements available. + + + the node that will be added to the path. + the path up to this node. + the current array index if an arrey is traversed + Returns the updated path. + + + + Creates a property info object from an XMPNode. + an XMPNode + the base namespace to report + the full property path + Returns a XMPProperty-object that serves representation of the node. + + + + This iterator is derived from the default NodeIterator, + and is only used for the option . + + @since 02.10.2006 + + + + + Constructor + the node which children shall be iterated. + the full path of the former node without the leaf node. + + + + + Implementation for . + + @since 17.02.2006 + + + + + Property values are Strings by default + + + + root of the metadata tree + + + + the xpacket processing instructions content + + + + Constructor for an empty metadata object. + + + + + Constructor for a cloned metadata tree. + + + an prefilled metadata tree which fulfills all + XMPNode contracts. + + + Returns the root node of the XMP tree. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Locate or create the item node and set the value. Note the index + parameter is one-based! The index can be in the range [1..size + 1] or + "last()", normalize it and check the insert flags. The order of the + normalization checks is important. If the array is empty we end up with + an index and location to set item size + 1. + + an array node + the index where to insert the item + the item value + the options for the new item + insert oder overwrite at index position? + + + + + The internals for SetProperty() and related calls, used after the node is + found or created. + + + the newly created node + + the node value, can be null + + options for the new node, must not be null. + flag if the existing value is to be overwritten + thrown if options and value do not correspond + + + + Evaluates a raw node value to the given value type, apply special + conversions for defined types in XMP. + + + an int indicating the value type + + the node containing the value + Returns a literal value for the node. + + + + + This class replaces the ExpatAdapter.cpp and does the + XML-parsing and fixes the prefix. After the parsing several normalisations + are applied to the XMPTree. + + @since 01.02.2006 + + + + + Hidden constructor, initialises the SAX parser handler. + + + + + Parses the input source into an XMP metadata object, including + de-aliasing and normalisation. + + the input can be an InputStream, a String or + a byte buffer containing the XMP packet. + the parse options + Returns the resulting XMP metadata object + Thrown if parsing or normalisation fails. + + + + + Parses XML from an , + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + an InputStream + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a byte buffer, + fixing the encoding (Latin-1 to UTF-8) and illegal control character optionally. + + a byte buffer containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + Parses XML from a , + fixing the illegal control character optionally. + + a String containing the XMP packet + the parsing options + Returns an XML DOM-Document. + Thrown when the parsing fails. + + + + + A node in the internally XMP tree, which can be a schema node, a property node, an array node, + an array item, a struct node or a qualifier node (without '?'). + + Possible improvements: + + 1. The kind Node of node might be better represented by a class-hierarchy of different nodes. + 2. The array type should be an enum + 3. isImplicitNode should be removed completely and replaced by return values of fi. + 4. hasLanguage, hasType should be automatically maintained by XMPNode + + @since 21.02.2006 + + + + + flag if the node is an alias + + + + list of child nodes, lazy initialized + + + + flag if the node has aliases + + + + flag if the node has an "rdf:value" child node. + + + + flag if the node is implicitly created + + + + name of the node, contains different information depending of the node kind + + + + options describing the kind of the node + + + + link to the parent node + + + + list of qualifier of the node, lazy initialized + + + + value of the node, contains different information depending of the node kind + + + + Creates an XMPNode with initial values. + + the name of the node + the value of the node + the options of the node + + + + Constructor for the node without value. + + the name of the node + the options of the node + + + Returns the parent node. + + + Returns the number of children without neccessarily creating a list. + + + Returns the number of qualifier without neccessarily creating a list. + + + Returns the name. + + + Returns the value. + + + Returns the options. + + + Returns the implicit flag + + + Returns if the node contains aliases (applies only to schema nodes) + + + Returns if the node contains aliases (applies only to schema nodes) + + + the hasValueChild + + + Returns whether this node is a language qualifier. + + + Returns whether this node is a type qualifier. + + + + Note: This method should always be called when accessing 'children' to be sure + that its initialized. + Returns list of children that is lazy initialized. + + + Returns a read-only copy of child nodes list. + + + Returns list of qualifier that is lazy initialized. + + + + + + Resets the node. + + + + an index [1..size] + Returns the child with the requested index. + + + + Adds a node as child to this node. + an XMPNode + + + + + Adds a node as child to this node. + the index of the node before which the new one is inserted. + Note: The node children are indexed from [1..size]! + An index of size + 1 appends a node. + an XMPNode + + + + + Replaces a node with another one. + the index of the node that will be replaced. + Note: The node children are indexed from [1..size]! + the replacement XMPNode + + + + Removes a child at the requested index. + the index to remove [1..size] + + + + Removes a child node. + If its a schema node and doesn't have any children anymore, its deleted. + + the child node to delete. + + + + Removes the children list if this node has no children anymore; + checks if the provided node is a schema node and doesn't have any children anymore, + its deleted. + + + + + Removes all children from the node. + + + + child node name to look for + Returns an XMPNode if node has been found, null otherwise. + + + an index [1..size] + Returns the qualifier with the requested index. + + + + Appends a qualifier to the qualifier list and sets respective options. + a qualifier node. + + + + + Removes one qualifier node and fixes the options. + qualifier to remove + + + + Removes all qualifiers from the node and sets the options appropriate. + + + + qualifier node name to look for + Returns a qualifier XMPNode if node has been found, + null otherwise. + + + Returns whether the node has children. + + + Returns an iterator for the children. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + Returns whether the node has qualifier attached. + + + Returns an iterator for the qualifier. + Note: take care to use it.remove(), as the flag are not adjusted in that case. + + + + Performs a deep clone of the complete subtree (children and + qualifier )into and add it to the destination node. + + the node to add the cloned subtree + + + + Renders this node and the tree unter this node in a human readable form. + Flag is qualifier and child nodes shall be rendered too + Returns a multiline string containing the dump. + + + + + Dumps this node and its qualifier and children recursively. + Note: It creats empty options on every node. + + the buffer to append the dump. + Flag is qualifier and child nodes shall be rendered too + the current indent level. + the index within the parent node (important for arrays) + + + + Internal find. + the list to search in + the search expression + Returns the found node or nulls. + + + + Checks that a node name is not existing on the same level, except for array items. + the node name to check + Thrown if a node with the same name is existing. + + + + Checks that a qualifier name is not existing on the same level. + the new qualifier name + Thrown if a node with the same name is existing. + + + + Utilities for XMPNode. + + @since Aug 28, 2006 + + + + + Private Constructor + + + + + Find or create a schema node if createNodes is false and + + the root of the xmp tree. + a namespace + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a schema node if createNodes is true. + + the root of the xmp tree. + a namespace + If a prefix is suggested, the namespace is allowed to be registered. + a flag indicating if the node shall be created if not found. + Note: The namespace must be registered prior to this call. + + Returns the schema node if found, null otherwise. + Note: If createNodes is true, it is always + returned a valid node. + An exception is only thrown if an error occurred, not if a + node was not found. + + + + Find or create a child node under a given parent node. If the parent node is no + Returns the found or created child node. + + + the parent node + + the node name to find + + flag, if new nodes shall be created. + Returns the found or created node or null. + Thrown if + + + + Follow an expanded path expression to find or create a node. + + the node to begin the search. + the complete xpath + flag if nodes shall be created + (when called by setProperty()) + the options for the created leaf nodes (only when + createNodes == true). + Returns the node if found or created or null. + An exception is only thrown if an error occurred, + not if a node was not found. + + + + Deletes the the given node and its children from its parent. + Takes care about adjusting the flags. + the top-most node to delete. + + + + This is setting the value of a leaf node. + + an XMPNode + a value + + + + Verifies the PropertyOptions for consistancy and updates them as needed. + If options are null they are created with default values. + + the PropertyOptions + the node value to set + Returns the updated options. + If the options are not consistant. + + + + Converts the node value to String, apply special conversions for defined + types in XMP. + + + the node value to set + Returns the String representation of the node value. + + + + + Find or create a qualifier node under a given parent node. Returns a pointer to the + qualifier node, and optionally an iterator for the node's position in + the parent's vector of qualifiers. The iterator is unchanged if no qualifier node (null) + is returned. + Note: On entry, the qualName parameter must not have the leading '?' from the + XmpPath step. + + the parent XMPNode + the qualifier name + flag if nodes shall be created + Returns the qualifier node if found or created, null otherwise. + + + + an array node + the segment containing the array index + flag if new nodes are allowed to be created. + Returns the index or index = -1 if not found + Throws Exceptions + + + + Searches for a field selector in a node: + [fieldName="value] - an element in an array of structs, chosen by a field value. + No implicit nodes are created by field selectors. + + + + + Returns the index of the field if found, otherwise -1. + + + + + Searches for a qualifier selector in a node: + [?qualName="value"] - an element in an array, chosen by a qualifier value. + No implicit nodes are created for qualifier selectors, + except for an alias to an x-default item. + + an array node + the qualifier name + the qualifier value + in case the qual selector results from an alias, + an x-default node is created if there has not been one. + Returns the index of th + + + + + Make sure the x-default item is first. Touch up "single value" + arrays that have a default plus one real language. This case should have + the same value for both items. Older Adobe apps were hardwired to only + use the "x-default" item, so we copy that value to the other + item. + + + an alt text array node + + + + See if an array is an alt-text array. If so, make sure the x-default item + is first. + + + the array node to check if its an alt-text array + + + + Appends a language item to an alt text array. + + the language array + the language of the item + the content of the item + Thrown if a duplicate property is added + + + + + Looks for the appropriate language item in a text alternative array.item + + + an array node + + the requested language + Returns the index if the language has been found, -1 otherwise. + + + + + @since Aug 18, 2006 + + + + + caches the correct dc-property array forms + + + + init char tables + + + + Hidden constructor + + + + + Normalizes a raw parsed XMPMeta-Object + the raw metadata object + the parsing options + Returns the normalized metadata object + Collects all severe processing errors. + + + + Tweak old XMP: Move an instance ID from rdf:about to the + xmpMM:InstanceID property. An old instance ID usually looks + like "uuid:bac965c4-9d87-11d9-9a30-000d936b79c4", plus InDesign + 3.0 wrote them like "bac965c4-9d87-11d9-9a30-000d936b79c4". If + the name looks like a UUID simply move it to xmpMM:InstanceID, + don't worry about any existing xmpMM:InstanceID. Both will + only be present when a newer file with the xmpMM:InstanceID + property is updated by an old app that uses rdf:about. + + the root of the metadata tree + Thrown if tweaking fails. + + + + Visit all schemas to do general fixes and handle special cases. + + the metadata object implementation + Thrown if the normalisation fails. + + + + + Make sure that the array is well-formed AltText. Each item must be simple + and have an "xml:lang" qualifier. If repairs are needed, keep simple + non-empty items by adding the "xml:lang" with value "x-repair". + the property node of the array to repair. + Forwards unexpected exceptions. + + + + Visit all of the top level nodes looking for aliases. If there is + no base, transplant the alias subtree. If there is a base and strict + aliasing is on, make sure the alias and base subtrees match. + + the root of the metadata tree + th parsing options + Forwards XMP errors + + + + Moves an alias node of array form to another schema into an array + the node to be moved + the base array for the array item + Forwards XMP errors + + + + Fixes the GPS Timestamp in EXIF. + the EXIF schema node + Thrown if the date conversion fails. + + + + Remove all empty schemas from the metadata tree that were generated during the rdf parsing. + the root of the metadata tree + + + + The outermost call is special. The names almost certainly differ. The + qualifiers (and hence options) will differ for an alias to the x-default + item of a langAlt array. + + the alias node + the base node of the alias + marks the outer call of the recursion + Forwards XMP errors + + + + The initial support for WAV files mapped a legacy ID3 audio copyright + into a new xmpDM:copyright property. This is special case code to migrate + that into dc:rights['x-default']. The rules: + +
+            1. If there is no dc:rights array, or an empty array -
+               Create one with dc:rights['x-default'] set from double linefeed and xmpDM:copyright.
+            
+            2. If there is a dc:rights array but it has no x-default item -
+               Create an x-default item as a copy of the first item then apply rule #3.
+            
+            3. If there is a dc:rights array with an x-default item, 
+               Look for a double linefeed in the value.
+                A. If no double linefeed, compare the x-default value to the xmpDM:copyright value.
+                    A1. If they match then leave the x-default value alone.
+                    A2. Otherwise, append a double linefeed and 
+                        the xmpDM:copyright value to the x-default value.
+                B. If there is a double linefeed, compare the trailing text to the xmpDM:copyright value.
+                    B1. If they match then leave the x-default value alone.
+                    B2. Otherwise, replace the trailing x-default text with the xmpDM:copyright value.
+            
+            4. In all cases, delete the xmpDM:copyright property.
+            
+
+ the metadata object + the "dm:copyright"-property +
+ + + Initializes the map that contains the known arrays, that are fixed by + . + + + + + The schema registry handles the namespaces, aliases and global options for the XMP Toolkit. There + is only one single instance used by the toolkit. + + @since 27.01.2006 + + + + + a map of all registered aliases. + The map is a relationship from a qname to an XMPAliasInfo-object. + + + + + a map from a namespace URI to its registered prefix + + + + a map from a prefix to the associated namespace URI + + + + The pattern that must not be contained in simple properties + + + + Performs the initialisation of the registry with the default namespaces, aliases and global + options. + + + + + + + + + + + + + + + Register the standard namespaces of schemas and types that are included in the XMP + Specification and some other Adobe private namespaces. + Note: This method is not lock because only called by the constructor. + + Forwards processing exceptions + + + + + Register the standard aliases. + Note: This method is not lock because only called by the constructor. + + If the registrations of at least one alias fails. + + + + + Serializes the XMPMeta-object to an OutputStream according to the + SerializeOptions. + + @since 11.07.2006 + + + + + Static method to Serialize the metadata object. For each serialisation, a new XMPSerializer + instance is created, either XMPSerializerRDF or XMPSerializerPlain so thats its possible to + serialialize the same XMPMeta objects in two threads. + + a metadata implementation object + the output stream to Serialize to + serialization options, can be null for default. + + + + + Serializes an XMPMeta-object as RDF into a string. + Note: Encoding is forced to UTF-16 when serializing to a + string to ensure the correctness of "exact packet size". + + a metadata implementation object + Options to control the serialization (see + ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata implementation object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes the XMPMeta-object using the standard RDF serialization format. + The output is written to an OutputStream + according to the SerializeOptions. + + @since 11.07.2006 + + + + + default padding + + + + The w/r is missing inbetween + + + + a set of all rdf attribute qualifier + + + + the stored serialization options + + + + the output stream to Serialize to + + + + the padding in the XMP Packet, or the length of the complete packet in + case of option exactPacketLength. + + + + + the size of one unicode char, for UTF-8 set to 1 + (Note: only valid for ASCII chars lower than 0x80), + set to 2 in case of UTF-16 + + + + + this writer is used to do the actual serialization + + + + the metadata object to be serialized. + + + + The actual serialization. + + the metadata object to be serialized + outputStream the output stream to Serialize to + the serialization options + + If case of wrong options or any other serialization error. + + + + Calculates the padding according to the options and write it to the stream. + the length of the tail string + thrown if packet size is to small to fit the padding + forwards writer errors + + + + Checks if the supplied options are consistent. + Thrown if options are conflicting + + + + Writes the (optional) packet header and the outer rdf-tags. + Returns the packet end processing instraction to be written after the padding. + Forwarded writer exceptions. + + + + + Serializes the metadata in pretty-printed manner. + indent level + Forwarded writer exceptions + + + + + + + + Serializes the metadata in compact manner. + indent level to start with + Forwarded writer exceptions + + + + + Write each of the parent's simple unqualified properties as an attribute. Returns true if all + of the properties are written as attributes. + + the parent property node + the current indent level + Returns true if all properties can be rendered as RDF attribute. + + + + + Recursively handles the "value" for a node that must be written as an RDF + property element. It does not matter if it is a top level property, a + field of a struct, or an item of an array. The indent is that for the + property element. The patterns bwlow ignore attribute qualifiers such as + xml:lang, they don't affect the output form. + +
+ +
+             	<ns:UnqualifiedStructProperty-1
+             		... The fields as attributes, if all are simple and unqualified
+             	/>
+             
+             	<ns:UnqualifiedStructProperty-2 rdf:parseType="Resource">
+             		... The fields as elements, if none are simple and unqualified
+             	</ns:UnqualifiedStructProperty-2>
+             
+             	<ns:UnqualifiedStructProperty-3>
+             		<rdf:Description
+             			... The simple and unqualified fields as attributes
+             		>
+             			... The compound or qualified fields as elements
+             		</rdf:Description>
+             	</ns:UnqualifiedStructProperty-3>
+             
+             	<ns:UnqualifiedArrayProperty>
+             		<rdf:Bag> or Seq or Alt
+             			... Array items as rdf:li elements, same forms as top level properties
+             		</rdf:Bag>
+             	</ns:UnqualifiedArrayProperty>
+             
+             	<ns:QualifiedProperty rdf:parseType="Resource">
+             		<rdf:value> ... Property "value" 
+             			following the unqualified forms ... </rdf:value>
+             		... Qualifiers looking like named struct fields
+             	</ns:QualifiedProperty>
+            
+ +
+ + *** Consider numbered array items, but has compatibility problems. *** + Consider qualified form with rdf:Description and attributes. +
+ the parent node + the current indent level + Forwards writer exceptions + If qualifier and element fields are mixed. +
+ + + Serializes a simple property. + + an XMPNode + Returns an array containing the flags emitEndTag and indentEndTag. + Forwards the writer exceptions. + + + + Serializes an array property. + + an XMPNode + the current indent level + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes a struct property. + + an XMPNode + the current indent level + Flag if the element has resource qualifier + Returns true if an end flag shall be emitted. + Forwards the writer exceptions. + If qualifier and element fields are mixed. + + + + Serializes the general qualifier. + the root node of the subtree + the current indent level + Forwards all writer exceptions. + If qualifier and element fields are mixed. + + + + + Writes all used namespaces of the subtree in node to the output. + The subtree is recursivly traversed. + the root node of the subtree + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Writes one namespace declaration to the output. + a namespace prefix (without colon) or a complete qname (when namespace == null) + the a namespace + a set containing currently used prefixes + the current indent level + Forwards all writer exceptions. + + + + Start the outer rdf:Description element, including all needed xmlns attributes. + Leave the element open so that the compact form can add property attributes. + + If the writing to + + + + + Recursively handles the "value" for a node. It does not matter if it is a + top level property, a field of a struct, or an item of an array. The + indent is that for the property element. An xml:lang qualifier is written + as an attribute of the property start tag, not by itself forcing the + qualified property form. The patterns below mostly ignore attribute + qualifiers like xml:lang. Except for the one struct case, attribute + qualifiers don't affect the output form. + +
+ +
+            	<ns:UnqualifiedSimpleProperty>value</ns:UnqualifiedSimpleProperty>
+            
+            	<ns:UnqualifiedStructProperty> (If no rdf:resource qualifier)
+            		<rdf:Description>
+            			... Fields, same forms as top level properties
+            		</rdf:Description>
+            	</ns:UnqualifiedStructProperty>
+            
+            	<ns:ResourceStructProperty rdf:resource="URI"
+            		... Fields as attributes
+            	>
+            
+            	<ns:UnqualifiedArrayProperty>
+            		<rdf:Bag> or Seq or Alt
+            			... Array items as rdf:li elements, same forms as top level properties
+            		</rdf:Bag>
+            	</ns:UnqualifiedArrayProperty>
+            
+            	<ns:QualifiedProperty>
+            		<rdf:Description>
+            			<rdf:value> ... Property "value" following the unqualified 
+            				forms ... </rdf:value>
+            			... Qualifiers looking like named struct fields
+            		</rdf:Description>
+            	</ns:QualifiedProperty>
+            
+ +
+
+ the property node + property shall be rendered as attribute rather than tag + use canonical form with inner description tag or + the compact form with rdf:ParseType="resource" attribute. + the current indent level + Forwards all writer exceptions. + If "rdf:resource" and general qualifiers are mixed. +
+ + + Writes the array start and end tags. + + an array node + flag if its the start or end tag + the current indent level + forwards writer exceptions + + + + Serializes the node value in XML encoding. Its used for tag bodies and + attributes. Note: The attribute is always limited by quotes, + thats why &apos; is never serialized. Note: + Control chars are written unescaped, but if the user uses others than tab, LF + and CR the resulting XML will become invalid. + + the value of the node + flag if value is an attribute value + + + + + + Writes indents and automatically includes the baseindend from the options. + number of indents to write + forwards exception + + + + Writes a char to the output. + a char + forwards writer exceptions + + + + Writes a String to the output. + a String + forwards writer exceptions + + + + Writes an amount of chars, mostly spaces + number of chars + a char + + + + + Writes a newline according to the options. + Forwards exception + + + + @since 11.08.2006 + + + + + + + + + + Private constructor, as + + + + + + see {@link XMPUtils#separateArrayItems(XMPMeta, String, String, String, + PropertyOptions, boolean)} + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + + Option flags to control the separation. + + Flag if commas shall be preserved + + + Forwards the Exceptions from the metadata processing + + + + Utility to find or create the array used by separateArrayItems(). + a the namespace fo the array + the name of the array + the options for the array if newly created + the xmp object + Returns the array node. + Forwards exceptions + + + + + + Remove all schema children according to the flag + doAllProperties. Empty schemas are automatically remove + by XMPNode + + + a schema node + + flag if all properties or only externals shall be removed. + Returns true if the schema is empty after the operation. + + + + + Compares two nodes including its children and qualifier. + an XMPNode + an XMPNode + Returns true if the nodes are equal, false otherwise. + Forwards exceptions to the calling method. + + + + Make sure the separator is OK. It must be one semicolon surrounded by + zero or more spaces. Any of the recognized semicolons or spaces are + allowed. + + + + + + + Make sure the open and close quotes are a legitimate pair and return the + correct closing quote or an exception. + + + opened and closing quote in a string + + the open quote + Returns a corresponding closing quote. + + + + + Classifies the character into normal chars, spaces, semicola, quotes, + control chars. + + + a char + Return the character kind. + + + + the open quote char + Returns the matching closing quote for an open quote. + + + + Add quotes to the item. + + + the array item + + the open quote character + + the closing quote character + + flag if commas are allowed + Returns the value in quotes. + + + a character + the opening quote char + the closing quote char + Return it the character is a surrounding quote. + + + a character + the opening quote char + the closing quote char + Returns true if the character is a closing quote. + + + + Representates an XMP XmpPath with segment accessor methods. + + @since 28.02.2006 + + + + + Marks a struct field step , also for top level nodes (schema "fields"). + + + + Marks a qualifier step. + Note: Order is significant to separate struct/qual from array kinds! + + + + + Marks an array index step + + + + stores the segments of an XmpPath + + + + Append a path segment + + the segment to add + + + the index of the segment to return + Returns a path segment. + + + Returns the size of the xmp path. + + + + Parser for XMP XPaths. + + @since 01.03.2006 + + + Private constructor + + + + @param path + @param pos + @throws XmpException + + + Parses a struct segment + @param pos the current position in the path + @return Retusn the segment or an errror + @throws XmpException If the sement is empty + + + Parses an array index segment. + + @param pos the xmp path + @return Returns the segment or an error + @throws XmpException thrown on xmp path errors + + + + Parses the root node of an XMP Path, checks if namespace and prefix fit together + and resolve the property to the base property if it is an alias. + @param schemaNs the root namespace + @param pos the parsing position helper + @param expandedXPath the path to contribute to + @throws XmpException If the path is not valid. + + + Verifies whether the qualifier name is not XML conformant or the + namespace prefix has not been registered. + + @param qualName + a qualifier name + @throws XmpException + If the name is not conformant + + + Verify if an XML name is conformant. + + @param name + an XML name + @throws XmpException + When the name is not XML conformant + + + + This objects contains all needed char positions to parse. + + + the complete path + the end of a segment name + + + the begin of a step + + + the end of a step + + + + A segment of a parsed XmpPath. + + @since 23.06.2006 + + + + + flag if segment is an alias + + + + alias form if applicable + + + + kind of the path segment + + + + name of the path segment + + + + Constructor with initial values. + + the name of the segment + + + + Constructor with initial values. + + the name of the segment + the kind of the segment + + + Returns the kind. + + + Returns the name. + + + the flag to set + + + Returns the aliasForm if this segment has been created by an alias. + + + + + Returns the year, can be negative. + + + Returns The month in the range 1..12. + + + Returns the day of the month in the range 1..31. + + + Returns hour - The hour in the range 0..23. + + + Returns the minute in the range 0..59. + + + Returns the second in the range 0..59. + + + Returns milli-, micro- and nano seconds. + Nanoseconds within a second, often left as zero? + + + Returns the time zone. + + + + Returns the ISO 8601 string representation of the date and time. + + + + This flag is set either by parsing or by setting year, month or day. + Returns true if the XMPDateTime object has a date portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a time portion. + + + + This flag is set either by parsing or by setting hours, minutes, seconds or milliseconds. + Returns true if the XMPDateTime object has a defined timezone. + + + + + Skip the subtree below the current node when next() is + called. + + + + + Skip the subtree below and remaining siblings of the current node when + next() is called. + + + + + This class represents the set of XMP metadata as a DOM representation. It has methods to read and + modify all kinds of properties, create an iterator over all properties and Serialize the metadata + to a String, byte-array or OutputStream. + + @since 20.01.2006 + + + + + This correlates to the about-attribute, + returns the empty String if no name is set. + + Returns the name of the XMP object. + + + Returns the unparsed content of the <?xpacket> processing instruction. + This contains normally the attribute-like elements 'begin="<BOM>" + id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or + 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, + null is returned. + + + + + Provides access to items within an array. The index is passed as an integer, you need not + worry about the path string syntax for array items, convert a loop index to a string, etc. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant always refers to the last existing array + item. + Returns a XMPProperty containing the value and the options or + null if the property does not exist. + Wraps all errors and exceptions that may occur. + + + + Returns the number of items in the array. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + Returns the number of items in the array. + Wraps all errors and exceptions that may occur. + + + + + + + + Replaces an item within an array. The index is passed as an integer, you need not worry about + the path string syntax for array items, convert a loop index to a string, etc. The array + passed must already exist. In normal usage the selected array item is modified. A new item is + automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index of the desired item. Arrays in XMP are indexed from 1. To address + the last existing item, use to find + out the length of the array. + the new value of the array item. Has the same usage as propValue in + SetProperty(). + the set options for the item. + Wraps all errors and exceptions that may occur. + + + + + Inserts an item into an array previous to the given index. The index is passed as an integer, + you need not worry about the path string syntax for array items, convert a loop index to a + string, etc. The array passed must already exist. In normal usage the selected array item is + modified. A new item is automatically appended if the index is the array size plus 1. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The index to insert the new item. Arrays in XMP are indexed from 1. Use + XmpConst.ARRAY_LAST_ITEM to append items. + the new value of the array item. Has the same usage as + propValue in SetProperty(). + the set options that decide about the kind of the node. + Wraps all errors and exceptions that may occur. + + + + + + + Provides access to fields within a nested structure. The namespace for the field is passed as + a URI, you need not worry about the path string syntax. The names of fields should be XML + qualified names, that is within an XML namespace. The path syntax for a qualified name uses + the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is + the formal name, the prefix is just a local shorthand in a given sequence of XML text. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the struct. May be a general path expression, must not be null + or the empty string. Has the same namespace prefix usage as propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be null or the + empty string. Has the same namespace prefix usage as the structName parameter. + the value of thefield, if the field has a value. + Has the same usage as propValue in GetProperty. + Option flags describing the field. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Provides access to a qualifier attached to a property. The namespace for the qualifier is + passed as a URI, you need not worry about the path string syntax. In many regards qualifiers + are like struct fields. See the introductory discussion of qualified properties for more + information. The names of qualifiers should be XML qualified names, that is within an XML + namespace. The path syntax for a qualified name uses the namespace prefix, which is + unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is + just a local shorthand in a given sequence of XML text. The property the qualifier + will be attached has to exist. + + The namespace URI for the struct. Has the same usage as in GetProperty. + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + A pointer to the null terminated UTF-8 string that is the + value of the qualifier, if the qualifier has a value. Has the same usage as propValue + in GetProperty. + Option flags describing the qualifier. See the earlier description. + Wraps all errors and exceptions that may occur. + + + + + Deletes the given XMP subtree rooted at the given property. It is not an error if the + property does not exist. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. Has the same usage as in GetProperty. + + + + Deletes the given XMP subtree rooted at the given array item. It is not an error if the array + item does not exist. + + The namespace URI for the array. Has the same usage as in GetProperty. + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + + + + Deletes the given XMP subtree rooted at the given struct field. It is not an error if the + field does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty. + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + + + + Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the + qualifier does not exist. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty. + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + + + + Returns whether the property exists. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns true if the property exists. + + + + Tells if the array item exists. + + The namespace URI for the array. Has the same usage as in + GetProperty(). + The name of the array. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The index of the desired item. Arrays in XMP are indexed from 1. The + constant XmpConst.ARRAY_LAST_ITEM always refers to the last + existing array item. + Returns true if the array exists, false otherwise. + + + + DoesStructFieldExist tells if the struct field exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the struct. May be a general path expression, must not be + null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The namespace URI for the field. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the field. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + structName parameter. + Returns true if the field exists. + + + + DoesQualifierExist tells if the qualifier exists. + + The namespace URI for the struct. Has the same usage as in + GetProperty(). + The name of the property to which the qualifier is attached. Has the same + usage as in GetProperty(). + The namespace URI for the qualifier. Has the same URI and prefix usage as the + schemaNs parameter. + The name of the qualifier. Must be a single XML name, must not be + null or the empty string. Has the same namespace prefix usage as the + propName parameter. + Returns true if the qualifier exists. + + + + + Modifies the value of a selected item in an alt-text array. Creates an appropriate array item + if necessary, and handles special cases for the x-default item. If the selected item is from + a match with the specific language, the value of that item is modified. If the existing value + of that item matches the existing value of the x-default item, the x-default item is also + modified. If the array only has 1 existing item (which is not x-default), an x-default item + is added with the given value. If the selected item is from a match with the generic language + and there are no other generic matches, the value of that item is modified. If the existing + value of that item matches the existing value of the x-default item, the x-default item is + also modified. If the array only has 1 existing item (which is not x-default), an x-default + item is added with the given value. If the selected item is from a partial match with the + generic language and there are other partial matches, a new item is created for the specific + language. The x-default item is not modified. If the selected item is from the last 2 rules + then a new item is created for the specific language. If the array only had an x-default + item, the x-default item is also modified. If the array was empty, items are created for the + specific language and x-default. + + Note: In a future version of this API a method + using Java java.lang.Locale will be added. + + + The namespace URI for the alt-text array. Has the same usage as in + GetProperty(). + The name of the alt-text array. May be a general path expression, must not + be null or the empty string. Has the same namespace prefix usage as + propName in GetProperty(). + The name of the generic language as an RFC 3066 primary subtag. May be + null or the empty string if no generic language is wanted. + The name of the specific language as an RFC 3066 tag. Must not be + null or the empty string. + A pointer to the null terminated UTF-8 string that is the new + value for the appropriate array item. + Option flags, none are defined at present. + Wraps all errors and exceptions that may occur. + + + + + These are very similar to GetProperty() and SetProperty() above, + but the value is returned or provided in a literal form instead of as a UTF-8 string. + The path composition functions in XMPPathFactory may be used to compose an path + expression for fields in nested structures, items in arrays, or qualifiers. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Boolean value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns an Integer value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Long value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Double value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a XMPDateTime-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a Java Calendar-object or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a byte[]-array contained the decoded base64 value + or null if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to retrieve the literal value of a property. + Note: There is no SetPropertyString(), + because SetProperty() sets a string value. + + The namespace URI for the property. Has the same usage as in + GetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + Returns a String value or null + if the property does not exist. + Wraps all exceptions that may occur, + especially conversion errors. + + + + Convenience method to set a property to a literal boolean value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as boolean. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal int value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as int. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal long value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as long. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property to a literal double value. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as double. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with an XMPDateTime-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as XMPDateTime. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property with a Java Calendar-object, + which is serialized to an ISO8601 date. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the property value as Java Calendar. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + Convenience method to set a property from a binary byte[]-array, + which is serialized as base64-string. + + The namespace URI for the property. Has the same usage as in + SetProperty(). + The name of the property. + Has the same usage as in GetProperty(). + the literal property value as byte array. + options of the property to set (optional). + Wraps all exceptions that may occur. + + + + + + + Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, + properties within a specific schema, or a subtree rooted at a specific node. + + Optional schema namespace URI to restrict the iteration. Omitted (visit all + schema) by passing null or empty String. + Optional property name to restrict the iteration. May be an arbitrary path + expression. Omitted (visit all properties) by passing null or empty + String. If no schema URI is given, it is ignored. + Option flags to control the iteration. See for + details. + Returns an XMPIterator for this XMPMeta-object + considering the given options. + Wraps all errors and exceptions that may occur. + + + + + Perform the normalization as a separate parsing step. + Normally it is done during parsing, unless the parsing option + is set to true. + Note: It does no harm to call this method to an already normalized xmp object. + It was a PDF/A requirement to get hand on the unnormalized XMPMeta object. + + optional parsing options. + Wraps all errors and exceptions that may occur. + + + + Renders this node and the tree unter this node in a human readable form. + Returns a multiline string containing the dump. + + + + + + + Returns the registered prefix/namespace-pairs as map, where the keys are the + namespaces and the values are the prefixes. + + + Returns the registered namespace/prefix-pairs as map, where the keys are the + prefixes and the values are the namespaces. + + + + + Determines if a name is an alias, and what it is aliased to. + + + The namespace URI of the alias. Must not be null or the empty + string. + + The name of the alias. May be an arbitrary path expression + path, must not be null or the empty string. + Returns the XMPAliasInfo for the given alias namespace and property or + null if there is no such alias. + + + + Collects all aliases that are contained in the provided namespace. + If nothing is found, an empty array is returned. + + a schema namespace URI + Returns all alias infos from aliases that are contained in the provided namespace. + + + + Searches for registered aliases. + + + an XML conform qname + Returns if an alias definition for the given qname to another + schema and property is registered. + + + Returns the registered aliases as map, where the key is the "qname" (prefix and name) + and the value an XMPAliasInfo-object. + + + + Returns the primary release number, the "1" in version "1.2.3". + + + Returns the secondary release number, the "2" in version "1.2.3". + + + Returns the tertiary release number, the "3" in version "1.2.3". + + + Returns a rolling build number, monotonically increasing in a release. + + + Returns true if this is a debug build. + + + Returns a comprehensive version information string. + + + + Options for XMPSchemaRegistryImpl#registerAlias. + + @since 20.02.2006 + + + + + This is a direct mapping. The actual data type does not matter. + + + + The actual is an unordered array, the alias is to the first element of the array. + + + + The actual is an ordered array, the alias is to the first element of the array. + + + + The actual is an alternate array, the alias is to the first element of the array. + + + + The actual is an alternate text array, the alias is to the 'x-default' element of the array. + + + + + the options to init with + If options are not consistant + + + Returns if the alias is of the simple form. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + + returns a s object + If the options are not consistant. + + + + + Options for XMPIterator construction. + + @since 24.01.2006 + + + + + Just do the immediate children of the root, default is subtree. + + + + Just do the leaf nodes, default is all nodes in the subtree. + Bugfix #2658965: If this option is set the Iterator returns the namespace + of the leaf instead of the namespace of the base property. + + + + + Return just the leaf part of the path, default is the full path. + + + + Omit all qualifiers. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + Returns whether the option is set. + + + + + + Options for . + + @since 24.01.2006 + + + + + Require a surrounding "x:xmpmeta" element in the xml-document. + + + + Do not reconcile alias differences, throw an exception instead. + + + + Convert ASCII control characters 0x01 - 0x1F (except tab, cr, and lf) to spaces. + + + + If the input is not unicode, try to parse it as ISO-8859-1. + + + + Do not carry run the XMPNormalizer on a packet, leave it as it is. + + + + Sets the options to the default values. + + + + Returns the requireXMPMeta. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the strictAliasing. + + + Returns the option "omit normalization". + + + + + + The property flags are used when properties are fetched from the XMPMeta-object + and provide more detailed information about the property. + + @since 03.07.2006 + + + + + may be used in the future + + + + Updated by iText. Indicates if the property should be writted as a separate node + + + + + Default constructor + + + + + Intialization constructor + + the initialization options + If the options are not valid + + + Return whether the property value is a URI. It is serialized to RDF using the + rdf:resource attribute. Not mandatory for URIs, but considered RDF-savvy. + + + Return whether the property has qualifiers. These could be an xml:lang + attribute, an rdf:type property, or a general qualifier. See the + introductory discussion of qualified properties for more information. + + + Return whether this property is a qualifier for some other property. Note that if the + qualifier itself has a structured value, this flag is only set for the top node of + the qualifier's subtree. Qualifiers may have arbitrary structure, and may even have + qualifiers. + + + Return whether this property has an xml:lang qualifier. + + + Return whether this property has an rdf:type qualifier. + + + Return whether this property contains nested fields. + + + Return whether this property is an array. By itself this indicates a general + unordered array. It is serialized using an rdf:Bag container. + + + Return whether this property is an ordered array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Seq container. + + + Return whether this property is an alternative array. Appears in conjunction with + getPropValueIsArray(). It is serialized using an rdf:Alt container. + + + Return whether this property is an alt-text array. Appears in conjunction with + getPropArrayIsAlternate(). It is serialized using an rdf:Alt container. + Each array element is a simple property with an xml:lang attribute. + + + the value to set + Returns this to enable cascaded options. + Returns whether the SCHEMA_NODE option is set. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns whether the property is of composite type - an array or a struct. + + + Returns true if only array options are set. + + + + + Compares two options set for array compatibility. + + other options + Returns true if the array options of the sets are equal. + + + + Merges the set options of a another options object with this. + If the other options set is null, this objects stays the same. + other options + If illegal options are provided + + + + + Checks that a node not a struct and array at the same time; + and URI cannot be a struct. + + the bitmask to check. + Thrown if the options are not consistent. + + + + Options for . + + @since 24.01.2006 + + + + + Omit the XML packet wrapper. + + + + Mark packet as read-only. Default is a writeable packet. + + + + Use a compact form of RDF. + The compact form is the default serialization format (this flag is technically ignored). + To Serialize to the canonical form, set the flag USE_CANONICAL_FORMAT. + If both flags "compact" and "canonical" are set, canonical is used. + + + + + Use the canonical form of RDF if set. By default the compact form is used + + + + Include a padding allowance for a thumbnail image. If no xmp:Thumbnails property + is present, the typical space for a JPEG thumbnail is used. + + + + + The padding parameter provides the overall packet length. The actual amount of padding is + computed. An exception is thrown if the packet exceeds this length with no padding. + + + + + + Sort the struct properties and qualifier before serializing + + + + Bit indicating little endian encoding, unset is big endian + + + + Bit indication UTF16 encoding. + + + + UTF8 encoding; this is the default + + + + UTF16BE encoding + + + + UTF16LE encoding + + + + The number of levels of indentation to be used for the outermost XML element in the + serialized RDF. This is convenient when embedding the RDF in other text, defaults to 0. + + + + + The string to be used for each level of indentation in the serialized + RDF. If empty it defaults to two ASCII spaces, U+0020. + + + + + The string to be used as a line terminator. If empty it defaults to; linefeed, U+000A, the + standard XML newline. + + + + + Omits the Toolkit version attribute, not published, only used for Unit tests. + + + + The amount of padding to be added if a writeable XML packet is created. If zero is passed + (the default) an appropriate amount of padding is computed. + + + + + Default constructor. + + + + + Constructor using inital options + the inital options + Thrown if options are not consistant. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the option. + + + Returns the baseIndent. + + + Returns the indent. + + + Returns the newline. + + + Returns the padding. + + + Returns whether the Toolkit version attribute shall be omitted. + Note: This options can only be set by unit tests. + + + Returns the encoding as Java encoding String. + + + + + Returns clone of this SerializeOptions-object with the same options set. + + + + + The base class for a collection of 32 flag bits. Individual flags are defined as enum value bit + masks. Inheriting classes add convenience accessor methods. + + @since 24.01.2006 + + + + + a map containing the bit names + + + + the internal int containing all options + + + + The default constructor. + + + + + Constructor with the options bit mask. + + the options bit mask + If the options are not correct + + + + Is friendly to access it during the tests. + Returns the options. + + + + Creates a human readable string from the set options. Note: This method is quite + expensive and should only be used within tests or as + Returns a String listing all options that are set to true by their name, + like "option1 | option4". + + + + To be implemeted by inheritants. + Returns a bit mask where all valid option bits are set. + + + + Resets the options. + + + + an option bitmask + Returns true, if this object is equal to the given options. + + + an option bitmask + Returns true, if this object contains all given options. + + + an option bitmask + Returns true, if this object contain at least one of the given options. + + + the binary bit or bits that are requested + Returns if all of the requested bits are set or not. + + + the binary bit or bits that shall be set to the given value + the boolean value to set + + + + + Returns the options as hex bitmask. + + + + To be implemeted by inheritants. + a single, valid option bit. + Returns a human readable name for an option bit. + + + + The inheriting option class can do additional checks on the options. + Note: For performance reasons this method is only called + when setting bitmasks directly. + When get- and set-methods are used, this method must be called manually, + normally only when the Options-object has been created from a client + (it has to be made public therefore). + + the bitmask to check. + Thrown if the options are not consistent. + + + + Checks options before they are set. + First it is checked if only defined options are used, + second the additional -method is called. + + the options to check + Thrown if the options are invalid. + + + + Looks up or asks the inherited class for the name of an option bit. + Its save that there is only one valid option handed into the method. + a single option bit + Returns the option name or undefined. + + + Returns the optionNames map and creates it if required. + + + + This interface is used to return info about an alias. + + @since 27.01.2006 + + + + Returns Returns the namespace URI for the base property. + + + Returns the default prefix for the given base property. + + + Returns the path of the base property. + + + Returns the kind of the alias. This can be a direct alias + (ARRAY), a simple property to an ordered array + (ARRAY_ORDERED), to an alternate array + (ARRAY_ALTERNATE) or to an alternate text array + (ARRAY_ALT_TEXT). + + + + This interface is used to return a text property together with its and options. + + @since 23.01.2006 + + + + Returns the value of the property. + + + Returns the options of the property. + + + + Only set by . + Returns the language of the alt-text item. + + + + This interface is used to return a property together with its path and namespace. + It is returned when properties are iterated with the XMPIterator. + + @since 06.07.2006 + + + + Returns the namespace of the property + + + Returns the path of the property, but only if returned by the iterator. + + + + Common constants for the XMP Toolkit. + + @since 20.01.2006 + + + + + The XML namespace for XML. + + + + The XML namespace for RDF. + + + + The XML namespace for the Dublin Core schema. + + + + The XML namespace for the IPTC Core schema. + + + + The XML namespace for the IPTC Extension schema. + + + + The XML namespace for the DICOM medical schema. + + + + The XML namespace for the PLUS (Picture Licensing Universal System, http://www.useplus.org) + + + + The XML namespace Adobe XMP Metadata. + + + + The XML namespace for the XMP "basic" schema. + + + + The XML namespace for the XMP copyright schema. + + + + The XML namespace for the XMP digital asset management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the job management schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the PDF schema. + + + + The XML namespace for the Photoshop custom schema. + + + + The XML namespace for the Photoshop Album schema. + + + + The XML namespace for Adobe's EXIF schema. + + + + NS for the CIPA XMP for Exif document v1.1 + + + + The XML namespace for Adobe's TIFF schema. + + + + BExt Schema + + + + RIFF Info Schema + + + + Transform XMP + + + + Adobe Flash SWF + + + + legacy Dublin Core NS, will be converted to NS_DC + + + + The XML namespace for qualifiers of the xmp:Identifier property. + + + + The XML namespace for fields of the Dimensions type. + + + + The XML namespace for fields of a graphical image. Used for the Thumbnail type. + + + + The XML namespace for fields of the ResourceEvent type. + + + + The XML namespace for fields of the ResourceRef type. + + + + The XML namespace for fields of the Version type. + + + + The XML namespace for fields of the JobRef type. + + + + The canonical true string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "1". + + + + + The canonical false string value for Booleans in serialized XMP. Code that converts from the + string to a bool should be case insensitive, and even allow "0". + + + + + Index that has the meaning to be always the last item in an array. + + + + Node name of an array item. + + + + The x-default string for localized properties + + + + xml:lang qualfifier + + + + rdf:type qualfifier + + + + Processing Instruction (PI) for xmp packet + + + + XMP meta tag version new + + + + XMP meta tag version old + + + + A factory to create XMPDateTime-instances from a Calendar or an + ISO 8601 string or for the current time. + + @since 16.02.2006 + + + + + Obtain the current date and time. + + Returns The returned time is UTC, properly adjusted for the local time zone. The + resolution of the time is not guaranteed to be finer than seconds. + + + + Creates an XMPDateTime from a Calendar-object. + + a Calendar-object. + An XMPDateTime-object. + + + + Creates an empty XMPDateTime-object. + Returns an XMPDateTime-object. + + + + + + Creates an XMPDateTime from an ISO 8601 string. + + The ISO 8601 string representation of the date/time. + An XMPDateTime-object. + When the ISO 8601 string is non-conform + + + + Sets the local time zone without touching any other Any existing time zone value is replaced, + the other date/time fields are not adjusted in any way. + + the XMPDateTime variable containing the value to be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is UTC. If the time zone is not UTC, the time is + adjusted and the time zone set to be UTC. + + + the XMPDateTime variable containing the time to + be modified. + Returns an updated XMPDateTime-object. + + + + Make sure a time is local. If the time zone is not the local zone, the time is adjusted and + the time zone set to be local. + + the XMPDateTime variable containing the time to be modified. + Returns an updated XMPDateTime-object. + + + + @since 21.09.2006 + + + + + Note: This is an error code introduced by Java. + + + + This exception wraps all errors that occur in the XMP Toolkit. + + @since 16.02.2006 + + + + + the errorCode of the XMP toolkit + + + + Constructs an exception with a message and an error code. + the message + the error code + + + + Constructs an exception with a message, an error code and a Throwable + the error message. + the error code + the exception source + + + Returns the errorCode. + + + + Creates XMPMeta-instances from an InputStream + + @since 30.01.2006 + + + + + The singleton instance of the XMPSchemaRegistry. + + + + + cache for version info + + + + Returns the singleton instance of the XMPSchemaRegistry. + + + Returns an empty XMPMeta-object. + + + + + + + + + + Serializes an XMPMeta-object as RDF into an OutputStream + with default options. + + a metadata object + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into an OutputStream. + + a metadata object + Options to control the serialization (see ). + an OutputStream to write the serialized RDF to. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a byte buffer. + + a metadata object + Options to control the serialization (see ). + Returns a byte buffer containing the serialized RDF. + on serializsation errors. + + + + Serializes an XMPMeta-object as RDF into a string. Note: Encoding + is ignored when serializing to a string. + + a metadata object + Options to control the serialization (see ). + Returns a string containing the serialized RDF. + on serializsation errors. + + + Asserts that xmp is compatible to XMPMetaImpl.s + + + + Resets the _schema registry to its original state (creates a new one). + Be careful this might break all existing XMPMeta-objects and should be used + only for testing purpurses. + + + + + Obtain version information. The XMPVersionInfo singleton is created the first time + its requested. + + Returns the version information. + + + + + Compose the path expression for an item in an array. + + The name of the array. May be a general path expression, must not be + null or the empty string. + The index of the desired item. Arrays in XMP are indexed from 1. + 0 and below means last array item and renders as [last()]. + + Returns the composed path basing on fullPath. This will be of the form + ns:arrayName[i], where "ns" is the prefix for schemaNs and + "i" is the decimal representation of itemIndex. + Throws exeption if index zero is used. + + + + Compose the path expression for a field in a struct. The result can be added to the + path of + + + The namespace URI for the field. Must not be null or the empty + string. + The name of the field. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:structName/fNS:fieldName, where "ns" is the prefix for + schemaNs and "fNS" is the prefix for fieldNs. + Thrown if the path to create is not valid. + + + + Compose the path expression for a qualifier. + + The namespace URI for the qualifier. May be null or the empty + string if the qualifier is in the XML empty namespace. + The name of the qualifier. Must be a simple XML name, must not be + null or the empty string. + Returns the composed path. This will be of the form + ns:propName/?qNS:qualName, where "ns" is the prefix for + schemaNs and "qNS" is the prefix for qualNs. + Thrown if the path to create is not valid. + + + + Compose the path expression to select an alternate item by language. The + path syntax allows two forms of "content addressing" that may + be used to select an item in an array of alternatives. The form used in + ComposeLangSelector lets you select an item in an alt-text array based on + the value of its xml:lang qualifier. The other form of content + addressing is shown in ComposeFieldSelector. \note ComposeLangSelector + does not supplant SetLocalizedText or GetLocalizedText. They should + generally be used, as they provide extra logic to choose the appropriate + language and maintain consistency with the 'x-default' value. + ComposeLangSelector gives you an path expression that is explicitly and + only for the language given in the langName parameter. + + + The name of the array. May be a general path expression, must + not be null or the empty string. + + The RFC 3066 code for the desired language. + Returns the composed path. This will be of the form + ns:arrayName[@xml:lang='langName'], where + "ns" is the prefix for schemaNs. + + + + + ParameterAsserts that a qualifier namespace is set. + a qualifier namespace + Qualifier schema is null or empty + + + + ParameterAsserts that a qualifier name is set. + a qualifier name or path + Qualifier name is null or empty + + + + ParameterAsserts that a struct field namespace is set. + a struct field namespace + Struct field schema is null or empty + + + + ParameterAsserts that a struct field name is set. + a struct field name or path + Struct field name is null or empty + + + + Utility methods for XMP. I included only those that are different from the + Java default conversion utilities. + + @since 21.02.2006 + + + + + Private constructor + + + + Create a single edit string from an array of strings. + + + The XMP object containing the array to be catenated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be used to separate the items in the catenated + string. Defaults to "; ", ASCII semicolon and space + (U+003B, U+0020). + + The characters to be used as quotes around array items that + contain a separator. Defaults to '"' + + Option flag to control the catenation. + Returns the string containing the catenated array items. + Forwards the Exceptions from the metadata processing + + + + Separate a single edit string into an array of strings. + + + The XMP object containing the array to be updated. + + The schema namespace URI for the array. Must not be null or + the empty string. + + The name of the array. May be a general path expression, must + not be null or the empty string. Each item in the array must + be a simple string value. + + The string to be separated into the array items. + Option flags to control the separation. + Flag if commas shall be preserved + Forwards the Exceptions from the metadata processing + + + + + Alias without the new option deleteEmptyValues. + The source XMP object. + The destination XMP object. + Do internal properties in addition to external properties. + Replace the values of existing properties. + Forwards the Exceptions from the metadata processing + + + + + + Convert from boolean to string. + + + a boolean value + The XMP string representation of the boolean. The values used are + given by the constnts and + . + + + + Converts a string value to an int. + + + the string value + Returns an int. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from int to string. + + + an int value + The string representation of the int. + + + + Converts a string value to a long. + + + the string value + Returns a long. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to a double. + + + the string value + Returns a double. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from long to string. + + + a long value + The string representation of the long. + + + + Converts a string value to an XMPDateTime. + + + the string value + Returns an XMPDateTime-object. + + If the rawValue is null or empty or the + conversion fails. + + + + Convert from XMPDateTime to string. + + + an XMPDateTime + The string representation of the long. + + + + Convert from a byte array to a base64 encoded string. + + + the byte array to be converted + Returns the base64 string. + + + + Decode from Base64 encoded string to raw data. + + + a base64 encoded string + Returns a byte array containg the decoded string. + Thrown if the given string is not property base64 encoded + + + + Implementation of the IndicLigaturizer for Devanagari. + + Warning: this is an incomplete and experimental implementation of Devanagari. This implementation should not be used in production. + + + Constructor for the IndicLigaturizer for Devanagari. + + + Produces a blank (or empty) signature. Useful for deferred signing with + MakeSignature.signExternalContainer(). + @author Paulo Soares + + + + Add + args: ByVal key As IComparable, ByVal data As Object + key is object that implements IComparable interface + performance tip: change to use use int type (such as the hashcode) + + + + + RestoreAfterInsert + Additions to red-black trees usually destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + RotateLeft + Rebalance the tree by rotating the nodes to the left + + + + + RotateRight + Rebalance the tree by rotating the nodes to the right + + + + + + + + + + + + + + + + + RestoreAfterDelete + Deletions from red-black trees may destroy the red-black + properties. Examine the tree and restore. Rotations are normally + required to restore it + + + + + + + + Key + + + + + Data + + + + + Determine order, walk the tree and push the nodes onto the stack + + + + + HasMoreElements + + + + + NextElement + + + + + MoveNext + For .NET compatibility + + + + + Key + + + + + Data + + + + + Color + + + + + Left + + + + + Right + + + + + Provides the base class for a generic read-only dictionary. + + + The type of keys in the dictionary. + + + The type of values in the dictionary. + + + + An instance of the ReadOnlyDictionary generic class is + always read-only. A dictionary that is read-only is simply a + dictionary with a wrapper that prevents modifying the + dictionary; therefore, if changes are made to the underlying + dictionary, the read-only dictionary reflects those changes. + See for a modifiable version of + this class. + + + Notes to Implementers This base class is provided to + make it easier for implementers to create a generic read-only + custom dictionary. Implementers are encouraged to extend this + base class instead of creating their own. + + + + + + Initializes a new instance of the + class that wraps + the supplied . + + The + that will be wrapped. + + Thrown when the dictionary is null. + + + + + Gets the number of key/value pairs contained in the + . + + The number of key/value pairs. + The number of key/value pairs contained in the + . + + + Gets a collection containing the keys in the + . + A + containing the keys. + A + + containing the keys in the + . + + + + + Gets a collection containing the values of the + . + + The collection of values. + + + Gets a value indicating whether the dictionary is read-only. + This value will always be true. + + + + Gets a value indicating whether access to the dictionary + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to dictionary. + + + + + Gets or sets the value associated with the specified key. + + + The value associated with the specified key. If the specified key + is not found, a get operation throws a + , + and a set operation creates a new element with the specified key. + + The key of the value to get or set. + + Thrown when the key is null. + + + The property is retrieved and key does not exist in the collection. + + + + This method is not supported by the + . + + The object to use as the key of the element to add. + + The object to use as the value of the element to add. + + + Determines whether the + contains the specified key. + + True if the contains + an element with the specified key; otherwise, false. + + The key to locate in the + . + + Thrown when the key is null. + + + + + This method is not supported by the . + + The key of the element to remove. + + True if the element is successfully removed; otherwise, false. + + + + + Gets the value associated with the specified key. + + The key of the value to get. + When this method returns, contains the value + associated with the specified key, if the key is found; + otherwise, the default value for the type of the value parameter. + This parameter is passed uninitialized. + + true if the contains + an element with the specified key; otherwise, false. + + + + This method is not supported by the + . + + The object to add to the . + + + + This method is not supported by the + . + + + + Determines whether the contains a + specific value. + + + The object to locate in the . + + + true if item is found in the ICollection; + otherwise, false. + + + + + Copies the elements of the ICollection to an Array, starting at a + particular Array index. + + The one-dimensional Array that is the + destination of the elements copied from ICollection. + The Array must have zero-based indexing. + + + The zero-based index in array at which copying begins. + + + + This method is not supported by the + . + + The object to remove from the ICollection. + + Will never return a value. + + + + Returns an enumerator that iterates through the collection. + + + A IEnumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + For a description of this member, see . + + + The one-dimensional Array that is the destination of the elements copied from + ICollection. The Array must have zero-based indexing. + + + The zero-based index in Array at which copying begins. + + + + + Summary description for ListIterator. + + + + + Summary description for Properties. + + + + + Summary description for Util. + + + + + Summary description for DeflaterOutputStream. + + + + + Summary description for DeflaterOutputStream. + + +
+
diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.config b/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.config new file mode 100644 index 0000000..c294af8 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.config @@ -0,0 +1,65 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.dll new file mode 100644 index 0000000..8646b6f Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.xml b/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.xml new file mode 100644 index 0000000..dee43d6 --- /dev/null +++ b/采集器3.5框架封装包2023-10-26/采集器依赖包/log4net.xml @@ -0,0 +1,32450 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Prepare entire database command object to be executed. + + The command to prepare. + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Ansi code to reset terminal + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Defaults to %logger + + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. + For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Syslog port 514 + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Send the email message + + the body text to include in the mail + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + trims leading and trailing commas or semicolons + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + The logger that this object is wrapping + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + returns a stack frame item from a stack frame. This + + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + The global context properties instance + + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Initializes a new instance of the class. + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Supports type-safe iteration over a . + + + + + + Gets the current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Allow subclasses to avoid our default constructors + + + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + + + + + + + + + + + + + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + Total number of bytes written. + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + The singleton instance of the . + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + See + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Format + + + + + Args + + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Default constructor + + + + Default constructor + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/concrt140.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/concrt140.dll new file mode 100644 index 0000000..667ecc9 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/concrt140.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/cvextern.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/cvextern.dll new file mode 100644 index 0000000..c33278a Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/cvextern.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/msvcp140.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/msvcp140.dll new file mode 100644 index 0000000..60f1219 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/msvcp140.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/opencv_videoio_ffmpeg411_64.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/opencv_videoio_ffmpeg411_64.dll new file mode 100644 index 0000000..35ebf9c Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/opencv_videoio_ffmpeg411_64.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/vcruntime140.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/vcruntime140.dll new file mode 100644 index 0000000..46cb058 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x64/vcruntime140.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/SQLite.Interop.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/SQLite.Interop.dll new file mode 100644 index 0000000..1395272 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/SQLite.Interop.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/concrt140.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/concrt140.dll new file mode 100644 index 0000000..0975433 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/concrt140.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/cvextern.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/cvextern.dll new file mode 100644 index 0000000..d7d801e Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/cvextern.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/msvcp140.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/msvcp140.dll new file mode 100644 index 0000000..1ff435c Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/msvcp140.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/opencv_videoio_ffmpeg411.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/opencv_videoio_ffmpeg411.dll new file mode 100644 index 0000000..1de72f2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/opencv_videoio_ffmpeg411.dll differ diff --git a/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/vcruntime140.dll b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/vcruntime140.dll new file mode 100644 index 0000000..528dcf2 Binary files /dev/null and b/采集器3.5框架封装包2023-10-26/采集器依赖包/x86/vcruntime140.dll differ